mon scripts netfilter

Forum sur la sécurité des réseaux, la configuration des firewalls, la mise en place de protections contre les attaques, de DMZ, de systèmes anti-intrusion ...

Modérateur: modos Ixus

Messagepar sticmou » 16 Juil 2003 14:17

hello a tous, <BR> <BR>voila j'ai un machine qui fait proxy, firewall et xmule .......... <BR> <BR>voilas mon script ( actuellemnet il marche mais je ne pense pas que cela soit la meilleur solution..... ) <BR> <BR>
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>
<BR> <BR>un peut long ....
Avatar de l’utilisateur
sticmou
Matelot
Matelot
 
Messages: 8
Inscrit le: 16 Juil 2003 00:00
Localisation: Essonne

Messagepar antolien » 16 Juil 2003 14:44

j'ai pas lu en détail, car c'est long <IMG SRC="images/smiles/icon_eek.gif"> <BR> <BR>mais il y a des choses qui me parraissent bizare. déjà la ligne <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> <BR>ce n'est pas le bloquage du ping (icmp) mais c'est l'activation de l'antispoofing... <BR> <BR>ensuite, je trouve étonnantes tes chaines "OUTPUT" car pour ipatbles ce serait plutôt les chaînes FORWARD. <BR> <BR>Puis pourquoi à la fin tu vide à nouveau les règles pour tout accepter ensuite <IMG SRC="images/smiles/icon_eek.gif"> <BR> <BR>Dommage que tomtom ne soit pas là. mais c'est tout bizarre comme fichier je trouve <BR> <BR> <IMG SRC="images/smiles/icon_rolleyes.gif">
Avatar de l’utilisateur
antolien
Amiral
Amiral
 
Messages: 3134
Inscrit le: 31 Août 2002 00:00

Messagepar sticmou » 16 Juil 2003 15:08

<IMG SRC="images/smiles/icon_razz.gif"> <BR> <BR>Pour le l'antispoofing tu a peut surement raison <IMG SRC="images/smiles/icon_smile.gif"> <BR> <BR>Pour le flush en fin de script c'est normal ( il est constitue en plusieurs fontions ) donc quant je lance le sript avec un start il lance les regles et le flush avec un stop <IMG SRC="images/smiles/icon_biggrin.gif"> <BR> <BR> <BR>Sinon pour "OUTPUT" c'est pour la sortie, le forward c'est le stranfert de paquet si je ne troupe pas <IMG SRC="images/smiles/icon_confused.gif">
Avatar de l’utilisateur
sticmou
Matelot
Matelot
 
Messages: 8
Inscrit le: 16 Juil 2003 00:00
Localisation: Essonne

Messagepar antolien » 16 Juil 2003 15:12

ah oui, mais alors ton serveur ne fait pas juste firewall alors ok. <BR> <BR>Ben c'est pas mal en fait. mais pour le bloquage des pings et l'antispoofing, ça aurai pu être mieux de le faire avec des règles iptables.<BR><BR><font size=-2></font>
Avatar de l’utilisateur
antolien
Amiral
Amiral
 
Messages: 3134
Inscrit le: 31 Août 2002 00:00

Messagepar sticmou » 16 Juil 2003 15:20

yes <IMG SRC="images/smiles/icon_smile.gif">
Avatar de l’utilisateur
sticmou
Matelot
Matelot
 
Messages: 8
Inscrit le: 16 Juil 2003 00:00
Localisation: Essonne

Messagepar antolien » 16 Juil 2003 15:22

<!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-2>En réponse à:</font><HR></TD></TR><TR><TD><FONT SIZE=-2><BLOCKQUOTE> <BR>Le 2003-07-16 15:12, antolien a écrit: <BR>ah oui, mais alors ton serveur ne fait pas juste firewall alors ok. <BR> <BR>Ben c'est pas mal en fait. mais pour le bloquage des pings et l'antispoofing, ça aurai pu être mieux de le faire avec des règles iptables. <BR> <BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
Avatar de l’utilisateur
antolien
Amiral
Amiral
 
Messages: 3134
Inscrit le: 31 Août 2002 00:00

Messagepar sticmou » 16 Juil 2003 15:25

oui c'est pas bete <IMG SRC="images/smiles/icon_smile.gif">
Avatar de l’utilisateur
sticmou
Matelot
Matelot
 
Messages: 8
Inscrit le: 16 Juil 2003 00:00
Localisation: Essonne

