Иногда есть необходимость доступа на корпоративный сервер по внешнему IP с домашних компьютеров, ноутбуков, планшетов и т.д. В этом случае чтобы обеспечить безопасность было бы правильно настроить везде VPN-туннели. Но это бывает очень проблематично. В этом случае можно пойти другим путем. Можно защитить сервер с помощью fail2ban и блокировкой по IP стран. Про настройку fail2ban есть куча статей в интернета, а про блокировку по странам не так уж много. В данной статье будет описано как заблокировать вход со всех стран, кроме России.
1) Для начала установим ipset
yum install ipset kmod-ipset
2) Ищем списки сетей в Google фразой cidr country list. На момент написания статьи рабочая ссылка тут http://www.ipdeny.com/ipblocks/
Для России нужно выбрать соответственно Russian Federation, далее нажимает download zone file, содержимое страницы нужно скопировать и вставить в файлик например Russia.
3) Создаем скрипт для импорта IP-адресов в ipset:
#!/bin/bash
ipset create Russia nethash
while read IP; do
ipset add Russia $IP
done < Russia
Кладем скрипт в одну папку с файлом Russia и запускаем.
4) Добавляем в iptables правило, которое будет блокировать все страны кроме России:
iptables -A INPUT -m set ! --match-set Russia src -j DROP
Обваливаются все соединения и к серверу не возможно подключится.
Проверьте корректность выполнения команды:
iptables -A INPUT -m set ! —match-set Russia src -j DROP
Также стоит проверить содержимое ipseta командой:
ipset list Russia
Добрый вечер,Сергей!
Хотел попробовать Ваше решение блокировки всех кроме России,но к сожалению ссылка (https://www.countryipblocks.net/country_selection.php)
не открывается.Что посоветуете?
С уважением,Давид
Ищите в гугле по фразе:
cidr country list
Третья ссылка на текущий момент:
http://www.ipdeny.com/ipblocks/
Статью скорректировал.
может еще не поздно)
curl -O https://www.ipdeny.com/ipblocks/data/countries/{ru}.zone
#curl -O https://www.ipdeny.com/ipblocks/data/countries/{ru}.zone
# после скачивания зоны, не забудь добавить ip адреса локалки, впн и ip своего провайдера в ru.zone
iptables -v -I INPUT -m set ! —match-set Russia src -j DROP
правило должно стоять самым первым..