- Code: Tout sélectionner
<BR>#!/bin/sh <BR>#@(#) DATE DE LA DERNIERE MODIFICATION : 10/07/2003 <BR>#@(#) VERSION : 2.000 <BR>#@(#) POUR : Redhat 7.3 ; Mandrake 9.1 <BR>#@(#) Script /etc/darkfirewall/darkfirewall.sh <BR>#@(#)---------------------------------------------------------------------- <BR># <BR># eth0 = (LAN) <BR># ADSL = ppp0 (ADSL) <BR># <BR>#========================================================================== <BR>#========================================================================== <BR># <BR># CONFIGURATION DU SCRIPT <BR># <BR>#========================================================================== <BR>#========================================================================== <BR> <BR>set_vars() { <BR> <BR> # Les Interfaces. <BR> ADSL="ppp0" <BR> LAN="eth0" <BR> <BR> # Les Adresses IP. <BR> IPAdmin="x.X.X.X" <BR> VPN="x.X.X.X" <BR> SMTP="x.X.X.X" <BR> <BR> # Les Couleurs. <BR> GRIS=$'e[30;01m' <BR> ROUGE=$'e[31;01m' <BR> VERT=$'e[32;01m' <BR> JAUNE=$'e[33;01m' <BR> BLEU=$'e[34;01m' <BR> ROSE=$'e[35;01m' <BR> BLEUCIEL=$'e[36;01m' <BR> BLANC=$'e[37;01m' <BR> DEFAULT=$'e[0m' <BR> <BR> # Set le nombre ce colones du stty <BR> getcols() { <BR> echo "$2" <BR> } <BR> <BR> COLS="`stty size 2> /dev/null`" <BR> COLS="`getcols ${COLS}`" <BR> COLS=$((${COLS} - 7)) <BR> ENDCOL=$'e[Ae['${COLS}'G' <BR> <BR> <BR> # Les Variables divers <BR> VER=V2.000 <BR> ERROR=1 <BR> <BR> } <BR> <BR>MSGTITRE() { <BR> # Message de Titre. <BR> echo " ${GRIS}${*}" <BR> return 0 <BR> } <BR> <BR>MSGTETE() { <BR> # Message de tete. <BR> echo -e " ${BLEU}*${DEFAULT} ${*}..." <BR> return 0 <BR> } <BR> <BR>MSGFIN() { <BR> # Message de fin. <BR> local retval= <BR> <BR> if [ "$#" -eq 0 ] || ([ -n "$1" ] && [ "$1" -eq 0 ]) <BR> then <BR> echo -e "${ENDCOL} ${BLEU}[ ${VERT}ok${BLEU} ]${DEFAULT}" <BR> else <BR> retval="$1" <BR> if [ "$#" -ge 2 ] <BR> then <BR> shift <BR> echo -e " ${ROUGE}*${DEFAULT} ${*}" <BR> <BR> fi <BR> <BR> echo -e "${ENDCOL} ${BLEU}[ ${ROUGE}!!${BLEU} ]${DEFAULT}" <BR> echo <BR> return ${retval} <BR> fi <BR> <BR> return 0 <BR> } <BR> <BR>MSGDEBUT() { <BR> # Message du Debut. <BR> echo " ${BLEU} ${*} ${VERT} $VER ${DEFAULT}" <BR> return 0 <BR> } <BR> <BR> <BR>#========================================================================== <BR>#========================================================================== <BR># <BR># INITIALISATION DE IPTABLES <BR># <BR>#========================================================================== <BR>#========================================================================== <BR> <BR>INIT_IPTABLES () { <BR> <BR> MSGTITRE "Initialisation de iptables." <BR>#========================================================================== <BR># Activation du forwarding pour que les paquets traversent la machine, donc on met <BR># ce fichier à 1. <BR>#========================================================================== <BR> <BR> MSGTETE "Activation du FORWARDING" <BR> echo 1 > /proc/sys/net/ipv4/ip_forward <BR> MSGFIN <BR> <BR>#========================================================================== <BR># On va utiliser iptables. Il faut charger les modules iptables. <BR>#========================================================================== <BR> <BR> MSGTETE "Chargement du module ip_tables" <BR> modprobe ip_tables <BR> MSGFIN <BR> <BR> MSGTETE "Chargement du module ip_nat_ftp" <BR> modprobe ip_nat_ftp <BR> MSGFIN <BR> <BR> MSGTETE "Chargement du module iptable_filter" <BR> modprobe iptable_filter <BR> MSGFIN <BR> <BR> MSGTETE "Chargement du module iptable_nat" <BR> modprobe iptable_nat <BR> MSGFIN <BR> <BR> MSGTETE "Chargement du module ip_conntrack_ftp" <BR> modprobe ip_conntrack_ftp <BR> MSGFIN <BR> <BR>#========================================================================== <BR># On va vider toutes les règles avant d'appliquer les nouvelles <BR># Règles de firewall <BR>#========================================================================== <BR> <BR> MSGTETE "Nettoyage des anciennes regles" <BR> iptables -F <BR> iptables -t nat -F <BR> iptables -X <BR> iptables -t nat -X <BR> MSGFIN <BR> } <BR> <BR>#========================================================================== <BR>#========================================================================== <BR># <BR># PROTECTION CONTRE LES ATTAQUES. <BR># <BR>#========================================================================== <BR>#========================================================================== <BR> <BR>INIT_PROTECT () { <BR> <BR> MSGTITRE "Protection contre les attaques." <BR> <BR>#========================================================================== <BR># Pour empêcher les attaques de type spoofing et bloquer les réponses <BR># ICMP du firewall. Attention, le fait de bloquer le trafic <BR># ICMP sur le firewall bloque les pings. <BR>#========================================================================== <BR> <BR> MSGTETE "Bloquage du pings" <BR> if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] <BR> then <BR> for filtre in /proc/sys/net/ipv4/conf/*/rp_filter <BR> do <BR> echo 1 > $filtre <BR> done <BR> fi <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Protection contre l'echo en broadcast. <BR>#========================================================================== <BR> <BR> MSGTETE "Ignore l'echo en ICMP" <BR> echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Protection contre les mauvais messages d'erreur. <BR>#========================================================================== <BR> <BR> MSGTETE "Ignore messages d'erreur ICMP" <BR> echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Protection contre l'acceptation des messages ICMP redirigés. <BR>#========================================================================== <BR> <BR> MSGTETE "Protection contre l'acceptation des messages ICMP redirigés" <BR> for f in /proc/sys/net/ipv4/conf/*/accept_source_route <BR> do <BR> echo 0 > $filtre <BR> done <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Protection contre le syn-flood. <BR>#========================================================================== <BR> <BR> MSGTETE "Protection contre le syn-flood" <BR> iptables -A FORWARD -p TCP --syn -m limit --limit 1/s -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Protection contre le test de port furtif. <BR>#========================================================================== <BR> <BR> MSGTETE "Protection contre le test de port furtif" <BR> iptables -A FORWARD -p TCP --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Protection contre le ping de la mort. <BR>#========================================================================== <BR> <BR> MSGTETE "Protection contre le ping de la mort" <BR> iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Loger les paquets spoofés et redirigés. <BR>#========================================================================== <BR> <BR> MSGTETE "Loger les paquets spoofés et redirigés" <BR> for f in /proc/sys/net/ipv4/conf/*/log_martians <BR> do <BR> echo 1 > $filtre <BR> done <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pas de ICMP. <BR>#========================================================================== <BR> <BR> MSGTETE "Pas de ICMP" <BR> echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all <BR> echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts <BR> MSGFIN <BR> <BR> } <BR> <BR>#========================================================================== <BR>#========================================================================== <BR># <BR># Initialisation du Firewall. <BR># <BR>#========================================================================== <BR>#========================================================================== <BR> <BR>INIT_FIREWALL () { <BR> <BR> MSGTITRE "Initialisation du Firewall." <BR> <BR>#========================================================================== <BR># On va rajouter 2 nouvelles chaînes. Ceci permettra d'ajouter des <BR># Nouvelles cibles qui auront la possibilité de loguer ce qui se passe. <BR># On logue et on drop ou accepte les paquets, <BR># on rajoute un préfixe pour pouvoir s'y retrouver dans les logs. <BR>#========================================================================== <BR> <BR> MSGTETE "Log les paquets drope ou accepte" <BR> iptables -N LOG_DROP <BR> iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : ' <BR> iptables -A LOG_DROP -j DROP <BR> iptables -N LOG_ACCEPT <BR> iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : ' <BR> iptables -A LOG_ACCEPT -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># On veut faire un firewall efficace, donc la politique a appliquer est <BR># de tout refuser par défaut et rajouter une a une les règles <BR># que l'on autorise. <BR>#========================================================================== <BR> <BR> MSGTETE "La politique par defaut REFUSER TOUT" <BR> iptables -P INPUT DROP <BR> iptables -P OUTPUT DROP <BR> iptables -P FORWARD DROP <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour éviter les problèmes, on va tout accepter sur la machine <BR># en local (interface lo). <BR>#========================================================================== <BR> <BR> MSGTETE "Tout accepter en local" <BR> iptables -A INPUT -i lo -j ACCEPT <BR> iptables -A OUTPUT -o lo -j ACCEPT <BR> MSGFIN <BR> <BR> } <BR> <BR>#========================================================================== <BR>#========================================================================== <BR># <BR># FIREWALL -> INTERNET. <BR># <BR>#========================================================================== <BR>#========================================================================== <BR> <BR>INIT_OUTADSL () { <BR> <BR> MSGTITRE "FIREWALL -> INTERNET." <BR> <BR>#========================================================================== <BR># Pour le HTTP (port 80 TCP) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour le HTTP (port 80 TCP)" <BR> iptables -A OUTPUT -o $ADSL -m state --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT <BR> iptables -A INPUT -i $ADSL -m state --state ESTABLISHED -p tcp --sport 80 -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour le https (port 443 TCP) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour le https (port 443 TCP)" <BR> iptables -A OUTPUT -o $ADSL -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A INPUT -i $ADSL -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour le DNS (port 53 udp) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour le DNS (port 53 udp)" <BR> iptables -A OUTPUT -o $ADSL -m state --state NEW,ESTABLISHED -p udp --dport 53 -j ACCEPT <BR> iptables -A INPUT -i $ADSL -m state --state ESTABLISHED -p udp --sport 53 -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour Xmule (port 4661 & 4242 tcp) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour Xmule (port 4661 & 4242 tcp)" <BR> iptables -A OUTPUT -o $ADSL -m state --state NEW,ESTABLISHED -p tcp --dport 4661 -j ACCEPT <BR> iptables -A INPUT -i $ADSL -m state --state ESTABLISHED -p tcp --sport 4661 -j ACCEPT <BR> iptables -A OUTPUT -o $ADSL -m state --state NEW,ESTABLISHED -p tcp --dport 4242 -j ACCEPT <BR> iptables -A INPUT -i $ADSL -m state --state ESTABLISHED -p tcp --sport 4242 -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour le ftp (port 21 & 20 TCP) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour le ftp (port 21 & 20 TCP)" <BR> iptables -A OUTPUT -o $ADSL -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A INPUT -i $ADSL -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT <BR> iptables -A OUTPUT -o $ADSL -p tcp --dport 20 -m state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A INPUT -i $ADSL -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT <BR> MSGFIN <BR> <BR> } <BR> <BR>#========================================================================== <BR>#========================================================================== <BR># <BR># LAN -> INTERNET. <BR># <BR>#========================================================================== <BR>#========================================================================== <BR> <BR>INIT_FORWARD () { <BR> <BR> MSGTITRE "LAN -> INTERNET." <BR> <BR>#========================================================================== <BR># Pour le DNS (port 53 udp) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour le DNS (port 53 udp)" <BR> iptables -A FORWARD -i $LAN -o $ADSL -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A FORWARD -i $ADSL -o $LAN -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour SMTP (port 25 TCP) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour SMTP (port 25 TCP)" <BR> iptables -A FORWARD -i $LAN -o $ADSL -p tcp --destination $SMTP --dport 25 -m state --state NEW,ESTABLISHED <BR> <BR>-j ACCEPT <BR> iptables -A FORWARD -i $ADSL -o $LAN -p tcp --source $SMTP --sport 25 -m state --state ESTABLISHED -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour POP (port 110 TCP) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour POP (port 110 TCP)" <BR> iptables -A FORWARD -i $LAN -o $ADSL -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A FORWARD -i $ADSL -o $LAN -p tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour le ftp (port 21 & 20 TCP) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour le ftp (port 21 & 20 TCP)" <BR> iptables -A FORWARD -i $LAN -o $ADSL -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A FORWARD -i $ADSL -o $LAN -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT <BR> iptables -A FORWARD -i $LAN -o $ADSL -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT <BR> iptables -A FORWARD -i $ADSL -o $LAN -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour le VPN (port 264 TCP 500 & 2746 UDP) Exclu IPAdmin <BR>#========================================================================== <BR> <BR> MSGTETE "Pour le VPN (port 264 TCP 500 & 2746 UDP)" <BR> iptables -A FORWARD -i $LAN -o $ADSL -p tcp --source $IPAdmin --destination $VPN --dport 264 -m state --state <BR> <BR>NEW,ESTABLISHED -j ACCEPT <BR> iptables -A FORWARD -i $ADSL -o $LAN -p tcp --source $VPN --sport 264 --destination $IPAdmin -m state --state <BR> <BR>ESTABLISHED -j ACCEPT <BR> iptables -A FORWARD -i $LAN -o $ADSL -p udp --source $IPAdmin --sport 500 --destination $VPN --dport 500 -m <BR> <BR>state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A FORWARD -i $ADSL -o $LAN -p udp --source $VPN --sport 500 --destination $IPAdmin --dport 500 -m <BR> <BR>state --state ESTABLISHED -j ACCEPT <BR> iptables -A FORWARD -i $LAN -o $ADSL -p udp --source $IPAdmin --sport 2746 --destination $VPN --dport 2746 -m <BR> <BR>state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A FORWARD -i $ADSL -o $LAN -p udp --source $VPN --sport 2746 --destination $IPAdmin --dport 2746 -m <BR> <BR>state --state ESTABLISHED -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour le telnet (port 23 TCP) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour le telnet (port 23 TCP)" <BR> iptables -A FORWARD -i $LAN -o $ADSL -p tcp --source $IPAdmin --dport 23 -m state --state NEW,ESTABLISHED -j <BR> <BR>ACCEPT <BR> iptables -A FORWARD -i $ADSL -o $LAN -p tcp --destination $IPAdmin --sport 23 -m state --state ESTABLISHED -j <BR> <BR>ACCEPT <BR> MSGFIN <BR> <BR> } <BR> <BR>#========================================================================== <BR>#========================================================================== <BR># <BR># Configuratin LAN -> FIREWALL. <BR># <BR>#========================================================================== <BR>#========================================================================== <BR> <BR>INIT_INLAN () { <BR> <BR> MSGTITRE "LAN -> FIREWALL." <BR> <BR>#========================================================================== <BR># Pour Squid (port 80 redirige vers le 2138 TCP). <BR>#========================================================================== <BR> <BR> MSGTETE "Pour Squid (port 80 => 3128 TCP)" <BR> iptables -A INPUT -i $LAN -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A OUTPUT -o $LAN -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT <BR> iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j REDIRECT --to-port 3128 <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour ce connecter en ftp sur le firwall (Port 21 & 20 TCP). <BR>#========================================================================== <BR> <BR> MSGTETE "Pour le ftp (port 21 & 20 TCP)" <BR> iptables -A INPUT -i $LAN -p tcp --source $IPAdmin --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A OUTPUT -o $LAN -p tcp --destination $IPAdmin --sport 21 -m state --state ESTABLISHED -j ACCEPT <BR> iptables -A INPUT -i $LAN -p tcp --source $IPAdmin --dport 20 -m state --state ESTABLISHED -j ACCEPT <BR> iptables -A OUTPUT -o $LAN -p tcp --destination $IPAdmin --sport 20 -m state --state ESTABLISHED,RELATED -j <BR> <BR>ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour le telnet (port 23) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour le telnet (port 23)" <BR> iptables -A INPUT -i $LAN -p tcp --source $IPAdmin --dport 23 -m state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A OUTPUT -o $LAN -p tcp --destination $IPAdmin --sport 23 -m state --state ESTABLISHED -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour le ssh (port 22) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour le ssh (port 22)" <BR> iptables -A INPUT -i $LAN -p tcp --source $IPAdmin --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A OUTPUT -o $LAN -p tcp --destination $IPAdmin --sport 22 -m state --state ESTABLISHED -j ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Pour le Webmin (port 10000) <BR>#========================================================================== <BR> <BR> MSGTETE "Pour le Webmin (port 10000)" <BR> iptables -A INPUT -i $LAN -p tcp --source $IPAdmin --dport 10000 -m state --state NEW,ESTABLISHED -j ACCEPT <BR> iptables -A OUTPUT -o $LAN -p tcp --destination $IPAdmin --sport 10000 -m state --state ESTABLISHED -j ACCEPT <BR> MSGFIN <BR> <BR> } <BR> <BR> <BR>#========================================================================== <BR>#========================================================================== <BR># <BR># Masquerade = dialoguer avec l'adresse IP publique sur firewall <BR># <BR>#========================================================================== <BR>#========================================================================== <BR> <BR>INIT_MASK () { <BR> <BR> MSGTITRE "Masquerade & LOG des paquets." <BR> <BR>#========================================================================== <BR># Il faut permettre au serveur de la DMZ et du LAN de dialoguer sur <BR># internet avec la même adresse IP <BR># Une petite règle de NAT avec un -j MASQUERADE suffira. <BR>#========================================================================== <BR> <BR> MSGTETE "Masquerade des adressse du LAN" <BR> iptables -t nat -A POSTROUTING -s 172.19.70.0/24 -j MASQUERADE <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Toutes les règles qui n'ont pas passé les règles du firewall seront <BR># refusées et loguées. <BR>#========================================================================== <BR> <BR> MSGTETE "Log des paquet DROP en TCP" <BR> iptables -A FORWARD -p tcp -j LOG_DROP <BR> iptables -A INPUT -p tcp -j LOG_DROP <BR> iptables -A OUTPUT -p tcp -j LOG_DROP <BR> iptables -A FORWARD -j DROP <BR> iptables -A INPUT -j DROP <BR> iptables -A OUTPUT -j DROP <BR> MSGFIN <BR> <BR> } <BR> <BR>#========================================================================== <BR>#========================================================================== <BR># <BR># Vider les règles iptables. <BR># <BR>#========================================================================== <BR>#========================================================================== <BR> <BR>INIT_FLUSH () { <BR> <BR> MSGTITRE "vider les règles iptables." <BR> <BR>#========================================================================== <BR># On remet la police par défaut à ACCEPT. <BR>#========================================================================== <BR> <BR> MSGTETE "la police par défaut à ACCEPT" <BR> iptables -P INPUT ACCEPT <BR> iptables -P FORWARD ACCEPT <BR> iptables -P OUTPUT ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># On remet les polices par défaut pour la table NAT. <BR>#========================================================================== <BR> <BR> MSGTETE "polices par défaut pour la table NAT" <BR> iptables -t nat -P PREROUTING ACCEPT <BR> iptables -t nat -P POSTROUTING ACCEPT <BR> iptables -t nat -P OUTPUT ACCEPT <BR> MSGFIN <BR> <BR>#========================================================================== <BR># On vide (flush) toutes les règles existantes. <BR>#========================================================================== <BR> <BR> MSGTETE "On vide (flush) toutes les règles existantes" <BR> iptables -F <BR> iptables -t nat -F <BR> MSGFIN <BR> <BR>#========================================================================== <BR># Et enfin, on efface toutes les chaînes qui ne <BR># sont pas defaut dans la table filter et nat. <BR>#========================================================================== <BR> <BR> MSGTETE "efface les chaînes qui ne sont pas par defaut dans la table filter et nat" <BR> iptables -X <BR> iptables -t nat -X <BR> MSGFIN <BR> <BR> } <BR> <BR>#========================================================================== <BR>#========================================================================== <BR># <BR># Autolancer des fonctions. <BR># <BR>#========================================================================== <BR>#========================================================================== <BR> <BR>start() { <BR> set_vars <BR> MSGDEBUT "Lancement de darkfirewall en mode START" <BR> INIT_IPTABLES <BR> INIT_PROTECT <BR> INIT_FIREWALL <BR> INIT_OUTADSL <BR> INIT_FORWARD <BR> INIT_INLAN <BR> INIT_MASK <BR> } <BR> <BR>stop() { <BR> set_vars <BR> MSGDEBUT "Lancement de darkfirewall en mode STOP" <BR> INIT_FLUSH <BR> } <BR> <BR>#========================================================================== <BR>#========================================================================== <BR># <BR># Depart... <BR># <BR>#========================================================================== <BR>#========================================================================== <BR> <BR>case "$1" in <BR> start) <BR> start <BR> ;; <BR> stop) <BR> stop <BR> ;; <BR> restart) <BR> stop <BR> start <BR> ;; <BR> *) <BR> set_vars <BR> echo "${BLEU}Usage: ${ROUGE}darkfirewall.sh ${VERT} {start|stop|restart} ${DEFAULT}" <BR> RETVAL=1 <BR>esac <BR>exit <BR>