На лезвии ножа Andrey Matveev Хакер, номер #075, стр. 075-052-6 За подробностями обращайся к страницам справочных руководств openssl(1), ssl(8) и starttls(8). К счастью, давно прошли те времена, когда для регистрации подключений, контроля доступа к web-серверу и предотвращения DoS-атак нужно было использовать набор инструментальных средств TCP Wrappers и в httpd.conf по наитию твикать значения переменных MaxClients, MaxKeepAliveRequests, StartServers etc. Сейчас выполнение всех этих задач берет на себя фильтр пакетов pf: # vi /etc/pf.conf ext_if = "fxp0" scrub in on $ext_if all fragment reassemble block drop all pass in log on $ext_if inet proto tcp from any to $ext_if \ port { www, https } flags S/SA modulate state \ (max 100, source-track rule, max-src-nodes 50, \ max-src-states 5, tcp.first 15, tcp.opening 5, \ tcp.established 3600, tcp.closing 30, tcp.finwait 15, \ tcp.closed 15, tcp.tsdiff 5) Далее в конфиге /etc/rc.conf следующими записями разрешаем автоматическую загрузку Apache и Packet Filter при старте системы: # vi /etc/rc.conf httpd_flags="-DSSL" pf=YES pf_rules=/etc/pf.conf На этом нелегкая работа напильником закончена, перезагружаемся: # shutdown -r now Crash-тесты Чтобы протестировать работу модуля php4 и взаимодействие с базой данных, создаем в каталоге /var/www/htdocs файлы info.php и sql.php вот такого содержания: # echo '<?php phpinfo(); ?>' > /var/www/htdocs/info.php # vi /var/www/htdocs/sql.php <html><body> <?php mysql_connect("localhost", "andrushock", "secret") or die("failed"); print "ok"; mysql_close(); ?> </body></html> На клиентском хосте сначала запрашиваем адрес http://eshop.xakep.ru/info.php, а затем http://eshop.xakep.ru/sql.php. В первом случае в ответ должны получить информационную страницу PHP, а во втором - лаконичный, но информативный «Ok». Чтобы проверить работу связки Apache + SSL + MySQL + PHPMyAdmin, набираем https://eshop.xakep.ru/phpMyAdmin/. Если сервер работает корректно, браузер выдаст окно сертификата запрошенного сайта. После того как самоподписанный сертификат будет принят, тебе предложат ввести логин и пароль для доступа в защищенную область Web-сервера. Если все перечисленные crash-тесты прошли успешно, пожимаю твою мужественную/женственную руку, миссия выполнена. Теперь, имея в своем арсенале такую защищенную систему, ты можешь взяться за разработку любого проекта, будь то простенький новостной сайт института или интернет-магазин с кучей клиентов. WWW Скачать модули для Apache можно на странице httpd.apache.org/modules/ WARNING Ни в коем случае не размещай .htpasswd в каталоге /var/www/htdocs/phpMyAdmin! CD На нашем диске ты найдешь полные версии всех приведенных конфигурационных файлов, а также установочные пакеты с Apache, PHP и MySQL новых версий. |