Outils pour utilisateurs

Outils du site


informatique:linux:iptables

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
informatique:linux:iptables [2009/02/23 09:01] – benoitinformatique:linux:iptables [2015/09/03 12:03] (Version actuelle) – benoit
Ligne 1: Ligne 1:
 ===== IPTABLES ===== ===== IPTABLES =====
 +
  
  
Ligne 23: Ligne 24:
   iptables -A INPUT -s 192.168.0.1 -i eth1 -p udp --dport 32000:32900 -j ACCEPT   iptables -A INPUT -s 192.168.0.1 -i eth1 -p udp --dport 32000:32900 -j ACCEPT
  
 +Pour insérer une règle en première position, utiliser **-I INPUT 1** : 
 +  iptables -I INPUT 1 -s 192.168.0.2 -i eth1 -p udp --dport 32000:32900 -j ACCEPT
 + 
 +  
 +Pour lister les règles actives :
 +  iptables -L -v
 +
 +Pour lister les règles actives au format numérique :
 +  iptables -L -v -n
  
 +Pour lister les règles active avec les numéros de règles :
 +  iptables -L -v --line-numbers
  
 ==== Configuration ==== ==== Configuration ====
Ligne 57: Ligne 69:
   iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT   iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
      
 +Par défaut les logs iptables seront dans ''/var/log/messages''
  
  
Ligne 69: Ligne 81:
 :!: Penser à la mettre dans ///etc/sysctl.conf// pour l'activer au démarrage :!: Penser à la mettre dans ///etc/sysctl.conf// pour l'activer au démarrage
  
-Ajouter le+Ajouter la règle de postrouting **eth1** étant la carte réseau connecté à l'extérieur.
   iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE   iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
  
