Linux
Sécurité
Iptables
Configuration des tables et chaînes du pare-feu intégré
Pour : Linux
Le pare-feu Iptables ce compose de plusieurs tables et chaînes pour la configuration.
Les paramètres permettent d'autoriser ou de bloquer les paquets entrant, sortant et traversant votre machine.
Il existe 4 tables dans Iptables:
La première est la table par défault, les nouvelles règles y sont ajouté lorsque aucune table n'a été spécifié.
filter => L'emplacement prévu pour ajouter des filtres sur les paquets entrant, sortant et traversant.
nat => Permet de faire la traduction d'adresse réseau (NAT) sur différents paquets.
mangle => Permet de modifier des paquets en changeant les champs de TOS (type de service), et d'autres ...
L'utilisation de la table filter marche de la même façon que la table par défault.
Syntaxe:
iptables [-t table] [Action] [Options Valeur] [Cible]
# iptables -L 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
# iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
# iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
# iptables -L -v -n Chain INPUT (policy ACCEPT 8 packets, 608 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
# iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
# iptables -L -v -n Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 6 456 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state ESTABLISHED
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:www ACCEPT tcp -- anywhere anywhere tcp dpt:ftp ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT all -- anywhere anywhere state ESTABLISHED ...
iptables -P [chaine] [politique]
iptables -P INPUT DROP
# iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:www ACCEPT tcp -- anywhere anywhere tcp dpt:ftp ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT all -- anywhere anywhere state ESTABLISHED
# iptables -I INPUT -i lo -j ACCEPT
# iptables -L --line-numbers Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT tcp -- anywhere anywhere tcp dpt:www 2 ACCEPT tcp -- anywhere anywhere tcp dpt:ftp 3 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh 4 ACCEPT all -- anywhere anywhere state ESTABLISHED
# iptables -I INPUT 3 -p icmp -j ACCEPT
# iptables -L --line-numbers Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT tcp -- anywhere anywhere tcp dpt:www 2 ACCEPT tcp -- anywhere anywhere tcp dpt:ftp 3 ACCEPT icmp -- anywhere anywhere 4 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh 5 ACCEPT all -- anywhere anywhere state ESTABLISHED
# iptables -L --line-numbers Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT tcp -- anywhere anywhere tcp dpt:www 2 ACCEPT tcp -- anywhere anywhere tcp dpt:ftp 3 ACCEPT icmp -- anywhere anywhere 4 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh 5 ACCEPT all -- anywhere anywhere state ESTABLISHED
iptables -D [chaine] [numéro_de_ligne]
iptables -D INPUT 4
iptables -A FORWARD -i eth0 -j ACCEPT iptables -A FORWARD -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -F iptables -X