IPTABLES. Блокировка по GeoIP — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
Строка 9: | Строка 9: | ||
Загружаем и устанавливаем Xtables-addons | Загружаем и устанавливаем Xtables-addons | ||
− | wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons- | + | wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons-3.23.tar.xz |
− | tar xf xtables-addons- | + | tar xf xtables-addons-3.23.tar.xz |
− | cd xtables-addons-3. | + | cd xtables-addons-3.23 |
./configure | ./configure | ||
make | make | ||
Строка 18: | Строка 18: | ||
Установка базы данных GeoIP<br> | Установка базы данных GeoIP<br> | ||
− | Затем мы запускаем модуль с именем xt_geoip, который поставляется с расширением xtables-addons, которое загружает базу данных GeoIP из MaxMind и преобразует ее в двоичную форму, распознаваемую xt_geoip. Как только он будет загружен, собираем его и | + | Затем мы запускаем модуль с именем xt_geoip, который поставляется с расширением xtables-addons, которое загружает базу данных GeoIP из MaxMind и преобразует ее в двоичную форму, распознаваемую xt_geoip. Как только он будет загружен, собираем его и копируем всё в <code>/usr/share/xt_geoip</code> |
+ | cd geoip | ||
+ | ./xt_geoip_dl | ||
+ | ./xt_geoip_build GeoIPCountryWhois.csv | ||
+ | mkdir -p /usr/share/xt_geoip/ | ||
+ | cp * /usr/share/xt_geoip/ | ||
+ | |||
+ | |||
+ | Блокируем трафик в страну или из нее | ||
+ | iptables -I INPUT/-A OUTPUT-m geoip --src-cc страна [, страна ...] --dst-cc страна [, страна ...] -j DROP | ||
+ | |||
+ | |||
+ | Блокируем входящий трафик из Китая, Индии, Вьетнама | ||
+ | iptables -I INPUT -m geoip --src-cc CN,IN,VN -j DROP | ||
+ | |||
+ | |||
+ | Блокируем весь входящий не российский траффик | ||
+ | iptables -I INPUT -m geoip ! --src-cc RU -j DROP | ||
+ | |||
+ | |||
+ | Блокируем весь исходящий траффик в Индию | ||
+ | iptables -A OUTPUT -m geoip -dst-cc IN -j DROP | ||
+ | |||
+ | |||
+ | Немножко про firewalld<br> | ||
+ | Если мы запускаем систему на базе systemd, и у нас есть firewalld в качестве внешнего контроллера для iptables, также можем использовать firewalld для вышеуказанного задания соответственно | ||
+ | firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip --src-cc CN,IN,VN -j DROP | ||
+ | firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip ! --src-cc RU -j DROP | ||
+ | firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -m geoip --dst-cc IN -j DROP |
Текущая версия на 01:10, 7 апреля 2023
Задача заблокировать IP-адреса из Вьетнама, Китая и Индии используя Iptables Geoip Addons
С помощью модуля под названием xt_geoip, состоящего из расширения xtables-addon и базы данных GeoIP, будем выполнять фильтрацию трафика на уровне страны.
Устанавливаем нужные пакеты
apt install xtables-addons-common libtext-csv-xs-perl pkg-config libxtables-dev libip6tc-dev libip4tc-dev
Загружаем и устанавливаем Xtables-addons
wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons-3.23.tar.xz tar xf xtables-addons-3.23.tar.xz cd xtables-addons-3.23 ./configure make make install
Установка базы данных GeoIP
Затем мы запускаем модуль с именем xt_geoip, который поставляется с расширением xtables-addons, которое загружает базу данных GeoIP из MaxMind и преобразует ее в двоичную форму, распознаваемую xt_geoip. Как только он будет загружен, собираем его и копируем всё в /usr/share/xt_geoip
cd geoip ./xt_geoip_dl ./xt_geoip_build GeoIPCountryWhois.csv mkdir -p /usr/share/xt_geoip/ cp * /usr/share/xt_geoip/
Блокируем трафик в страну или из нее
iptables -I INPUT/-A OUTPUT-m geoip --src-cc страна [, страна ...] --dst-cc страна [, страна ...] -j DROP
Блокируем входящий трафик из Китая, Индии, Вьетнама
iptables -I INPUT -m geoip --src-cc CN,IN,VN -j DROP
Блокируем весь входящий не российский траффик
iptables -I INPUT -m geoip ! --src-cc RU -j DROP
Блокируем весь исходящий траффик в Индию
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 CN,IN,VN -j DROP firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip ! --src-cc RU -j DROP firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -m geoip --dst-cc IN -j DROP