Если нужно ограничить доступ к сервису из определенных стран (например, через iptables или nginx), потребуется актуальный список IP-сетей по географии.
Готовые списки можно взять отсюда. Например, список сетей России здесь
Каждая строка - отдельная подсеть, удобно парсить скриптами.
🛠 Пример скрипта: создаем IP whitelist через ipset
#!/bin/bash
# Удаляем старый список (если был)
ipset destroy whitelist 2>/dev/null
# Создаем новый
ipset create whitelist hash:net
# Скачиваем нужные страны (пример: некоторые страны СНГ)
wget -O netwhite http://www.ipdeny.com/ipblocks/data/countries/{ru,kz,by,uz,kg,am,az,ge,tj}.zone
# Добавляем подсети в ipset
for ipnet in $(cat netwhite); do
ipset add whitelist $ipnet
done
# Проверка
ipset save whitelist > whitelist-export.txt
echo "IP-сети загружены в ipset"
Теперь подключаем список к iptables:
iptables -A INPUT -m set --match-set whitelist src -p tcp --dport 80 -j ACCEPT
⚠️ Важно: если сетей больше ~2000, не загружайте их напрямую в iptables - используйте ipset, иначе правила займут много памяти и ресурсов.
▪️ Альтернатива - готовые конфиги под разные сервисы
Сервис: https://www.ip2location.com/free/visitor-blocker
Можно сразу получить правила под apache, nginx, iptables, mikrotik и другие.
#iptables #ipset
🧑💻 NetworkAdmin