Свободно распространяемая версия 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.
Читать дальше
Конец ознакомительного отрывка
Купить книгу