Корень зла ANDREY MATVEEV Спецвыпуск: Хакер, номер #069, стр. 069-050-3 # fstat | grep mysql _mysql mysqld 22841 wd /var/mysql 2 drwxr-xr-x r 1024 _mysql mysqld 22841 0 / 67197 crw-rw-rw- r null _mysql mysqld 22841 1 /var/mysql 3 -rw-rw---- w 25648 _mysql mysqld 22841 2 /var/mysql 3 -rw-rw---- w 25648 _mysql mysqld 22841 3 pipe 0xd69e8828 state И создаем (для надежности) символическую ссылку на стандартное расположение сокета: # ln -sf /var/www/var/run/mysql/mysql.sock /var/run/mysql/mysql.sock [нardening MySQL в подробностях.] Опциональный шаг: выполняем ряд несложных операций по увеличению безопасности MySQL: # /usr/local/bin/mysql -u root // Пустой пароль для администратора MySQL-сервера нам не подходит, устанавливаем новый mysql> set password for root@localhost=password("noidea"); // Удаляем базу данных test, которая была создана скриптом mysql_install_db mysql> drop database test; // Удаляем все MySQL'ные учетные записи, кроме root mysql> use mysql; mysql> delete from db; mysql> delete from user where not (host="localhost" and user="root"); mysql> flush privileges; // Чтобы усложнить атаки типа bruteforce, можно изменить имя главной учетной записи с root на admin mysql> update user set user="admin" where user="root"; mysql> flush privileges; // Настройка закончена mysql> quit [хардкорные разборки с PHP.] Далее на очереди - PHP4 со своими расширениями. Следующими командами мы установим пакет с основным движком - так называемый core-пакадж, модуль для работы с базами данных и библиотеку pear (набор специальных компонентов и расширений для PHP). # pkg_add php4-core-4.4.1p0.tgz # pkg_add php4-mysql-4.4.1p0.tgz # pkg_add php4-pear-4.4.1p0.tgz Активируем модуль libphp4.so: # /usr/local/sbin/phpxs -s Воспользуемся рекомендованной разработчиками версией php.ini: # cp /usr/local/share/examples/php4/php.ini-recommended /var/www/conf/php.ini Выставляем корректные права доступа: # chown root:www /var/www/conf/php.ini # chmod 640 /var/www/conf/php.ini Указываем путь до сокета MySQL: # vi /var/www/conf/php.ini mysql.default_socket = /var/run/mysql/mysql.sock И активируем MySQL-модуль: # /usr/local/sbin/phpxs -a mysql [сам себе надежный почтальон.] Для корректной работы электронной почты в Apache chroot необходимо установить статически слинкованную версию mini_sendmail. Этот фэйковый почтовик будет передавать из среды chroot всю исходящую почту полноценному транспортному агенту. # cd /usr/port/mail/mini_sendmail # env SUBPACKAGE=-chroot make install # cp -p /bin/sh /var/www/bin # mkdir -p /var/www/etc # cp /etc/{hosts,resolv.conf} /var/www/etc Теперь снова возвращаемся в php.ini и указываем абсолютный путь до mini_sendmail относительно /var/www (внимание: запись «-fwww@mydomain.ru» обязательно должна идти без пробела). # vi /var/www/conf/php.ini sendmail_path = "/bin/mini_sendmail -fwww@mydomain.ru -t" [не выпускай суккуба из песочницы.] Разработчики OpenBSD выполнили львиную долю работы за нас, посадив Apache/mod_ssl в chroot-окружение. Нам лишь остается активировать поддержку PHP и разобраться с виртуальными хостами. Для этого переходим к редактированию главного конфигурационного файла индейца: |