wordpress wp-login.php attack
Добро утро,
Днес ще драсна по темата : wordpress wp-login.php attack или как да защитим блога си от brute force атаки.
Предполагам че всеки по-голям блог в интернет често или рядко е подложен на подобни атаки тип:
91.185.209.4 - - [11/Jul/2014:06:35:07 +0100] "POST /wp-login.php HTTP/1.0" 200 5117 "-" "-" 216.58.248.30 - - [11/Jul/2014:06:35:08 +0100] "POST /wp-login.php HTTP/1.0" 200 5117 "-" "-" 91.185.209.4 - - [11/Jul/2014:06:35:08 +0100] "POST /wp-login.php HTTP/1.0" 200 5117 "-" "-" 91.185.209.4 - - [11/Jul/2014:06:35:09 +0100] "POST /wp-login.php HTTP/1.0" 200 5117 "-" "-" 216.58.248.30 - - [11/Jul/2014:06:35:09 +0100] "POST /wp-login.php HTTP/1.0" 200 5117 "-" "-" 216.58.248.30 - - [11/Jul/2014:06:35:10 +0100] "POST /wp-login.php HTTP/1.0" 200 5117 "-" "-" 216.58.248.30 - - [11/Jul/2014:06:35:11 +0100] "POST /wp-login.php HTTP/1.0" 200 5117 "-" "-" 216.58.248.30 - - [11/Jul/2014:06:35:13 +0100] "POST /wp-login.php HTTP/1.0" 200 5117 "-" "-"
Които сами по себе си водят до натоварване на машината и евентуално забавяне на сайта ни.
Аз лично предпочитам хард защитата – тип iptables или htaccess пред разни плугини за security, които не е ясно колко ефективни могат да бъдат в този случай.
Ето и моето решение за този проблем:
1. Защита тип htaccess на nginx уеб сървър :
location ~ ^/(wp-login\.php$) { root /var/www/root.bg/; allow 127.0.0.1; allow 87.97.123.123; # нашето айпи allow 87.97.100.100; # друго наше айпи allow 192.168.1.0/24; # цялата ни локална мрежа deny all;
2. Защита тип htaccess на apache уеб сървър :
# Options None # AllowOverride None Order deny,allow Allow from 87.97.123.123; # нашето айпи Allow from 87.97.100.100; # друго наше айпи Allow from 192.168.1.0/24; # цялата ни локална мрежа Deny from all
3. Защита тип iptables на сървъра която ограничава “wp-login” да се отваря само от дадени айпи адреси:
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 80 -m string --algo kmp --string 'wp-login.php' -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 80 -m string --algo bm --string 'wp-login.php' -j ACCEPT iptables -A INPUT -d 0.0.0.0/0 -p tcp --dport 80 -m string --algo kmp --string 'wp-login.php' -j DROP iptables -A INPUT -d 0.0.0.0/0 -p tcp --dport 80 -m string --algo bm --string 'wp-login.php' -j DROP
Това е… дано съм бил полезен на някой с този пост 🙂