Настройка безопасного удалённого SSH подключения
В век информационного общества, когда информация становится главным товаром на мировом рынке, и всё больше людей вовлечено в её производство, обработку и надёжное хранение на просторах виртуальной среды, так же как и в реальном мире, разворачивается борьба с преступностью. Преступников в информационном мире называю хакерами. Хакеры используют самые различные сценарии с целью проникнуть в наш виртуальный мир, прихватить с собой какую ни будь информацию или сделать вашу машину инструментом для своих злодеяний.
Ниже приведён не полный список инструментов, которыми пользуются хакеры.
Также как профессионального домушника не остановит закрытая дверь вашей квартиры, так и хакера не остановит сложный пароль. Такой вид преступности в настоящее время очень распространён. Если при проникновении в помещение преступник подбирает отмычки, ключи, втирается к вам в доверие или просто ворует ключи, когда вы, например, едете в транспорте, то хакер тоже использует подобные методы:
- · Атака с использованием словарей — перебор слов, которые многие пользователи используют в качестве пароля.
- · Атака методом полного перебора (грубой силы) — перебор всех возможных буквенно-цифровых комбинаций.
- · Атака с использованием радужной таблицы – перебор предварительно вычисленных хэшей (числовых значений зашифрованных паролей), используемых большинством современных систем.
- · Фишинг – перенаправление пользователя на поддельные сайты, где пользователю предлагают ввести личные данные.
- · Социальная инженерия – выманивание пароля в реальном мире при личном общении с пользователем.
- · Вредоносное программное обеспечение – установка с помощью вредоносного ПО программ перехвата вводимой с клавиатуры или выводимой на экран информации.
- · Оффлайн хакинг – взлом машины третьей стороны, которая имеет привилегированный доступ к первоначальному объекту.
- · Подглядывание через плечо – физическое проникновение под каким-либо предлогом в офисное помещение с целью подсмотреть пароль.
- · Метод "пауков" – создание словарей с помощью использования информации о вас или вашей компании путём запуска так называемых «паутинных» приложений аналогичных тем, которые применяются ведущими поисковыми системами.
- · Догадки – часто пользователи создают пароли на основе их интересов, хобби, именах домашних животных, семье и т. д.
Более подробную информацию о методах взлома паролей читайте в статье автора Davey Winder «Top ten password cracking techniques».
Ниже приведу скриншоты наиболее используемых программ для взлома, где реализованы выше перечисленные методы.
Из выше сказанного можно сделать вывод, что самым уязвимым местом в безропотности является именно пароль.
Так как большинство серверов и ПК в настоящее время подключены к глобальной сети, то дверью (как традиционный механизм связывающий нас в реальности с внешним миром) является удалённый доступ. Большинство серверов на просторах Интернет управляются удалённо. Причём сами администраторы могут никогда и не увидеть реальную машину, которой они управляют. В силу того, что 99% серверов работают на UNIXсистемах, то стандартным протоколом де-факто, позволяющий производить удалённое управление операционной системой, стал протокол SSH.
SSH (англ. Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но в отличие от них шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования [1]. Этот протокол разрабатывался для противодействия целому ряду возможных атак. Изначально SSH был отрытым программным обеспечением (протокол SSH1), но со временем он трансформировался в коммерческий продукт с более надежной системой защиты (протокол SSH2). Развитие отрытого, свободно распространяемого пакета удалённого управления не остановилось, поэтому в настоящее время он доступен под названием OpenSSH, в котором реализованы эти два протокола.
Основными компонентами пакета OpenSSHявляются:
- · Серверный демон sshd.
- · Утилита для удаленной регистрации ssh.
- · Утилита для копирования файловscp.
- · Генератор ключей ssh-keygen.
- · Утилиты для поддержки безопасных серверов X Window.
Демон sshd способен аутентифицировать пользователей различными способами.
Способ 1.Доступ в систему без проверки пароля подобно старому демону rlogind за исключением того, что все данные, передаваемые в ходе сеанса, подвергаются шифрованию.
Способ 2.Дополняет способ 1 шифрованием с отрытым ключом для проверки адреса удаленного компьютера. Если удаленный компьютер предоставляет соответствующий секретный ключ, то пользователю разрешается войти в систему без проверки пароля.
Способ 3.Шифрованием с отрытым ключом для идентификации самого пользователя. На этапе регистрации пользователь должен иметь доступ к файлу своего секретного ключа и предоставить пароль для его дешифровки.
Способ 4. Доступ в систему с проверкой пароля подобно старому демону telnet за исключением того, что пароль и все данные, передаваемые в ходе сеанса, подвергаются шифрованию. Именно такой метод используется по умолчанию.
Как было уже отмечено, протокол SSHявляется своеобразной дверью, ограждающую сервер от нежелательных «посетителей». Поэтому существуют рекомендации по укреплению такого дверного проёма [2].
- 1. Запрещение удалённого root-доступа.
- 2. Запрещение подключения с пустым паролем или отключение входа по паролю.<o:p></o:p>
- 3. Выбор нестандартного порта для SSH-сервера.
- 4. Использование длинных SSH2 RSA-ключей (2048 бит и более).
- 5. Ограничение списка IP-адресов, с которых разрешён доступ (например, настройкой файервола).
- 6. Запрещение доступа с некоторых потенциально опасных адресов.
- 7. Отказ от использования распространённых или широко известных системных логинов для доступа по SSH.
- 8. Регулярный просмотр сообщений об ошибках аутентификации.
- 9. Установка систем обнаружения вторжений (IDS).
- 10. Использование ловушек, подделывающих SSH-сервис (honeypot).
И так, исходя из описания и рекомендаций, самым защищённым способом унификации является способ №3, но он так же имеет недостаток — утомляет пользователей и затрудняет возможность регистрации в системе мобильных пользователей (им приходиться носить с собой копию файла секретного ключа).
Рассмотрим принцип работы данного метода:
Пользователь генерирует 2 ключа – секретный и публичный. Секретный ключ находиться у пользователя, публичный – на сервере. При генерации ключей предлагается выбрать пароль для зашифровки секретного ключа. Таким образом, если злоумышленник завладеет паролем, то без секретного ключа он не сможет войти в систему, а если завладеет секретным ключом, то без пароля он не сможет его расшифровать. Необходимо отметить, что пары ключей генерируются для каждого пользователя отдельно, т.е. если предполагается разрешить доступ нескольким пользователям, то для каждого юзера необходимо сгенерировать собственную пару ключей. Поэтому, если даже злоумышленник завладел и секретным ключом и паролем, ему необходимо знать ещё и имя пользователя.
Приступим к практической организации безлопастного удалённого соединения SSH.
Первым делом необходимо создать пользователя, который в дальнейшем будет иметь доступ к удалённому администрированию сервера.
Затем нужно сгенерировать пару ключей.
В домашней директории пользователя должны появиться файлы ключей. Ключ с расширением .ppk является секретным, а с расширением .ppk.pub– публичным. Секретный ключ необходимо сразу же скачать на свой рабочий компьютер или флэш-память.
Ниже представлено содержимое файлов ключей.
После того, как ключи будут созданы, необходимо создать скрытую директорию и создать в ней файл authorized_keys с содержимым публичного ключа.
Далее нужно выставить соответствующие права доступа к созданным ранее директории и файлу.
Теперь можно перейти к настройке самого демона SSH. Все действия необходимо выполнять от имени root.
Главным конфигурационным файлом сервиса SSHявляется ssh_config.
В нём необходимо сделать следующие изменения:
Закомментировать следующие строки:
А так же добавить следующую конфигурацию. Первая строка запрещает вход по SSHпользователю root, вторая и третья — разрешает аутентификацию пользователей по методу шифрования с открытым ключом, четвёртая указывает на место расположения публичного ключа, пятая и шестая запрещает использование обычных регистрационных паролей.
После сделанных изменений, необходимо перезагрузить демон SSH.
Попробуем удалённо соединиться с сервером через клиент Xshell. Как можно увидеть на скриншоте, поля для ввода пароля стали неактивными.
Если аутентификация прошла успешно, то для большей надёжности изменим порт по умолчанию SSHсоединения в файле конфигурации демона SSH.
Теперь удалённо войти, не зная порт, не получится.
Сейчас у администраторов UNIXсистем очень большой популярностью пользуется SSHклиент PuTYY. Работа с ключами в PuTYYимеет свои тонкости, поэтому более подробно остановлюсь на этой программе.
Для удалённой работы с сервером посредством аутентификации с помощью ключа через PuTYYнеобходимо скачать дополнительную программу PuTTYGen, так как сама PuTYYне умеет работать с ключами сгенерированными на UNIXсистемах. С помощью данной программы необходимо перевести ключ в формат PuTYY.
Сначала загружается ключ.
Затем вводится пароль расшифровки ключа.
И сохраняется изменённый ключ.
Теперь, можно настроить PuTYYдля работы с секретным ключом. Для этого необходимо войти в раздел Connection->SSH->Auth и выбрать путь к сохранённому ключу.
Затем нужно выставить IPадрес или доменное имя сервера и порт подключения к SSHв разделе Session.
После успешного соединения, PuTYYзапросит логин и пароль для расшифровки ключа.
Также с помощью PuTYYGenможно сгенерировать ключи для сервера. Для этого необходимо нажать кнопку Generate.
Для процесса генерации ключей программа требует совершать произвольные движения "мышью" по полю ниже полосы состояния генерации — для заполнения массива случайных чисел.
После завершения генерации ключи сохраняются.
Далее публичный ключ необходимо привести к следующему виду:
ssh-rsa {Ваш шифр без скобок}
+OObuQ== rsa-key-20121116
и разместить на сервере, как было описано выше.
В заключение хотелось бы напомнить, что злоумышленники использующие программы, основанные на применении метода «грубой силы», заставляютобращать внимание на ненадежность паролей. Даже наличие инструментов вроде РАМ и механизма устаревания паролей ваша система не будет защищена, так же никогда не следует разрешать учетной записи root регистрироваться удаленно. Доступ супер пользователя должен получаться путем использования команды su.
Литература
- 1. Материал из Википедии — свободной энциклопедии https://ru.wikipedia.org
- 2. Руководство администратора Linux— Эви Немет и др. Москва 2007.
- 3. Библия хакера. Книги 1, 2 — Левин М. М.: Майор, 2003.
- 4. Самоучитель хакера: подроб. иллюстрир. рук.: [учеб. пособие] — Alex Atsctoy. М.: Лучшие книги, 2005.
- 5. Linuxглазами хакера – Фленов М.Е. Спб: БВХ-Петербург,2005.
Автор: Жебрак Семён
По заказу Александра SPY.UZ
Читайте также:
Новости → Как обеспечить безопасность пароля?
Hi-Tech → Директор по безопасности Android считает, что для мобильных устройств не нужны антивирусы
Кулинария → В Ташкенте обсудили стандарты безопасности пищевой продукции
Мировые новости → Генерал Дворкин: новый "Карибский кризис" нам не грозит
シ Обязательно поделись ссылкой с друзьями! ٩(^‿^)۶✉ Мы очень рады видеть Вас, на нашем сайте столько раз — 60363728 ツ