Уровень, ограничивающий попытки входа в систему, является простым способом предотвратить некоторые высокоскоростные нападения подбора пароля. Однако трудно ограничить распределенные нападения, и многие работают в низком темпе за недели или месяцы. Я лично предпочитаю избегать использования инструментов автоматического ответа как fail2ban. И это по двум причинам:
Поэтому я не считаю fail2ban (и подобные инструменты автоматического ответа) очень хорошим подходом к обеспечению сервера против атак перебором. Простой IPTables управляет набором для сокращения спама журнала (который я имею на большинстве своих серверов Linux), что-то вроде этого:
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
Это предотвращает больше чем 4 попытки подключения от единственного IP до ssh в любые 60 вторых периодов. Остальные могут быть обработаны путем обеспечения, что пароли довольно сильны. На серверах высокой безопасности, вынуждающих пользователей использовать аутентификацию с открытым ключом, другой способ прекратить предполагать.
как насчет помещения:
Order deny,allow
Deny from all
Allow from ip.ad.dre.ss
в Вашем .htaccess
файл? или даже в httpd конфигурации в масштабе всей системы?
Если можно достигнуть (виртуальной) конфигурации хоста, почему бы не добавить эти строки?
<Location />
Order deny,allow
Deny from all
Allow from 1.1.1.1
ErrorDocument 403 /down.php
</Location>
<Location /down.php>
Order allow,deny
Allow from all
</Location>
Проверьте свой апачский файл журнала на наличие ошибок, возможно, что Вы будете видеть 404 где-нибудь для about/down.php. Иначе, Модификация по умолчанию Переписывают отладку подсказок, следуйте:
Попытайтесь добавить это к своей конфигурации http (Где-нибудь в конфигурации, она не работает в htaccess или virtualhost уровне),
RewriteLog /tmp/rewrite.log
RewriteLogLevel 9
Это предоставит Вам линию за линией explaination того, чему это пытается соответствовать против того, какой regex, и каково окончательное решение.
Удалите эти строки впоследствии, иначе однажды Вы обнаружите, что у Вас нет почти такого дискового пространства, как Вы думали, что Вы должны...
Спасибо за подсказку о RewriteLog. Я проверил его, и похоже, что .htaccess файл в корне сайта только относится к каталогам, которые не имеют их собственного .htaccess файла со строкой "RewriteEngine на".
отметьте, 12.345.678.90 мой IP, и 99.888... IP, я хочу позволить видеть материал.
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b878d060/initial] (1) [perdir /srv/www/mysite.com/about/] pass through
/srv/www/mysite.com/about/
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b879b090/subreq] (1) [perdir /srv/www/mysite.com/about/] pass through
/srv/www/mysite.com/about/index.html
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b879b090/subreq] (1) [perdir /srv/www/mysite.com/about/] pass through
/srv/www/mysite.com/about/index.cgi
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b879b090/subreq] (1) [perdir /srv/www/mysite.com/about/] pass through
/srv/www/mysite.com/about/index.pl
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b879b090/subreq] (1) [perdir /srv/www/mysite.com/about/] pass through
/srv/www/mysite.com/about/index.php
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b8791070/initial] (1) [perdir /srv/www/mysite.com/about/] pass through
/srv/www/mysite.com/about/css/about.css
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b87df100/initial] (3) [perdir /srv/www/mysite.com/] strip per-dir prefix:
/srv/www/mysite.com/requires/css/header.css -> requires/css/header.css
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b87df100/initial] (3) [perdir /srv/www/mysite.com/] applying pattern
'down.php$' to uri 'requires/css/header.css'
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b87df100/initial] (4) [perdir /srv/www/mysite.com/] RewriteCond:
input='12.345.678.90' pattern='!^(99\.888\.777\.88)$' => matched
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b87df100/initial] (2) [perdir /srv/www/mysite.com/] rewrite
'requires/css/header.css' -> '/down.php'
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b87df100/initial] (1) [perdir /srv/www/mysite.com/] internal redirect with
/down.php [INTERNAL REDIRECT]
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b8790810/initial/redir#1] (3) [perdir /srv/www/mysite.com/] strip per-dir
prefix: /srv/www/mysite.com/down.php -> down.php
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b8790810/initial/redir#1] (3) [perdir /srv/www/mysite.com/] applying pattern
'down.php$' to uri 'down.php'
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b8790810/initial/redir#1] (3) [perdir /srv/www/mysite.com/] strip per-dir
prefix: /srv/www/mysite.com/down.php -> down.php
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b8790810/initial/redir#1] (3) [perdir /srv/www/mysite.com/] applying pattern
'^(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])-((19|20)\d\d)/?(/([a-zA-Z0-9_-]{1,20}))?$' to uri 'down.php'
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b8790810/initial/redir#1] (1) [perdir /srv/www/mysite.com/] pass through
/srv/www/mysite.com/down.php
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b879d098/initial] (3) [perdir /srv/www/mysite.com/login/] strip per-dir
prefix: /srv/www/mysite.com/login/js/ajax_login.js -> js/ajax_login.js
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b879d098/initial] (3) [perdir /srv/www/mysite.com/login/] applying pattern
'^([a-z0-9]+/?){0,3}$' to uri 'js/ajax_login.js'
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b879d098/initial] (1) [perdir /srv/www/mysite.com/login/] pass through
/srv/www/mysite.com/login/js/ajax_login.js
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b8796080/initial] (3) [perdir /srv/www/mysite.com/login/] strip per-dir
prefix: /srv/www/mysite.com/login/images/ajax_busy.gif -> images/ajax_busy.gif
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b8796080/initial] (3) [perdir /srv/www/mysite.com/login/] applying pattern
'^([a-z0-9]+/?){0,3}$' to uri 'images/ajax_busy.gif'
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b8796080/initial] (1) [perdir /srv/www/mysite.com/login/] pass through
/srv/www/mysite.com/login/images/ajax_busy.gif
12.345.678.90 - [mysite.com/sid#b85a5dc8][rid#b8796080/initial] (1) [perdir /srv/www/mysite.com/about/] pass through
/srv/www/mysite.com/about/images/edit.png
Как Вы видите, about/index.php страница содержит файл CSS, который расположен в/, требует. Выше, правило IP-адреса относится к файлу CSS, и это перенаправляется. Правило IP-адреса пропускается, если я помещаю, .htaccess файл в / требует только с строкой:
RewriteEngine on
Сделайте это во всей подпапке .htaccess файлы.
RewriteEngine On
RewriteOptions Inherit
Посмотрите больше: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#RewriteOptions
почему не выполнение IP сверяется с php?
может посмотреть sth. как это
< ?php if($_SERVER['REMOTE_ADRR'] != '66.777.888.99') exit; ? >