Cet article explique comment utiliser les tables IP pour un pare-feu simple et décrit le processus d'ouverture de trous dans votre pare-feu vers les ports nécessaires. Une table IP est un pare-feu et un outil de mise en réseau disponible pour toutes les distributions Linux et fonctionne en analysant les paquets au niveau du noyau au fur et à mesure qu'ils sont reçus.
Pour une liste complète des commandes, paramètres et autres options des tables IP, consultez la page MAN et le guide pratique des tables IP.
Ensemble de règles de base
La commande pour lister les règles actuelles est :
sudo iptables --list
La sortie par défaut est :
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Lire l'ensemble de règles
Dans une installation par défaut, vous voyez trois Chaînes prédéfinies , une liste de règles, qui prend en charge les trois activités principales :le trafic entrant (INPUT), le trafic transféré (FORWARD) et le trafic sortant (OUTPUT). La chose la plus importante à retenir du tableau ci-dessus est que l'ensemble de règles par défaut pour toutes les politiques est défini sur ACCEPTER .
Politiques
Les politiques disponibles et les autres options sont nombreuses. Si vous voulez en savoir plus à leur sujet, consultez la page de manuel d'IPtables. Cet article ne couvre que les règles les plus courantes :
-
Accepter transmet explicitement le trafic tant qu'aucune autre règle cible ne s'applique.
-
Refuser renvoie un paquet d'erreur en réponse au paquet correspondant. Sinon, cela équivaut à DROP il s'agit donc d'une CIBLE terminale , mettant fin à la traversée des règles.
-
Laisser tomber interrompt une connexion à un hôte sans aucune communication à moins qu'une règle cible ne s'applique.
Options disponibles
Page MAN IPtables :https://linux.die.net/man/8/iptables
Les options reconnues par iptables
venez dans les groupes suivants :
- Commandes spécifier une action à effectuer.
- Paramètres définir des spécifications de règles pour les commandes utilisées.
- Autres options que vous spécifiez, le cas échéant, pour les commandes utilisées.
Commandes de pare-feu simples
Autoriser les connexions déjà connectées à votre serveur.
sudo iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Autoriser les connexions sur ServiceNet. Requis par d'autres produits Rackspace Cloud tels que Cloud Backup et Cloud Monitoring.
sudo iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
Autoriser les connexions à SSH. Vous pouvez également utiliser cette commande pour effectuer des personnalisations. La commande suivante autorise toutes les tentatives de connexion TCP au port SSH 22
.
sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
Autorisez uniquement les connexions provenant d'un certain sous-réseau IP en utilisant la notation CIDR (ClasslessInter Domain Routing). Dans cet exemple, nous verrouillons sur toute adresse IP comprise entre 192.168.1.0 et 192.168.1.255.
sudo iptables -I INPUT 1 -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
Autoriser les connexions à HTTP 80
ou HTTPS 443
depuis n'importe quelle connexion.
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT
Autoriser les connexions pour les serveurs FTP sur le port 21
.
sudo iptables -I INPUT 1 -p tcp --dport 21 -j ACCEPT
Modification de la politique par défaut pour refuser toutes les connexions, seules les connexions autorisées seront acceptées.
sudo iptables -P INPUT DROP
IMPORTANT :Exécutez cette règle après avoir configuré vos règles d'accès pour autoriser les connexions SSH entrantes.
Liste des ports communs
À l'aide des commandes précédentes, mélangez et associez les options de la liste suivante de ports communs pour créer des règles pour tout serveur en cours d'exécution dont vous disposez.
Enregistrer votre ensemble de règles
Si le serveur redémarre pour une raison quelconque ou si vous redémarrez IPTables, les modifications seront perdues car les modifications sont stockées dans la mémoire volatile. Les commandes suivantes créent un fichier texte brut, /etc/sysconfig/iptables , avec une syntaxe lisible par l'homme. Toutes les modifications apportées à ce fichier sont actives au redémarrage d'iptables.
-
Pour CentOS et Fedora
/etc/init.d/iptables save
-
Pour le système d'exploitation Ubuntu
iptables-save > /etc/iptables.rules
-
Pour toutes les autres distributions
iptables-save > /etc/sysconfig/iptables
Résumé
Cet article vous montre comment créer un pare-feu simple pour protéger votre serveur des attaques de base. Gardez à l'esprit qu'IPTables est un outil puissant qui aurait besoin d'un livre pour l'explorer pleinement. Si vous avez besoin d'aide pour créer plus de règles, consultez Générateur de pare-feu facile pour IPTables.
Références et liens utiles
- Tutoriel Ubuntu IPtables
- Man IPtables