Рейтинговые книги
Читем онлайн Linux: Полное руководство - Денис Колисниченко

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 72 73 74 75 76 77 78 79 80 ... 158

Программные пакеты, использующие эти протоколы, так и называются: 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.

1 ... 72 73 74 75 76 77 78 79 80 ... 158
На этой странице вы можете бесплатно читать книгу Linux: Полное руководство - Денис Колисниченко бесплатно.
Похожие на Linux: Полное руководство - Денис Колисниченко книги

Оставить комментарий