Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #75, МАРТ 2005 г.

На лезвии ножа

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 новых версий.

Назад на стр. 075-052-5  Содержание