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 07:39] Hypathie [Les règles du pare-feu pas à pas] |
doc:reseau:iptables-pare-feu-pour-une-passerelle [07/01/2015 17:17] bendia atelier:chantier:iptables-un-pare-feu-pour-une-passerelle renommé en doc:reseau:iptables-pare-feu-pour-une-passerelle (Approuvé par captnfab) |
||
---|---|---|---|
Ligne 34: | Ligne 34: | ||
L'ordinateur B appartient au sous sous-réseau : 192.168.1.0/255.255.255.0 | L'ordinateur B appartient au sous sous-réseau : 192.168.1.0/255.255.255.0 | ||
- | * Les services installés : | + | * Les services installés : |
__Sur l'ordinateur A (IP: 192.168.0.22)__, on a installé [[atelier:chantier:iptables-pare-feu-pour-un-client#pour-les-fadas-du-scripting-shell|ce pare-feu]].\\ | __Sur l'ordinateur A (IP: 192.168.0.22)__, on a installé [[atelier:chantier:iptables-pare-feu-pour-un-client#pour-les-fadas-du-scripting-shell|ce pare-feu]].\\ | ||
Ligne 41: | Ligne 41: | ||
- aucune interface graphique lors de son installation : on le configure en passant par ssh depuis l'ordinateur A\\ | - aucune interface graphique lors de son installation : on le configure en passant par ssh depuis l'ordinateur A\\ | ||
- [[atelier:chantier:dhcp#mise-en-place-basique-du-sercice-dhcp-sur-notre-reseau-local|un serveur DHCP basique]] qui fournit l'IP 192.168.1.2 a l'ordinateur B\\ | - [[atelier:chantier:dhcp#mise-en-place-basique-du-sercice-dhcp-sur-notre-reseau-local|un serveur DHCP basique]] qui fournit l'IP 192.168.1.2 a l'ordinateur B\\ | ||
- | - La table NAT a été modifiée très simplement pour l'instant afin [[atelier:chantier:dhcp#installation-de-la-passerelle-debian|de le transformer en passerelle]].\\ | + | - Un [[atelier:chantier:dns-bind9-sur-wheezy|serveur DNS (bind9)]]\\ |
+ | - le fichier **/etc/hosts de l'ordi B** est complété(( FQDN (Fully Qualified Domain Name)), par exemple: | ||
+ | <code> | ||
+ | 127.0.0.1 localhost | ||
+ | 127.0.1.1 debian-hpmondomaine.hyp debian-hp | ||
+ | </code> | ||
+ | - le fichier **/etc/resolv.conf de l'ordi B** a connaissance de l'ip du serveur DNS : | ||
+ | <code> | ||
+ | domaine mondomaine.hyp | ||
+ | search mondomaine.hyp | ||
+ | nameserver 192.168.1.1 | ||
+ | </code> | ||
+ | - De même le fichier **/etc/hosts de la passerelle** connaît l'ordi B : Par exemple ''192.168.1.3 debian-hp'' | ||
+ | - La table NAT a été modifiée très simplement pour l'instant afin [[atelier:chantier:dhcp#installation-de-la-passerelle-debian|de le transformer en passerelle]] avec masquerade sur eth0 (interface web).\\ | ||
- le fichier /etc/sysctl.conf a été modifié : la ligne ''net.ipv4.ip_forward=0'' est devenue ''net.ipv4.ip_forward=1''. | - le fichier /etc/sysctl.conf a été modifié : la ligne ''net.ipv4.ip_forward=0'' est devenue ''net.ipv4.ip_forward=1''. | ||
Ligne 350: | Ligne 363: | ||
* __Comme ceci__ : | * __Comme ceci__ : | ||
<code root> | <code root> | ||
- | ... | + | iptables -F |
+ | iptables -X | ||
+ | iptables -t nat -F | ||
+ | iptables -t nat -X | ||
+ | iptables -P INPUT ACCEPT | ||
+ | iptables -P FORWARD ACCEPT | ||
+ | iptables -P OUTPUT ACCEPT | ||
+ | |||
+ | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | ||
iptables -P FORWARD DROP | iptables -P FORWARD DROP | ||
- | ... | ||
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> | ||
- | /sbin/iptables -t filter -A FORWARD -p icmp -j ACCEPT | + | * Ce qui donne : |
+ | <code root>iptables -L</code> | ||
+ | <code> | ||
+ | Chain INPUT (policy ACCEPT) | ||
+ | target prot opt source destination | ||
- | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | + | Chain FORWARD (policy DROP) |
+ | target prot opt source destination | ||
+ | ACCEPT tcp -- 192.168.1.0/24 anywhere state NEW,ESTABLISHED | ||
+ | ACCEPT tcp -- anywhere 192.168.1.0/24 state ESTABLISHED | ||
+ | |||
+ | Chain OUTPUT (policy ACCEPT) | ||
+ | target prot opt source destination | ||
</code> | </code> | ||
- | <note tip> | + | > La navigation web fonctionne |
- | **__Quelques exlications :__** | + | > Le ping vers google et vers 192.168.0.22 est bloqué car on a autorisé seulement tcp |
- | * __Sans suivi de connexion__ : | + | * On ajoute une autorisation pour icmp : |
- | iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT | + | <code root> |
- | iptables -A FORWARD -o eth1 -i eth0 -j ACCEPT | + | iptables -t filter -A FORWARD -p icmp -j ACCEPT |
+ | </code> | ||
- | > On autorise tout passage de eth1 à eth0 et de eth0 à eth1 | + | * Ce qui donne : |
- | * __Avec suivi de connexion__ : | + | <code root>iptables -L FORWARD</code> |
+ | <code> | ||
+ | Chain FORWARD (policy DROP) | ||
+ | target prot opt source destination | ||
+ | ACCEPT tcp -- 192.168.1.0/24 anywhere state NEW,ESTABLISHED | ||
+ | ACCEPT tcp -- anywhere 192.168.1.0/24 state ESTABLISHED | ||
+ | ACCEPT icmp -- anywhere anywhere | ||
+ | </code> | ||
- | 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 | + | * OU de manière plus précise : |
- | 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 | + | <code root> |
+ | iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p icmp\ | ||
+ | -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | ||
- | > On autorise tout passage avec suivi de connexion de eth1 à eth0 et inversement, en précisant les sous-réseaux. | + | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p icmp\ |
- | </note> | + | -m state --state ESTABLISHED,RELATED -j ACCEPT |
- | * On vérifie si le ping fonctionne de la machine A vers la machine B : | + | |
+ | </code> | ||
+ | |||
+ | * Ce qui donnerait cette fois : | ||
+ | <code>iptables -L FORWARD</code> | ||
+ | <code> | ||
+ | Chain FORWARD (policy DROP) | ||
+ | target prot opt source destination | ||
+ | ACCEPT tcp -- 192.168.1.0/24 anywhere state NEW,RELATED,ESTABLISHED | ||
+ | ACCEPT tcp -- anywhere 192.168.1.0/24 state RELATED,ESTABLISHED | ||
+ | ACCEPT icmp -- 192.168.1.0/24 anywhere state NEW,RELATED,ESTABLISHED | ||
+ | ACCEPT icmp -- anywhere 192.168.1.0/24 state RELATED,ESTABLISHED | ||
+ | </code> | ||
+ | |||
+ | > Le web et le ping fonctionne : | ||
+ | |||
+ | * De la machine A vers la machine B : | ||
<code user> | <code user> | ||
ping 192.168.1.2 | ping 192.168.1.2 | ||
Ligne 396: | Ligne 454: | ||
:-D | :-D | ||
- | * Et de la machine B vers la machine A : | + | * De la machine B vers la machine A : |
<code user> | <code user> | ||
ping 192.168.0.22</code> | ping 192.168.0.22</code> | ||
Ligne 410: | Ligne 468: | ||
8-) | 8-) | ||
- | * Pour voir ce qu'on a fait : | + | <note tip> |
- | <code root>iptables -L -t nat && iptables -L</code> | + | |
+ | **__Quelques exlications :__** | ||
+ | |||
+ | * __On autorise toute connexion pour le LAN__ | ||
+ | |||
+ | iptables -A FORWARD -i eth1 -j ACCEPT | ||
+ | iptables -A FORWARD -o eth1 -j ACCEPT | ||
+ | |||
+ | iptables -L | ||
+ | Chain INPUT (policy ACCEPT) | ||
+ | target prot opt source destination | ||
+ | Chain FORWARD (policy DROP) | ||
+ | target prot opt source destination | ||
+ | ACCEPT all -- anywhere anywhere | ||
+ | ACCEPT all -- anywhere anywhere | ||
+ | Chain OUTPUT (policy ACCEPT) | ||
+ | target prot opt source destination | ||
+ | |||
+ | > Ce qui entre ''-i'' et ce qui sort ''-o'' | ||
+ | > La navigation internet depuis un ordi du réseau 192.168.1.0/24 est possible | ||
+ | > ping de l'un de ces ordi vers google est ok | ||
+ | |||
+ | * __Dans les deux sens d'une interface à l'autre__ : | ||
+ | |||
+ | iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT | ||
+ | iptables -A FORWARD -o eth1 -i eth0 -j ACCEPT | ||
+ | |||
+ | > On constate que sans préciser de protocole ni de réseau, cela revient au même que précédemment | ||
+ | |||
+ | iptables -L | ||
+ | Chain INPUT (policy ACCEPT) | ||
+ | target prot opt source destination | ||
+ | Chain FORWARD (policy ACCEPT) | ||
+ | target prot opt source destination | ||
+ | ACCEPT all -- anywhere anywhere | ||
+ | ACCEPT all -- anywhere anywhere | ||
+ | Chain OUTPUT (policy ACCEPT) | ||
+ | target prot opt source destination | ||
+ | |||
+ | > On autorise le passage de eth1 à eth0 et de eth0 à eth1 | ||
+ | |||
+ | * __Avec suivi de connexion d'une interface à l'autre avec des règles différentes__ : | ||
+ | |||
+ | 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 | ||
+ | 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 | ||
+ | |||
+ | > On autorise le passage de tous protocoles avec suivi de connexion, de eth1 à eth0, et inversement, en précisant les réseaux source et destination. | ||
+ | |||
+ | iptables -L | ||
+ | Chain INPUT (policy ACCEPT) | ||
+ | target prot opt source destination | ||
+ | Chain FORWARD (policy DROP) | ||
+ | target prot opt source destination | ||
+ | ACCEPT all -- 192.168.1.0/24 anywhere state NEW,RELATED,ESTABLISHED | ||
+ | ACCEPT all -- anywhere 192.168.1.0/24 state RELATED,ESTABLISHED | ||
+ | Chain OUTPUT (policy ACCEPT) | ||
+ | target prot opt source destination | ||
+ | |||
+ | > Là encore la navigation est possible pour un ordi du sous-réseau 192.168.1.0/24 | ||
+ | > Et le ping fonctionne vers google et l'ordi 192.168.0.22 sans besoin d'ajouter de règle imcp car on a autorisé TOUS les protocoles | ||
+ | |||
+ | **Enfin il est inutile d'ajouter une règle udp pour la résolution de nom si le serveur de nom est installé et correctement paramétré.**\\ | ||
+ | Dans le cas contraire on ajouterait : | ||
+ | <code root> | ||
+ | iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT | ||
+ | </code> | ||
+ | |||
+ | Ou pour être plus précis : | ||
+ | |||
+ | <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\ | ||
+ | --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\ | ||
+ | --dport 53 -m state --state ESTABLISHED -j ACCEPT | ||
+ | </code> | ||
+ | |||
+ | </note> | ||
====Dépendance du NAT et des chaînes FILTER sur l'interface interne (eth1)==== | ====Dépendance du NAT et des chaînes FILTER sur l'interface interne (eth1)==== | ||
Ligne 459: | Ligne 595: | ||
iptables -A OUTPUT -o eth1 -j ACCEPT | iptables -A OUTPUT -o eth1 -j ACCEPT | ||
- | #On garde nos règles concernant le DROP sur FORWARD (FILTER) | + | ##On garde nos règles concernant le DROP sur FORWARD (FILTER) |
#mais on oublie pas eth1 ! | #mais on oublie pas eth1 ! | ||
- | /sbin/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\ | ||
+ | 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\ | ||
+ | -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | ||
+ | |||
+ | iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p icmp\ | ||
+ | -m state --state ESTABLISHED,RELATED -j ACCEPT | ||
+ | |||
+ | #décocher les deux règles ci-dessous si un serveur DNS n'est pas installé sur la passerelle | ||
+ | |||
+ | #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 -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\ | + | #iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p udp\ |
- | tcp -m state --state ESTABLISHED,RELATED -j ACCEPT | + | # --dport 53 -m state --state ESTABLISHED -j ACCEPT |
+ | ##Règles icmp pour INPUT et OUTPUT | ||
iptables -t filter -A INPUT -p icmp -i eth0 -m conntrack\ | iptables -t filter -A INPUT -p icmp -i eth0 -m conntrack\ | ||
--ctstate ESTABLISHED,RELATED -j ACCEPT | --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
Ligne 484: | Ligne 635: | ||
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 637: | Ligne 788: | ||
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | 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\ | + | 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 -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\ |
- | -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT | + | -m state --state ESTABLISHED -j ACCEPT |
- | iptables -A FORWARD -i eth1 -o eth0 -p tcp -m multiport\ | + | #Si pas de DNS configurer on dé-commente les règles udp suivantes : |
- | --dports 80,443,8000 -j ACCEPT | + | |
- | iptables -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0\ | + | #iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p udp\ |
- | -d 192.168.1.0/24 -m state --state 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\ | ||
+ | # --dport 53 -m state --state ESTABLISHED -j ACCEPT | ||
+ | |||
+ | iptables -t filter -A FORWARD -p icmp -j ACCEPT | ||
iptables -N icmp_packets | iptables -N icmp_packets | ||
Ligne 667: | Ligne 823: | ||
</code> | </code> | ||
+ | |||
+ | > La navigation web fonctionne pour l'ordi B | ||
+ | > Les ping de même | ||
+ | |||
====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.\\ | ||
Ligne 703: | Ligne 863: | ||
iptables -A OUTPUT -o eth1 -j ACCEPT | iptables -A OUTPUT -o eth1 -j ACCEPT | ||
- | # On garde nos règles concernant le DROP sur FORWARD (FILTER) | + | # On garde nos règles concernant FORWARD (FILTER) |
- | # et on oublie pas eth1 ! | + | |
- | iptables -t filter -A FORWARD -i eth1 -o eth0 -d 192.168.1.0/24 -s 0.0.0.0/0\ | + | 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\ | ||
+ | -m state --state ESTABLISHED -j ACCEPT | ||
+ | |||
+ | #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\ | ||
+ | # --dport 53 -m state --state NEW,ESTABLISHED -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 udp\ |
- | -d 192.168.1.0/24 -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 | ||
- | + | ||
+ | # règles icmp sur INPUT et OUTPUT | ||
iptables -t filter -A INPUT -p icmp -i eth0 -m conntrack\ | iptables -t filter -A INPUT -p icmp -i eth0 -m conntrack\ | ||
--ctstate ESTABLISHED,RELATED -j ACCEPT | --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
Ligne 730: | Ligne 899: | ||
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 977: | Ligne 1146: | ||
/sbin/iptables -A INPUT -i eth1 -j ACCEPT | /sbin/iptables -A INPUT -i eth1 -j ACCEPT | ||
/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 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 -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 -p tcp\ |
- | /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 | + | -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\ | ||
+ | -m state --state ESTABLISHED -j ACCEPT | ||
+ | #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\ | ||
+ | # --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\ | ||
+ | # --dport 53 -m state --state ESTABLISHED -j ACCEPT | ||
+ | |||
+ | #autoriser le ping avec le sous-réseau 192.168.1.0/24 | ||
/sbin/iptables -t filter -A FORWARD -p icmp -j ACCEPT | /sbin/iptables -t filter -A FORWARD -p icmp -j ACCEPT | ||
+ | |||
#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 1022: | Ligne 1201: | ||
/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 1123: | Ligne 1302: | ||
<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> | ||