GNU/Linux >> Tutoriels Linux >  >> Linux

Bloquer la plage IP des pays avec GeoIP et iptables

Cet article décrit comment bloquer le trafic provenant d'adresses IP de pays spécifiques, par exemple en utilisant la base de données GeoIP et les iptables Linux®. Vous pouvez également l'utiliser pour empêcher les attaques DOS et DDoS provenant de certains pays.

Prérequis

Assurez-vous que le module GeoIP est installé avec iptables-addons.

GeoIP est une collection d'adresses IP correspondant aux emplacements géographiques mappés avec les adresses IP attribuées pour une organisation, une ville, un état et un pays spécifiques.

iptables est un utilitaire de pare-feu en ligne de commande qui utilise des chaînes de stratégie pour autoriser ou bloquer le trafic. Lorsqu'une connexion tente de s'établir sur votre système, iptables recherche une règle correspondante dans sa liste. S'il n'en trouve pas, il recourt à l'action par défaut.

Aussi, à l'aide d'un module appelé xt_geoip , qui consiste en un iptables extension (xtables-addon ) et le GeoIP base de données, nous pouvons effectuer un filtrage du trafic basé sur le pays pour aider à bloquer ou autoriser le trafic en provenance d'un pays spécifique.

Dépendances de mise à niveau et d'installation

Vous devez mettre à niveau votre système Linux et installer les dépendances xtables-addons requises. Exécutez la commande suivante qui correspond à la distribution que vous exécutez sur votre machine.

Système basé sur Debian (système d'exploitation Debian®, Ubuntu®)

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

Système basé sur 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

Installer xtables-addons

Ensuite, installez xtables-addons sur votre appareil. Téléchargez la dernière archive tar depuis le site officiel du projet xtables-addons en utilisant wget .

Après avoir téléchargé le fichier, extrayez l'archive tar. Ensuite, compilez-le et installez-le sur votre machine.

# 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

Autoriser SeLinux à charger des modules (système basé sur RedHat)

Les distributions Linux basées sur RedHat® (telles que CentOS, RHEL, Fedora) ont selinux activé par défaut, mais vous devez ajuster le selinux politique. Si vous n'exécutez pas les commandes suivantes, seLinux empêche iptables depuis le chargement de xt_geoip module.

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

Installer la base de données GeoIP

Le module nommé xt_geoip est livré avec les xtables-addons extension, qui télécharge le GeoIP base de données de MaxMind® et la convertit en un arrangement binaire reconnu par xt_geoip . Vous devez créer et déplacer vers le chemin requis. Dans cet exemple, le chemin est /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/

Bloquer le trafic vers et depuis un pays

Vous pouvez maintenant utiliser le geoip module avec soit votre programme d'utilitaires de pare-feu, iptables , ou firewalld .

Utiliser Iptables

La section fournit la syntaxe de base pour utiliser iptables et le geoip module pour bloquer le trafic en provenance ou à destination d'un pays. Vous devez utiliser le code ISO3166 à deux lettres à la place du pays. Par exemple, utilisez RU pour la Fédération de Russie, US pour les États-Unis, IN pour l'Inde,BR pour le Brésil, etc.

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

Pour bloquer le trafic entrant en provenance du Canada (CA) et des États-Unis (US), utilisez les iptables suivants commande :

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

Pour bloquer tout le trafic non américain entrant sur votre serveur, exécutez la commande suivante :

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

Pour bloquer le trafic sortant destiné à la Chine (CN), exécutez la commande suivante :

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

Utilisation de firewalld

Si vous utilisez systemd - et ont firewalld en tant que contrôleur frontal pour iptables , vous pouvez utiliser le firewalld suivant commandes pour bloquer le trafic :

# 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. Bloquer les adresses IP et les pays à l'aide de .htaccess

  2. Utiliser iptables avec CentOS 7

  3. Comment envoyer un e-mail avec pièce jointe et corps à partir de Linux

  4. Fail2Ban Howto :Bloquer l'adresse IP à l'aide de Fail2ban et IPTables

  5. Autoriser FTP avec IPTables

Lire et écrire des données de n'importe où avec la redirection dans le terminal Linux

Comment installer Nginx avec Lets encrypt et obtenir A+ de SSLLabs Test

Utilisez votre Chromecast depuis Linux et MacOS avec mkchromecast

CentOS / RHEL :Comment bloquer les ports entrants et sortants à l'aide d'iptables

Des questions sur IPTables et DHCP ?

Iptables - Chaîne Bridge et Forward