Блокуємо доступ з Криму, Донецької та Луганської області

Розділи: 

Однострочный скрипт, блокирующий доступ к ресурсу с диапазонов 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*