Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 51
Текст из файла (страница 51)
Вданном примере используется 22 порт, установленный по умолчанию.Опция Protocol 2,1 определяет порядок версий протоколов, используемых при установке соединения. В рассматриваемом примере при установлении связи сначала будет предпринята попытка установкисоединения по протоколу версии 2 и если она окажется неудачной, будет предпринята попытка установления соединения по протоколу версии 1.Опция ListenAddress 192.168.2.99 определяет IP-адрес сетевого интерфейса, на которомsshd ожидает запросы на подключение.198Часть 3. Криптографическое программное обеспечение...Опции HostKey /etc/ssh/ssh_host_key, HostKey /etc/ssh/ssh_host_dsa_key иHostKey /etc/ssh/ssh_host_rsa__key определяют местоположение файлов с ключами.Опция ServerKeyBits 768 определяет количество битов, отведенных под ключ сервера, и используется при генерировании ключей.Опция LoginGraceTime 60 определяет время в секундах, через которое сервер разрывает соединение в случае неудачной попытки регистрации удаленного пользователя.
Эта настройка затрудняет реализацию DoS-атак (Denial of Service), основанных на установлении соединений пользователями, не имеющихдоступа к аутентификационной информации.Опция KeyRegenerationinterval 3600 определяет продолжительность интервала времени всекундах, по окончании которого сервер автоматически генерирует новые ключи. Это настройка повышаетбезопасность системы за счет затруднения расшифровки третьими лицами трафика, генерируемого соединениями легитимных пользователей.Опция PermitRootLogin no запрещает регистрацию пользователя root, используя ssh.
В случае необходимости выполнения команд на удаленной системе от имени пользователя root безопаснее зарегистрироваться в системе в качестве обычного пользователя и затем повысить свои права доступа c помощью команд su или sudo.Опции IgnoreRhosts yes, IgnoreUserKnownHosts yes, StrictModes yes, RhostsAuthentication no и RhostsRSAAuthentication no повышают безопасность системы за счетзапрета использования файлов rhosts или shosts для аутентификации пользователей.Опция X11Forwarding no запрещает поддержку X-сервера.Опция PrintMotd yes разрешает вывод приветственного сообщения из файла /etc/motd послерегистрации пользователя.Опция SyslogFacility AUTHPRIV определяет вывод сообщений sshd.Опция LogLevel INFO опрделяет степень подробности вывода информации sshd.Опция RSAAuthentication yes разрешает использовать RSA аутентификацию. Она используется только протоколом SSH1.
Протокол SSH2 использует DSA аутентификацию.Опция PasswordAuthentication no повышает безопасность системы за счет запрещения использования паролей для аутентификации пользователей, предоставляя возможность для регистрации только тем удаленным пользователям, чьи открытые ключи, созданные с помощью утилиты ssh-keygen, размещены на сервере. Эти ключи так же защищены паролем. Такой предлагаемый вариант значения опции(no) запрещает регистрацию пользователей, которые узнали или подобрали пароль, но не имеют соответствующего ключа на своей системе.Опция PermitEmptyPasswords no запрещает регистрацию на системе удаленных пользователей,для которых не определены значения паролей. В рассматриваемом примере значение этой опции не существенно, так как выше запрещено использование паролей для аутентификации пользователей.
Тем не менее, изсоображений безопасности, рекомендуется запретить использование пустых паролей.Опция AllowUsers drwalbr karlnext определяет список удаленных пользователей, которымразрешена регистрация в системе.Опция UsePrivilegeSeparation yes используется для повышения устойчивости системы к различного рода сбоям.Шаг 2Для конфигурирования клиента создайте и отредактируйте в соответствии с вашими потребностямифайл /etc/ssh/ssh_config:Host*ForwardAgentnoForwardX11noRhostsAuthenticationnoRhostsRSAAuthenticationnoRSAAuthenticationyesPasswordAuthenticationnoFallBackToRshnoUseRshnoBatchModenoCheckHostIPyesStrictHostKeyCheckingyesIdentityFile~/.ssh/identityIdentityFile~/.ssh/id_dsaIdentityFile~/.ssh/id_rsaPort22Protocol2,1Глава 13. OpenSSH – программное обеспечение для безопасного администрирования...CipherEscapeChar199blowfish~Опция Host * предназначена для наложения ограничений на имена систем, с которыми разрешеносоединение.
В рассматриваемом примере образец "*" не устанавливает никаких ограничений. Опция Host вфайле /etc/ssh/ssh_config может использоваться несколько раз, при этом задаваемый ей образецимен систем, с которыми разрешено соединение, действует до следующего упоминания опции Host иликонца файла. Это позволяет реализовывать разные настройки клиента для соединения с различными системами.Опции ForwardAgent no и ForwardX11 no запрещают автоматическое распространение сеансовна вашу систему.RhostsAuthentication no и RhostsRSAAuthentication no запрещают устаревшие иставшими небезопасными механизмы аутентификации пользователей.Опция RSAAuthentication yes разрешает использовать RSA аутентификацию.
Этот тип аутентификации используется только протоколом SSH1. Протокол SSH2 использует DSA аутентификацию.Опция PasswordAuthentication no повышает безопасность системы за счет запрещения использования паролей для аутентификации пользователей. Более подробно назначение этой опции рассматривалось выше при конфигурировании сервера.Опция FallBackToRsh no запрещает в случае неудачной попытки соединения с помощью sshклиента автоматической попытки установки соединения с помощью rsh-клиента.Опция UseRsh no запрещает использование небезопасных служб.Опция BatchMode no требует безусловной проверки имени пользователя и пароля при установкесоединения.
Значение опции должно быть изменено, если вы разрабатываете скрипты, предназначенные дляавтоматической установки соединения, например, при резервном копировании данных.Опция checkHostIP yes требует обязательной проверки соответствия IP-адреса и имени системыпри установке соединения.Опция StrictHostKeyChecking yes запрещает автоматическое добавление ключей удаленныхсистем в файл known_hosts. В начале, т. е. сразу после установки системы, можно изменить значение опции на "no", установить соединения со всеми системами, с которыми имеется необходимость установки sshсоединений, при этом ключи автоматически добавятся в файл known_hosts. После чего необходимо установить значение опции "yes".Опции IdentityFile ~/.ssh/identity, IdentityFile ~/.ssh/id_dsa и IdentityFile ~/.ssh/id_rsa позволяют определить местоположение файлов, используемых при аутентификации.Опция Protocol 2,1 определяет порядок версий протоколов, используемых при установке соединения.
В рассматриваемом примере сначала будет предпринята попытка установки соединения по протоколу версии 2 и если она окажется неудачной, будет предпринята попытка установления соединения по протоколу версии 1.Опция Cipher blowfish определяет алгоритм шифрования информации. Шифр blowfish предусматривает использование 64-битных блоков и ключей длиной до 448 битов.Опция EscapeChar ~ определяет возможность использования символа <ESC> для приостановкисеанса.Шаг 3Для повышения безопасности компиляция OpenSSH осуществлена с поддержкой аутентификации сиспользованием модулей PAM. Для настройки аутентификации создайте файл /etc/pam.d/sshd, содержащий следующие строки:#%PAM-1.0authrequired/lib/security/pam_stack.so service=system-authauthrequired/lib/security/pam_nologin.soaccountrequired/lib/security/pam_stack.so service=system-authaccountrequired/lib/security/pam_access.soaccountrequired/lib/security/pam_time.sopasswordrequired/lib/security/pam_stack.so service=system-authsessionrequired/lib/security/pam_stack.so service=system-authsessionrequired/lib/security/pam_limits.soУстановите права доступа к файлу, назначьте его владельцем пользователя root:[root@drwalbr /]# chmod 640 /etc/pam.d/sshd[root@drwalbr /]# chown 0.0 /etc/pam.d/sshd200Часть 3.
Криптографическое программное обеспечение...Шаг 4Создайте файл /etc/init.d/sshd, содержащий следующие строки:#!/bin/bash# This shell script takes care of starting and stopping OpenSSH.## chkconfig: 2345 55 25# description: OpenSSH is a program thas allows to establish a secure remote \#connection to a server.## processname: sshd# config: /etc/ssh/ssh_host_key# config: /etc/ssh/ssh_host_key.pub# config: /etc/ssh/ssh_random_seed# config: /etc/ssh/sshd_config# pidfile: /var/run/sshd.pid# Source function library.. /etc/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Source OpenSSH configureation.if [ -f /etc/sysconfig/sshd ] ; then.
/etc/sysconfig/sshdfiRETVAL=0# Some functions to make the below more readable.KEYGEN=/usr/bin/ssh-keygenRSA1_KEY=/etc/ssh/ssh_host_keyRSA_KEY=/etc/ssh/ssh_host_rsa_keyDSA_KEY=/etc/ssh/ssh_host_dsa_keyPID_FILE=/var/run/sshd.pidmy_success() {local msgif [ $# -gt 1 ]; thenmsg="$2"elsemsg="done"ficase "`type -type success`" infunction)success "$1";;*)echo -n "${msg}";;esac}my_failure() {local msgif [ $# -gt 1 ]; thenmsg="$2"elsemsg="FAILED"ficase "`type -type failure`" infunction)failure "$1";;Глава 13.
OpenSSH – программное обеспечение для безопасного администрирования...201*)echo -n "${msg}";;esac}do_rsa1_keygen() {if ! test -f $RSA1_KEY ; thenecho -n "Generating SSH1 RSA host key: "if $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N ''>&/dev/null; thenmy_success "RSA1 key generation"echoelsemy_failure "RSA1 key generation"echoexit 1fifi}do_rsa_keygen() {if ! test -f $RSA_KEY ; thenecho -n "Generating SSH2 RSA host key: "if $KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' >&/dev/null;thenmy_success "RSA key generation"echoelsemy_failure "RSA key generation"echoexit 1fifi}do_dsa_keygen() {if ! test -f $DSA_KEY ; thenecho -n "Generating SSH2 DSA host key: "if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' >&/dev/null;thenmy_success "DSA key generation"echoelsemy_failure "DSA key generation"echoexit 1fifi}do_restart_sanity_check() {sshd -tRETVAL=$?if [ ! "$RETVAL" = 0 ]; thenmy_failure "Configuration file or keys"echoexit $RETVALfi}case "$1" instart)# Create keys if necessarydo_rsa1_keygen;do_rsa_keygen;do_dsa_keygen;202Часть 3.