Ligne 76: Ligne 88:
   iptables -t filter -A FORWARD -i eth1 -o eth0 -j ACCEPT   iptables -t filter -A FORWARD -i eth1 -o eth0 -j ACCEPT
  
 +
 +
 +
 +==== Firewall d'entreprise ====
 +Ci-dessous un exemple de script **iptables** pour faire un firewall sous Linux :
 +
 +  ##############
 +  # PRE-REQUIS #
 +  ##############
 +  # VARIABLES
 +  INTERNET_NIC=eth0
 +  LOCAL_NIC1=eth1
 +  LOCAL_NIC2=eth2
 +  
 +  # ACTIVATION DU TRANSFERT DE PAQUET POUR TCP/IP
 +  sysctl -w net.ipv4.ip_forward=1
 +  
 +  ##################################
 +  # PURGE DES TABLES FILTER ET NAT #
 +  ##################################
 +  iptables -t filter -F
 +  iptables -t nat -F
 +  
 +  #################################
 +  # POLITIQUE GLOBALE DU FIREWALL #
 +  #################################
 +  iptables -P INPUT DROP
 +  iptables -P FORWARD DROP
 +  iptables -P OUTPUT ACCEPT
 +  
 +  iptables -A INPUT -i lo -j ACCEPT
 +  iptables -A FORWARD -i lo -j ACCEPT
 +  
 +  ##################
 +  # REGLES LOCALES #
 +  ##################
 +  ####### OUVERTURES SUR LE FIREWALL LUI MEME
 +  #iptables -A INPUT -i ${LOCAL_NIC1} -p tcp --dport 22 -j ACCEPT
 +  iptables -A INPUT -i ${INTERNET_NIC} -p tcp --dport 22 -j ACCEPT
 +  iptables -A INPUT -i ${INTERNET_NIC} -p tcp --dport 10000 -j ACCEPT
 +  
 +  ####### ACCEPTE L'OUVERTURE DE PORT DYNAMIQUE POUR LES CONNEXIONS ETABLIES
 +  iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 +  
 +  #################################
 +  # REGLES DU RESEAU D'ENTREPRISE #
 +  #################################
 +  
 +  # DANS CET EXEMPLE NOUS AVONS 2 RESEAUX LOCAUX, LOCAL ET DMZ ET UN LIEN VERS INTERNET
 +  #  - DMZ (LOCAL_NIC1)        = 10.0.0.0/24
 +  #  - LOCAL (LOCAL_NIC2)      = 10.1.0.0/24
 +  #  - INTERNET (INTERNET_NIC) = IP_DU_PROVIDER
 +  
 +  ####### OUVERTURES DE LOCAL VERS INTERNET
 +  #iptables -A FORWARD -i ${LOCAL_NIC1} -o ${INTERNET_NIC} -s 10.0.0.1 -j ACCEPT
 +  
 +  ####### OUVERTURES DE LOCAL VERS DMZ
 +  iptables -A FORWARD -i ${LOCAL_NIC2} -o ${LOCAL_NIC1} -p tcp --dport 22 -d 10.0.0.1 -j ACCEPT
 +  
 +  ####### OUVERTURES DE LOCAL VERS INTERNET
 +  iptables -A FORWARD -i ${LOCAL_NIC2} -o ${INTERNET_NIC} -s 10.1.0.1 -j ACCEPT
 +  
 +  ####### OUVERTURES DE INTERNET VERS DMZ
 +  iptables -A FORWARD -i ${INTERNET_NIC} -o ${LOCAL_NIC1} -p tcp --dport 22 -d 10.0.0.1 -j ACCEPT
 +  iptables -A FORWARD -i ${INTERNET_NIC} -o ${LOCAL_NIC1} -p tcp --dport 80 -d 10.0.0.1 -j ACCEPT
 +  iptables -A FORWARD -i ${INTERNET_NIC} -o ${LOCAL_NIC1} -p tcp --dport 143 -d 10.0.0.1 -j ACCEPT
 +  iptables -A FORWARD -i ${INTERNET_NIC} -o ${LOCAL_NIC1} -p tcp --dport 25 -d 10.0.0.1 -j ACCEPT
 +  
 +  ###### TRANSLATIONS DE PORT DE INTERNET VERS DMZ
 +  iptables -t nat -A PREROUTING -i ${INTERNET_NIC} -p tcp --dport 2222 -j DNAT --to 10.0.0.1:22
 +  iptables -t nat -A PREROUTING -i ${INTERNET_NIC} -p tcp --dport 80 -j DNAT --to 10.0.0.1:80
 +  iptables -t nat -A PREROUTING -i ${INTERNET_NIC} -p tcp --dport 143 -j DNAT --to 10.0.0.1:143
 +  iptables -t nat -A PREROUTING -i ${INTERNET_NIC} -p tcp --dport 25 -j DNAT --to 10.0.0.1:25
 +  
 +  ###### ACCEPTE L'OUVERTURE DE PORT DYNAMIQUE POUR LES CONNEXIONS ETABLIES
 +  iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
 +  
 +  ###### MASQUAGE DES ADRESSES IP PRIVE POUR SORTIR SUR LE RESEAU INTERNET
 +  iptables -t nat -A POSTROUTING -o ${INTERNET_NIC} -s 10.0.0.0/24 -j MASQUERADE
 +  iptables -t nat -A POSTROUTING -o ${INTERNET_NIC} -s 10.1.0.0/24 -j MASQUERADE
 +
 +==== Grouper les règles en créant des chains ====
 +
 +Pour organiser les règles IPTABLES nous pouvons les regrouper. On insère un ensemble de règles dans des groupes et on les rattache à une des principales chaine de règle : INPUT, FORWARD ou DROP.
 +
 +Pour créer un groupe de règle nommé MY-FILTER-01 :
 +
 +  iptables -N MY-FILTER-01
 +
 +Pour ajouter ajouter une règle à ce groupe :
 +
 +  iptables -A MY-FILTER-01 -d 8.8.8.8 -j DROP
 +
 +Pour le moment, la règle que l'on vient d'ajouter n'est pas appliquée
 +
 +Nous ajoutons maintenant notre groupe de règle MY-FILTER-01 à la chaine OUTPUT :
 +
 +  iptables -A OUTPUT -j MY-FILTER-01
 +
 +Notre règle est maintenant appliquée.
 +
 +Nous ajoutons maintenant une règle supplémentaire à notre groupe de règles MY-FILTER-01 :
 +
 +  iptables -A MY-FILTER-01 -d 8.8.4.4 -j DROP
 +
 +Celle nouvelle règle est directement active.
 +
 +Listons les règles :
 +
 +  iptables -L -n -v
 +
 +Nous lisons que dans la **Chain OUTPUT** est définie une cible **MY-FILTER-01**. De ce fait toutes les règles se trouvant dans la **Chain MY-FILTER-01** seront appliqués pour les flux sortants (**OUTPUT**).
 +
 +  Chain INPUT (policy ACCEPT 111 packets, 8420 bytes)
 +   pkts bytes target     prot opt in     out     source               destination
 +  
 +  Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 +   pkts bytes target     prot opt in     out     source               destination
 +  
 +  Chain OUTPUT (policy ACCEPT 83 packets, 11212 bytes)
 +   pkts bytes target     prot opt in     out     source               destination
 +     83 11212 MY-FILTER-01  all  --  *      *       0.0.0.0/0            0.0.0.0/0
 +  
 +  Chain MY-FILTER-01 (1 references)
 +   pkts bytes target     prot opt in     out     source               destination
 +      2   168 DROP       all  --  *      *       0.0.0.0/0            8.8.8.8
 +      2   168 DROP       all  --  *      *       0.0.0.0/0            8.8.4.4
 +
 +
 +Comme nous avons regroupé les deux règles dans le même groupe, nous pouvons les désactiver d'un coup en retirant le groupe de règle MY-FILTER-01 de la chaine OUTPUT :
 +  iptables -D OUTPUT -j MY-FILTER-01
 +  
  
informatique/linux/iptables.1235379691.txt.gz · Dernière modification : (modification externe)