« Parefeu Simplifié » : différence entre les versions

Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 243 : Ligne 243 :


     #!/bin/sh
     #!/bin/sh
 
   
     ### BEGIN INIT INFO
     ### BEGIN INIT INFO
     # Provides:          mon_parefeu
     # Provides:          mon_parefeu
Ligne 257 : Ligne 257 :
     # Description:        Met en place les règles iptables.
     # Description:        Met en place les règles iptables.
     ### END INIT INFO
     ### END INIT INFO
 
   
     #------------------------Explications----------------------------------#
     #------------------------Explications----------------------------------#
     #
     #
Ligne 281 : Ligne 281 :
     #
     #
     #----------------------------------------------------------------------#
     #----------------------------------------------------------------------#
 
   
     . /lib/lsb/init-functions
     . /lib/lsb/init-functions
 
   
     #------------------------VARIABLES-------------------------------------#
     #------------------------VARIABLES-------------------------------------#
     # Mettre à 1 si vous utilisez IPV6 :  
     # Mettre à 1 si vous utilisez IPV6 :  
Ligne 295 : Ligne 295 :
     REMOTE_TCP_SERVICES=""  
     REMOTE_TCP_SERVICES=""  
     REMOTE_UDP_SERVICES=""  
     REMOTE_UDP_SERVICES=""  
 
   
     # Pour une machine faisant office de routeur avec NAT,
     # Pour une machine faisant office de routeur avec NAT,
     # changer la valeur de la variable ISROUTERNAT à 1.
     # changer la valeur de la variable ISROUTERNAT à 1.
Ligne 303 : Ligne 303 :
     ethx="eth1"
     ethx="eth1"
     ethy="eth0"
     ethy="eth0"
 
   
     # Chemins vers iptables
     # Chemins vers iptables
     readonly IPTABLES=/sbin/iptables
     readonly IPTABLES=/sbin/iptables
     readonly IP6TABLES=/sbin/ip6tables
     readonly IP6TABLES=/sbin/ip6tables
     #----------------------------------------------------------------------#
     #----------------------------------------------------------------------#
 
   
     if ! [ -x $IPTABLES ]; then
     if ! [ -x $IPTABLES ]; then
         exit 0
         exit 0
     fi
     fi
 
   
     if [ $IPV6 -eq 1 ]; then
     if [ $IPV6 -eq 1 ]; then
         if ! [ -x $IP6TABLES ]; then
         if ! [ -x $IP6TABLES ]; then
