D'ou les lignes de commentaires ;-)
Il n'avait sembl� que grace � elles on pouvait s'en sortir. Je le saurais pour 
la prochaine fois. Ceci dit, dis moi celles qui te semble obscures et je te 
donnerais plus d'explication.

Touch13

Le Vendredi 6 Juin 2003 19:35, AMORE Rosaire a �crit :
> Sympa Touch13!
> Mais je ne sais pas si t'as pig� que j'�tais en train d'apprendre?
> Alors, ton script est bien ficel� apparement, mais pas trop
> p�dagogique-d�butant. Du reste, je viens de me rendre compte que j'ai
> envoy� ma demande d'info chez les confirmes. Je crois que je vais faire
> un tour chez debutant.
> Merci quand m�me!;-)
> Rosaire
>
> Touch13 a �crit :
> > Le Vendredi 6 Juin 2003 16:44, AMORE Rosaire a �crit :
> >>Salut
> >>J'ai le r�seau suivant :
> >>une passerelle que je voudrais utiliser comme firewall avec un lan juste
> >>derri�re sur eth0. Je n'ai pas de DMZ. Je me connecte par ppp0.
> >>Je voudrais tout DROPper sauf :
> >>- acc�s � Internet depuis ma passerelle ou mon lan
> >>- acc�s depuis n'importe o� par ssh.
> >>J'ai construit les r�gles suivantes en m'inspirant du iptables-Howto et
> >>du tutorial de lea.
> >>Ca marche depuis ma passerelle mais rien depuis mon lan (bien configur�,
> >>car, sans les r�gles iptables, j'arrive bien sur internet).
> >>=========================
> >>iptables -F INPUT
> >>iptables -F OUTPUT
> >>iptables -F FORWARD
> >>iptables -nL                # verif
> >>iptables -P INPUT ACCEPT
> >>iptables -P OUTPUT ACCEPT
> >>iptables -P FORWARD ACCEPT
> >>iptables -nL
> >>iptables -P INPUT DROP
> >>iptables -P OUTPUT DROP
> >>iptables -P FORWARD DROP
> >>iptables -nL
> >>iptables -A INPUT  -i lo -j ACCEPT
> >>iptables -A OUTPUT -o lo -j ACCEPT
> >>iptables -A INPUT  -i ppp0 --protocol tcp --source-port 53 -j ACCEPT
> >>iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 53 -j ACCEPT
> >>iptables -A INPUT  -i ppp0 --protocol udp --source-port 53 -j ACCEPT
> >>iptables -A OUTPUT -o ppp0 --protocol udp --destination-port 53 -j ACCEPT
> >>iptables -A INPUT  -i ppp0 --protocol tcp --source-port 80 -m state
> >>--state ESTABLISHED -j ACCEPT
> >>iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 80 -m state
> >>--state NEW,ESTABLISHED -j ACCEPT
> >>iptables -nL
> >>#iptables -A INPUT --protocol tcp --source-port 22 -m state --state
> >>NEW,ESTABLISHED -j ACCEPT
> >>iptables -A INPUT --protocol tcp --source-port 22 -j ACCEPT
> >>iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE
> >>=========================
> >>Une id�e?
> >>Rosaire
> >
> > Les r�gles INPUT et OUTPUT ne g�rent que les paquets entrants et sortants
> > de la machine concern�e. Pour traiter les paquets en transit par le
> > 'firewall' la r�gle concern�e est 'FORWARD'.
> > Cependant pour que cela fonctionne il activer le routage.
> >
> > Voici un exemple de qui fonctionne en production:
> >
> > # Path to IPTABLES executable
> > IPTABLES=/usr/sbin/iptables
> >
> > # D�finition des interfaces
> > I_Ext=ppp0
> > I_Int=eth1
> >
> > # D�finition des r�seaux
> > Res_Int=192.168.0.0/24
> > Res_Ext=0.0.0.0/24
> >
> > # Adresses IP des serveurs
> > IP_Routeur=192.168.0.254
> > IP_Frw_Int=192.168.0.254
> > IP_Frw_Ext=`ifconfig $I_Ext | grep inet | cut -d : -f2 | cut -d ' ' -f1`
> >
> > # D�finition des ports
> > Port_Dns=53
> > Port_Pop3=110
> > Port_Smtp=25
> > Port_Http=80
> > Port_Ssh=22
> >
> > ########################
> > # Configuration du noyau
> > ########################
> > echo
> > echo "  -------------------------------------"
> > echo "  -- Application des r�gles du firewall"
> > echo "  -------------------------------------"
> >
> > # --- Ignorer les messages ICMP bugg�s (RFC 1122)
> > # -----------------------------------------------
> > if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ]; then
> >     echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
> >     echo "  - 1 - Ignorer les messages ICMP bugg�s                  [OK]"
> > else
> >     echo "  - 1 - Ignorer les messages ICMP bugg�s                 
> > [FAILED]" fi
> >
> > # --- Activation de la redirection des paquets.
> > # ---------------------------------------------
> > if [ -e /proc/sys/net/ipv4/ip_forward ]; then
> >     echo "1" > /proc/sys/net/ipv4/ip_forward
> >     echo "  - 2 - Activation de l'IP Forwarding                     [OK]"
> > else
> >     echo "  - 2 - Activation de l'IP Forwarding                    
> > [FAILED]" fi
> >
> > # --- Ne pas accepter les redirections ICMP.
> > # ------------------------------------------
> > # D�sactivation sur toutes les insterfaces.
> > # if [ -e /proc/sys/net/ipv4/conf/all/accept_redirects ]; then
> > #       echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
> > # fi
> > # D�sactivation seulement sur l'interface externe.
> > if [ -e /proc/sys/net/ipv4/conf/$I_Ext/accept_redirects ]; then
> >     echo "0" > /proc/sys/net/ipv4/conf/$I_Ext/accept_redirects
> >     echo "  - 3 - D�sactivation des redirections ICMP               [OK]"
> > else
> >     echo "  - 3 - D�sactivation des redirections ICMP              
> > [FAILED]" fi
> >
> > # --- Log des packets avec des adresses impossibles dans le syst�mes de
> > log. #
> > -------------------------------------------------------------------------
> >- if [ -e /proc/sys/net/ipv4/conf/$I_Ext/log_martians ]; then
> >     echo "1" > /proc/sys/net/ipv4/conf/$I_Ext/log_martians
> >     echo "  - 4 - Log des adresses impossibles                      [OK]"
> > else
> >     echo "  - 4 - Log des adresses impossibles                     
> > [FAILED]" fi
> >
> > # --- Ignore les requ�tes broadcast d'�cho ICMP.
> > # ----------------------------------------------
> > if [ -e /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ]; then
> >     echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
> >     echo "  - 5 - Ignore les requ�tes broadcast d'�cho ICMP         [OK]"
> > else
> >     echo "  - 5 - Ignore les requ�tes broadcast d'�cho ICMP        
> > [FAILED]" fi
> >
> > # --- V�rification de la provenance des paquets, et d�truit ceux venant
> > d'une # --- interface par laquelle il n'auraient pas du arriver (�vite le
> > spoofing). #
> > -------------------------------------------------------------------------
> >--- if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
> >     for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
> >     echo "1" > $i;
> >     done
> >     echo "  - 6 - Activation des filtres contre le spoofing         [OK]"
> > else
> >     echo "  - 6 - Activation des filtres contre le spoofing        
> > [FAILED]" fi
> >
> > # --- D�sactivation des packets de source de routage.
> > # ---------------------------------------------------
> > if [ -e /proc/sys/net/ipv4/conf/all/accept_source_route ]; then
> >     for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do
> >             echo "0" > $i;
> >     done
> >     echo "  - 7 - D�sactivation des sources de routage              [OK]"
> > else
> >     echo "  - 7 - D�sactivation des sources de routage             
> > [FAILED]" fi
> >
> > # --- Proctection contre le "SYN Flooding"
> > # ----------------------------------------
> > if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then
> >     echo "1" >/proc/sys/net/ipv4/tcp_syncookies
> >     echo "  - 9 - Protection contre le SYN Flooding                 [OK]"
> > else
> >     echo "  - 9 - Protection contre le SYN Flooding                
> > [FAILED]" fi
> >
> > ########################
> > # Chargement des modules
> > ########################
> >
> > /sbin/modprobe ip_conntrack_ftp
> >
> > ######################################
> > # Configuration des r�gles de filtrage
> > ######################################
> >
> > # --- R�initialisation de 'NETFILTER' ---
> > # ---------------------------------------
> > # On vide les trois tables existantes
> > $IPTABLES -F
> > $IPTABLES -t nat -F
> > $IPTABLES -t mangle -F
> > echo "  Les 3 tables existantes sont vide                              
> > [OK]"
> >
> > # On efface les cha�nes d�finies par l'utilisateur
> > $IPTABLES -X
> > echo "  Les cha�nes d�finies par l'utilsateur sont effac�es            
> > [OK]"
> >
> > # D�finition de la strat�gie (police) par d�faut (rien ne passe!) des
> > cha�nes compil�es.
> > $IPTABLES -P INPUT DROP
> > $IPTABLES -P OUTPUT DROP
> > $IPTABLES -P FORWARD DROP
> > $IPTABLES -t nat -P PREROUTING ACCEPT
> > $IPTABLES -t nat -P POSTROUTING ACCEPT
> > echo "  La strat�gie par d�faut est appliqu�e (rien ne passe!!!)       
> > [OK]"
> >
> > # --- Nouvelle cha�ne - Accepter les paquets ICMP
> > # -----------------------------------------------
> > $IPTABLES -N accepte-icmp
> > $IPTABLES -F accepte-icmp
> > $IPTABLES -A accepte-icmp -p icmp --icmp-type ping -j ACCEPT
> > $IPTABLES -A accepte-icmp -p icmp --icmp-type pong -j ACCEPT
> > echo "  D�finition d'une nouvelle cha�ne: 'accepte-icmp'               
> > [OK]"
> >
> > # --- Nouvelle cha�ne - V�rification des paquets
> > # ----------------------------------------------
> > $IPTABLES -N verification
> > $IPTABLES -F verification
> > # Supprime les paquets dont tous les drapeaux sont position�s ou nul
> > $IPTABLES -A verification -p tcp --tcp-flags ALL ALL -j DROP
> > $IPTABLES -A verification -p tcp --tcp-flags ALL NONE -j DROP
> > echo "  D�finition d'une nouvelle cha�ne: 'verification'               
> > [OK]"
> >
> > # --- Configuration de la cha�ne FORWARD
> > # --------------------------------------
> > # Tous ce qui vient du r�seau interne doit avoir une adresse de ce
> > r�seau! $IPTABLES -A FORWARD -i $I_Int -s ! $Res_Int -j DROP
> > # Les paquets relatifs � une connection �tablie peuvent passer
> > $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
> > echo "  D�finition de la cha�ne 'FORWARD'                              
> > [OK]"
> >
> > # --- Paquets � destination du 'FIREWALL'.
> > # --- Nouvelles cha�nes - Paquets en entr�e sur les interfaces r�seaux.
> > # ---------------------------------------------------------------------
> > # Cr�ation des nouvelles cha�nes
> > $IPTABLES -N in-externe                          # Ajout d'une nouvelle
> > r�gle $IPTABLES -F in-externe                          # On efface son
> > contenu $IPTABLES -A in-externe -j LOG --log-level error --log-prefix
> > "[in-externe]:" $IPTABLES -A in-externe -j DROP
> >
> > $IPTABLES -N in-interne
> > $IPTABLES -F in-interne
> > $IPTABLES -A in-interne -p icmp -s $Res_Int -j accepte-icmp
> > $IPTABLES -A in-interne -p tcp -s $Res_Int --dport $Port_Ssh -j ACCEPT
> > $IPTABLES -A in-interne -j LOG --log-level error --log-prefix
> > "[in-interne]:" $IPTABLES -A in-interne -j DROP
> > echo "  Cr�ation des nouvelles cha�nes d'entr�s de paquets             
> > [OK]"
> >
> > # Mise en place des nouvelles r�gles d'entr�e de paquets
> > $IPTABLES -A INPUT -i $I_Int -j in-interne
> > $IPTABLES -A INPUT -i $I_Ext -j in-externe
> > echo "  Mise en place des nouvelles r�gles d'entr�e de paquets         
> > [OK]"
> >
> > # --- Paquets au d�part du 'FIREWALL'.
> > # --- Nouvelles cha�nes - Paquets en sortie sur les interfaces r�seau.
> > # --------------------------------------------------------------------
> > # Cr�ation des nouvelles r�gles
> > $IPTABLES -N out-externe                         # Ajout d'une nouvelle
> > r�gle $IPTABLES -F out-externe                         # On efface son
> > contenu $IPTABLES -A out-externe -p icmp -j accepte-icmp
> > $IPTABLES -A out-externe -j LOG --log-level error --log-prefix
> > "[out-externe]:"
> > $IPTABLES -A out-externe -j DROP
> > $IPTABLES -N out-interne
> > $IPTABLES -F out-interne
> > $IPTABLES -A out-interne -p icmp -d $Res_Int -j accepte-icmp
> > $IPTABLES -A out-interne -p tcp -d $Res_Int -m state --state
> > ESTABLISHED,RELATED -j ACCEPT
> > $IPTABLES -A out-interne -j LOG --log-level error --log-prefix
> > "[out-interne]:"
> > $IPTABLES -A out-interne -j DROP
> > echo "  Cr�ation des nouvelles r�gles de sortie de paquets             
> > [OK]"
> >
> > #Mise en place des nouvelles r�gles de sortie de paquets
> > $IPTABLES -A OUTPUT -o $I_Int -d $Res_Int -j out-interne
> > $IPTABLES -A OUTPUT -o $I_Ext -j out-externe
> > echo "  Application des nouvelles r�gles de sortie de paquets          
> > [OK]"
> >
> > # --- Redirection des paquets
> > # ---------------------------
> > # Cr�ation des nouvelles r�gles
> > $IPTABLES -N externe-interne
> > $IPTABLES -F externe-interne
> > $IPTABLES -A externe-interne -p icmp -j accepte-icmp
> > $IPTABLES -A externe-interne -p udp --sport $Port_Dns -d $Res_Int --dport
> > \ $Port_Dns -j ACCEPT
> > $IPTABLES -A externe-interne -p tcp ! --syn --sport $Port_Dns -d $Res_Int
> > \ --dport $Port_Dns -j ACCEPT
> > $IPTABLES -A externe-interne -p tcp ! --syn --sport $Port_Pop3 -d
> > $Res_Int \ -j  ACCEPT
> > $IPTABLES -A externe-interne -j LOG --log-level error --log-prefix \
> > '[externe-interne]:'
> > $IPTABLES -A externe-interne -j DROP
> > echo "          R�gles Externe -> Interne                              
> > [OK]" $IPTABLES -N interne-externe
> > $IPTABLES -F interne-externe
> > $IPTABLES -A interne-externe -p icmp -j accepte-icmp
> > $IPTABLES -A interne-externe -p udp -s $Res_Int --dport $Port_Dns -j
> > ACCEPT $IPTABLES -A interne-externe -p tcp -s $Res_Int --dport $Port_Dns
> > -j ACCEPT $IPTABLES -A interne-externe -p tcp -s $Res_Int --dport
> > $Port_Smtp -j ACCEPT $IPTABLES -A interne-externe -p tcp -s $Res_Int
> > --dport $Port_Pop3 -j ACCEPT $IPTABLES -A interne-externe -p tcp -s
> > $Res_Int --dport $Port_Http -j ACCEPT $IPTABLES -A interne-externe -j LOG
> > --log-level error --log-prefix \ '[interne-externe]:'
> > $IPTABLES -A interne-externe -j DROP
> > echo "          R�gles Interne -> Externe                               
> > [OK]" echo "  D�finition des nouvelle r�gles de redirection de paquets   
> >     [OK]"
> >
> > # Mise en place des nouvelles r�gles de redirection
> > $IPTABLES -A FORWARD -i $I_Int -o $I_Ext -s $Res_Int -j interne-externe
> > $IPTABLES -A FORWARD -i $I_Ext -o $I_Int -d $Res_Int -j externe-interne
> > echo "  Mise en place des nouvelles r�gles de redirection de paquets   
> > [OK]"
> >
> > # --- Configuration de la translation de source
> > # --------------------------------------------
> > $IPTABLES -t nat -A POSTROUTING -o $I_Ext -j SNAT --to $IP_Frw_Ext
> > echo "  La translation de source est appliqu�e                         
> > [OK]"
> >
> > echo "  -----------------------------------------"
> > echo "  -- Fin d'pplication des r�gle du firewall"
> > echo "  -----------------------------------------"


Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";

Répondre à