IPTABLES. Блокировка по GeoIP — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
 
Строка 9: Строка 9:
  
 
Загружаем и устанавливаем Xtables-addons
 
Загружаем и устанавливаем Xtables-addons
  wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons-2.13.tar.xz
+
  wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons-3.23.tar.xz
  tar xf xtables-addons-2.13.tar.xz
+
  tar xf xtables-addons-3.23.tar.xz
  cd xtables-addons-3.13
+
  cd xtables-addons-3.23
 
  ./configure
 
  ./configure
 
  make
 
  make
Строка 18: Строка 18:
  
 
Установка базы данных GeoIP<br>
 
Установка базы данных GeoIP<br>
Затем мы запускаем модуль с именем xt_geoip, который поставляется с расширением xtables-addons, которое загружает базу данных GeoIP из MaxMind и преобразует ее в двоичную форму, распознаваемую xt_geoip. Как только он будет загружен, собираем его и перемещаем в <code>/usr/share/xt_geoip</code>
+
Затем мы запускаем модуль с именем 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