18 дек 2010
Защита и настройка Apache на сервере XAMMP
Schok89 Категория: Web-Мастеру » Уроки
У нас вы можете скачать бесплатно Защита и настройка Apache на сервере XAMMP

Данный материал предоставлен сайтом Skripter.info исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Защита и настройка Apache на сервере XAMMP


Здраствуйте. В данном уроке, я расскажу как защитить Apache на сервере XAMMP. Для начала скроем всю информацию о Apache, выглядит эта информация примерно так:
Apache/2.2.12 (Win32) DAV/2 mod_ssl/2.2.12 OpenSSL/0.9.8k mod_autoindex_color PHP/5.3.0 mod_perl/2.0.4 Perl/v5.10.0
. Для того что-бы её убрать, находим файл конфигурации Apache. Как правило, на сервере XAMMP он называется httpsd.conf и расположен /xampp/apache/conf/extra/httpsd-default.conf. После того как открыли файл конфигурации Apache, найдите в нём параметр ServerTokens, этот параметр и есть обьём показываемой информации о сервере. После того как нашли этот параметр, меняем его значение на ServerTokens Prod. В этом случае светится будет только название сервера. Так, идём дальше. Теперь мы разберёмся с листингом директорий на вашем сервере. Если в директории нет индексного файла, то по умолчанию сервер покажет список всех файлов и директорий.
Во многих случаях этого делать не нужно, зачем всем показывать, что лежит в вашей папке.
Чтобы запретить листинг директорий открываем файл
/xampp/apache/conf/httpsd.conf
Внутри тега [Directory] должен быть Options с различными параметрами. Среди этих параметров должен быть Indexes, вот именно Indexes удалите.
Теперь при попытке просмотреть директорию без индексного файла будет получена ошибка 403. Так, с листингом директорий разобрались. Теперь нам нужно прописать "Типы файлов (MIME types)". Как вам должно быть известно, до недавнего времени по умолчанию в apache отсутствовал тип файлов RAR. Если у вас старый XAMMP, то соответственно RAR не прописан, а для этого мы идём в /xampp/apache/conf/mime.types и в этом файле, в любое место добовляем строку application/x-rar-compressed rar. Но прежде убедитесь, что этот тип еще не прописан, так как в последней версии XAMPP он уже присутствует. Теперь нам нужно разобратся с виртуальными хостами. Вам потребуется файл
/xampp/apache/conf/extra/httpsd-vhosts.conf
У кого нет этого файла, можно редактировать в основном конфиге.

Начало работы с виртуальными хостами начинается так
NameVirtualHost *:80
После этого можно указывать параметры хостов(сайтов)

[VirtualHost]
# настройки первого сайта
[/VirtualHost]

[VirtualHost]
# настройки второго сайта
[/VirtualHost]

[VirtualHost]
#настройки третьего сайта
[/VirtualHost]


Обязательно, первый описанный хост должен быть localhost, после него можно начинать указывать настройки других хостов, иначе при определенных настройках сервера ваши виртуальные хосты могут не правильно обрабатываться и возникнет путаница между ними.

Вот пример минимальных настроек на примере организации трех хостов

NameVirtualHost *:80

[VirtualHost]
ServerName localhost
DocumentRoot c:/xampp/htdocs/localhost/www
ServerAdmin schok89@mail.ru
[/VirtualHost]

[VirtualHost]
ServerName skripter.info
ServerAlias www.skripter.info
DocumentRoot c:/xampp/htdocs/skripter.info/www
ServerAdmin schok89@mail.ru
[/VirtualHost]

[VirtualHost]
ServerName php-manual.skripter.info
ServerAlias www.php-manual.skripter.info
DocumentRoot c:/xampp/htdocs/php-manual.skripter.info/www
ServerAdmin schok89@mail.ru
[/VirtualHost]


ServerName localhost
Указывает, что название домена localhost

DocumentRoot c:/xampp/htdocs/localhost/www
Указывает на место в котором хранятся файлы сайта.
Можно указывать без использование буквы диска /xampp/htdocs/localhost/www
Хранить файлы сайта можно в любом месте, но для удобства, лучше хранить их там же, где установлен сервер.

ServerAdmin schok89@mail.ru
Указывает email админа этого сайта.
Например при определенных настройках этот email может быть виден при возникновении ошибок сервера или сайта.

Во втором хосте все тоже самое, только добавлен еще один параметр
ServerAlias www.skripter.info
Это хост, являющийся зеркалом основного хоста.
Можно перечислить несколько зеркал, и все они будут иметь такие же параметры как основной хост и в конкретном случае при наборе адреса сайта хоть с www, хоть без wwww, будет обработан основной хост skripter.info.

А третий хост, это пример настроек поддомена от домена skripter.info.
Как видно, настройки поддомена ничем не отличаются от настроек доменов.

Этих настроек хостов вполне хватит, чтобы домены и сайты нормально функционировали, но можно это все не много улучшить.
Например, скрипты любого из этих сайтов имеют доступ ко всем файлам и папкам всего компьютера.
Любой скрипт может случайно или намеренно удалить любые файлы с вашего компьютера, т.к. ничто не ограничивает зону действия этого скрипта.
Чтобы дать ограничение существует такая команда

# директория из которой работает скрипт
php_admin_value open_basedir "c:/xampp/htdocs/skripter.info/" # доступ скриптов к папке

В данном примере PHP скрипты не будут выходить за пределы указанной директории.
Если хотите указать несколько директорий, к которым могут получать доступ скрипты из указанной директории, разделяйте их ';', например
php_admin_value open_basedir "c:/xampp/htdocs/skripter.info/;c:/xampp/htdocs/asd/"
Обратите внимание, пробела между путями нет, все пути перечисляются слитно, разделяются лишь точкой с запятой (;).

А можете даже запретить использование PHP скриптов в определенной директории таким образом

[Directory]
php_admin_value engine off
[/Directory]


Можете еще указать место хранения логов, чтобы логи каждого сайта хранились в своем месте.
Лог ошибок и лог доступа к сайту
ErrorLog "c:/xampp/htdocs/skripter.info/log/error_log.txt"
CustomLog "c:/xampp/htdocs/skripter.info/log/access_log.txt" combined


И вот пример виртуального хоста из всех вышеперечисленных пунктов

[VirtualHost]
ServerName skripter.info
ServerAlias www.skripter.info
DocumentRoot c:/xampp/htdocs/skripter.info/www
ServerAdmin schok89@mail.ru
[Directory]
php_admin_value open_basedir "c:/xampp/htdocs/skripter.info/"
[/Directory]
ErrorLog "c:/xampp/htdocs/skripter.info/log/error_log.txt"
CustomLog "c:/xampp/htdocs/skripter.info/log/access_log.txt" combined
[/VirtualHost]


P.S Все такие скобки "[]", поменяйте на "<>" такие. Т.к. движок, их принял как теги.









Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.