Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 52
Текст из файла (страница 52)
Криптографическое программное обеспечение...echo -n "Starting SSHD: "if [ ! -f $PID_FILE ] ; thensshd $OPTIONSRETVAL=$?if [ "$RETVAL" = "0" ] ; thenmy_success "sshd startup" "sshd"touch /var/lock/subsys/sshdelsemy_failure "sshd startup" ""fifiecho;;stop)echo -n "Shutting down SSHD: "if [ -f $PID_FILE ] ; thenkillproc sshdRETVAL=$?[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sshdfiecho;;restart)do_restart_sanity_check$0 stop$0 startRETVAL=$?;;condrestart)if [ -f /var/lock/subsys/sshd ] ; thendo_restart_sanity_check$0 stop$0 startRETVAL=$?fi;;status)status sshdRETVAL=$?;;*)echo "Usage: sshd{start|stop|restart|status|condrestart}"exit 1;;esacexit $RETVALУстановите права доступа к файлу, назначьте его владельцем пользователя root и создайте соответствующие ссылки:[root@drwalbr /]# chmod 700 /etc/init.d/sshd[root@drwalbr /]# chown 0.0 /etc/init.d/sshd[root@drwalbr /]# chkconfig --add sshd[root@drwalbr /]# chkconfig --level 2345 sshd onТестирование OpenSSHДля проверки работоспособности OpenSSH попытайтесь установить удаленное соединение междудвумя системами.
Ниже приведены подробные инструкции по установке соединения по протоколу SSH между двумя системами drwalbr.und (IP-адрес 192.168.1.105) и karlnext.und (IP-адрес 192.168.1.35).Глава 13. OpenSSH – программное обеспечение для безопасного администрирования...203Для реализации безопасного соединения на каждой из систем пользователь должен создать пару ключей (закрытый и открытый). Открытые ключи переносятся на другую систему (не ту на которой он был создан) и хранятся в домашнем каталоге пользователя в файле /.ssh/authorized_keys.Шаг 1Для создания пары ключей на системе drwalbr.und от имени пользователя drwalbr выполните:[drwalbr@drwalbr drwalbr]$ ssh-keygen -t rsaGenerating public/private rsa key pair.Введите имя каталога, в котором будут сохранены ключи.
Рекомендуется имя каталога, предлагаемоепо умолчанию - /home/drwalbr/.ssh/id_rsa:Enter file in which to save the key (/home/drwalbr/.ssh/id_rsa):Введите пароль:Enter passphrase (empty for no passphrase): $ecretnoe_Slovo_dr_WalbrПодтвердите пароль:Enter same passphrase again: $ecretnoe_Slovo_dr_WalbrYour identification has been saved in /home/drwalbr/.ssh/id_rsa.Your public key has been saved in /home/drwalbr/.ssh/id_rsa.pub.The key fingerprint is:f0:7f:09:90:5d:71:d4:59:1e:e5:9b:2b:b2:77:a1:ce drwalbr@drwalbr.undНа системе karlnext.und от имени пользователя drwalbr:[drwalbr@drwalbr drwalbr]$ ssh-keygen -t rsaGenerating public/private rsa key pair.Введите имя каталога, в котором будут сохранены ключи.
Рекомендуется имя каталога, предлагаемоепо умолчанию - /home/drwalbr/.ssh/id_rsa:Enter file in which to save the key (/home/drwalbr/.ssh/id_rsa):Ведите пароль:Enter passphrase (empty for no passphrase): $ecretnoe_Slovo_Karl_NextПодтвердите пароль:Enter same passphrase again: $ecretnoe_Slovo_Karl_NextYour identification has been saved in /home/drwalbr/.ssh/id_rsa.Your public key has been saved in /home/drwalbr/.ssh/id_rsa.pub.The key fingerprint is:f0:7f:09:90:5d:71:d4:59:1e:e5:9b:2b:b2:77:a1:ce drwalbr@karlnext.undЗакрытый ключ будет находиться в файле id_rsa, а открытый в файле id_rsa.pub.ЗАМЕЧАНИЕ В приведенном выше примере описана генерация ключей для протокола SSH версии 2.Если вы по каким либо причинам собираетесь использовать ключи для протокола SSH версии 1, следует использовать команду:[drwalbr@drwalbr drwalbr]$ ssh-keygen -t rsa1В этом случае закрытый ключ будет находиться в файле identity, а открытый в - identity.pub.Шаг 2Скопируйте открытый ключ id_rsa.pub, находящийся на системе drwalbr.und в каталоге/home/drwalbr/.ssh/,/home/drwalbr/.ssh/authorized_keysвфайлсистемыkarlnext.und.Шаг 3Скопируйте открытый ключ id_rsa.pub, находящийся на системе karlnext.und в каталоге/home/drwalbr/.ssh/, в файл /home/drwalbr/.ssh/authorized_keys системы drwalbr.und.Копирование ключей может быть осуществлено с помощью электронной почты или в случае, если системынаходятся поблизости, с помощью съемных носителей.Шаг 4204Часть 3.
Криптографическое программное обеспечение...На обеих системах зарегистрируйтесь в качестве суперпользователя root и запустите sshd:[root@drwalbr /]# /etc/init.d/sshd startStarting SSHD:[ОК][root@karlnext /]# /etc/init.d/sshd startStarting SSHD:[ОК]Шаг 5Регистрация на удаленной системе осуществляется с помощью команды:[drwalbr@drwalbr drwalbr]$ ssh name_of_user@name_of_remoute_system.domenгде:name_of_user – имя пользователя;name_of_remoute_system.domen – имя удаленной системы, на которой осуществляется регист-рация.Попробуйте зарегистрироваться в качестве пользователя drwalbr на удаленной системеkarlnext.und с системы drwalbr.und. Для этого от имени пользователя drwalbr на системеdrwalbr.und выполните:[drwalbr@drwalbr drwalbr]$ ssh drwalbr@karlnext.undВведите пароль, используемый для защиты закрытого ключа на системе drwalbr.und:Enter passphrase for key '/home/drwalbr/.ssh/id_dsa': $ecretnoe_Slovo_dr_WalbrLast login: Tue Mar 25 11:52:56 2003 from drwalbr.und[drwalbr@karlnext drwalbr]$ЗАМЕЧАНИЕ Если вы работаете в локальной сети, в которой нет DNS-сервера, для нормальной работы SSH в файлы /etc/hosts на системе drwalbr.und следует добавить строку:192.168.1.35 karlnext.und karlnextа на системе karlnext.und - строку:192.168.1.105 drwalbr.und drwalbrНе рекомендуется использовать файлы /etc/hosts для преобразования имен систем в IP-адреса всетях, содержащих больше 5…10 систем.
В этом случае необходимо установить, настроить и запустить DNSсервер.Использование OpenSSHЧасто OpenSSH используется для копирования файлов с одной системы на другую. Для этого используется утилита scp (Secure Copy), синтаксис которой аналогичен синтаксису широко используемой для копирования файлов на локальной системе утилиты cp.Для копирования файлов с локальной системы на удаленную наберите:[drwalbr@drwalbr /]$ scp -p local_dir/local_filename_of_user@name_of_remoute_system.domen:/dir/fileгде:-p – опция, предписывающая сохранять атрибуты копируемого файла;local_dir – путь к каталогу, откуда копируется файл на локальной системе;local_file –.имя копируемого файла на локальной системе;name_of_user – имя пользователя удаленной системы;name_of_remoute_system.domen – имя удаленной системы;dir – путь к каталогу на удаленной системе, в который копируется файл;file – имя файла на удаленной системе, в который осуществляется копирование.Например, если вы хотите скопировать файлы test и test1, находящиеся на системеdrwalbr.und в домашнем каталоге пользователя drwalbr, в домашний каталог пользователя drwalbrна системе karnext.und, то на системе drwalbr.und от имени пользователя drwalbr выполните команду:[drwalbr@drwalbr drwalbr]$ scp -p test*drwalbr@karlnext.und:/home/drwalbr/Введите пароль, используемый для защиты закрытого ключа на системе drwalbr.und:Enter passphrase for key '/home/drwalbr/.ssh/id_dsa':20030325100% |*********************|229 KB00:0020030326100% |*********************|246 KB00:00Глава 13.
OpenSSH – программное обеспечение для безопасного администрирования...205Для копирования файлов с удаленной системы на локальную используйте:[drwalbr@drwalbr /]$ scp -pname_of_user@name_of_remoute_system.domen:/dir/file local_dir/local_fileДля копирования файлов с одной удаленной системы на другую удаленную систему выполните:drwalbr@drwalbr /]$ scp -pname_of_user@name_of_remoute_system.domen:/dir/filename_of_user_1@name_of_remoute_system_1.domen_1:/dir_1/file_1где:name_of_user_1, name_of_remoute_system_1, domen_1, dir_1, file_1 – соответственно,значения параметров name_of_user, name_of_remoute_system, domen, dir, file для удаленнойсистемы, на которую копируется файл.В некоторых случаях, например, если пользователь забыл пароль или он стал доступен третьим лицам, может потребоваться изменение пароля, используемого для защиты секретного ключа. Для измененияпароля пользователя drwalbr на системе drwalbr выполните:[drwalbr@drwalbr drwalbr]$ ssh-keygen –pВведите имя ключа, для которого должен быть изменен пароль, используемый для защиты:Enter file in which the key is (/home/drwalbr/.ssh/id_rsa):<Enter>Введите старый пароль:Enter old passphrase: $ecretnoe_Slovo_dr_WalbrВведите новый пароль:Enter new passphrase again: New_$ecretnoe_SlovoПодтвердите новый пароль:Enter same passphrase again: New_$ecretnoe_SlovoYour identification has been saved with the new passphraseOpenSSH в окружении chroot-jailДля того, что бы программа OpenSSH выполнялась в окружении chroot-jail – т.
е. пользователь, зарегистрировавшийся с помощью клиента ssh, не имел бы доступа на чтение-запись и исполнение файлов запределами своего пользовательского каталога – необходимо создать среду chroot-jail и установить версиюOpenSSH, поддерживающую работу в этой среде. Этот вид установки полезен не только для компаний, предоставляющих услуги хостинга, но и для администраторов, желающих повысить безопасность своей системы.
В этом случае, если злоумышленник получит доступ только к аутентификационной информации пользователя он вря ли сможет получить доступ к системе в целом.Создание окружения chroot-jailВ конечном счете, вы должны создать подобие корневой файловой системы, содержащей все компоненты, необходимые для работы приложений (исполняемые файлы, файлы настроек, библиотеки и т. п.).Для повышения безопасности системы окружение chroot-jail лучше всего создавать на отдельном разделедиска, смонтированном в отдельный каталог, например /chroot.
Если вы следовали рекомендациям главы2, то такой раздел уже существует.Шаг 1Создайте нового пользователя:[root@drwalbr /]# useradd -g users -d /chroot/urbanoff urbanoff[root@drwalbr /]# passwd urbanoffChanging password for user urbanoffNew UNIX password: Urbanoff's_$ecretnoe_$lovoRetype new UNIX password: Urbanoff's_$ecretnoe_$lovopasswd: all authentication tokens updated successfullyШаг 2Создайте необходимые каталоги в домашнем каталоге пользователя urbanoff:[root@drwalbr /]# mkdir /chroot/urbanoff/bin206Часть 3. Криптографическое программное обеспечение...[root@drwalbr[root@drwalbr[root@drwalbr[root@drwalbr[root@drwalbr[root@drwalbr[root@drwalbr/]#/]#/]#/]#/]#/]#/]#mkdirmkdirmkdirmkdirmkdirmkdirmkdir/chroot/urbanoff/dev/chroot/urbanoff/etc/chroot/urbanoff/lib/chroot/urbanoff/usr/chroot/urbanoff/usr/bin/chroot/urbanoff/usr/lib/chroot/urbanoff/lib/i686Шаг 3Установите права доступа к каталогам:[root@drwalbr /]# chmod -R 0111 /chroot/urbanoff/*Шаг 4Скопируйте минимальный набор программ, необходимый для работы пользователя, например, cp,bash, ls, mkdir, grep, rm, vi, dircolors в соответствующие каталоги:[root@drwalbr urbanoff]# cp /bin/cp /chroot/urbanoff/bin[root@drwalbr urbanoff]# cp /bin/bash /chroot/urbanoff/bin[root@drwalbr urbanoff]# cp /bin/ls /chroot/urbanoff/bin[root@drwalbr urbanoff]# cp /bin/mkdir /chroot/urbanoff/bin[root@drwalbr urbanoff]# cp /bin/grep /chroot/urbanoff/bin[root@drwalbr urbanoff]# cp /bin/rm /chroot/urbanoff/bin[root@drwalbr urbanoff]# cp /bin/vi /chroot/urbanoff/bin[root@drwalbr urbanoff]# cp /usr/bin/dircolors /chroot/urbanoff/usr/binШаг 5Установите права доступа к каталогам:[root@drwalbr urbanoff]# chmod 0111 /chroot/urbanoff/bin/*[root@drwalbr urbanoff]# chmod 0111 /chroot/urbanoff/usr/bin/*Шаг 6В файле /etc/passwd строку:urbanoff:x:503:100::/chroot/urbanoff:/bin/bashзамените на:urbanoff:x:503:100::/chroot/urbanoff/./:/bin/bashШаг 7Исполняемые файлы в домашнем каталоге пользователя urbanoff используют динамические библиотеки, находящиеся в каталогах /lib и /usr/lib, недоступных пользователю, работающему в окружении chroot-jail.