11.4.2. Настройка и использование SSH

11.4.2. Настройка и использование SSH

Что такое SSH

SSH (Secure Shell — защищенная оболочка) — это протокол, обеспечивающий защищенную передачу данных. SSH использует криптографию открытого ключа для шифрования соединения между двумя машинами, а также для опознавания (аутентификации) пользователей. Протокол SSH можно использовать для безопасной регистрации на удаленном сервере или копирования данных между двумя машинами. Ом позволяет предотвращать атаки способом присоединения посередине (session hijacking) и обмана сервера имен (DNS spoofing).

Протокол SSH поддерживает следующие алгоритмы шифрования:

BlowFish — 64-разрядная схема шифрования. Этот алгоритм часто используется для высокоскоростного шифрования данных больших объемов.

Тройной DES (Data Encryption Standard) — довольно старый стандарт шифрования данных, который в наше время рекомендуется использовать только для несекретных данных.

IDEA (International Data Encryption Algorithm) — международный алгоритм шифрования информации. Этот алгоритм работает со 128-разрядным ключом и поэтому он более защищен, чем BlowFish и DES.

RSA (Rivest-Shamir-Adelman algorithm) — алгоритм Ривеста-Шамира-Адельмана. Представляет собой схему шифрования с открытым и секретным ключами.

Поддержка нескольких алгоритмов шифрования позволяет обеспечивать наибольшую безопасность, так как в случае обнаружения уязвимости в одном алгоритме SSH переориентируется на использование других алгоритмов.

На данный момент существует две версии протокола SSH:

Протокол SSH версия 1. У каждого узла есть свой RSA-ключ (обычно 1024 бит), который используется для идентификации узла. Этот ключ еще называется открытым. Дополнительно, при запуске демона, генерируется еще один RSA-ключ — ключ сервера (обычно 768 бит). Этот ключ создается заново каждый час и никогда не сохраняется на диске. Каждый раз при установке соединения с клиентом демон отправляет ему в ответ свой открытый ключ и ключ сервера. Клиент сравнивает полученный открытый ключ со своей базой данных, чтобы проверить, не изменился ли он. Затем клиент случайным образом генерирует 256-разрядное число и кодирует его, используя одновременно два ключа — открытый ключ и ключ сервера. Обе стороны используют этот случайный номер как ключ сессии, который используется для кодирования всех передаваемых во время сессии данных. Затем клиент пытается аутентифицировать себя, используя .rhosts-аутентификацию, аутентификацию RSA или же аутентификацию с использованием пароля. Обычно .rhosts-аутентификация небезопасна, поэтому она отключена.

Протокол SSH версия 2. Версия 2 работает аналогично первой: каждый узел имеет определенный RSA-ключ, который используется для идентификации узла. Однако при запуске демона ключ сервера не генерируется. Безопасность соединения обеспечивается благодаря соглашению Диффи-Хелмана (Diffie-Hellman key agreement). Кроме того, в SSH2 были исправлены недостатки SSH1. Сессия может кодироваться следующими методами: 128-разрядный AES, Blowfish, 3DES, CAST128, Arcfour, 192-разрядный AES или 256-разрядный AES.

Программные пакеты, использующие эти протоколы, так и называются: ssh1 и ssh2. Сервером SSH служит демон sshd, который запускается на UNIX-машине, а клиентом — программа ssh, которая распространяется как для Linux, так и для Windows. Клиент ssh служит для обеспечения защищенной регистрации на удаленном компьютере. В пакет ssh входит еще и третья программа — scp, служащая для безопасного копирования файлов с локального компьютера на удаленный. Однако основным назначением SSH является все-таки авторизация пользователя при регистрации его на удаленном компьютере.

Оба программных продукта (SSH1 и SSH2) являются коммерческими и стоят денег. Хотя в какой-то момент разработчики одумались и сделали бесплатной SSH2 для Linux и *BSD, было уже поздно. Открытым обществом разработчиков на основе обоих протоколов SSH, с добавлением дополнительных возможностей и исправлением некоторых ошибок, был разработан ее бесплатный вариант OpenSSH.

Первая версия OpenSSH вышла еще в декабре 2001 года. В дистрибутив Fedora Core 3 включена третья версия этого продукта. Компьютеры, на которых установлена OpenSSH, прекрасно взаимодействуют с компьютерами, на которых установлены коммерческие SSH1 или SSH2, то есть продукты полностью совместимы.

