Page 1 of 1
Блокировка ботов
Posted: Fri Nov 06, 2015 6:06 am
by usr999
Подскажите как реализовать блокировку ботов средствами iptables из удаленного источника, а именно с сервиса
http://ru.myip.ms/browse/blacklist/
http://ru.myip.ms/files/blacklist/csf/l ... cklist.txt
http://ru.myip.ms/files/blacklist/csf/l ... mitted.txt
Желательно сделать проверку айпих раз в сутки
Re: Блокировка ботов
Posted: Fri Nov 06, 2015 6:42 am
by skurudo
Исключительно руками - нужно писать что-то свое, т.е. нужно забирать список, парсить его при необходимости и добавлять в iptables, но имхо проще в nginx такое пихать.
Re: Блокировка ботов
Posted: Fri Nov 06, 2015 7:02 am
by usr999
skurudo wrote:Исключительно руками - нужно писать что-то свое, т.е. нужно забирать список, парсить его при необходимости и добавлять в iptables, но имхо проще в nginx такое пихать.
Не подскажите как реализовать через nginx?
Re: Блокировка ботов
Posted: Fri Nov 06, 2015 7:21 am
by skurudo
usr999 wrote:Не подскажите как реализовать через nginx?
Там тоже скрипты, вот как пример:
http://www.mybbstuff.com/thread-61.html
Re: Блокировка ботов
Posted: Fri Nov 06, 2015 7:21 am
by skurudo
Re: Блокировка ботов
Posted: Fri Nov 06, 2015 12:38 pm
by Deeryo
Можно также использовать ipset модуль для iptables. Пример:
yum install ipset
создать файл /etc/ipset.conf
Code: Select all
create fail2ban hash:ip family inet hashsize 32768 maxelem 65536
добавить блокировку в /etc/sysconfig/iptables
Code: Select all
-A INPUT -p tcp -m set --match-set fail2ban src -j BLACKLISTS
добавить в конец файла /etc/sysconfig/iptables-config (для загрузки ipset перед iptables)
Code: Select all
test `/usr/sbin/ipset --list | wc -l` = 0 && /usr/sbin/ipset --restore < /etc/ipset.conf
создать скрипт /root/scripts/fail2ban.sh
Code: Select all
#!/bin/sh
cd `dirname $0`
GOOGLE="^209\.185\.108|^209\.185\.253|^209\.85\.238|^216\.239\.46|^64\.68\.8|^64\.68\.9[0-2]|^66\.249\.6[4-9]|^66\.249\.7[0-3]|^66\.249\.7[8-9]|^72\.14\.199|^8\.6\.48"
echo "flush fail2ban" > fail2ban.txt
wget -q -O- http://lists.blocklist.de/lists/all.txt | sort | uniq > fail2ban.new
grep -qE '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' fail2ban.new || exit
cat fail2ban.new | grep -Eo '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' | grep -vE "$GOOGLE" | awk '{print "add fail2ban",$1}' >> fail2ban.txt
/usr/sbin/ipset --restore < fail2ban.txt
/usr/sbin/ipset --save > /etc/ipset.conf
rm -f fail2ban.txt fail2ban.new
/usr/sbin/ipset list fail2ban | wc -l
рестартнуть сервис iptables, а скрипт запускать по крону