Как заблокировать IP-адреса из стран, используя Iptables Geoip Addons

3Мы узнаем, как мы можем заблокировать трафик, полученный из IP-адресов конкретной страны, используя базу данных GeoIP и linux iptables.

Iptables — это утилита командной строки для настройки брандмауэра ядра Linux, который реализован в проекте Netfilter.

В то время как GeoIP представляет собой набор IP-адресов, соответствующих географическим местоположениям, где географическое местоположение сопоставляется с IP-адресами, выделенными в этой конкретной организации, городе, штате и странах.

Географические координаты в базе данных GeoIP часто находятся вблизи центра населения, поэтому его нельзя использовать для идентификации конкретного адреса или домашнего субъекта.

И с помощью модуля под названием xt_geoip, состоящего из расширения xtables-addon и базы данных GeoIP, мы будем выполнять фильтрацию трафика на уровне страны, которая помогает нам блокировать или разрешать трафик из определенной страны.

Обновление и установка зависимостей

 

Прежде всего, нам нужно будет обновить нашу Linux-систему, а затем мы перейдем к установке зависимостей, необходимых для xtables-addons.

Чтобы сделать это, мы выполним следующие команды, соответствующие дистрибутивам, запущенным на нашей машине.

Система на базе Debian (Debian, Ubuntu, Linux Mint)

# apt-get update && apt-get upgrade
# apt-get install iptables-dev xtables-addons-common libtext-csv-xs-perl pkg-config 

Установка Xtables-addons

После обновления нашей системы и установки зависимостей мы установим xtables-addons на нашем компьютере.

Для этого мы загрузим последний архив с официального сайта проекта xtables-addons с помощью wget.

Как только он будет загружен, мы извлечем архив, затем скомпилируем и установим его на нашем компьютере.

# wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons-2.13.tar.xz
# tar xf xtables-addons-2.13.tar.xz
# cd xtables-addons-2.13
# ./configure
# make
# make install

Разрешить SeLinux загружать модули (система на основе RedHat)

Как и дистрибутивы Linux, основанные на RedHat, т.е. CentOS, RHEL, Fedora по умолчанию отключила selinux, нам необходимо настроить политику selinux следующим образом. В противном случае SeLinux не позволит iptables загружать модуль xt_geoip.

# chcon -vR --user = system_u / lib / modules / $ (uname -r) / extra / *. ko
# chcon -vR --type = lib_t /lib64/xtables/*.so 

Установка базы данных GeoIP

Затем мы запустим модуль с именем xt_geoip, который поставляется с расширением xtables-addons, которое загружает базу данных GeoIP из MaxMind и преобразует ее в двоичную форму, распознанную xt_geoip.

Как только он будет загружен, мы соберем его и переместим по требуемоему пути xt_geoip, то есть / usr / share / xt_geoip /.

 

# cd geoip
# ./xt_geoip_dl
# ./xt_geoip_build GeoIPCountryWhois.csv
# mkdir -p / usr / share / xt_geoip /
# cp -r {BE, LE} / usr / share / xt_geoip /

Блокировать трафик в страну и из нее


Если все пойдет так, как ожидалось, теперь мы сможем использовать программу iptables для межсетевых экранов для использования модуля geoip.
Использование IptablesВот основной синтаксис для использования iptables с модулем geoip, чтобы блокировать трафик, исходящий из страны или предназначенный для нее. Здесь нам нужно использовать двухбуквенный код ISO3166 вместо страны, например, US для США, IE для Ирландии, IN для Индии, CN для Китая и так далее.

# iptables -m geoip --src-cc страна [, страна ...] --dst-cc страна [, страна ...]

Теперь, если мы хотим заблокировать входящий трафик из Индии (IN) и Соединенных Штатов (США), следует выполнить следующую команду iptables.

 # iptables -I INPUT -m geoip --src-cc IN, US -j DROP

Если мы хотим заблокировать весь входящий неамериканский трафик на нашем сервере, нам нужно выполнить следующее.

 # iptables -I INPUT -m geoip ! --src-cc US -j DROP
Пример тест пинга неамериканской сети.

Если мы хотим заблокировать исходящий трафик, предназначенный для Индии (IN), нам нужно запустить следующую команду.

# iptables -A OUTPUT -m geoip -dst-cc IN -j DROP 

Использование firewalld

Если мы запускаем систему на базе systemd, и у нас есть firewalld в качестве внешнего контроллера для iptables, мы также можем использовать firewalld для вышеуказанного задания соответственно.

 

 # firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip --src-cc IN, UN -j DROP
# firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip! --src-cc US -j DROP

# firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -m geoip --dst-cc IN -j DROP

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

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

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