GNU/Linux >> Znalost Linux >  >> Linux

Blokovat rozsah IP ze zemí s GeoIP a iptables

Tento článek popisuje, jak blokovat provoz pocházející z IP adres konkrétní země, například pomocí databáze GeoIP a Linux® iptables. Můžete jej také použít k zabránění útokům DOS a DDoS pocházejícím z určitých zemí.

Předpoklady

Ujistěte se, že je modul GeoIP nainstalován s iptables-addons.

GeoIP je sbírka IP adres odpovídajících zeměpisným polohám mapovaným s IP adresami přidělenými pro konkrétní organizaci, město, stát a zemi.

iptables je nástroj brány firewall příkazového řádku, který používá řetězce zásad k povolení nebo blokování provozu. Když se připojení pokusí navázat na vašem systému, iptables hledá ve svém seznamu odpovídající pravidlo. Pokud žádný nenajde, uchýlí se k výchozí akci.

Také pomocí modulu s názvem xt_geoip , který se skládá z iptables rozšíření (xtables-addon ) a GeoIP databáze, můžeme provádět filtrování provozu podle země, abychom pomohli zablokovat nebo povolit provoz z konkrétní země.

Upgrade a instalace závislostí

Musíte upgradovat svůj systém Linux a nainstalovat požadované závislosti xtables-addons. Spusťte následující příkaz, který odpovídá distribuci, kterou na svém počítači používáte.

Systém založený na Debianu (operační systém Debian®, Ubuntu®)

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

Systém založený na RedHat (CentOS®, RHEL®, Fedora®)

yum update # yum install gcc-c++ make automake kernel-devel-`uname -r` wget unzip iptables-devel perl-Text-CSV_XS# make

Instalovat xtables-addons

Dále nainstalujte xtables-addons na vašem stroji. Stáhněte si nejnovější tarball z oficiální stránky projektu xtables-addons pomocí wget .

Po stažení souboru extrahujte tarball. Poté jej zkompilujte a nainstalujte do svého počítače.

# 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

Povolit SeLinuxu načítání modulů (systém založený na RedHat)

Linuxové distribuce založené na RedHat® (jako CentOS, RHEL, Fedora) mají selinux ve výchozím nastavení povoleno, ale musíte upravit selinux politika. Pokud nespustíte následující příkazy, seLinux zabraňuje iptables z načtení xt_geoip modul.

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

Instalace databáze GeoIP

Modul s názvem xt_geoip přichází s doplňky xtables rozšíření, které stáhne GeoIP databáze z MaxMind® a převede ji do binárního uspořádání, které rozpozná xt_geoip . Musíte postavit a přesunout se na požadovanou cestu. V tomto příkladu je cesta /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/

Blokovat provoz do a ze země

Nyní můžete použít geoip modul s vaším programem firewallu, iptables nebo firewalld .

Použití Iptables

Tato část poskytuje základní syntaxi pro použití iptables a geoip modul pro blokování provozu pocházejícího z nebo směřujícího do země. Místo země musíte použít dvoupísmenný kód ISO3166. Použijte například RU pro Ruskou federaci, US pro Spojené státy, IN pro Indii,BR pro Brazílii a tak dále.

# iptables -m geoip --src-cc country[,country...] --dst-cc country[,country...]

Chcete-li blokovat příchozí provoz z Kanady (CA) a Spojených států (USA), použijte následující iptables příkaz:

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

Chcete-li na svém serveru zablokovat veškerý příchozí provoz mimo USA, spusťte následující příkaz:

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

Chcete-li zablokovat odchozí provoz směřující do Číny (CN), spusťte následující příkaz:

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

Používání brány firewall

Pokud používáte systemd -založený systém a mají firewalld jako frontendový ovladač pro iptables ,můžete použít následující firewalld příkazy k blokování provozu:

# firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip --src-cc CA,US -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 CN -j DROP

Linux
  1. Čtěte a zapisujte data odkudkoli s přesměrováním v terminálu Linux

  2. Blokování černé listiny hostitelů a iptables

  3. Jednoduchý skript brány firewall iptables pro blokování všech portů kromě portu 80 a přidělování portu 22 určitým IP

  1. Rozdíl mezi velikostí bloku a velikostí clusteru?

  2. Iptables a transparentní proxy?

  3. Bash Auto_completion s Xubuntu a Xrdp z Windows?

  1. Blokujte IP adresy a země pomocí .htaccess

  2. Použijte iptables s CentOS 7

  3. Fail2Ban Howto:Blokování IP adresy pomocí Fail2ban a IPTables