В дальнейшем, когда я буду говорить о SSH, я буду иметь в виду именно OpenSSH, которая поставляется со всеми современными дистрибутивами Linux. В целях безопасности рекомендуется отслеживать обновления и скачивать последнюю версию (в мае 2005 г. вышла четвертая) с сайта www.openssh.org.

Свободно распространяемая версия SSH состоит из следующих пакетов:

? openssh — основные файлы;

? openssh-clients — программа-клиент;

? openssh-server — ssh-сервер.

Чтобы служба SSH начала работать, необходимо запустить демон sshd на той машине, к которой предполагается подключение. Желательно добавить команду запуска в сценарий загрузки системы. Демон sshd работает по 22 порту (см. листинг 11.2). Можно запускать его из-под супердемона xinetd/inetd, но обычно sshd запускается самостоятельно — в режиме standalone.

Настройка SSH на сервере

Конфигурационный файл сервера sshd называется /etc/ssh/sshd_config. Справку по его синтаксису вы можете получить по команде man 5 sshd_config. В пакете openssh-server находится конфигурационный файл с типовыми настройками.

Чтобы оградить ваш компьютер от нежелательных вторжений извне, рекомендую вписать в этот файл директиву allowedadress, перечислив через пробел IP-адреса тех машин, с которых разрешен вход клиентов:

allowedadress 10.1.1.1 10.1.2.1 10.1.3.1

Листинг 11.2. Примерный файл конфигурации /etc/ssh/sshd_config

Port 22

# Сначала пытаемся работать по протоколу SSH 2, а потом,

# если та сторона не поддерживает вторую версию, — по SSH 1

Protocol 2,1

# Ключ для протокола SSH версии 1

HostKey /etc/openssh/ssh_host_key

# Ключи для протокола SSH2 - RSA и DSA

HostKey /etc/openssh/ssh_host_rsa_key

HostKey /etc/openssh/ssh_host_dsa_key

# Время жизни и размер ключа ssh версии 1

KeyRegenerationInterval 3600

# По умолчанию используется размер 768 бит,

# лучше установить 1024

ServerKeyBits 1024

# Время, через которое ключи сервера будут созданы заново.

# Периодическая смена ключей повышает безопасность системы.

KeyRegenerationInterval 1h

# Запрещаем регистрацию пользователя root по ssh.

# Это не исключает возможности удаленного

# администрирования: просто руту придется зайти под

# обычным пользователем, а затем выполнить команду su.

# Зато злоумышленнику понадобится украсть

# не один, а два пароля: и root, и обычного пользователя.

PermitRootLogin no

# Протоколирование (раскомментируйте, если нужно

# вести журнал с помощью системы syslog)

#SyslogFacility AUTH

#LogLevel INFO

# Аутентификация

# Включает парольную аутентификацию

# и запрещает пустые пароли

PasswordAuthentication yes

PermitEmptyPasswords no

#StrictModes yes

# используем RSA-аутентификацию

RSAAuthentication yes

PubkeyAuthentication yes

# Аутентификация rhosts - обычно не используется,

# поэтому запрещаем ее:

# пользовательские файлы ~/.rhosts и ~/.shosts не

# будут использоваться

RhostsAuthentication no

IgnoreRhosts yes

# НЕ использовать РАМ аутентификацию

PAMAuthenticationViaKbdInt no

# Дополнительное время клиенту на то, чтобы

# аутентифицировать себя.

# Если за это время клиент не смог ввести пароль,

# соединение будет прекращено

LoginGraceTime 2m

# Следующие параметры нужны для того, чтобы заставить

# систему X Window работать по ssh. Подробнее вы

# сможете прочитать в документации по ssh

#X11Forwarding yes

#X11DisplayOffset 10

#X11UseLocalhost yes

#PrintMotd yes

#PrintLastLog yes

#KeepAlive yes

#UseLogin no

#UsePrivilegeSeparation yes

#Compression yes

# Путь к баннеру

Banner /some/path

# подсистема sftp-сервера

Subsystem sftp /usr/libexec/openssh/sftp-server

Запуск демона sshd