Messagepar grosbedos » 16 Juil 2003 15:28

output est ce qui sort du firewall, uniquement d'un process local du firewall.. <BR> <BR>si tu veux acceder a une page web a partir du lan par exemple, c'est la chaine forward qu'il faut utiliser, en aucun cas la chaine output! <BR>
Pour retrouver une aiguille dans une botte de foin, il suffit d'y mettre le feu puis de fouiller les cendres avec un aimant. Bernard Werber
Avatar de l’utilisateur
grosbedos
Amiral
Amiral
 
Messages: 1493
Inscrit le: 27 Sep 2002 00:00

Messagepar grosbedos » 16 Juil 2003 15:31

pardon j'avais pas tout lu...
Pour retrouver une aiguille dans une botte de foin, il suffit d'y mettre le feu puis de fouiller les cendres avec un aimant. Bernard Werber
Avatar de l’utilisateur
grosbedos
Amiral
Amiral
 
Messages: 1493
Inscrit le: 27 Sep 2002 00:00

Messagepar grosbedos » 16 Juil 2003 15:35

MSGTETE "Masquerade des adressse du LAN" <BR>iptables -t nat -A POSTROUTING -s 172.19.70.0/24 -j MASQUERADE <BR>MSGFIN <BR> <BR>ca c'est pas top je pense, tu devrait rajouter : <BR>MSGTETE "Masquerade des adressse du LAN" <BR>iptables -t nat -A POSTROUTING -o ppp0 -s 172.19.70.0/24 -j MASQUERADE <BR>MSGFIN <BR> <BR> <BR>bien que dans ton cas ca doit suffir. <BR>
Pour retrouver une aiguille dans une botte de foin, il suffit d'y mettre le feu puis de fouiller les cendres avec un aimant. Bernard Werber
Avatar de l’utilisateur
grosbedos
Amiral
Amiral
 
Messages: 1493
Inscrit le: 27 Sep 2002 00:00

Messagepar grosbedos » 16 Juil 2003 15:40

t'as du pas mal bosser quand meme <IMG SRC="images/smiles/icon_wink.gif"> <BR> <BR> <IMG SRC="images/smiles/icon_up.gif">
Pour retrouver une aiguille dans une botte de foin, il suffit d'y mettre le feu puis de fouiller les cendres avec un aimant. Bernard Werber
Avatar de l’utilisateur
grosbedos
Amiral
Amiral
 
Messages: 1493
Inscrit le: 27 Sep 2002 00:00

Messagepar sticmou » 16 Juil 2003 15:41

Ok merci <IMG SRC="images/smiles/icon_biggrin.gif">
Avatar de l’utilisateur
sticmou
Matelot
Matelot
 
Messages: 8
Inscrit le: 16 Juil 2003 00:00
Localisation: Essonne

Messagepar sticmou » 16 Juil 2003 15:44

oui mais j'adore ca ........ encore la je bose sur un firewall ( d'une entreprise) avec un vpn, web mail, sap, antivirus...... tro cool <IMG SRC="images/smiles/icon_lol.gif">
Avatar de l’utilisateur
sticmou
Matelot
Matelot
 
Messages: 8
Inscrit le: 16 Juil 2003 00:00
Localisation: Essonne

Messagepar sticmou » 16 Juil 2003 15:45

celui c'est la version perso qui en decembre je rajoute du wifi <IMG SRC="images/smiles/icon_biggrin.gif">
Avatar de l’utilisateur
sticmou
Matelot
Matelot
 
Messages: 8
Inscrit le: 16 Juil 2003 00:00
Localisation: Essonne

Messagepar victorz » 18 Juil 2003 19:44

juste deux petites questions, en passant: <BR> <BR>- est-ce vraiment necessaire de filtrer tout ce qui sort (OUTPUT et FORWARD de lan -> internet), ou c'est considere comme 'assez securise' de filtrer uniquement ce qui rentre. <BR> <BR>- apparement tu fais tourner xmule sur ta passerelle... comment elle marche ? en mode console ou sous X ? tu as un ecran de branche sur cette machine ou tu peux 'l'administrer' a distance ? <BR> <BR>merci et a+
Avatar de l’utilisateur
victorz
Matelot
Matelot
 
Messages: 2
Inscrit le: 18 Juil 2003 00:00

Suivant

Retour vers Sécurité et réseaux

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invité(s)

cron