Решение проблемы с QS_SrvMinDataRate в libapache2-mod-qos на Debian

libapache2-mod-qos – это один из модулей Apache для защиты от атак Slowloris (разновидность DoS атак).

QS_SrvMinDataRate – один из параметров мода libapache2-mod-qos. Он прописывался в файле /etc/apache2/mods-available/qos.conf и до недавнего времени прекрасно работал.

Если сейчас попробовать сделать то же самое, то нас ждёт неудача при попытке перезапуска Apache:

root@WebWare-Debian:~# service apache2 restart
Job for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details.

Хорошо, смотрим подробности:

root@WebWare-Debian:~# systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2)
   Active: failed (Result: exit-code) since Вс 2015-06-28 18:26:41 ICT; 2min 12s ago
  Process: 3494 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 3519 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)

июн 28 18:26:41 WebWare-Debian apache2[3519]: Starting web server: apache2 failed!
июн 28 18:26:41 WebWare-Debian apache2[3519]: The apache2 configtest failed. ... (warning).
июн 28 18:26:41 WebWare-Debian apache2[3519]: Output of config test was:
июн 28 18:26:41 WebWare-Debian apache2[3519]: AH00526: Syntax error on line 15 of /etc/apache2/mods-enabled/qos.conf:
июн 28 18:26:41 WebWare-Debian apache2[3519]: Invalid command 'QS_SrvMinDataRate', perhaps misspelled or defined by a module not included in the server configuration
июн 28 18:26:41 WebWare-Debian apache2[3519]: Action 'configtest' failed.
июн 28 18:26:41 WebWare-Debian apache2[3519]: The Apache error log may have more information.
июн 28 18:26:41 WebWare-Debian systemd[1]: apache2.service: control process exited, code=exited status=1
июн 28 18:26:41 WebWare-Debian systemd[1]: Failed to start LSB: Apache2 web server.
июн 28 18:26:41 WebWare-Debian systemd[1]: Unit apache2.service entered failed state.

А также:

root@WebWare-Debian:~# journalctl -xn
-- Logs begin at Вс 2015-06-28 11:52:12 ICT, end at Вс 2015-06-28 18:26:41 ICT. --
июн 28 18:26:41 WebWare-Debian apache2[3519]: Starting web server: apache2 failed!
июн 28 18:26:41 WebWare-Debian apache2[3519]: The apache2 configtest failed. ... (warning).
июн 28 18:26:41 WebWare-Debian apache2[3519]: Output of config test was:
июн 28 18:26:41 WebWare-Debian apache2[3519]: AH00526: Syntax error on line 15 of /etc/apache2/mods-enabled/qos.conf:
июн 28 18:26:41 WebWare-Debian apache2[3519]: Invalid command 'QS_SrvMinDataRate', perhaps misspelled or defined by a module not included in the server configuration
июн 28 18:26:41 WebWare-Debian apache2[3519]: Action 'configtest' failed.
июн 28 18:26:41 WebWare-Debian apache2[3519]: The Apache error log may have more information.
июн 28 18:26:41 WebWare-Debian systemd[1]: apache2.service: control process exited, code=exited status=1
июн 28 18:26:41 WebWare-Debian systemd[1]: Failed to start LSB: Apache2 web server.
-- Subject: Ошибка юнита apache2.service
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Произошел сбой юнита apache2.service.
--
-- Результат: failed.
июн 28 18:26:41 WebWare-Debian systemd[1]: Unit apache2.service entered failed state.

Итак, синтаксическая ошибка в пятнадцатой строке файла /etc/apache2/mods-enabled/qos.conf, Apache не знает больше директиву QS_SrvMinDataRate.

Уже 20 марта 2015 года на дебиановском баг-трекере появилось сообщение о «баге» и с тех пор оно только обрастает подтверждениями https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=780832.

В чейнджлоге mod_qos были найдены строки:

 - Experimental: mod_qos compiles with Apache 2.4
   * QS_SrvMinDataRate is not available (does not work, use mod_reqtimeout
     instead)
   * QS_Srv* directives shall not be used (connection cleanup takes
     very long)

Разберёмся сначала с первой: QS_SrvMinDataRate недоступен (не работает, используйте вместо него mod_reqtimeout.

Ну с этим всё просто:

a2enmod reqtimeout
service apache2 restart

Для настройки mod_reqtimeout нужно редактировать файл /etc/apache2/mods-enabled/reqtimeout.conf

vim /etc/apache2/mods-enabled/reqtimeout.conf

01

Вопрос в следующей фразе: Директивы QS_Srv* не должны использоваться (очищение соединений проходит очень долго) — я до сих пор не понимаю, эта проблема уже была устранена в последующих версиях или нет? Подскажите, кто знает.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *