[iptables]mon script , mais ça marche po

bonjour,
j'ai mis un script iptables sur mon serveur debian avec:
1 eth0 pour internet
1 eth1 pour le lan1
1 eth2 pour le lan 2
le lan 1 et le lan 2 vont sur internet [ sa ça marche]
le poste du lan 1 va sur le serveur en ssh [ sa ça marche]
sur le serveur en mode console aller sur internet [ sa ça marche pas] (exemple aptitude pour mis a jour)

quelqu'un pourrait il me dire et m'indiquer la regle pour que ,à partir du serveur, j'aille sur le net ?
et est ce que mon script est correct ?

mon script
#!/bin/sh

#reinitialisation
# Reset counters
iptables -Z
iptables -Z -t mangle
iptables -Z -t nat

# Flush rules
iptables -F
iptables -F -t nat
iptables -F -t mangle

#je bloque tout
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
echo 1 > /proc/sys/net/ipv4/ip_forward



#accepte connex lo
iptables -A INPUT -i lo -j ACCEPT



iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.20



#Pour la premiere carte vers eth0
iptables -A FORWARD -i eth1 -o eth0 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -o eth1 -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#Pour la seconde carte vers eth0
iptables -A FORWARD -i eth2 -o eth0 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -o eth2 -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# ssh
iptables -A INPUT -p tcp -m tcp -s 192.168.223.42 --dport 22 -j ACCEPT

43 réponses

Résumé de la discussion

Le problème porte sur un serveur Debian multi‑NIC ne parvenant pas à sortir vers Internet depuis le LAN, malgré une règle NAT et des règles de forwarding configurées dans iptables. Les règles FORWARD permettent déjà d’accepter le trafic LAN vers eth0, mais l’orientation des lignes ESTABLISHED,RELATED est inversée dans certaines règles, ce qui bloque les retours et l’accès extérieur. Il est recommandé d’utiliser MASQUERADE sur eth0 et de corriger les FORWARD pour autoriser NEW de eth1 et eth2 vers eth0, puis ESTABLISHED,RELATED dans le sens retour, tout en conservant le forward par défaut.

