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édentes Révision précédente
Prochaine révision
Révision précédente
informatique:linux:iptables [2009/02/23 10:02]
benoit
informatique:linux:iptables [2018/09/06 19:10] (Version actuelle)
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 77: 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.1235379777.txt.gz · Dernière modification: 2018/09/06 19:00 (modification externe)