Блокировка стран через ipset

Иногда есть необходимость доступа на корпоративный сервер по внешнему 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

Запись опубликована в рубрике Без рубрики. Добавьте в закладки постоянную ссылку.

6 комментариев на «Блокировка стран через ipset»

  1. Виталий говорит:

    Обваливаются все соединения и к серверу не возможно подключится.

    • admin говорит:

      Проверьте корректность выполнения команды:
      iptables -A INPUT -m set ! —match-set Russia src -j DROP
      Также стоит проверить содержимое ipseta командой:
      ipset list Russia

  2. Давид говорит:

    Добрый вечер,Сергей!
    Хотел попробовать Ваше решение блокировки всех кроме России,но к сожалению ссылка (https://www.countryipblocks.net/country_selection.php)
    не открывается.Что посоветуете?

    С уважением,Давид

  3. S говорит:

    #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
    правило должно стоять самым первым..

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *