Безопасные ракушки и слои

Автор: Soft-Терра Сайт: http://www.softerra.ru
   
   В статье рассмотрено подключение SSL к Apache, использование SSH и stelnet.
   
   Устанавливаем SSL
   SSL (Secure Sockets Layer) является методом шифрования разработанным Netscape для обеспечения безопасности в Internet. Этот метод поддерживает несколько методов шифрования, и обеспечивает аутентификацию, как на уровне клиента, так и на уровне сервера. SSL работает на транспортном уровне и поэтому обеспечивает надежное шифрование всех типов данных.
   Более подробно о реализации SSL можно прочитать на сайте Netscape T
   http://home.netscape.com/info/security-doc.html Протокол S-HTTP является еще одним "безопасным" Internet-протоколом. Он был разработан для предоставления конфиденциальности данных, передаваемых через соединение. Конфиденциальность нужна, например, при передаче номеров кредитных карточек и прочей важной информации. Модуль mod_ssl реализует в Apache слой SSL, который реализует шифрование всего потока данных между клиентом и сервером. Для всех остальных частей Web-сервера модуль mod_ssl является прозрачным. Для работы в этом режиме, требуется броузер, поддерживающий механизм SSL (этому условию удовлетворяют все современные распространенные броузеры). Apache можно установить из rpm-пакетов (в случае RedHat-совместимых систем) или устанавливать Web-сервер из исходников. Самая последняя версия (на момент написания этой статьи это 2.0.28beta) всегда доступна http://httpd.apache.org/. Теперь нужно установить OpenSSL Возможно у вас в системе уже установлен пакет OpenSLL. Для проверки этого введите openssl T если вы увидите в ответ приглашение OpenSSL>, значит OpenSSL уже установлен. Для установки OpenSSL (если еще не установлен) выполните следующие шаги (перед этим выполните команду su для привилегий суперпользователя):
   Распакуйте последнюю версию командой tar zxvf openssl-x.y.z.tar.gz (x.y.z - номер версии).
   Перейдите в каталог openssl-x.y.z и выполните команду ./config. Если все нормально (нет ошибок) введите команду make. В противном случае вам, скорее всего, придется установить недостающие пакеты.
   Затем нужно ввести команды make install и ldconfig. Перед выполнением команды ldconfig убедитесь, что в файле /etc/ld.so.conf прописан путь к библиотекам OpenSSL (по умолчанию это /usr/local/ssl/lib)
   Подключение SSL к Apache
   Теперь осталось подключить mod_ssl к Apache. При это следует учитывать, что вам нужна версия mod_ssl, которая совместима с вашей версией Apache. В противном случае mod_ssl будет некорректно работать или вообще откажется работать. Последние цифры в названии модуля указывают на совместимость с определенной версией Apache. Например, для Apache 1.3.14 нужен файл mod_ssl-2.7.1-1.3.14.tar.gz. Здесь 2.7.1 T версия mod_ssl. Распакуйте модуль tar zxvf mod_ssl-x.y.z-2.0.0.tar.gz и выполните команду ./configure --with-apache=../apache_1.3.14 --with-ssl=../openssl-0.9.5
   
   Я использую OpenSSL 0.9.5 Теперь переходим в каталог с Apache, компилируем его и устанавливаем сертификат cd ../apache-1.3.14
   make
   make certificate
   make install
   
   
   Вы установите Apache в каталог, указанный в опции --prefix (по умолчанию /usr/local/apache) Теперь можно попытаться запустить Apache. Это можно сделать с помощью команды: usr/local/apache/bin/apachectl startssl Параметр startssl необходим для включения SSL. Apache уже функционирует, однако обратиться по протоколу https вы еще не можете. Для этого вам нужно сконфигурировать виртуальные хосты, которые будут использовать протокол https. Для начала нужно указать Apache прослушивать 443-ий порт. Открываем любым редактором файл /etc/httpd/conf/httpd.conf и добавляем эти строки: Listen 443
   NameVirtualHost x.x.x.x:443
   
   Теперь создаем виртуальный сервер, работающий по протоколу https: <VirtualHost x.x.x.x:443>
   # Эти строки нужны для поддержки SSL
   SSLEngine on
   SSLLogLevel warn
   SSLOptions +StdEnvVars
   SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
   SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
   SSLLog /usr/local/apache/logs/ssl_engine_log
   # -------------------------------------
   
   ServerName www.dhsilabs.com
   ServerAdmin webmaster@den.dhsilabs.com
   DocumentRoot /var/httpd/www/html
   ErrorLog /var/https/www/logs/error.log
   
   </VirtualHost>
   
   После этих строк, естественно, вы можете конфигурировать свой виртуальный хост как обычно. Теперь нужно перезапустить сервер httpd. При запуске Apache потребует ввести пароль... Мы же не хотим его вводить при каждом запуске? Перейдем в каталог, где находится файл ssl.key и выполним команды: cp server.key server.key.org
   openssl rsa -in server.key.org -out server.key
   chmod 400 server.key
   
   Почти все готово! Теперь сервер не должен запрашивать пароль и должен работать в нормальном режиме. При обращении https://host.domain броузер должен спросить вас на предмет использования сертификата. Чтобы Apache по умолчанию стартовал с поддержкой SSL, исправим в файле bin/apachectl условие start на startold, а startssl на просто start Теперь, находясь в каталоге /usr/local/bin, установим ссылку openssl ln -s /usr/local/ssl/bin/openssl openssl
   
   Безопасные ракушки и слои
   В статье рассмотрено подключение SSL к Apache, использование SSH и stelnet.
   
   Денис Колисниченко
   
   
   Генерирование сертификатов. Его подпись.
   Приступим к генерированию сертификатов. Выполните команду openssl genrsa -des3 -out server.key 1024
   
   Она создаст файл server.key. После этого мы должны подать запрос в службу верификации openssl req -new -key server.key -out server.csr
   
   Тут вам нужно будет ответить на вопросы. Если вы ошиблись, все можно повторить заново. В случае, если запрос сгенерирован правильно, вы должны получить такую надпись: You now have to send this Certificate Signing Request (CSR) to a Certifying Authority (CA) for signing
   
   Отвечая на вопросы, будьте очень внимательны T ваши ответы увидит весь мир. По всем правилам, мы сейчас должны подписать сертификат, но за неимением желания платить за это деньги, мы подпишем сами себя: openssl genrsa -des3 -out ca.key 1024
   openssl req -new -x509 -days 365 -key ca.key -out ca.crt
   
   Вы хотите заплатить за подпись? Тогда добро пожаловать на сайт www.thawte.com. В России представителем этого сайта является solutions.rbc.ru Теперь скопируйте sign.sh из пакета mod_ssl в каталог с ключами и подпишите себя: ./sign.sh server.csr
   
   Если на экране появится надпись Now you have two files: server.key and server.crt. These now can be used as following
   
   то это означает, что все собрано правильно. Затем скопируйте новые server.key и server.crt на место старых. Выполните команду make в каталоге с .crt-файлом Теперь вы получили полностью работающий Apache, защищенный SSL. Для сбора полной информации о работе SSL введите: openssl s_client -connect localhost:443 -state -debug
   
   Secure Shell
   Теперь рассмотрим SSH SSH (Secure Shell) T программа, позволяющая вам зарегистрироваться на удаленных компьютерах и установить зашифрованное соединение. Существует также "безопасная" версия telnet T stelnet. ssh использует криптографию открытого ключа для шифрования соединения между двумя машинами, а также для опознавания пользователей. Оболочку ssh можно использовать для безопасной регистрации на удаленном сервере или копировании данных между двумя машинами, в то же время предотвращая атаки путем присоединения посредине (session hijacking) и обманом сервера имен (DNS spoffing).
   
   ssh очень эффективен против анализаторов протоколов, так как он не только шифрует, но и сжимает трафик перед его передачей на удаленный компьютер. ssh можно скачать по адресу T http://www.cs.hut.fi/ssh/. Версия ssh для UNIX распространяется бесплатно, а за Windows-версию (имеется в виду клиент для Windows), если не ошибаюсь, нужно заплатить. Оболочка ssh незаменима в тех случаях, когда удаленно нужно администрировать сервер или когда сервер не имеет собственного монитора. При использовании telnet все данные, которые передаются через telnet-соединение, доступны в открытом виде. А значит, имена пользователей и пароли будут доступны всем, кто прослушивает трафик с помощью анализатора. Шифрование ssh выполняет, используя несколько различных алгоритмов, включая DES и 3DES. Программа состоит из демона sshd, который запускается на Linux/UNIX-машине, и клиента ssh, который может распространяется как для Linux, так и для Windows. Итак, берем исходные тексты и помещаем их по традиции в каталог /usr/src/. Распаковываем архив и устанавливаем программу: cd /usr/src/
   tar xzf ssh-1.4.tar.gz
   cd ssh-1.4
   ./configure
   make
   make install
   
   Чтобы ssh начал работать, необходимо запустить демон sshd. Желательно добавить команду запуска в сценарий загрузки системы для автоматического запуска. Демон sshd работает по 22 порту. Если не ошибаюсь, ssh невозможно использовать вместе с xinetd/inetd - его нужно запускать подобно httpd-серверу в режиме standalone. Фрагмент /etc/services ssh 22/tcp # SSH Remote Login Protocol
   ssh 22/udp # SSH Remote Login Protocol
   
   Обычно с настройкой sshd не возникает никаких неприятных моментов. Теперь попробуем зарегистрироваться на этой машине через ssh. Для этого нужно установить этот же пакет на другую машину под управлением Linux/UNIX (или установить Windows-клиент ssh) и ввести команду $ ssh hostname.domain
   
   ssh запросит вас ввести имя пользователя и пароль и в случае, если аутентификация пройдет успешно, начнет сеанс связи. Прекратить сеанс можно комбинацией клавиш Ctrl+D. При использовании Windows-клиента имя компьютера, логин и пароль нужно ввести в диалоговом окне программы. Если соединение не устанавливается попробуйте ввести метод кодирования blowfish. Если и это не поможет, выберите 3DES. Работа в ssh аналогична работе в telnet. Вы можете администрировать удаленную машину также легко как и локальную. ssh использует два файла конфигурации ssh_conf и sshd_conf. Думаю, что не смысла говорить о том, что они находятся в директории /etc. Рекомендую в файле sshd_conf прописать строчку: allowedadress 10.1.1.1 10.1.2.1 10.1.3.1
   
   Это означает, что доступ по ssh может быть выполнен только с машин с адресами 10.1.1.1, 10.1.2.1, 10.1.3.1. Это оградит ваш компьютер от нежелательных вторжений извне. Программа stelnet во всем полностью аналогична программе telnet, но она выполняет шифрование трафика, который передается во время telnet-соединения.
   
   
   
   
   

Опубликовано: HTTP://WWW.R-T-F-M.INFO, pauk ©® 2000-2011.
All rights reserved.
При перепечатки ссылка на сайт обязательна.
Мнение администрации сайта не всегда совпадает с мнением автора..