Ligne 318 : Ligne 318 :
         fi
         fi
     fi
     fi
 
   
 
   
     #----------------------------FONCTIONS---------------------------------#
     #----------------------------FONCTIONS---------------------------------#
     fw_start () {
     fw_start () {
     
         
     # Vidage
     # Vidage
         fw_clear
         fw_clear
         # Parefeu - Suppression des règles
         # Parefeu - Suppression des règles
     
           
     # Interdictions
     # Interdictions
         $IPTABLES -t filter -P INPUT DROP
         $IPTABLES -t filter -P INPUT DROP
         $IPTABLES -t filter -P FORWARD DROP
         $IPTABLES -t filter -P FORWARD DROP
         $IPTABLES -t filter -P OUTPUT DROP
         $IPTABLES -t filter -P OUTPUT DROP
     
         
         # Parefeu - interdictions générales établies
         # Parefeu - interdictions générales établies
     
         
     # Loopback
     # Loopback
         $IPTABLES -t filter -A INPUT -i lo -j ACCEPT
         $IPTABLES -t filter -A INPUT -i lo -j ACCEPT
     
         
     # Trafic d'entrée :
     # Trafic d'entrée :
         $IPTABLES -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
         $IPTABLES -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
     
         
     # Refus du ping pour éviter de répondre aux scans des éventuels vilains
     # Refus du ping pour éviter de répondre aux scans des éventuels vilains
         $IPTABLES -t filter -A INPUT -p icmp -j LOG
         $IPTABLES -t filter -A INPUT -p icmp -j LOG
         $IPTABLES -t filter -A INPUT -p icmp -j DROP
         $IPTABLES -t filter -A INPUT -p icmp -j DROP
     
         
     # Sortie autorisée, si aucun port autorisé en sortie n'est défini
     # Sortie autorisée, si aucun port autorisé en sortie n'est défini
             if [ -z "$REMOTE_TCP_SERVICES"] && [ -z "$REMOTE_UDP_SERVICES" ]; then
             if [ -z "$REMOTE_TCP_SERVICES"] && [ -z "$REMOTE_UDP_SERVICES" ]; then
                 $IPTABLES -t filter -P OUTPUT ACCEPT
                 $IPTABLES -t filter -P OUTPUT ACCEPT
             fi
             fi
     
         
     # Services à autoriser en entrée
     # Services à autoriser en entrée
         for PORT in $TCP_SERVICES; do
         for PORT in $TCP_SERVICES; do
             $IPTABLES -A INPUT -p tcp --dport ${PORT} -j ACCEPT
             $IPTABLES -A INPUT -p tcp --dport ${PORT} -j ACCEPT
         done
         done
     
         
         for PORT in $UDP_SERVICES; do
         for PORT in $UDP_SERVICES; do
             $IPTABLES -A INPUT -p udp --dport ${PORT} -j ACCEPT
             $IPTABLES -A INPUT -p udp --dport ${PORT} -j ACCEPT
         done
         done
     
         
     # Services à autoriser en sortie
     # Services à autoriser en sortie
     
         
         for PORT in $REMOTE_TCP_SERVICES; do
         for PORT in $REMOTE_TCP_SERVICES; do
             $IPTABLES -A OUTPUT -p tcp --dport ${PORT} -j ACCEPT
             $IPTABLES -A OUTPUT -p tcp --dport ${PORT} -j ACCEPT
Ligne 367 : Ligne 367 :
         done
         done
         # Parefeu - Mise en place des règles
         # Parefeu - Mise en place des règles
     
         
         if $ISROUTERNAT ; then
         if $ISROUTERNAT ; then
             $IPTABLES -A INPUT -i $ethx -j ACCEPT
             $IPTABLES -A INPUT -i $ethx -j ACCEPT
Ligne 376 : Ligne 376 :
             # Parefeu - Routeur avec NAT
             # Parefeu - Routeur avec NAT
         fi
         fi
     
         
     # Toutes les autres connexions sont enregistrées dans syslog
     # Toutes les autres connexions sont enregistrées dans syslog
         $IPTABLES -t filter -A INPUT -j LOG --log-level=4
         $IPTABLES -t filter -A INPUT -j LOG --log-level=4
 
   
     # Configuration IPV6 
     # Configuration IPV6 
         if [ $IPV6 -eq 1 ]; then
         if [ $IPV6 -eq 1 ]; then
Ligne 386 : Ligne 386 :
             $IP6TABLES -t filter -P FORWARD DROP
             $IP6TABLES -t filter -P FORWARD DROP
             $IP6TABLES -t filter -P OUTPUT DROP
             $IP6TABLES -t filter -P OUTPUT DROP
         
             
         # Loopback
         # Loopback
             $IP6TABLES -t filter -A INPUT -i lo -j ACCEPT
             $IP6TABLES -t filter -A INPUT -i lo -j ACCEPT
         
             
         # Trafic d'entrée :
         # Trafic d'entrée :
             $IP6TABLES -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
             $IP6TABLES -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
         
             
         # Refus du ping pour éviter de répondre aux scans des éventuels vilains
         # Refus du ping pour éviter de répondre aux scans des éventuels vilains
             $IP6TABLES -t filter -A INPUT -p icmp -j LOG
             $IP6TABLES -t filter -A INPUT -p icmp -j LOG
             $IP6TABLES -t filter -A INPUT -p icmp -j DROP
             $IP6TABLES -t filter -A INPUT -p icmp -j DROP
         
             
         # Sortie autorisée, si aucun port autorisé en sortie n'est défini
         # Sortie autorisée, si aucun port autorisé en sortie n'est défini
                 if [ -z "$REMOTE_TCP_SERVICES"] && [ -z "$REMOTE_UDP_SERVICES" ]; then
                 if [ -z "$REMOTE_TCP_SERVICES"] && [ -z "$REMOTE_UDP_SERVICES" ]; then
                     $IP6TABLES -t filter -P OUTPUT ACCEPT
                     $IP6TABLES -t filter -P OUTPUT ACCEPT
                 fi
                 fi
         
             
         # Services à autoriser en entrée
         # Services à autoriser en entrée
             for PORT in $TCP_SERVICES; do
             for PORT in $TCP_SERVICES; do
                 $IP6TABLES -A INPUT -p tcp --dport ${PORT} -j ACCEPT
                 $IP6TABLES -A INPUT -p tcp --dport ${PORT} -j ACCEPT
             done
             done
         
             
             for PORT in $UDP_SERVICES; do
             for PORT in $UDP_SERVICES; do
                 $IP6TABLES -A INPUT -p udp --dport ${PORT} -j ACCEPT
                 $IP6TABLES -A INPUT -p udp --dport ${PORT} -j ACCEPT
             done
             done
         
             
         # Services à autoriser en sortie
         # Services à autoriser en sortie
          
          
Ligne 430 : Ligne 430 :
                 $IP6TABLES -A OUTPUT -p icmpv6 --icmpv6-type router-advertisement -j ACCEPT
                 $IP6TABLES -A OUTPUT -p icmpv6 --icmpv6-type router-advertisement -j ACCEPT
             fi
             fi
         
             
             # Pour toute interface de type broadcast
             # Pour toute interface de type broadcast
             $IP6TABLES -A INPUT -p icmpv6 --icmpv6-type neighbour-solicitation -m hl --hl-eq 255 -j ACCEPT
             $IP6TABLES -A INPUT -p icmpv6 --icmpv6-type neighbour-solicitation -m hl --hl-eq 255 -j ACCEPT
Ligne 436 : Ligne 436 :
             $IP6TABLES -A OUTPUT -p icmpv6 --icmpv6-type neighbour-solicitation -j ACCEPT
             $IP6TABLES -A OUTPUT -p icmpv6 --icmpv6-type neighbour-solicitation -j ACCEPT
             $IP6TABLES -A OUTPUT -p icmpv6 --icmpv6-type neighbour-advertisement -j ACCEPT
             $IP6TABLES -A OUTPUT -p icmpv6 --icmpv6-type neighbour-advertisement -j ACCEPT
 
   
 
   
         # Toutes les autres connexions sont enregistrées dans syslog
         # Toutes les autres connexions sont enregistrées dans syslog
             $IP6TABLES -t filter -A INPUT -j LOG --log-level=4
             $IP6TABLES -t filter -A INPUT -j LOG --log-level=4
         fi
         fi
     }
     }
 
   
     fw_stop () {
     fw_stop () {
         #$IPTABLES -F
         #$IPTABLES -F
Ligne 452 : Ligne 452 :
         iptables-save > /etc/firewall
         iptables-save > /etc/firewall
     }
     }
 
   
     fw_clear () {
     fw_clear () {
         $IPTABLES -t filter -F
         $IPTABLES -t filter -F
Ligne 493 : Ligne 493 :
         fi
         fi
     }
     }
 
   
     fw_status () {
     fw_status () {
         $IPTABLES -L --line-numbers
         $IPTABLES -L --line-numbers
Ligne 500 : Ligne 500 :
         fi
         fi
     }
     }
 
   
     #----------------------------------------------------------------------#
     #----------------------------------------------------------------------#
 
   
     case "$1" in
     case "$1" in
         start|restart)
         start|restart)
Ligne 529 : Ligne 529 :
     esac
     esac
     exit 0
     exit 0


== Ressources ==
== Ressources ==
159

modifications

Menu de navigation