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";

Répondre à