Чтение онлайн

ЖАНРЫ

Linux-сервер своими руками

Колисниченко Денис Николаевич

Шрифт:

Оболочка ssh незаменима в тех случаях, когда удаленно нужно администрировать сервер или когда сервер не имеет собственного монитора. При использовании telnet все данные, которые передаются через telnet-соединение, доступны в открытом виде. А значит, имена пользователей и пароли будут доступны всем, кто прослушивает трафик с помощью анализатора. Шифрование ssh выполняет, используя несколько различных алгоритмов, включая DES и 3DES.

Программа состоит из демона sshd, который запускается на Linux/UNIX-машине, и клиента ssh, который распространяется как для Linux, так и для Windows. Чтобы установить ssh, возьмите исходные тексты и поместите их по традиции в каталог /usr/src/. Затем распакуйте архив и установите программу, выполнив следующую последовательность действий:

cd /usr/src/

tar xzf ssh-2.4.0.tar.gz

cd ssh-2.4.0

./configure

make

make install

Чтобы ssh начал работать,

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

Листинг 8.6. Фрагмент файла /etc/services

ssh 22/tcp # SSH Remote Login Protocol

ssh 22/udp # SSH Remote Login Protocol

Обычно с настройкой sshd не возникает никаких неприятных моментов. Подробно настройка демона будет рассмотрена чуть ниже в этой главе. Теперь попробуйте зарегистрироваться на этой машине через ssh. Для этого нужно установить этот же пакет на другую машину под управлением Linux/UNIX (или установить Windows-клиент ssh) и ввести команду:

$ ssh hostname.domain

ssh запросит вас ввести пароль пользователя. В качестве имени пользователя для установки соединения будет использовано имя текущего пользователя, то есть имя, под которым вы сейчас зарегистрированы в системе. В случае, если аутентификация пройдет успешно, начнется сеанс связи. Прекратить сеанс можно комбинацией клавиш Ctrl+D.

Если вам нужно указать другое имя пользователя, используйте параметр –l программы ssh:

ssh –l user hostname.ru

Так можно указать программе ssh, от имени какого пользователя нужно регистрироваться на удаленной машине (см. рис. 8.3).

При использовании Windows-клиента имя компьютера, имя пользователя и пароль нужно ввести в диалоговом окне программы. Если соединение не устанавливается, попробуйте выбрать метод кодирования blowfish. Если и это не поможет, выберите 3DES.

Работа в ssh аналогична работе в telnet. Вы можете администрировать удаленную машину также легко, как и локальную. Опции программы ssh указаны в табл. 8.5.

Рис.8.З. Регистрация на удаленной машине

Опции программы ssh Таблица 8.5 

Опция Описание
– а Отключает перенаправление аутентификации агента соединения
– А Включает перенаправление аутентификации агента соединения
– с blowfish|3des Позволяет выбрать алгоритм шифрования при использовании первой версии протокола SSH. Можно указать или blowfish, или 3des
– с шифр Задает список шифров, разделенных запятыми в порядке предпочтения. Только для второй версии протокола SSH. Допускаются значения blowfish, twofish, arcfour, cast, des и 3des
– f Данная опция переводит ssh в фоновый режим после аутентификации пользователя. Рекомендуется использовать для запуска программы Х11 . Например, ssh –f hostxterm
– i идент_файл Задает нестандартный идентификационный файл (для нестандартной RSA/DSA-аутентификации)
– l имя_пользоват Указывает от имени какого пользователя будет осуществляться регистрация на удаленной машине
– р порт Определяет порт, к которому подключится программа ssh (по умолчанию используется порт 22)
– q «Тихий режим». Будут отображаться только сообщения о фатальных ошибках. Все прочие предупреждающие сообщения в стандартный выходной поток выводиться не будут
– x Отключить перенаправление Х11
– X Включить перенаправление Х11
– 1 Использовать только первую версию протокола SSH
– 2 Использовать только вторую версию протокола SSH
– 4 Разрешается использовать IP-адреса только в формате IPv4
– 6 Разрешается использовать IP-адреса только в формате IPv6

Оболочка ssh использует два файла конфигурации ssh_conf и sshd_conf. Думаю, что нет смысла говорить о том, что они находятся в директории /etc/ssh. Рекомендую в файле sshd_conf прописать следующую строчку:

allowedadress 10.1.1.1 10.1.2.1 10.1.3.1

Это означает, что доступ по ssh может быть выполнен только с машин

с адресами 10.1.1.1, 10.1.2.1, 10.1.3.1. Это оградит ваш компьютер от нежелательных вторжений извне.

Программа stelnet во всем полностью аналогична программе telnet, но она выполняет шифрование трафика, который передается во время telnet-соединения.

Демон sshd — это программа-демон для оболочки ssh. Обычно sshd запускается на машине, к которой подключаются клиенты ssh. Последние версии демона sshd поддерживают две версии протокола ssh — ssh версия 1, и ssh версия 2.

Протокол SSH версия 1

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

Каждый раз при установке соединения с клиентом демон отправляет ему в ответ свой открытый ключ и ключ сервера. Клиент сравнивает полученный открытый ключ со своей базой данных, чтобы проверить, не изменился ли он. Затем клиент случайным образом генерирует 256-разрядное число и кодирует его, используя одновременно два ключа — открытый ключ и ключ сервера. Обе стороны используют этот случайный номер как ключ сессии, который используется для кодирования всех передаваемых во время сессии данных.

Затем клиент пытается аутентифицировать себя, используя .rhosts-аутентифи-кацию, аутентификацию RSA или же аутентификацию с использованием пароля.

Обычно .rhosts-аутентификация небезопасна и поэтому она отключена.

Протокол SSH версия 2

Версия 2 работает аналогично: каждый узел имеет определенный DSA-ключ, который используется для идентификации узла. Однако, при запуске демона ключ сервера не генерируется. Безопасность соединения обеспечивается благодаря соглашению Диффи-Хелмана (Diffie-Hellman key agreement).

Сессия может кодироваться следующими методами: 128-разрядный AES, Blowfish, 3DES, CAST128, Arcfour, 192-разрядный AES или 256-разрядный AES.

Опции демона sshd указаны в табл. 8.6.

Опции демона sshd Таблица 8.6

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