Блокуємо доступ з Криму, Донецької та Луганської області
Однострочный скрипт, блокирующий доступ к ресурсу с диапазонов IP адресов Крыма, Донецкой и Луганской области.
Запускать из-под рута:
wget `curl -s https://db-ip.com/db/download/city | grep -E -o 'http://download.db-ip.com/free/dbip-city-20[0-9]{2}-[0-9]{2}.csv.gz'`&& gunzip dbip-city-*.csv.gz && mv dbip-city-* dbip-city-csv && for IP in $(cat dbip-city-csv | grep -E -i "'Crimea|Lugansk|Luhans|Donetsk|Донецьк|Донецк|Крим|Крым|Луганс'" | sed 's/","/-/' | cut -d ',' -f 1 | sed 's/"//' | sed 's/"//' | grep -v ffff); do iptables -A INPUT -m iprange --src-range $IP -j DROP; done && rm -f dbip-city-csv*
Ну и, если надо, по частям:
Скачиваем базу
wget `curl -s https://db-ip.com/db/download/city | grep -E -o 'http://download.db-ip.com/free/dbip-city-20[0-9]{2}-[0-9]{2}.csv.gz'`
Распаковываем
gunzip dbip-city-*.csv.gz
Переименовываем
mv dbip-city-* dbip-city-csv
Читаем список и блокируем с помощью iptables
for IP in $(cat dbip-city-csv | grep -E -i "'Crimea|Lugansk|Luhans|Donetsk|Донецьк|Донецк|Крим|Крым|Луганс'" | sed 's/","/-/' | cut -d ',' -f 1 | sed 's/"//' | sed 's/"//' | grep -v ffff); do iptables -A INPUT -m iprange --src-range $IP -j DROP; done
Чистим за собой
rm -f dbip-city-csv*