Как и почти любое приложение в Linux или Unix, конфигурация выполняется с помощью простого текстового файла конфигурации. Apache не исключение. В результате мы сосредоточимся на файле apache2.conf в каталоге /etc/apache2. В этом руководстве мы рассмотрим как настраивать Apache в Linux.
Запуск Apache2
Начнем с запуска Apache2. Мы можем сделать это через графический интерфейс, перейдя в Приложения -> Kali Linux -> Системные службы -> HTTP -> запуск apache2, как показано ниже.
Или запустите его из командной строки, как показано ниже.
kali >service apache2 start
Это запустит демон Apache2, и теперь веб-сервер должен передавать наш контент в Интернет.
Переход к серверу
Чтобы проверить, работает ли наш сервер Apache, давайте просто перейдем к локальному хосту или 127.0.0.1. Если вы видите следующую страницу, теперь вы знаете, что сервер работает правильно.
Открытие файла конфигурации
Чтобы настроить Apache, нам нужно перейти в каталог /etc/apache2.
kali > cd /etc/apache2
Затем сделайте длинный список в этом каталоге.
kali > ls -l
Как видите, в этом каталоге есть несколько файлов и каталогов. Для наших целей сейчас наиболее важным является apache2.conf, но также обратите внимание, что у нас есть файл ports.conf и каталог sites_available, который мы будем использовать позже в этом руководстве, а также несколько других файлов и каталогов конфигурации.
Мы можем открыть apache2.conf в любом текстовом редакторе, но здесь я буду использовать Leafpad. Его можно открыть, просто набрав:
kali > leafpad /etc/apache2/apache2.conf
Как видите, открывается обычный текстовый файл со всей информацией о конфигурации нашего веб-сервера Apache. Я попытаюсь провести вас через ключевые элементы этого файла, чтобы настроить наш сервер.
Корневой сервер
Давайте прокрутим вниз все комментарии и перейдем к строке № 70, где начинается раздел глобальной конфигурации. Здесь мы видим, что здесь настроен ServerRoot. Это вершина дерева каталогов, где сервер Apache хранит все файлы, связанные с сервером. Строка № 84 определяет ServerRoot. Мы можем просто раскомментировать его, если хотим установить /etc/apache2 в качестве нашего ServerRoot. Я рекомендую вам это сделать.
Тайм-аут
В следующем разделе у нас есть переменные, которые определяют время ожидания, KeepAlive, MaxKeepAliveRequests и KeepAliveTimeout.
- Тайм-аут: это время, которое сервер должен выполнить для выполнения каждого запроса. Значение по умолчанию — 300, что означает, что у сервера есть 300 секунд или 5 минут для выполнения каждого запроса. Это, вероятно, слишком долго и, вероятно, может быть установлено около 30 секунд.
- KeepAlive: это означает, что сервер поддерживается для нескольких запросов от одного и того же клиента. По умолчанию для него установлено значение «Вкл.», что означает, что клиентам не нужно создавать новое соединение с каждым запросом, что снижает нагрузку на сервер.
- MaxKeepAliveRequests: это максимальное количество секунд между запросами от установленного соединения. Если мы установим это значение равным 0, то количество времени не ограничено.
- KeepAliveTimeout: это время между запросами, в течение которого соединение остается активным.
Я предлагаю вам оставить значения по умолчанию во всем, кроме «Тайм-аут». Каждая ситуация отличается, и вам может потребоваться изменить эти значения по умолчанию, чтобы адаптировать производительность к вашей конкретной среде.
Пользователь Apache2 и группы
Давайте пропустим несколько строк в файле apache2.conf, пока не получим строку № 177. Здесь мы можем установить пользователя и группы Apache2. Обратите внимание в комментарии к строке № 177, что мы можем установить эти переменные в файле envvars (переменные среды). Мы оставим это для будущего руководства, но учтите, что и пользователь, и группа являются переменными, которые берутся из файла /etc/apache2/envvars.
Затем мы можем определить AccessFileName в строке № 187. Это определяет, куда мы можем перейти в каждом каталоге, чтобы найти директивы конфигурации.
Этот последний раздел, начинающийся здесь со строки № 193, имеет решающее значение для безопасности Apache. Эти строки гарантируют, что веб-клиенты не смогут получить доступ ни к файлам .htaccess, ни к файлам .htpasswd.
Ведение журнала
В этом следующем разделе определяется, как Apache управляет ведением журнала.
В первой строфе мы обращаемся к HostNameLookups. Эта директива сообщает Apache2, должен ли он выполнять поиск DNS при регистрации соединения. Оставив его выключенным, как по умолчанию, Apache2 работает намного лучше.
Сайт доступен
Далее смотрим директорию site_available и, самое главное, файл по умолчанию там. Его часто называют файлом виртуальных хостов по умолчанию. Откройте этот файл, набрав:
kali > leafpad /etc/apache2/site_available/default
Как видите, в этом файле есть три критических области. Первая строка определяет, какой порт прослушивает веб-сервер. Здесь он определяется как прослушивание любого интерфейса на порту 80 (*:80). Вторая строка определяет, куда следует отправлять электронную почту при возникновении проблем с сервером. По умолчанию установлено значение webmaster@localhost. Если вы являетесь системным администратором, вы можете установить это на свой адрес электронной почты (или просто псевдоним этого адреса для вашего). Третий элемент может быть самым важным — DocumentRoot. Он определяет, где будет расположен контент для этого виртуального хоста, в данном случае /var/www. Я предлагаю вам оставить это, как определено здесь.
Порты
Наконец, для этого руководства мы можем перейти к строке № 248 файла apache2.conf и заметить, что там есть строка «include port.conf». Эта директива просто говорит Apache перейти к файлу port.conf, чтобы найти порты, которые он должен прослушивать.
Если мы откроем этот файл, port.conf, мы увидим, что он настроен на прослушивание порта 80 (строка № 9). Следующий раздел, начиная со строки №11, проверяет, включен ли модуль mod_ssl.c, и если да, то открывает порт 443 (строка 17).
Если мы хотим изменить порты для HTTP или HTTPS, мы можем сделать это здесь, просто заменив номера портов в этом файле.
Перезапуск сервера Apache
Теперь, когда у нас есть какие-либо изменения в нашей конфигурации Apache2, нам нужно перезапустить сервер, чтобы они вступили в силу.
kali > service apache2 restart
Заключение
Теперь мы знаем немного больше о, пожалуй, самом важном приложении Linux, веб-сервере Apache. Мы продолжим расширять ваши хакерские горизонты, предлагая больше основ Linux для начинающих хакеров, так что возвращайтесь.