Outils pour utilisateurs

Outils du site


informatique:linux:iptables

Ceci est une ancienne révision du document !


IPTABLES

Quelques commandes

Pour filter les flux entrant et le transfert

iptables -P INPUT DROP
iptables -P FORWARD DROP

Pour autoriser la machine à sortir :

iptables -P OUTPUT ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Pour ouvrir HTTP sur l'interface eth1 pour tout le monde :

iptables -A INPUT -i eth1 -p tcp --dport http -j ACCEPT 

Pour ouvrir plusieurs ports à tout le monde sur eth1 :

iptables -A INPUT -i eth1 -p tcp -m multiport --dport ssh,http,ftp -j ACCEPT

Pour autoriser uniquement 192.168.0.1 à se connecter sur le port entrant 8080 de eth1 :

iptables -A INPUT -s 192.168.0.1 -i eth1 -p tcp --dport 8080 -j ACCEPT

Pour autoriser uniquement 192.168.0.1 à se connecter sur la plage de port comprise entre 32000 et 32900 :

iptables -A INPUT -s 192.168.0.1 -i eth1 -p udp --dport 32000:32900 -j ACCEPT

Configuration

On va créer ici le script iptables-start.sh avec le contenu suivant :

######### purges des regles #########
iptables -F
iptables -X

######### Regles de filtrage globale ######
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

######## Creation de la chaine de filtrage nommé RH-Firewall-1-INPUT ######
iptables -N RH-Firewall-1-INPUT
 
# Les INPUT et FORWARD sont filtrees par la chaine unique RH-Firewall-1-INPUT
iptables -A INPUT -j RH-Firewall-1-INPUT
iptables -A FORWARD -j RH-Firewall-1-INPUT

######## Creation de la chaine de filtrage nommé LOG_DROP pour logger les DROP #####
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-level debug --log-prefix '[IPTABLES DROP] : '

######## Ouverture des ports dynamiques en entrée pour les connexions effectuées en sortie #########
iptables -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

######## Ouverture des ports ############
iptables -A RH-Firewall-1-INPUT -j LOG_DROP
iptables -A RH-Firewall-1-INPUT -i lo -j ACCEPT
iptables -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

Par défaut les logs iptables seront dans /var/log/messages

Faire du routage

Pour faire de votre linux une passerelle FireWall, il faut activer l'ip_forward au niveau du noyau puis d'ajouter une règle de postrouting à iptables :

Activer l'ip forwarding au niveau du kernel :

sysctl -w net.ipv4.ip_forward=1

:!: Penser à la mettre dans /etc/sysctl.conf pour l'activer au démarrage

Ajouter la règle de postrouting eth1 étant la carte réseau connecté à l'extérieur.

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Si le FORWARD est bloqué par défaut ajouter les deux règles suivantes pour activer le routage entre les deux cartes réseaux eth0 et eth1:

iptables -t filter -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -t filter -A FORWARD -i eth1 -o eth0 -j ACCEPT
informatique/linux/iptables.1236960300.txt.gz · Dernière modification: 2018/09/06 18:59 (modification externe)