GNU/Linux >> Linux Esercitazione >  >> Linux

Blocca l'intervallo IP dai paesi con GeoIP e iptables

Questo articolo descrive come bloccare il traffico proveniente da IP di paesi specifici, ad esempio utilizzando il database GeoIP e Linux® iptables. Puoi anche usarlo per prevenire attacchi DOS e DDoS provenienti da determinati paesi.

Prerequisiti

Assicurati che il modulo GeoIP sia installato con iptables-addons.

GeoIP è una raccolta di indirizzi IP corrispondenti alle posizioni geografiche mappate con gli indirizzi IP allocati per un'organizzazione, una città, uno stato e un paese specifici.

iptables è un'utilità firewall della riga di comando che utilizza catene di criteri per consentire o bloccare il traffico. Quando una connessione tenta di stabilirsi sul tuo sistema, iptables cerca una regola di corrispondenza nel suo elenco. Se non lo trova, ricorre all'azione predefinita.

Inoltre, con l'aiuto di un modulo chiamato xt_geoip , che consiste in un iptables estensione (xtables-addon ) e il GeoIP database, possiamo eseguire il filtraggio del traffico in base al paese per aiutare a bloccare o consentire il traffico da un paese specifico.

Aggiorna e installa le dipendenze

Devi aggiornare il tuo sistema Linux e installare le dipendenze xtables-addons richieste. Esegui il comando seguente che corrisponde alla distribuzione che stai eseguendo nella tua macchina.

Sistema basato su Debian (sistema operativo Debian®, Ubuntu®)

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

Sistema basato su 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

Installa xtables-addons

Quindi, installa xtables-addons sulla tua macchina. Scarica l'ultimo tarball dal sito ufficiale del progetto xtables-addons usando wget .

Dopo aver scaricato il file, estrai il tarball. Quindi compilalo e installalo nella tua macchina.

# 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

Consenti a SeLinux di caricare moduli (sistema basato su RedHat)

Le distribuzioni Linux basate su RedHat® (come CentOS, RHEL, Fedora) hanno selinux abilitato per impostazione predefinita, ma devi modificare selinux politica. Se non esegui i seguenti comandi, seLinux impedisce iptables dal caricamento di xt_geoip modulo.

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

Installa il database GeoIP

Il modulo chiamato xt_geoip viene fornito con gli componenti aggiuntivi di xtables estensione, che scarica il GeoIP databaseda MaxMind® e lo converte in una disposizione binaria riconosciuta da xt_geoip . Devi costruire e spostarti nel percorso richiesto. In questo esempio, il percorso è /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/

Blocca il traffico da e verso un paese

Ora puoi usare il geoip modulo con il tuo programma di utilità del firewall, iptables o firewalld .

Utilizzo di Iptables

La sezione fornisce la sintassi di base per l'utilizzo di iptables e il geoip modulo per bloccare il traffico proveniente o destinato a un Paese. È necessario utilizzare il codice ISO3166 di due lettere al posto del paese. Ad esempio, usa RU per la Federazione Russa, US per gli Stati Uniti, IN per l'India,BR per il Brasile e così via.

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

Per bloccare il traffico in entrata dal Canada (CA) e dagli Stati Uniti (USA), utilizza il seguente iptables comando:

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

Per bloccare tutto il traffico in entrata non statunitense sul tuo server, esegui il comando seguente:

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

Per bloccare il traffico in uscita destinato alla Cina (CN), eseguire il comando seguente:

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

Utilizzo di firewalld

Se stai eseguendo systemd sistema basato su firewalld come controller frontend per iptables , puoi utilizzare il seguente firewalld comandi per bloccare il traffico:

# 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. Blocco host blacklist e iptables

  2. Un semplice script firewall iptables per bloccare tutte le porte tranne la porta 80 e fornire la porta 22 a determinati IP

  3. Differenza tra dimensione del blocco e dimensione del cluster?

  4. Blocca indirizzi IP e Paesi utilizzando .htaccess

  5. Come inviare un'e-mail con allegato e corpo da Linux

Come installare Nginx con Lets crittografa e ottieni A+ da SSLLabs Test

Blocco di tutto il traffico dai singoli paesi utilizzando IPSet e IPTables

Usa il tuo Chromecast da Linux e MacOS con mkchromecast

CentOS / RHEL:come bloccare le porte in entrata e in uscita usando iptables

Consentire FTP con IPTables

Iptables - Catena Bridge e Forward