#!/bin/sh # /etc/network/if-pre-up.d/iptables-start # Script qui démarre les règles de filtrage "iptables" # Formation Debian GNU/Linux par Alexis de Lattre # http://www.via.ecp.fr/~alexis/formation-linux/ # Adaptation http://ivsb2.free.fr # REMISE à ZERO des règles de filtrage iptables -F iptables -t nat -F # DEBUT des "politiques par défaut" # Je veux que les connexions entrantes soient bloquées par défaut iptables -P INPUT DROP # Je veux que les connexions destinées à être forwardées # soient acceptées par défaut iptables -P FORWARD ACCEPT # Je veux que les connexions sortantes soient acceptées par défaut iptables -P OUTPUT ACCEPT # FIN des "politiques par défaut" # DEBUT des règles de filtrage # Pas de filtrage sur l'interface de "loopback" iptables -A INPUT -i lo -j ACCEPT # J'accepte le protocole ICMP (i.e. le "ping") iptables -A INPUT -p icmp -j ACCEPT # J'accepte le protocole IGMP (pour le multicast) iptables -A INPUT -p igmp -j ACCEPT # J'accepte les packets entrants relatifs à des connexions déjà établies iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # Décommentez les deux lignes suivantes pour que le serveur FTP éventuel # soit joignable de l'extérieur #iptables -A INPUT -p tcp --dport 20 -j ACCEPT #iptables -A INPUT -p tcp --dport 21 -j ACCEPT # Décommentez la ligne suivante pour que le serveur SSH éventuel # soit joignable de l'extérieur #iptables -A INPUT -p tcp --dport 22 -j ACCEPT # Décommentez la ligne suivante pour que le serveur de mail éventuel # soit joignable de l'extérieur #iptables -A INPUT -p tcp --dport 25 -j ACCEPT # Décommentez les deux lignes suivantes pour que le serveur de DNS éventuel # soit joignable de l'extérieur #iptables -A INPUT -p tcp --dport 53 -j ACCEPT #iptables -A INPUT -p udp --dport 53 -j ACCEPT # Décommentez la ligne suivante pour que le serveur Web éventuel # soit joignable de l'extérieur #iptables -A INPUT -p tcp --dport 80 -j ACCEPT # Décommentez la ligne suivante pour que le serveur CUPS éventuel # soit joignable de l'extérieur iptables -A INPUT -p tcp --dport 631 -j ACCEPT iptables -A INPUT -p tcp --dport 515 -j ACCEPT # Décommentez les deux lignes suivantes pour que le serveur Samba éventuel # soit joignable de l'extérieur #iptables -A INPUT -p tcp --dport 139 -j ACCEPT #iptables -A INPUT -p udp --dport 139 -j ACCEPT # Décommentez la ligne suivante pour que des clients puissent se connecter # à l'ordinateur par XDMCP) #iptables -A INPUT -p udp --dport 177 -j ACCEPT # Décommentez la ligne suivante pour que l'odinateur puisse se connecter # par XDMCP à une machine distante) #iptables -A INPUT -p tcp --dport 6001 -j ACCEPT # Décommentez la ligne suivante pour que le serveur CVS éventuel # soit joignable de l'extérieur via le mécanisme de "pserver" # (si les utilisateurs accèdent au serveur CVS exclusivement via SSH, # seule la ligne concernant le serveur SSH doit être décommentée) #iptables -A INPUT -p tcp --dport 2401 -j ACCEPT # Décommentez la ligne suivante pour pouvoir reçevoir des flux VideoLAN # (ce sont des flux UDP entrants sur le port 1234) #iptables -A INPUT -p udp --dport 1234 -j ACCEPT # Décommentez la ligne suivante pour pouvoir reçevoir des annonces SAP # (ce sont des annonces de session multicast) #iptables -A INPUT -p udp -d 224.2.127.254 --dport 9875 -j ACCEPT # Décommentez les 3 lignes suivantes pour pouvoir utiliser GnomeMeeting #iptables -A INPUT -p tcp --dport 30000:33000 -j ACCEPT #iptables -A INPUT -p tcp --dport 1720 -j ACCEPT #iptables -A INPUT -p udp --dport 5000:5006 -j ACCEPT # La règle par défaut pour la chaine INPUT devient "REJECT" # (il n'est pas possible de mettre REJECT comme politique par défaut) iptables -A INPUT -j REJECT # FIN des règles de filtrage # DEBUT des règles pour le partage de connexion (i.e. le NAT) # Décommentez la ligne suivante pour que le système fasse office de # "serveur NAT" et remplaçez "ppp0" par le nom de l'interface connectée # à Internet iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE # Si la connexion que vous partagez est une connexion ADSL, vous # serez probablement confronté au fameux problème du MTU. En résumé, # le problème vient du fait que le MTU de la liaison entre votre # fournisseur d'accès et le serveur NAT est un petit peu inférieur au # MTU de la liaison Ethernet qui relie le serveur NAT aux machines qui # sont derrière le NAT. Pour résoudre ce problème, décommentez la ligne # suivante et remplaçez "ppp0" par le nom de l'interface connectée à # Internet. iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o ppp0 --clamp-mss-to-pmtu # FIN des règles pour le partage de connexion (i.e. le NAT) # DEBUT des règles de "port forwarding" # Décommentez la ligne suivante pour que les requêtes TCP reçues sur # le port 80 de l'interface eth0 soient forwardées à la machine dont # l'IP est 192.168.0.3 sur son port 80 (la réponse à la requête sera # forwardée au client) #iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80 # FIN des règles de "port forwarding"