Сегодня столкнулся с проблемой у клиента, что при попытке авторизоваться на форуме получаем следующее:
Неверное имя пользователя или пароль. Вы использовали предел попыток входа! Попробовать войти в следующий раз вы сможете не ранее, чем через 15 минут. Не забудьте, что пароль чувствителен к регистру. Забыли пароль? Нажмите здесь!
Первая мысль — брутят! Но не всех же пользователей сразу. Далее, смотрю, как форум распознает IP-пользователей, но и здесь все нормально. Захожу в табличку strikes, чтоб посмотреть зависимость блокировок от времени, и увидел, что у всех юзеров в поле «strikeip» записан IP-сервера. Собственно, все стало ясно.
Чтобы научить Apache нормально распознавать IP пользователей, необходимо установить mod_rpaf. На сервере клиента стоит CentOS, поэтому ниже выкладываю небольшую заметку с блога phpsuxx.blogspot.com по установке вышеупомянутого модуля на CentOS:
Установка mod_rpaf Centos
rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm
Теперь надо отключить этот репозиторий, чтобы система случаем чего лишнего не апнула vi /etc/yum.repos.d/centalt.repo:
enabled=0
Теперь ставим пакет:
yum -y —enablerepo=CentALT install mod_rpaf
Теперь конфигурируем: vi /etc/httpd/conf.d/00-rpaf.conf (вместо xx.xx.xx.xx вписываете айпи вашей машинки)
LoadModule rpaf_module /usr/lib/httpd/modules/mod_rpaf-2.0.so #32битныеОС
LoadModule rpaf_module /usr/lib64/httpd/modules/mod_rpaf-2.0.so #64битныеОС
RPAFenable On
RPAFsethostname Off
RPAFproxy_ips xx.xx.xx.xx
RPAFheader X-Real-IP/etc/init.d/httpd restart
Как проверить, работает ли установленный модуль (взято у Mchost).
На любом из доменов, которые расположены на Вашем сервере, разместите файл test.php с содержимым:
Далее зайдите по ссылке http://domain.tld/test.php, где domain.tld — имя вашего домена. Если как результат отображается IP, отличающийся от IP вашего сервера, модуль работает корректно.