Защитная оболочка Secure Shell (SSH)

SSH

Защитная оболочка (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.

Похожие материалы: