Le Samedi 7 Juin 2003 10:39, Apollonie Raffalli a écrit : > > Si tu veux, je te la fais plus technique, d'ailleurs j'ai vue dans le > > thread que quelqu'un avait oublié d'autoriser l'etat RELATED, pourtant > > très important ! Le protocol tcp est très strict là dessus. > > L'état RELATED est certes important mais non nécessaire compte tenu des > besoins précis de Rosaire. > > La gestion de cet état est nécessaire si l'on doit utiliser certains > protocoles comme le FTP qui nécessite une double connexion. > > Maintenant, c'est vrai que si l'on rajoute RELATED après ESTABLISHED ce > n'est pas faux et cela permettra de gérer tous les protocoles ; c'est > d'ailleurs ce que j'ai dans mon propre script puisque j'ai un serveur FTP. > > Et pour > > > l'établissement de la connection je met trois lignes, c'est parce que ça > > tiens en trois paquets ! > > Je maintiens mes dires : l'état RELATED n'a rien à voir avec > l'établissement d'une connexion. > > Sans esprit de polémique, je propose donc une nouvelle "règle" des trois > lignes : > client -> serveur "coucou" passerelle: NEW > serveur -> client "re coucou" passerelle: ESTABLISHED et non RELATED > client -> serveur "ok alors on cause!": ESTABLISHED tu as raison. l'état RELATED concerne des connexions *relatives* à des connexions déjà établies, en général les transferts FTP en mode actif. Au niveau de la connexion elle-même, on n'a que deux états : NEW (on crée une nouvelle connexion) et ESTABLISHED (la connexion est établie). Cela dit, pour protéger notre réseau interne et notre passerelle des seules tentatives d'accès de l'extérieur tout en servant de passerelle pour notre réseau interne, il faut et il suffit d'interdire toute connexion établie de l'extérieur (state NEW -j DROP sur l'interface externe). Mais pour que cela fonctionne, il faut mettre une police par défaut à ACCEPT, sinon il fudrait autoriser un à un tous les services réseau, par protocole. Cette règle devant bien entendu s'appliquer aux paquets entrant et passant par la passerelle. Ce qui donne ce script que j'utilise et qui me donne statisfaction (testé avec de multiples outils avec succès)
#!/bin/bash # firewall + nat - CC 01-2003 #définition variable pour l'interface externe (vers internet) # mettre ici sa propre interface EXTIF=ppp0 #vidage et remise à zéro chaines iptables -F iptables -X iptables -Z #définitions policies par défaut (accept ou drop) iptables -P INPUT ACCEPT #on pourrait mettre DROP ici iptables -P FORWARD ACCEPT #et ici # mais il faudrait alors autoriser explicitement tout ce qui peut # entrer et passer iptables -P OUTPUT ACCEPT #création de chaine utilisateur log et drop (logue et drope les # paquets refusés) iptables -N LD iptables -F LD iptables -A LD -j LOG --log-level warning --log-prefix "bloqué : " iptables -A LD -j DROP #création de chaine utilisateur log et drop toute connexion nouvelle #provenant de l'interface vers internet #accepte les connexions établies ou relatives à une connexion établie iptables -N FILTRE1 iptables -F FILTRE1 iptables -A FILTRE1 -i $EXTIF -m state --state NEW -j LD #bloque aussi smb (devrait déjà être arrêté par la règle précédente #mais illustre le moyen de bloquer des services particuliers iptables -A FILTRE1 -i $EXTIF -p tcp --dport 137:139 -j LD iptables -A FILTRE1 -i $EXTIF -p udp --dport 137:139 -j LD iptables -A FILTRE1 -i $EXTIF -p tcp --dport 445 -j LD iptables -A FILTRE1 -i $EXTIF -p udp --dport 445 -j LD #autorise les paquets des connexions établies ou relatives à une connexion #établie (comme FTP) iptables -A FILTRE1 -i $EXTIF -m state --state ESTABLISHED,RELATED -j ACCEPT #rajouter ici les connexions entrantes autorisées (ssh...) #définition des actions (pour ce qui rentre et ce qui traverse) iptables -t filter -A INPUT -j FILTRE1 iptables -t filter -A FORWARD -j FILTRE1 echo "filtrage activé" #masquerading iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward echo "masquerading activé"
Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft? Rendez-vous sur "http://www.mandrakestore.com"