Bobot (l’IA à votre service)
  1. bonjour
    ho ye, ça marche
    apres une bonne nuit
    et surtout apres un reboot de la neufbox et du serveur
    nikel
    je ne vais surtout pas chercher pourquoi , je pense qu'a force de trifouiller dans l'bazzar , j'ai fait quelque chose de pas catho
    merci à toi lami20j pour ta patience
    @+
    1. Modérateur
      ok, alors il faut voir dans ton routeur
      je ne connais pas la neuf
      mais tu dois avoir un onglet où tu peux spécifier la machine qui fera le serveur web
      par exemple chez moi j'ai ça (j'ai un routeur netgear derrier la freebox)
      https://www.cjoint.com/?iiwQrpoqOk
      1. netstat -lpn | grep '80 '
        tcp 0 0 0.0.0.0:40780 0.0.0.0:* LISTEN 1651/rpc.statd
        tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 8071/apache
        1. oups c'est apache

          ps aux | grep apache
          root 8071 0.0 1.1 4892 2152 ? Ss 00:10 0:00 /usr/sbin/apache
          www-data 8072 0.0 0.4 4892 952 ? S 00:10 0:00 /usr/sbin/apache
          www-data 8074 0.0 0.4 4892 952 ? S 00:10 0:00 /usr/sbin/apache
          www-data 8075 0.0 0.4 4892 952 ? S 00:10 0:00 /usr/sbin/apache
          www-data 8076 0.0 0.4 4892 952 ? S 00:10 0:00 /usr/sbin/apache
          www-data 8077 0.0 0.4 4892 952 ? S 00:10 0:00 /usr/sbin/apache
          root 8101 0.0 0.3 3524 688 pts/0 R+ 00:23 0:00 grep apache
          1. Modérateur
            ben, voilà pourquoi ça ne marche pas
            ton serveur est arrêté
            /etc/init.d/httpd start
            1. vi

              ps aux | grep httpd
              root 8089 0.0 0.3 3524 688 pts/0 R+ 00:11 0:00 grep httpd
              1. voici

                iptables-save
                # Generated by iptables-save v1.3.6 on Wed Aug 8 23:56:44 2007
                *nat
                :PREROUTING ACCEPT [19601:1827075]
                :POSTROUTING ACCEPT [10373:463324]
                :OUTPUT ACCEPT [13772:612975]
                -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.20
                COMMIT
                # Completed on Wed Aug 8 23:56:44 2007
                # Generated by iptables-save v1.3.6 on Wed Aug 8 23:56:44 2007
                *mangle
                :PREROUTING ACCEPT [770970:562975455]
                :INPUT ACCEPT [30576:1927103]
                :FORWARD ACCEPT [740394:561048352]
                :OUTPUT ACCEPT [25410:1264650]
                :POSTROUTING ACCEPT [765774:562302871]
                COMMIT
                # Completed on Wed Aug 8 23:56:44 2007
                # Generated by iptables-save v1.3.6 on Wed Aug 8 23:56:44 2007
                *filter
                :INPUT DROP [8560:951122]
                :FORWARD DROP [25:4493]
                :OUTPUT ACCEPT [22005:1115220]
                -A INPUT -i lo -j ACCEPT
                -A INPUT -d 192.168.1.20 -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
                -A INPUT -d 192.168.1.20 -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
                -A INPUT -s 192.168.220.0/255.255.252.0 -p tcp -m tcp --dport 4080 -j ACCEPT
                -A INPUT -s 192.168.223.42 -p tcp -m tcp --dport 22 -j ACCEPT
                -A FORWARD -i eth1 -o eth0 -m state --state NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
                -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
                -A FORWARD -i eth2 -o eth0 -m state --state NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
                -A FORWARD -i eth0 -o eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
                -A OUTPUT -o eth0 -m state --state NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
                COMMIT
                # Completed on Wed Aug 8 23:56:44 2007
                1. je ne peut pas le faire pour le moment , il y a du monde qui surf

                  j'ai essayé , en attendant , iptables -v -L -n | grep 80

                  iptables -v -L -n | grep 80
                  2 120 ACCEPT tcp -- eth0 * 0.0.0.0/0 192.168.1.20 tcp dpt:80
                  7 336 ACCEPT tcp -- * * 192.168.220.0/22 0.0.0.0/0 tcp dpt:4080

                  par contre le nmap -p 80 -v 192.168.1.20

                  PORT STATE SERVICE
                  80/tcp closed http

                  bizzard

                  là je ne suis que sur le serveur
                  1. Modérateur
                    pas besoin de modifier le script
                    cette commande en root te permettra d'accepter tout
                    si tu veux reactiver le firewall tu n'as qu'à exécuter le script
                    iptables -A INPUT -i eth0 -d x.x.x.x  -j ACCEPT
                    1. Modérateur
                      tu desactives seulement la table FILTER, ne touche pas la TABLE NAT
                      ainsi tu ne perdras la connexion
                      1. je crois que si je desactive le firewall , je n'aurais plus acces en ssh sur le serveur , car il se trouve dans un autre batiment
                        est ce vrai ?
                        1. Modérateur
                          Ca ne suffit pas
                          Il faut préciser que la machine xxx.xxx.xxx.xxx de ton LAN offre le service httpd sur le port 80
                          d'ailleurs tu peux toujours desactiver le firewall pour faire des tests
                          comme ça on pourra decouvrir où ça coince :-)
                          1. oui par la neufbox où j'ai ouvert tout les ports de 1 à 65535 vers le serveur

                            
                            #  Nom  	Protocole  	Port / plage  	Ports externes  Adresse IP de destination  	Ports destination  	
                            1 	PORTS 	les deux 	Plage de ports 	1-65535 	                 xxx.xxx.xxx.xxx                         1-65535
                            


                            xxx.xxx.xxx.xxx adresse du serveur
                            • 1
                            • 2
                            • 3