Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 50
Текст из файла (страница 50)
Криптографическое программное обеспечение...Locality Name (eg, sity) [Ybileynyi]: <Enter>Organization Name (eg, company) [SIP RIA]: <Enter>Organizational Unit Name (eg, section) []: Sertification Department <Enter>Common Name (eg, YOUR name) [www.dymatel.und]: <Enter>Email Address [root@dymatel.und]: <Enter>ЗАМЕЧАНИЕ В этом примере были подтверждены все параметры, определенные в файле/usr/shared/ssl/openssl.cnf и использованные при создании www.dymatel.und.csr (шаг 4), кроме названия подразделения (Organizational Unit Name (eg, section)).
Для реализации возможности самостоятельной подписи сертификата исходные данные, вводимые для www.dymatel.und.csr и ca.crtдолжны различаться, в противном случае при подписании сертификата произойдет ошибка.Шаг 8Поместите все созданные файлы в соответствующие каталоги:[root@dymatel ssl]# mv www.dymatel.und.key private/[root@dymatel ssl]# mv ca.key private/[root@dymatel ssl]# mv ca.crt certs/Шаг 9Подпишитесозданныйранеезапроснаподтверждениеподлинностисертификатаwww.dymatel.und.csr:[root@dymatel ssl]# /usr/share/ssl/misc/sign www.dymatel.und.csrCA signing: www.dymatel.und.csr -> www.dymatel.und.crt:Using configuration from ca.configEnter PEM pass phrase:Check that the request matches the signatureSignature okThe Subjects Distinguished Name is as followscountryName:PRINTABLE:'RU'stateOrProvinceName:PRINTABLE:'Moscow region'localityName:PRINTABLE:'Ybileyniy'organizationName:PRINTABLE:'SIP RIA'organizationalUnitName:PRINTABLE:'Sertification Department'commonName:PRINTABLE:'www.dymatel.und'emailAddress:IA5STRING:'root@dymatel.und'Certificate is to be certified until Mar 19 12:24:10 2004 GMT (365 days)Подтвердите необходимость подписи сертификата:Sign the certificate? [y/n]:yЕще раз подтвердите необходимость подписи сертификата:1 out of 1 certificate requests certified, commit? [y/n]:yWrite out database with 1 new entriesData Base UpdatedCA verifying: www.dymatel.und.crt <-> CA certwww.dymatel.und.crt: OKШаг 10Поместите файл www.dymatel.und.crt в /usr/share/ssl/cert:[root@dymatel ssl]# mv www.dymatel.und.crt certs/и удалите www.dymatel.und.csr:[root@dymatel ssl]# rm -f www.dymatel.und.csrЗАМЕЧАНИЕ Если во время подписывания сертификата выдается сообщение об ошибках, вероятно,это является следствием того, что при вводе полного доменного имени системы вы ввели mydomain.ru вместо www.mydomain.ru или информация, введенная при создании ca.crt (шаг 7) и www.mydomain.ru.csr(шаг 4) идентична.Шаг 11Для повышения безопасности измените права доступа к вновь созданным файлам:[root@dymatel /]# chmod 750 /usr/share/ssl/private/Глава 12.
OpenSSL – программное обеспечение для безопасной передачи данных[root@dymatel[root@dymatel[root@dymatel[root@dymatel/]#/]#/]#/]#chmodchmodchmodchmod400400400400193/usr/share/ssl/certs/ca.crt/usr/share/ssl/certs/www.dymatel.und.crt/usr/share/ssl/private/ca.key/usr/share/ssl/private/www.dymatel.und.keyШаг 12Для того, чтобы созданный и подписанный вами сертификат мог использоваться Web-серверомApache, в конфигурационный файл httpd.conf добавьте строки:SSLCertificateFile /usr/share/ssl/certs/www.dymatel.und.crtSSLCertificateFile /usr/share/ssl/private/www.dymatel.und.keyВ этом случае при обращении к вашему серверу по протоколу HTTPS сведения о вашем сертификате(при использовании самостоятельной подписи и браузера MS Internet Explorer 5.x) будут иметь вид, представленный на рис.
12.1.Рис. 12.1 Сведения о сертификате Web-сервера http://www.dymatel.und.194Часть 3. Криптографическое программное обеспечение...Глава 13OpenSSH – программное обеспечение для безопасного администрирования удаленных системВ этой главе:1. Ограничения и допущения2. Пакеты3. Инсталляция с помощью rpm-пакетов4. Компиляция, оптимизация и инсталляция OpenSSH5. Конфигурирование OpenSSH6. Тестирование OpenSSH7. Использование OpenSSH8. OpenSSH в окружении chroot-jail9. Создание окружения chroot-jail10. Компиляция, оптимизация, инсталляция, конфигурирование и тестирование OpenSSH в среде chroot-jailГлава 13. OpenSSH – программное обеспечение для безопасного администрирования...195Многие сетевые службы, предназначенные для администрирования удаленных систем (например,telnet, rsh, rlogin и др.) не обеспечивают должный уровень безопасности, т.
к. передают аутентификационную информацию по сети в виде незашифрованного текста. Эта информация может быть перехваченатретьими лицами и использована для получения несанкционированного доступа к вашим системам. В настоящее время эти программы почти полностью вытеснены программой OpenSSH (Open Secure Shell), которая шифрует весь трафик, включая аутентификационную информацию, и позволяет:• регистрироваться на удаленных системах;• выполнять команды на удаленных системах;• копировать файлы c одной системы на другую.Ограничения и допущенияИсходные коды находятся в каталоге /var/tmp.Все операции выполняются пользователем с учетной записью root.Используется дистрибутив ASPLinux 7.3 (Vostok).Перекомпиляция ядра не требуется.Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы этого не проверяли.ЗАМЕЧАНИЕ В некоторых странах ввоз, распространение и использование программного обеспечениядля криптографии запрещено.ПакетыПоследующие рекомендации основаны на информации, полученной с домашней страницы проектаOpenSSH по состоянию на 5.04.2003.
Регулярно посещайте домашнюю страницу проектаhttp://www.openssh.org/и отслеживайте обновления.Исходные коды OpenSSH содержатся в архиве openssh-version.tar.gz (последняя доступнаяна момент написания главы стабильная версия openssh-3.6.1p1.tar.gz).ЗАМЕЧАНИЕ Обратите внимание, что вам необходима именно «переносимая» (предназначенная дляLinux и др. операционных систем) версия, название которой содержит индекс "p", например "3.6.1p1".Для работы OpenSSH требуется наличие некоторых библиотек OpenSSL, поэтому перед установкойOpenSSH требуется установить OpenSSL в соответствии с рекомендациями главы 12 из исходных кодов илиrpm-пакетов. Если вам необходим запуск OpenSSH в окружении chroot-jail, т. е. некоторым пользователямнеобходимо предоставить доступ к выполнению команд только в их домашних каталогах, без предоставления доступа к системе в целом, должны использоваться исходные коды OpenSSH, к которым применен соответствующий патч.
Пропатченные исходные коды OpenSSH содержатся в архиве openssh-versionchroot.tar.gz (последняя доступная на момент написания главы стабильная версия openssh3.6.1p1.tar.gz) и могут быть получены с http://chrootssh.sourceforge.net.Инсталляция с помощью rpm-пакетаЕсли вы предпочитаете использование системы со стандартным ядром и программным обеспечением,установленным из rpm-пакетов, для установки или обновления пакета необходимо выполнить простые операции.
Следует заметить, что в этом случае, к сожалению, вам не удастся в дальнейшем настроить работупрограммы в среде chroot-jail.ЗАМЕЧАНИЕ Авторы настоятельно рекомендуют устанавливать программное обеспечение из исходных кодов.Шаг 1Проверьте, установлен ли пакет openssh с помощью следующей команды:[root@drwalbr /]# rpm –iq opensshШаг 2В случае его отсутствия перейдите в каталог, где находится пакет openssh-3.1p16.1asp.i386.rpm. Если вы в соответствии с рекомендациями главы 2 скопировали все пакеты, входящиев дистрибутив, в каталог /home/distrib, то выполните команду:196Часть 3. Криптографическое программное обеспечение...[root@drwalbr /]# cd /home/distribи установите:[root@drwalbr distrib]# rpm –ihv openssh-3.1p1-6.1asp.i386.rpmили обновите пакет:[root@drwalbr distrib]# rpm –Uhv openssh-3.1p1-6.1asp.i386.rpmПосле установки пакета перейдите к настройке программы OpenSSH, процесс которой описан ниже.Компиляция, оптимизация и инсталляция OpenSSHШаг 1Осуществите проверку подлинности имеющегося в вашем распоряжении архива с исходными кодамис использованием процедур, описанных в шаге 1 радела «Компиляция, оптимизация и инсталляцияOpenSSL» главы 12.Шаг 2Распакуйте архив с исходными кодами в каталог /var/tmp:[root@drwalbr tmp]# tar xzpf openssh-3.6.1p1.tar.gz[root@drwalbr tmp]# cd openssh-3.6.1p1Шаг 3Создайте специального пользователя, от имени которого будет запускаться служба sshd:[root@drwalbr openssh-3.6.1p1]# groupadd -g 39 sshd > /dev/null 2>&1 ||:[root@drwalbr openssh-3.6.1p1]# useradd -u 39 -g 39 -s /bin/false -M -r d /var/empty sshd > / dev/null 2>&1 || :Шаг 4Добавьте имя несуществующего/etc/shells добавьте строку:/bin/sh/bin/bash/bin/bash2/bin/false/командногоинтерпретатора.ДляэтоговконецфайлаШаг 5Сконфигурируйте исходные коды OpenSSH:[root@drwalbr openssh-3.6.1p1]# CFLAGS="-O2 -march=i686 -funroll-loops";export CFLAGS./configure \--prefix=/usr \--sysconfdir=/etc/ssh \--libexecdir=/usr/libexec/openssh \--mandir=/usr/share/man \--with-pam \--with-ipaddr-display \--with-ipv4-default \--with-md5-passwords \--with-zlibПри таких параметрах конфигурации осуществляется компиляция исходных кодов с оптимизациейприменительно к архитектуре процессора i686, разрешается поддержка модулей аутентификации PAM и использование IP-адресов вместо имени системы, паролей MD5, инсталляция файлов осуществляется в соответствующие каталоги.Шаг 6Откомпилируйте исходные коды, проинсталлируйте файлы OpenSSH, создайте и сохраните списокустановленных файлов:[root@drwalbr openssh-3.6.1p1]# make[root@drwalbr openssh-3.6.1p1]# cd[root@drwalbr openssh-3.6.1p1]# find /* > /root/openssh1[root@drwalbr openssh-3.6.1p1]# make installГлава 13.
OpenSSH – программное обеспечение для безопасного администрирования...197[root@drwalbr openssh-3.6.1p1]# mkdir /var/empty[root@drwalbr openssh-3.6.1p1]# chown root.sys /var/empty[root@drwalbr openssh-3.6.1p1]# find /* > /root/openssh2[root@drwalbr openssh-3.6.1p1]# diff /root/openssh1 /root/openssh2 >/root/openssh.installed[root@drwalbr openssh-3.6.1p1]# mv /root/openssh.installed/very_reliable_place/openssh.installed.YYYYMMDDШаг 7Удалите архив и каталог с исходными кодами OpenSSH:[root@drwalbr openssh-3.6.1p1]# cd /var/tmp/[root@drwalbr tmp]# rm -rf openssh-3.6.1p1/[root@drwalbr tmp]# rm -f openssh-3.6.1p1.tar.gzКонфигурирование OpenSSHКонфигурирование OpenSSН осуществляется с использованием следующих файлов:• конфигурационный файл сервера /etc/ssh/sshd_config;• конфигурационный файл клиента /etc/ssh/ssh_config;• файл для поддержки модулей PAM /etc/pam.d/sshd;• файл инициализации /etc/init.d/sshd.Шаг 1Для конфигурирования сервера создайте файл /etc/ssh/sshd_config, руководствуясь своимипотребностями и нижеприведенными рекомендациями:Port22Protocol2,1ListenAddress192.168.2.99HostKey/etc/ssh/ssh_host_keyHostKey/etc/ssh/ssh_host_rsa_keyHostKey/etc/ssh/ssh_host_dsa_keyServerKeyBits768LoginGraceTime60KeyRegenerationInterval3600PermitRootLoginnoIgnoreRhostsyesIgnoreUserKnownHostsyesStrictModesyesX11ForwardingnoX11DisplayOffset10PrintMotdyesKeepAliveyesSyslogFacilityAUTHPRIVLogLevelINFORhostsAuthenticationnoRhostsRSAAuthenticationnoRSAAuthenticationyesPasswordAuthenticationnoPermitEmptyPasswordsnoAllowUsersdrwalbr karlnextUsePrivilegeSeparationyesSubsystemsftp /usr/libexec/openssh/sftp-serverОпция Port 22 определяет номер порта, на котором сервер sshd ожидает запросов клиентов.