Перед первым запуском sshd необходимо сгенерировать файлы, содержащие ключи кодирования. В сценариях, осуществляющих запуск сервера sshd, обычно предусмотрена проверка наличия этих файлов. В случае их отсутствия они генерируются автоматически.

Ключи, с которыми можно запускать sshd, перечислены в таблице 11.4.

Ключи сервера sshd Таблица 11.4

Ключ Назначение
-b биты Определяет число битов для ключа сервера (по умолчанию 7681. Эту опцию можно использовать, только если вы используете протокол SSH версии 1
-d Режим отладки (DEBUG). В этом режиме сервер не переходит в фоновый режим, обрабатывает только одно соединение и подробно протоколирует свои действия в системном журнале. Ключ отладки особенно полезен для изучения работы сервера
-D Так же, как и при использовании предыдущего ключа, сервер sshd не будет переходить в фоновый режим. Однако а отличие от -d ключ -D не переводит сервер в режим отладки
-e Отправлять отладочные сообщения не в системный журнал, а на стандартный поток ошибок
-f файл Задает альтернативный файл конфигурации вместо /etc/ssh/sshd_config
-g время Предоставляет клиенту, не прошедшему аутентификацию, дополнительное время на ввод пароля. Значение 0 интерпретируется как бесконечное ожидание
-h файл_ключа Задает альтернативным файл открытого ключи (ключ узла). По умолчанию используется файл /etc/ssh/ssh_host_key. Этот ключ может понадобиться, чтобы запускать sshd от имени непривилегированного пользователя. Также ключ -h часто применяется при запуске sshd из сценариев, задающих различные настройки в зависимости от времени суток (в рабочее и нерабочее время)
-i Используется, если нужно запускать sshd через суперсервер xinetd. Обычно демон sshd запускается отдельно при загрузке системы. Связано это с тем, что демону sshd требуется некоторое время для генерирования ключа сервера, прежде чем он сможет ответить на запросы клиентов. При запуске через суперсервер при каждом соединении суперсервер будет заново вызывать sshd, а тот — заново генерировать ключ. Однако на современных компьютерах задержка практически не заметна. Поэтому вполне можно запускать sshd и через суперсервер
-k время Задает время, спустя которое ключ сервера будет создан заново. По умолчанию время составляет 1 час. Эту опцию можно использовать только с протоколом SSH версии 1
-p порт Указывает альтернативный порт, который демон sshd будет прослушивать вместо порта 22
-q «Тихий ражим», не протоколировать сессию. Обычно протоколируется начало аутентификации. результат аутентификации и время окончания сессии
-t Тестовый ражим. Применяется для проверки корректности файла конфигурации
-4 Разрешается использовать IP-адреса только в формате IPv4
-6 Разрешается использовать IP-адреса только в формате IPv6

Использование SSH-клиента

Клиентская программа ssh находится в пакете openssh-clients вместе с типовым конфигурационным файлом /etc/ssh/ssh_config. Настройки можно задавать и из командной строки, запуская ssh с соответствующими ключами. Основные ключи и аргументы перечислены в таблице 11.5.

Ключи программы ssh Таблица 11.5

Ключ Назначение
Отключает перенаправление аутентификации агента соединения
Включает перенаправление аутентификации агента соединения
-с blowfish|3des|des Позволяет выбрать алгоритм шифрования при использовании первой версии протокола SSH. Можно указать blowfish, 3des или des
-c Задает использование сжатия всех данных во всех выходных потоках с использованием gzip.
-f Данная опция переводит ssh в фоновый режим после аутентификации пользователя. Рекомендуется использовать для запуска программы X11. Например: ssh -f host xterm
-i идент_файл Задает нестандартный идентификационный файл (для нестандартной RSA/DSA-аутентификации)
-l логин_имя Указывает, от имени какого пользователя будет осуществляться регистрации на удаленной машине
-p порт Определяет порт, к которому подключится программа ssh (по умолчанию используется порт 22)
-q Переводит программу ssh в «тихий режим>>. При этом будут отображаться только сообщения о фатальных ошибках. Все прочив предупреждающие сообщения а стандартный выходной поток выводиться не будут
-V Включает отображение всей отладочной информации
-x Отключить перенаправление X11
-X Включить перенаправление X11
-1 Использовать только первую версию протокола SSH (принудительно)
-2 Использовать только вторую версию протокола SSH (принудительно)
-4 Разрешается использовать IP-адреса только в формате IPv4
-6 Разрешается использовать IP-адреса только в формате IPv6

Формат команды:

ssh [ключи] [ключи_с_аргументами] [логин_имя@]хост.домен [команда]

Если последним аргументом указана команда, то после успешного входа пользователя она выполняется на удаленной машине вместо командной оболочки по умолчанию. Таким образом можно работать не в командной строке, а запустить на удаленной машине графический сеанс.

Аутентификация средствами SSH

Аутентификация в SSH может производиться одним из следующих четырех способов:

По принципу доверия. При этом способе проверяется, внесено ли имя компьютера, с которого производится доступ, в файл ~/.rhosts (или ~/.shosts). Если его имя (IP-адрес) внесено, то пользователю разрешается доступ без проверки пароля. Этот способ очень уязвим для разнообразных атак (подмены IP-адреса и т.п.), так что использовать его категорически не рекомендуется. Для того, чтобы разрешить этот способ, нужно установить значение no для директивы IgnoreRHosts и yes для RhostsAuthentication в файле /etc/openssh/sshd_conf, а чтобы запретить — значения для этих директив поменять на противоположные.

Усиленная аутентификация по принципу доверия. Этот способ в принципе повторяет предыдущий, за тем лишь исключением, что проверка имени компьютера (IP-адреса) производится в защищенном режиме. При этом используется шифрование открытым ключом. За включение и отключение данного механизма аутентификации отвечают директивы RhostsRSAAuthentication и IgnoreRHosts. Несмотря на некоторые усовершенствования, этот способ по-прежнему является небезопасным.

Аутентификация самого пользователя с использованием шифрования с открытым ключом. На момент регистрации у пользователя должен быть доступ к файлу своего секретного ключа, и он должен предоставить пароль для его дешифровки. Этот способ аутентификации является самым надежным, но и самым неудобным. Кроме того, он вынуждает пользователей постоянно иметь под рукой файл с ключом. За включение и отключение этого способа отвечает директива PubkeyAulhentication (или RSAAuthentication в зависимости от версии).

Аутентификация с помощью пароля. Это оптимальный способ: он удобен в использовании и в то же время достаточно безопасен. Именно он и используется в большинстве случаев. В отличие от telnet, пароль здесь передается в зашифрованном виде. Основной недостаток данного метода заключается в относительной слабости паролей (их длина зачастую составляет менее 8 символов). Это позволяет подбирать их с помощью специальных программ. За включение и отключение этого способа отвечает директива PasswordAnthentication.

Какой способ использовать — решать вам. Однако настоятельно не рекомендуется применение первых двух способов. Их использование допустимо лишь в исключительных случаях и в особых условиях.

Бесплатный SSH-клиент для Windows можно скачать у автора, Роберта Каллагана, сайт http://www.zip.com.au/~roca/ttssh.html.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Настройка

Из книги Документация NetAMS автора Автор неизвестен

Настройка В заголовке скрипта addon/snmp2netams.pl необходимо:@devices=(«catalyst»);Перечислить через запятую заключенные в кавычки имена (hostname) устройств, откуда вы хотите собирать статистику.$community=«public»;Коммьюнити для


Настройка

Из книги Реестр Windows автора Климов Александр

Настройка Скрытие пунктов подменю из меню НастройкаЕсли вы хотите скрыть пункты Панель управления, Принтеры, Удаленный доступ к сети и др. из меню Настройка, то откройте раздел HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplоrerи создайте параметр типа DWORD °NoSetFolders° со значением 1. Установка


17.1.4. Настройка DNS

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич


17.2.3. Настройка ррр

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

17.2.3. Настройка ррр Обычно для каждого порта в каталоге /etc/ррр создается файл options.ttySx, где х — номер порта (см. листинг 17.9).Листинг 17.9. Файл optionslock loginauthnetmask 255.255.255.0modemcrtsctsrefuse-chaprequire-papmtu 576mru 576proxyarpmyhost:ppp01ms-dns CCC.CCC.CCC.CCCОбщие настройки для всех портов можно вынести в файл /etc/ppp/options.


8.9.6 Настройка RIP

Из книги Настройка Windows 7 своими руками. Как сделать, чтобы работать было легко и удобно автора Гладкий Алексей Анатольевич

8.9.6 Настройка RIP Выше мы рассмотрели базовые механизмы протокола RIP. Однако реализации этого протокола имеют некоторые дополнительные возможности для решения следующих проблем:? При интервале между изменениями, равном 30 с, требуется много времени на распространение


Глава 5 Настройка и использование учетных записей пользователей

Из книги Сетевые средства Linux автора Смит Родерик В.

Глава 5 Настройка и использование учетных записей пользователей В операционной системе Windows 7 учетная запись пользователя – это набор сведений, определяющих, к каким папкам и файлам пользователь имеет доступ, и какие изменения могут вноситься пользователем в работу


Настройка DNS

Из книги Яндекс для всех автора Абрамзон М. Г.

Настройка DNS После активизации интерфейсов и установки маршрутов компьютер может обмениваться пакетами как с компьютерами локальной сети, так и с любыми другими компьютерами, с которыми он соединен системой шлюзов. Для указания адреса назначения пакета используются


4.3.2. Настройка

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

4.3.2. Настройка Итак, программа установлена, компьютер перезагружен. С помощью меню Пуск | Все программы | Яндекс | Персональный поиск запустите программу. После запуска она разместится в панели программ. По правой кнопке мыши откроется меню, в котором вам надо выбрать пункт


16.12.1. Russian Apache: установка, настройка, использование

Из книги Раскрутка: секреты эффективного продвижения сайтов автора Евдокимов Николай Семенович

16.12.1. Russian Apache: установка, настройка, использование Обыкновенный англоязычный Apache, входящий в состав большинства дистрибутивов, не поможет вам решить эту проблему. Для корректных операций по перекодированию нужно загрузить и установить сервер Russian Apache или модуль Apache-RUS.


Настройка CMS

Из книги Офисный компьютер для женщин автора Пастернак Евгения

Настройка CMS Грамотная настройка CMS в значительной степени облегчает труд оптимизатора. С помощью системы управления контентом можно при создании карточки товара автоматически вносить нужные ключевые слова в метатеги и тег itle, генерируя уникальные описания.


Настройка

Из книги Установка, настройка и восстановление Windows 7 на 100% автора Ватаманюк Александр Иванович

Настройка Если вы запускаете Microsoft Outlook на компьютере впервые, то увидите такое сообщение (рис. 4.1). Рис. 4.1. Вас приветствует Outlook Нажимайте кнопку Далее. Появится следующее окно (рис. 4.2).У вас уже есть свой почтовый адрес? Если нет, то нужно быстренько сходить на любой


Часть 2 Настройка и использование системных компонентов

Из книги Секреты приложений Google автора Балуев Денис

Часть 2 Настройка и использование системных компонентов Глава 5. Панель управления WindowsГлава 6. Настройка экранаГлава 7. ПерсонализацияГлава 8. Настройка Панели задач и меню ПускГлава 9. Использование и настройка гаджетовГлава 10. Управление электропитаниемГлава 11.


Глава 9 Использование и настройка гаджетов

Из книги Социальные сети. ВКонтакте, Facebook и другие… автора Леонтьев Виталий Петрович

Глава 9 Использование и настройка гаджетов Как уже говорилось ранее, в отличие от Windows Vista, в которой гаджеты могли отображаться только на специальной боковой панели, в Windows 7 их можно размещать в любом месте Рабочего стола (рис. 9.1). Кроме того, появилась возможность


Глава 14 Настройка и использование Защитника Windows

Из книги автора

Глава 14 Настройка и использование Защитника Windows 14.1. Обновление определений14.2. Сканирование компьютера14.3. Настройка параметровЗащитник Windows – стандартный системный механизм, появившийся еще в операционной системе Windows Vista, главная задача которого – защита операционной


Настройка

Из книги автора

Настройка Самое время обратиться к настройкам агрегатора (рис. 7.13). Рисунок 7.13. Первая, основная страница настроекНа первой закладке кроме установки интерфейса можно выбрать стартовую страницу для отображения. Вместо главной страницы при начальной загрузке можно


Настройка QIP

Из книги автора

Настройка QIP Да, программа работает… Но пока что лишь в собственной сети. А ей мы, как вы понимаете, ограничиваться не собираемся. Поэтому первое, что нам нужно сделать, – это внести в настройки QIP всю необходимую информацию для доступа к другим сетям. Сделать это можно в