Привет по данному мануалу поставил на debian module-assistant xtables-addons-source ipset
Далее создал правила:
ipset -N dropip iphash (сейчас тут пусто)
ipset -N dropnet nethash (сейчас тут пусто)
ipset -N chinasubnet nethash
ipset -N indiasubnet nethash
После выполнил:
iptables -A INPUT -m set --match-set dropip src -j DROP
iptables -A INPUT -m set --match-set dropnet dst -j DROP
iptables -A INPUT -m set --match-set chinasubnet dst -j DROP
iptables -A INPUT -m set --match-set indiasubnet dst -j DROP
Затем скачал список всех ip индии и китая в формате CIDR и выполнил:
for i in $( cat /home/china.txt ) ; do ipset -A chinasubnet $i ; done
for i in $( cat /home/india.txt ) ; do ipset -A indiasubnet $i ; done
Сохранил правила:
ipset -S > /etc/ipset/ipset-save
и записал в /etc/rc.local
cat /etc/ipset/ipset-save | /usr/sbin/ipset -R
Перезагрузил впс подстраховавшись:
crontab -e
*/5 * * * * ipset -F
sudo shutdown -r now
Таким образом хотел отсечь нежелательный траффик. После ребута убрал ipset -F и проверил список правил ipset -L правила загружались.
Спустя какое то время обнаружил что боты все равно лезут, это было видно по статистике одного скрипта. После этого сделал проверку, ip бота перевел в CIDR и проверил: ipset -L | grep «xxx.xxx.xxx.xxx/xx» - и несколько раз убеждался что такая запись уже присутствует, то есть не работают правила почему то.
На сервере стоит nginx + apache2, ставил их не я а сапорт хостинга. Подскажите пожалуйста:
1) Как починить? Хотел бы блочить траффик из данных стран на веб сервер.
2) Как фильтровать не только запросы на 80,443 а полностью отрубить эти страны на всех портах?(чтобы даже пингануть не могли)