Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:iptables-pare-feu-pour-une-passerelle [16/11/2014 11:24] Hypathie [Le script de la passerelle] |
doc:reseau:iptables-pare-feu-pour-une-passerelle [24/09/2015 17:10] milou [iptables: un pare-feu pour une passerelle] |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
* Niveau requis : {{tag> avisé}} | * Niveau requis : {{tag> avisé}} | ||
* Commentaires : Fignoler le routage, installer un pare-feu sur une passerelle debian. | * Commentaires : Fignoler le routage, installer un pare-feu sur une passerelle debian. | ||
- | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | + | * Suivi : {{tag>à-tester}} |
- | * Suivi : {{tag>à-tester à-placer}} | + | |
* Création par [[user>Hypathie]] 14/10/2014 | * Création par [[user>Hypathie]] 14/10/2014 | ||
* Testé par <...> le <...> FIXME | * Testé par <...> le <...> FIXME | ||
Ligne 15: | Ligne 14: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | Pour ce qui concerne iptables, ce wiki prend la suite du wiki [[http://wiki.debian-facile.org/atelier:chantier:iptables-pare-feu-pour-un-client|iptables-pare-feu-pour-un-client]], où les connaissances de base sur les commandes iptables ont été abordées.\\ | + | Pour ce qui concerne iptables, ce wiki prend la suite du wiki [[doc:reseau:iptables-pare-feu-pour-un-client?&#sauvegarder-ses-reglest|iptables-pare-feu-pour-un-client]], où les connaissances de base sur les commandes iptables ont été abordées.\\ |
Pour ce qui concerne les exemplifications qui vont suivre, je considérerai qu'une passerelle a été mise en place et que les commandes de base d'iptables sont connues. | Pour ce qui concerne les exemplifications qui vont suivre, je considérerai qu'une passerelle a été mise en place et que les commandes de base d'iptables sont connues. | ||
Ligne 376: | Ligne 375: | ||
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p\ | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p\ | ||
- | tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | tcp -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p\ | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p\ | ||
- | tcp -m state --state ESTABLISHED,RELATED -j ACCEPT | + | tcp -m state --state ESTABLISHED -j ACCEPT |
</code> | </code> | ||
Ligne 390: | Ligne 389: | ||
Chain FORWARD (policy DROP) | Chain FORWARD (policy DROP) | ||
target prot opt source destination | target prot opt source destination | ||
- | ACCEPT tcp -- 192.168.1.0/24 anywhere state NEW,RELATED,ESTABLISHED | + | ACCEPT tcp -- 192.168.1.0/24 anywhere state NEW,ESTABLISHED |
- | ACCEPT tcp -- anywhere 192.168.1.0/24 state RELATED,ESTABLISHED | + | ACCEPT tcp -- anywhere 192.168.1.0/24 state ESTABLISHED |
Chain OUTPUT (policy ACCEPT) | Chain OUTPUT (policy ACCEPT) | ||
Ligne 411: | Ligne 410: | ||
Chain FORWARD (policy DROP) | Chain FORWARD (policy DROP) | ||
target prot opt source destination | target prot opt source destination | ||
- | ACCEPT tcp -- 192.168.1.0/24 anywhere state NEW,RELATED,ESTABLISHED | + | ACCEPT tcp -- 192.168.1.0/24 anywhere state NEW,ESTABLISHED |
- | ACCEPT tcp -- anywhere 192.168.1.0/24 state RELATED,ESTABLISHED | + | ACCEPT tcp -- anywhere 192.168.1.0/24 state ESTABLISHED |
ACCEPT icmp -- anywhere anywhere | ACCEPT icmp -- anywhere anywhere | ||
</code> | </code> | ||
Ligne 540: | Ligne 539: | ||
<code root> | <code root> | ||
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | ||
- | --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | ||
- | --dport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | --dport 53 -m state --state ESTABLISHED -j ACCEPT |
</code> | </code> | ||
Ligne 598: | Ligne 597: | ||
#mais on oublie pas eth1 ! | #mais on oublie pas eth1 ! | ||
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p\ | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p\ | ||
- | tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | tcp -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p\ | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p\ | ||
- | tcp -m state --state ESTABLISHED,RELATED -j ACCEPT | + | tcp -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p icmp\ | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p icmp\ | ||
Ligne 612: | Ligne 611: | ||
#iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | #iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | ||
- | # --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT |
#iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | #iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | ||
- | # --dport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state ESTABLISHED -j ACCEPT |
##Règles icmp pour INPUT et OUTPUT | ##Règles icmp pour INPUT et OUTPUT | ||
Ligne 635: | Ligne 634: | ||
iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53\ | iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53\ | ||
- | -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53\ | iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53\ | ||
- | -m state --state RELATED,ESTABLISHED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53\ | iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53\ | ||
- | -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53\ | iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53\ | ||
- | -m state --state RELATED,ESTABLISHED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports\ | iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports\ | ||
- | 80,443,8000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | 80,443,8000 -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports\ | iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports\ | ||
- | 80,443,8000 -m state --state RELATED,ESTABLISHED -j ACCEPT | + | 80,443,8000 -m state --state ESTABLISHED -j ACCEPT |
iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | ||
Ligne 789: | Ligne 788: | ||
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p tcp\ | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p tcp\ | ||
- | -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p tcp\ | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p tcp\ | ||
- | -m state --state ESTABLISHED,RELATED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
#Si pas de DNS configurer on dé-commente les règles udp suivantes : | #Si pas de DNS configurer on dé-commente les règles udp suivantes : | ||
#iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | #iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | ||
- | # --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT |
#iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | #iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | ||
- | # --dport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -p icmp -j ACCEPT | iptables -t filter -A FORWARD -p icmp -j ACCEPT | ||
Ligne 866: | Ligne 865: | ||
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p tcp\ | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p tcp\ | ||
- | -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p tcp\ | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p tcp\ | ||
- | -m state --state ESTABLISHED,RELATED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
#Si pas de DNS configurer on dé-commente les règles udp suivantes : | #Si pas de DNS configurer on dé-commente les règles udp suivantes : | ||
#iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | #iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | ||
- | # --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT |
#iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | #iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | ||
- | # --dport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A FORWARD -p icmp -j ACCEPT | iptables -t filter -A FORWARD -p icmp -j ACCEPT | ||
Ligne 899: | Ligne 898: | ||
iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53\ | iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53\ | ||
- | -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53\ | iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53\ | ||
- | -m state --state RELATED,ESTABLISHED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53\ | iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53\ | ||
- | -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53\ | iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53\ | ||
- | -m state --state RELATED,ESTABLISHED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports\ | iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports\ | ||
- | 80,443,8000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | 80,443,8000 -m state --state NEW,ESTABLISHED -j ACCEPT |
iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports\ | iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports\ | ||
- | 80,443,8000 -m state --state RELATED,ESTABLISHED -j ACCEPT | + | 80,443,8000 -m state --state ESTABLISHED -j ACCEPT |
iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | ||
Ligne 1148: | Ligne 1147: | ||
#permettre le passage de tcp entre les deux interfaces eternet de la passerelle | #permettre le passage de tcp entre les deux interfaces eternet de la passerelle | ||
/sbin/iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p tcp\ | /sbin/iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p tcp\ | ||
- | -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | -m state --state NEW,ESTABLISHED -j ACCEPT |
/sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p tcp\ | /sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p tcp\ | ||
- | -m state --state ESTABLISHED,RELATED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
#Si pas de DNS configurer on dé-commente les règles udp suivantes : | #Si pas de DNS configurer on dé-commente les règles udp suivantes : | ||
#iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | #iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ | ||
- | # --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT |
#iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | #iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ | ||
- | # --dport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state ESTABLISHED -j ACCEPT |
#autoriser le ping avec le sous-réseau 192.168.1.0/24 | #autoriser le ping avec le sous-réseau 192.168.1.0/24 | ||
Ligne 1201: | Ligne 1200: | ||
/sbin/iptables -A syn_flood -j DROP | /sbin/iptables -A syn_flood -j DROP | ||
#autoriser la connexion avec les serveurs DNS | #autoriser la connexion avec les serveurs DNS | ||
- | /sbin/iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT |
- | /sbin/iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53 -m state --state ESTABLISHED -j ACCEPT |
- | /sbin/iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT |
- | /sbin/iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53 -m state --state ESTABLISHED -j ACCEPT |
#autoriser la navigation web | #autoriser la navigation web | ||
- | /sbin/iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports 80,443,8000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports 80,443,8000 -m state --state NEW,ESTABLISHED -j ACCEPT |
- | /sbin/iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports 80,443,8000 -m state --state RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports 80,443,8000 -m state --state ESTABLISHED -j ACCEPT |
/sbin/iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | /sbin/iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | ||
/sbin/iptables -A INPUT -i eth1 -p tcp -m multiport --sports 80,443,8000 -j ACCEPT | /sbin/iptables -A INPUT -i eth1 -p tcp -m multiport --sports 80,443,8000 -j ACCEPT | ||
#Si le serveur cups est branché sur un ordinateur du réseau 192.168.0.0/24, par exemple sur 192.168.0.22 | #Si le serveur cups est branché sur un ordinateur du réseau 192.168.0.0/24, par exemple sur 192.168.0.22 | ||
# laisser décommenter les deux lignes suivantes : | # laisser décommenter les deux lignes suivantes : | ||
- | /sbin/iptables -A INPUT -i eth0 -s 192.168.0.22 -d 192.168.0.1 -p tcp --sport 631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -A INPUT -i eth0 -s 192.168.0.22 -d 192.168.0.1 -p tcp --sport 631 -m state --state NEW,ESTABLISHED -j ACCEPT |
- | /sbin/iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | /sbin/iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,ESTABLISHED -j ACCEPT |
#créer une chaîne utilisateur pour les connexion ssh, les loguer et les accepter | #créer une chaîne utilisateur pour les connexion ssh, les loguer et les accepter | ||
/sbin/iptables -t filter -N InComingSSH | /sbin/iptables -t filter -N InComingSSH | ||
Ligne 1302: | Ligne 1301: | ||
<code root> | <code root> | ||
/sbin/iptables -A INPUT -i eth1 -p udp -m udp --sport 27000 -m\ | /sbin/iptables -A INPUT -i eth1 -p udp -m udp --sport 27000 -m\ | ||
- | state --state NEW,RELATED,ESTABLISHED -j ACCEPT | + | state --state NEW,ESTABLISHED -j ACCEPT |
/sbin/iptables -A INPUT -i eth0 -p udp -m udp --sport 27000 -m\ | /sbin/iptables -A INPUT -i eth0 -p udp -m udp --sport 27000 -m\ | ||
- | state --state RELATED,ESTABLISHED -j ACCEPT | + | state --state ESTABLISHED -j ACCEPT |
</code> | </code> | ||