Шрифт:
Интервал:
Закладка:
Программные пакеты, использующие эти протоколы, так и называются: 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.
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение