28 июля, 2021

Основы Linux.Часть 26 (настройка сервера Apache)

С возвращением, мои хакеры!

Раньше в нашей серии по основам Linux мы рассматривали основы работы с веб-сервером Apache. Он является самым широко используемым в мире веб-сервером в Интернете (по состоянию на июль 2015 года, доля Apache составляла 38%, IIS — занимал 26%, а Nginx — 15%). Поэтому чем больше вы о нем знаете и понимаете как он работает, тем больших успехов вы достигнете при его взломе.

Сегодня мы рассмотрим основы настройки сервера Apache. Как мы писали раньше, конфигурирование и настройка почти всех приложений в Linux или Unix осуществляется через конфигурационные файлы, которые представляют собой обычный текст. Apache здесь не является исключением. Поэтому в этой статье мы сосредоточимся на конфигурационном файле apache2.conf, который находится в директории /etc/apache2.

Шаг 1. Запустите Apache2

Давайте начнем с того, что запустим Apache2. Сделаем это через графическую оболочку окружения Kali, перейдя в Applications -> Kali Linux -> System Services -> HTTP -> apache2 start, как показано на скриншоте ниже.

Или запустите его через командную строку, набрав в терминале следующую команду

kali >service apache2 start

Это запускает демон Apache2, и с этого момента веб-сервер должен обрабатывать наш контент в Интернете.

Шаг 2. Проверьте работоспособность сервера

Чтобы проверить, работает ли наш сервер Apache, давайте просто перейдем в браузере по localhost или 127.0.0.1. Если вы видите страницу как на скриншоте ниже, то это означает, что сервер работает нормально!

Шаг 3. Откройте файл конфигурации

Чтобы настроить Apache, нам нужно перейти в директорию /etc/apache2.

kali > cd /etc/apache2

Выведем на экран список всех файлов в этой директории:

kali > ls -l

Как видите, в этой директории есть несколько файлов и поддиректорий. Сейчас нас интересует только файл apache2.conf, но обратите внимание, что у нас есть файл ports.conf и папка sites_available, которые нам понадобятся чуть позже, также здесь есть несколько других файлов конфигурации и папок.

Читать также:  Основы Linux,Часть 7 ( управление правами )

Мы можем открыть apache2.conf в любом текстовом редакторе, но здесь мы будем использовать Leafpad. Файл можно открыть, просто набрав в консоли:

kali > leafpad /etc/apache2/apache2.conf

Как видите, эта команда открывает текстовый файл со всей информацией о конфигурации нашего веб-сервера Apache. Чтобы настроить сервер, мы сейчас попытаемся ознакомить вас со всеми ключевыми моментами этого файла.

Шаг 4. ServerRoot

Давайте прокрутимся вниз, пропустив все комментарии, и найдем строку #70, где начинается раздел глобальных настроек. Здесь мы видим настройки ServerRoot. Это вершина дерева директорий, в которой сервер Apache хранит все связанные с работой сервера файлы. Строка #84 определяет ServerRoot. Мы можем просто раскомментировать эту строку, если хотим установить /etc/apache2 в качестве ServerRoot. Мы рекомендуем вам это сделать.

Шаг 5. Timeout

В следующем разделе у нас располагаются переменные, которые определяют значения параметров: Timeout, KeepAlive, MaxKeepAliveRequests и KeepAliveTimeout.

  • Timeout: это время, в течение которого сервер должен выполнить запрос пользователя. Его значение по умолчанию — 300, а это означает, что сервер должен обработать каждый запрос в течение 300 секунд или 5 минут. Это, определенно, слишком долго и это значение можно установить в 30 секунд.
  • KeepAlive: это означает, что сервер остается живым (держит соединение) для нескольких запросов от одного и того же клиента. По умолчанию установлено значение «On» (включено). Это означает, что клиентам не нужно создавать новое соединение для каждого запроса к нашему серверу. Такой подход позволяет экономить ресурсы сервера.
  • MaxKeepAliveRequests: это значение определяет максимальное количество секунд, допустимое между запросами, полученными от установленного соединения с одним клиентом. Если мы установим это значение в 0, то количество времени не ограничено.
  • KeepAliveTimeout: Это количество времени между запросами, для определения того, что соединение еще живо (установлено).
Читать также:  Как войти в чужой компьютер без пароля (эксплуатация уязвимости системы)

Мы предлагаем вам оставить все значения по умолчанию, кроме параметра «Timeout». Каждая ситуация отличается, и вам может потребоваться изменить эти значения по умолчанию для того, чтобы адаптировать производительность сервера к конкретной среде.

Шаг 6. Пользователь и группы Apache2

Давайте опять прокрутим вниз несколько строк в файле apache2.conf, пока не дойдем до строки #177. Здесь мы можем установить пользователя и группы Apache2. Обратите внимание на комментарий к строке #177. Там указано, что мы можем установить эти переменные в файле envvars (переменные окружения). Оставим этот вопрос для будущих статей, но пока просто имейте в виду, что и User (пользователь) и Group (группа) являются переменными, значения которых берутся из файла /etc/apache2/envvars.

Далее мы можем определить значение параметра AccessFileName в строке #187. Этот параметр определяет, куда серверу следует идти, чтобы найти директивы конфигурации.

И, наконец, последний раздел, имеющий огромное значение для безопасности Apache, начинается со строки #193. Этот раздел дает гарантии, что веб-клиенты не смогут получить доступ к файлам .htaccess и .htpasswd.

Шаг 7. Логирование

В следующем разделе описано, как Apache управляет логами (журналами).

В первом подразделе мы обращаемся к параметру HostNameLookups. Эта директива сообщает Apache2, должен ли он выполнять поиск DNS, когда он записывает в лог установленное соединение. Со значением по умолчанию «Off» (выключено) Apache2 работает намного лучше.

Шаг 8. Доступные сайты

Теперь посмотрим на директорию site_available (доступные сайты) и, самое главное, на тот файл, который находится в ней по умолчанию. Его часто называют файлом виртуальных хостов (Virtual Hosts) по умолчанию. Откройте этот файл, набрав в консоли:

kali > leafpad /etc/apache2/site_available/default

Как видите, в этом файле есть три критических области. Первая строка определяет, какой порт слушает веб-сервер. Здесь определено, что он слушает любой интерфейс на 80-м порту (*: 80). Вторая строка определяет адрес электронной почты, на который нужно слать уведомления в случае возникновения проблем с сервером. По умолчанию там стоит адрес [email protected] Если вы являетесь системным администратором, то здесь вы можете указать ваш адрес электронной почты. Третий элемент может быть самым важным — DocumentRoot. Он определяет, где будет размещаться контент для этого виртуального хоста, значением по умолчанию является директория /var/www. Мы предлагаем вам оставить все в том виде, в котором это было определено разработчиками.

Читать также:  Основы Linux,Часть 6 ( работа с сетью)

Шаг 9. Порты

Наконец, мы можем перейти в файле apache2.conf еще ниже до строки #248 — «include port.conf». Эта директива просто сообщает Apache о необходимости перейти в файл port.conf, чтобы найти те порты, которые он должен прослушивать.

Теперь, если мы откроем файл port.conf, то увидим, что он настроен на прослушивание 80-го порта (строка #9). В следующем разделе, который начинается со строки 11, проверяется, включен ли модуль mod_ssl.c, и если он включен, то открывается 443-й порт (строка 17).

Если мы хотим изменить порты для HTTP или HTTPS, мы можем сделать это здесь, просто заменив номера портов в этом файле.

Шаг 10. Перезапустите сервер Apache

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

kali > service apache2 restart

Теперь мы знаем немного больше о наиболее важном приложении в Linux — веб-сервере Apache. Мы продолжим расширять ваши хакерские горизонты в нашей серии по Основам Linux для начинающих хакеров, так что обязательно возвращайтесь!

Предыдущие статьи ( 1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 23 , 25).

Добавить комментарий