Защитная оболочка (SSH) на сегодняшний день является фактическим стандартом для удаленных логинов к другим машинам, работающим под любыми операционными системами. Она заменяет старые незащищенные программы, вроде telnet и rlogin. Вдобавок к тому, что она является хорошим примером отдельного сервера (по крайней мере, для тех задач, где чаще используется Unix или Linux), SSH обладает следующими особенностями:
- Зашифровывает ваш пароль и все сессионные данные, защищая вас от тех, кто сует нос не в свои дела.
- Прокладывает тоннель другим сетевым соединениям, включая соединения с клиентами X Window System. Прокладывание тоннеля - это процесс упаковки и транспортировки сетевых соединений, используя другое сетевое соединение. Преимущества использования SSH для прокладывания пути соединениям X Window System заключаются в том, что SSH устанавливает соединение для вас и зашифровывает X данные внутри тоннеля.
- Имеет клиентов практически для всех операционных систем (Unix, Linux, Windows, FreeBSD...).
- Использует ключи для аутентификации хоста.
OpenSSH (http://www.openssh.com) - это популярная бесплатная SSH реализация для операционной системы Unix. Клиент OpenSSH - это ssh, и сервер - это sshd, который используется также и для X Window System. OpenSSH использует открытый ключ шифрования для аутентификации и менее сложных кодов для своих сессионных данных. В SSH есть также и недостатки: в частности, вам нужен удаленный открытый ключ хоста, и не факт, что вы получите его безопасным путем (однако, вы можете проверить его вручную, если вы думаете, что вас обманули). Если вы хотите знать, как работает криптозащита, рекомендую почитать книгу "Прикладная криптография" [Шнейер (Schneier)].
Существует две основных версии протокола SSH: 1 и 2. OpenSSH поддерживает обе, но по умолчанию настроен на версию 2.
Установка OpenSSH
Вы можете установить предварительно скомпилированную двоичную версию OpenSSH, такую как файл .rpm в версии Red Hat (семейство операционных систем Linux), или вы можете получить «портативный» исходный код из OpenSSH веб-сайта, чтобы установить из исходника. Если вы устанавливаете из исходного кода, вам нужна версия SSL (Secret Socket Layer) библиотеки.
В противном случае, вам нужно знать свой каталог настроек OpenSSH — обычно это /etc или /usr/local/etc. Если вы устанавливаете из исходного кода (например, для систем Unix) вы можете заменить каталог настроек по умолчанию с помощью --sysconfdir=dir параметра для настройки для большей информации по компиляции программного обеспечения из исходного кода).
Сервер SSHD
Чтобы запустить sshd, вам нужен файл конфигурации и ключ хоста в каталоге конфигурации. Имя файла настроек — sshd_config. Довольно просто перепутать это имя файла с клиентским установочным файлом ssh_config, так что будьте внимательны. Вам вряд ли понадобится что-либо менять в sshd_config, но никогда не мешает проверить.
Этот файл содержит пары значений ключевых слов, как показано в этом фрагменте:
Port 22
#Protocol 2, 1 {версия протокола}
#ListenAddress 0.0.0.0 {прослушиваемый адрес}
#ListenAddress ::
Hostkey /usr/local/etc/ssh_host_key
Hostkey /usr/local/etc/ssh_host_rsa_key
Hostkey /usr/local/etc/ssh_host_dsa_key
Строки, начинающиеся на #, — это комментарии. Многие комментарии в вашем sshd_config могут обозначать значения по умолчанию. Страница руководства sshd_config(5) для Linux содержит подробное описание всех возможных значений, но эти наиболее важны:
- HostKey file - использует file как ключ хоста (ключи хоста описываются коротко).
- SyslogFacility name - регистрирует сообщения со syslog-средством “name”.
- LogLevel level - Регистрирует сообщения с syslog-уровнем “level”.
- PermitRootLogin value - позволяет суперпользователю войти в систему с SSH если value установлено на “yes”; если вы не хотите этого допустить, установите value на “nо”.
- X11Forwarding value - позволяет клиенту X Window System проложить тоннель если value установлено на “yes”.
- XAuthLocation path - обеспечивает путь для xauth; X11 прокладывание тоннеля не работает без xauth. Если xauth находится не в /usr/X11R6/bin, установите значение переменной “path” как полное имя пути для xauth.
Напоследок, хотел бы порекомендовать отличную утилиту для просмотра логов. LogViewer существует в версиях как под Windows, так и под Ubuntu Linux. Особенностью ее является то, что она загружает файл фрагментами, а не полностью, что актуально для старых машин.