
• Ce tutoriel explique comment configurer des restrictions géographiques pour l'accès à distance en utilisant les options de pare-feu sous Linux.
• L'objectif est de bloquer ou d'autoriser l'accès en fonction du pays d'origine des connexions, afin de renforcer la sécurité des services distants comme SSH ou un serveur web.

• Un accès root ou sudo.
• Un pare-feu configuré avec iptables ou nftables.
• L'installation du module GeoIP pour iptables ou nftables.
• Une connexion internet pour télécharger les bases de données GeoIP.

• Deux approches seront détaillées :
• Méthode 1 : Utilisation d'iptables avec le module GeoIP.
• Méthode 2 : Utilisation de nftables pour un contrôle plus avancé.

• iptables est largement supporté et fonctionne sur la plupart des distributions Linux.
• nftables offre de meilleures performances et une syntaxe plus moderne.

• iptables avec GeoIP nécessite des mises à jour fréquentes de la base de données.
• nftables peut être plus complexe à configurer pour les débutants.


Installer le module GeoIP pour iptables :
Code:
sudo apt-get install xtables-addons-common
Télécharger et mettre à jour la base de données GeoIP :
Code:
sudo geoipupdate
Bloquer l'accès depuis certains pays (exemple : Chine, Russie, Iran) :
Code:
sudo iptables -A INPUT -m geoip --src-cc CN,RU,IR -j DROP
Sauvegarder les règles :
Code:
sudo netfilter-persistent save

Installer nftables et la prise en charge GeoIP :
Code:
sudo apt-get install nftables geoipupdate
Activer et démarrer nftables :
Code:
sudo systemctl enable nftables && sudo systemctl start nftables
Ajouter une règle GeoIP pour bloquer certains pays :
Code:
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 ; }
nft add rule inet filter input ip saddr @geoip_cn drop
nft add rule inet filter input ip saddr @geoip_ru drop
nft add rule inet filter input ip saddr @geoip_ir drop
Sauvegarder la configuration :
Code:
sudo nft list ruleset > /etc/nftables.conf

• Pour automatiser les mises à jour GeoIP, ajouter un cron job :
Code:
echo "0 3 * * * /usr/bin/geoipupdate" | sudo tee -a /etc/crontab

• Une mauvaise configuration peut bloquer l'accès à distance à votre serveur. Testez toujours les règles avant de les appliquer définitivement.

• Si vous gérez un serveur de production, utilisez des solutions externes comme Cloudflare ou AWS pour filtrer les connexions indésirables.

• Utiliser un VPN avec restrictions géographiques pour limiter les connexions autorisées.

• Linux :
• NFTables GeoIP Filtering
• Recherche Google
• Debian FR

• L'utilisation de GeoIP avec iptables ou nftables permet d'améliorer la sécurité des accès distants en filtrant les connexions indésirables selon leur pays d'origine.
• Il est important de maintenir les bases de données GeoIP à jour et de tester les règles avant leur application en production.