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"
