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 [07/11/2014 12:28] Hypathie [Détail pour les protocole TCP et UDP] |
doc:reseau:iptables-pare-feu-pour-une-passerelle [15/11/2014 17:18] Hypathie [Un pare-feu avancé pour le routeur-debian] |
||
---|---|---|---|
Ligne 293: | Ligne 293: | ||
<code root> | <code root> | ||
- | iptables -P FORWARD DROP | ||
iptables -F | iptables -F | ||
iptables -X | iptables -X | ||
Ligne 355: | Ligne 354: | ||
iptables -P FORWARD DROP | iptables -P FORWARD DROP | ||
... | ... | ||
- | iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp -m multiport\ | + | iptables -t filter -A FORWARD -i eth1 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT |
- | --dports 80,443,8000 -j ACCEPT | + | |
- | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0\ | + | iptables -t filter -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT |
- | -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | |
- | iptables -t filter -A FORWARD -p icmp -j ACCEPT | + | |
- | ... | + | |
- | iptables -t filter -A INPUT -p icmp -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | |
- | iptables -t filter -A OUTPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT | + | |
... | ... | ||
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | ||
Ligne 453: | Ligne 447: | ||
#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\ | 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 | + | -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT |
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0\ | 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 | + | -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT |
iptables -t filter -A FORWARD -p icmp -j ACCEPT | iptables -t filter -A FORWARD -p icmp -j ACCEPT | ||
Ligne 627: | Ligne 621: | ||
iptables -P FORWARD DROP | iptables -P FORWARD DROP | ||
- | iptables -A FORWARD -i eth1 -o eth0 -d 192.168.1.0/24 -s 0.0.0.0/0 -j ACCEPT | + | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
+ | |||
+ | iptables -A FORWARD -i eth1 -o eth0 -d 192.168.1.0/24 -s 0.0.0.0/0\ | ||
+ | -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | ||
iptables -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0\ | iptables -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0\ | ||
-d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT | -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT | ||
Ligne 659: | Ligne 657: | ||
====DROP sur INPUT et OUTPUT (chaîne filter) ==== | ====DROP sur INPUT et OUTPUT (chaîne filter) ==== | ||
Cette fois, il va falloir interdire (DROP) les chaînes INPUT et OUTPUT de la table FILTER excepté pour tous les protocoles dont on a besoin.\\ | Cette fois, il va falloir interdire (DROP) les chaînes INPUT et OUTPUT de la table FILTER excepté pour tous les protocoles dont on a besoin.\\ | ||
- | D'abord pour ICMP qu'on ne laisse plus massivement entrer et sortir (table FILTER à DROP pour INPUT et OUTPUT, en plus de FORWARD).\\ **Attention l'ordre des règles pour IMCP sur INPUT, OUTPUT et FORWARD, comptes ici**. | + | D'abord pour ICMP qu'on ne laisse plus massivement entrer et sortir (table FILTER à DROP pour INPUT et OUTPUT, en plus de FORWARD).\\ |
+ | <note> | ||
+ | Attention l'ordre des règles pour IMCP sur INPUT, OUTPUT et FORWARD, comptes ici. | ||
+ | </note> | ||
- | On conserve ce qu'on a fait précédemment en ajoutant les commandes du [[atelier:chantier:iptables-pare-feu-pour-un-client#pour-les-fadas-du-scripting-shell|script pour un client du LAN]] mais en tenant compte du fait qu'il y a cette fois deux interfaces réseau. | + | On conserve ce qu'on a fait précédemment en ajoutant simplement les commandes du [[atelier:chantier:iptables-pare-feu-pour-un-client#pour-les-fadas-du-scripting-shell|script pour un client du LAN]] mais en tenant compte du fait qu'il y a cette fois deux interfaces réseau. |
<code root> | <code root> | ||
Ligne 692: | Ligne 693: | ||
# On garde nos règles concernant le DROP sur FORWARD (FILTER) | # On garde nos règles concernant le DROP sur FORWARD (FILTER) | ||
# et on oublie pas eth1 ! | # et on oublie pas eth1 ! | ||
- | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24\ | + | iptables -t filter -A FORWARD -i eth1 -o eth0 -d 192.168.1.0/24 -s 0.0.0.0/0\ |
- | -d 0.0.0.0/0 -p tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT |
iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0\ | 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 | + | -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT |
- | + | ||
iptables -t filter -A FORWARD -p icmp -j ACCEPT | iptables -t filter -A FORWARD -p icmp -j ACCEPT | ||
Ligne 914: | Ligne 915: | ||
</code> | </code> | ||
- | ====Le script de la passerelle ==== | + | =====Le script de la passerelle ===== |
- | Tenons compte de ces rappels, pour ajouter une connexion FTP et SSH loggées, et puisqu'on y est un petit filtrage supplémentaire au niveau des Flags TCP. | + | Tenons compte de ces rappels, pour ajouter à tout ce qu'on a fait jusqu'à présent, une connexion FTP et SSH loggées, et puisqu'on y est un petit filtrage supplémentaire au niveau des Flags TCP. |
+ | |||
+ | On ajoute au besoin les règles pour un serveur d'impression (cups ; port 631) ;\\ | ||
+ | et de même, si l'on veut (commenter/décommenter), les règles NAT pour un proxy transparent pour le sous-réseau 162.168.1.0/24.\\ | ||
+ | Pour plus de détail sur l'installation d'un proxy transparent voir [[utilisateurs:hypathie:tutos:proxy-transparent]]. | ||
<code bash firewall_gateway.sh> | <code bash firewall_gateway.sh> | ||
Ligne 960: | Ligne 966: | ||
/sbin/iptables -A OUTPUT -o eth1 -j ACCEPT | /sbin/iptables -A OUTPUT -o eth1 -j ACCEPT | ||
#permettre le passage entre les deux interfaces eternet de la passerelle | #permettre le passage 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 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | + | /sbin/iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -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 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | /sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT |
- | /sbin/iptables -t filter -A FORWARD -p icmp -j ACCEPT | + | #/sbin/iptables -t filter -A FORWARD -p icmp -j ACCEPT #inutile |
#accepter le ping entre les réseaux locaux | #accepter le ping entre les réseaux locaux | ||
/sbin/iptables -t filter -A INPUT -p icmp -i eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | /sbin/iptables -t filter -A INPUT -p icmp -i eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
Ligne 1099: | Ligne 1105: | ||
exit $RETVAL | exit $RETVAL | ||
</code> | </code> | ||
+ | |||
+ | <note tip> | ||
+ | **Pour autoriser la plateforme de jeux STEAM** | ||
+ | |||
+ | <code root> | ||
+ | /sbin/iptables -A INPUT -i eth1 -p udp -m udp --sport 27000 -m\ | ||
+ | state --state NEW,RELATED,ESTABLISHED -j ACCEPT | ||
+ | /sbin/iptables -A INPUT -i eth0 -p udp -m udp --sport 27000 -m\ | ||
+ | state --state RELATED,ESTABLISHED -j ACCEPT | ||
+ | </code> | ||
+ | |||
+ | Merci à robert2a pour cet ajout 8-) | ||
+ | |||
+ | [[http://debian-facile.org/viewtopic.php?pid=102028#p102028|Voir ce fil]] | ||
+ | </note> | ||
* Pour l'installation du script | * Pour l'installation du script | ||
Ligne 1157: | Ligne 1178: | ||
On laisse le terminal (de la passerelle) en état d'attente, et on passe sur le terminal du client B. | On laisse le terminal (de la passerelle) en état d'attente, et on passe sur le terminal du client B. | ||
- | * Côté client DHCP (ordinateur B) : | + | * Côté **client** DHCP (ordinateur B) on annule le bail DHCP : |
- | + | ||
- | -On commence par annuler le bail DHCP.\\ Comme ceci : | + | |
<code root> | <code root> | ||
Ligne 1166: | Ligne 1185: | ||
- | -Il n'y a plus d'IP : | + | >Il n'y a plus d'IP : |
<code root>eth0 Link encap:Ethernet HWaddr 00:1e:0b:67:9b:b7 | <code root>eth0 Link encap:Ethernet HWaddr 00:1e:0b:67:9b:b7 | ||
adr inet6: xxxxxxxxxxxx Scope:Lien</code> | adr inet6: xxxxxxxxxxxx Scope:Lien</code> | ||
- | - On lance une requête DHCP | + | * On lance une requête DHCP |
<code root> | <code root> | ||
dhclient eth0 | dhclient eth0 | ||
</code> | </code> | ||
- | Observez ce que nous dit "tcpdump" (dans le terminal de la passerelle) au lancemant de la commande\\ ''dhclient eth0'' sur l'ordinateur B (client DHCP) : | + | * Côté serveur DHCP : |
+ | Observez ce que nous dit "tcpdump" : | ||
<code> | <code> | ||
Ligne 1195: | Ligne 1216: | ||
</code> | </code> | ||
- | - Et en plus l'IP de l'ordinateur B a bien changé ! | + | * Et l'IP de l'ordinateur client DHCP a bien changé ! |
<code>INET_IP=`ifconfig $INET_IFACE | grep inet | \ | <code>INET_IP=`ifconfig $INET_IFACE | grep inet | \ |