Описание сервера ОпенSSH
OpenSSH называют бесплатное семейство инструментов, предназначенных для удаленного контроля и передачи данных, благодаря использованию оболочки SSH (протокол безопасной оболочки). Стандартные инструменты, такие как rcp и telnet недостаточно защищены и передают пароль пользователя в открытой форме. ОпенSSH в свою очередь создает специальный сервис на сервере, а также пользовательские приложения для создания защиты, зашифрованного удаленного управления, а также передачи файлов (все это прекрасно заменяет устаревшие инструменты).
Компонент OpenSSH сделан таким образом, что постоянно находится в ожидании подключения от любого приложения. Когда будет зарегистрирован запрос на подключение, то SSHD установит правильное соединение в зависимости от соединяющегося приложения. Так, если удаленный компьютер будет просить подключения при помощи приложения SSH, то сервер ОпенSSH установит сессию удаленного управления после авторизации; если же юзер будет подключаться к серверу OpenSSH при помощи scp, то OpenSSH создаст безопасное подключение передачи файлов между сервером и клиентом.
Собственно, ОпенSSH может использовать несколько методов авторизации, включая открытый ключ, билеты Kerberos или обычный пароль.
OpenSSH был разработан командой OpenBSD как замена обычному SSH, который является проприетарным ПО. Создатели OpenSSH утверждают, что их продукт на порядок безопасней, чем оригинальный Secure Shell, ведь был хорошо почищен код. Исходники были долгое время доступны и для оригинального SSH, но ограничения его лицензии делали его более привлекательным проектом для большого круга программистов.
OpenSSH впервые был обнаружен в OpenBSD 2.6; в версии 5.9, которая вышла 6 сентября 2011 года, был введен экспериментальный режим так называемой «песочницы» с ограничениями на некоторые системные запросы. Таким образом, разработчики хотели предотвратить атаки на другие узлы сети, к примеру, благодаря запуску прокси или открытия сокетов.
Содержание
Переносимость
ОпенSSH требует аутентификации, процесс которой может значительно разниться от других операционных систем, и была создана крупная инфраструктура для предоставления переносимости. То, что не попадало в OpenBSD, выделялось группой разработчиков в составе Филлипа Хэндса, Дамьена Миллера и других участников, как субпроект OpenSSH Portable. Такие релизы имели в конце букву «р», к примеру: ОпенSSH _5.1p1.
Туннели
Подавляющее число программ для создания соединения используют протокол TCP, а его трафик можно передавать полностью безопасно при помощи туннеля. То есть это говорит о возможности создания множества дополнительных TCP-подключений поверх одного SSH-соединения (очень полезно при необходимости скрытия соединений и снятия некоторых ограничений фаерволов). Кстати, UDP-подключения также можно иногда туннелировать благодаря использованию стороннего по, такого как netcat. Наиболее дружелюбными протоколами для туннелирования выступают такие протоколы как HTTP, VNC, POP3.
Некоторые приложения также могут использовать ОпенSSH для создания туннеля (к примеру, CVS, rsync, fetchmail). На порядок сложнее туннелировать протокол FTP, который, к слову, можно заменить SMB и SFTP. Некоторые операционки позволяют монтировать файловые системы через SSH, благодаря использованию lufs, shfs и других подобных программ.
OpenSSH Server можно полностью безопасно подключать к X Window System при учете переворота семантики: клиент для X Window будет выступать в роли сервера, и наоборот. Для этого ОпенSSH будет выполнять дополнительные операции по типу установки переменной DISPLAY.
OpenSSH Server начиная с версии 4.3 позволяет задействовать сетевые интерфейсы 2-3 уровней модели OSI; это говорит о возможности использования защищенной VPN без необходимости переделки ПО для поддержки SOCKS.
Некоторые советы по использованию
SSH версии 1 имеет проблемы, связанные с атаками вида «man-in-the-middle» или так называемый «человек посередине». Если сказать проще, то атакующий сможет читать и видоизменять сообщения, которые пересылают друг другу корреспонденты, и при этом ни один из них не будет знать о присутствии третьего лица. В общем, SSH-1 слишком устарел и его использования нужно всячески избегать. Дабы убедиться, что вы используете 2 протокол, зайдите в файл sshd_config и проверьте наличие следующей строки: Protocol 2
Стандартно во всех системах пользователи имеют доступ через SSH при использовании ключа или пароля. Иногда вы также можете создавать учетную запись пользователя UNIX для обеспечения доступа по протоколу ftp или использования e-mail, но этот же самый пользователь сможет войти и по SSH; он получит полный доступ к компиляторам, скриптовым языкам как Python, Perl, благодаря которым можно открывать порты, да и вообще делать множество «волшебных» вещей. Итак, чтобы предоставить доступ только пользователю root (и другим), нужно добавить в файл sshd_config такую запись: AllowUsers root