[iptables]mon script , mais ça marche po

seleco Messages postés 23 Statut Membre -  
seleco Messages postés 23 Statut Membre -
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

  • 1
  • 2
  • 3
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.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,
    x.x.x.x c'est l'ip de server

    Au lieu de mettre dans le script
    echo 1 > /proc/sys/net/ipv4/ip_forward

    tu peux écrire cette ligne net.ipv4.ip_forward=1 dans le fichier /etc/sysctl.conf
    #!/bin/bash
    iptables -F
    iptables -X
    iptables -P INPUT   DROP
    iptables -P OUTPUT  DROP
    iptables -P FORWARD DROP
    
    iptables -t nat -F
    iptables -t nat -X
    iptables -t nat -P PREROUTING    ACCEPT
    iptables -t nat -P POSTROUTING   ACCEPT
    iptables -t nat -P OUTPUT        ACCEPT
    
    iptables -t mangle -F
    iptables -t mangle -X
    iptables -t mangle -P PREROUTING    ACCEPT
    iptables -t mangle -P INPUT         ACCEPT
    iptables -t mangle -P OUTPUT        ACCEPT
    iptables -t mangle -P FORWARD       ACCEPT
    iptables -t mangle -P POSTROUTING   ACCEPT
    
    iptables -A INPUT -i lo -s '0.0.0.0/0' -d '0.0.0.0/0' -j ACCEPT
    iptables -A OUTPUT -o lo -s '0.0.0.0/0' -d '0.0.0.0/0' -j ACCEPT
    
    iptables -A INPUT -i eth0 -d x.x.x.x -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -o eth0 -m state --state ! INVALID -j ACCEPT
    
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    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

    0
  2. seleco Messages postés 23 Statut Membre
     
    bonjour

    merci a toi lam20j , trop top , hyper rapide
    le script marche impec
    merci encore car ça faisait un moment que je me cassait le c..
    et là en 2 coups de cuilleres à pot , tu me sauve la mise
    chapeau bas

    @+
    0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    de rien :-)

    bonne continuation
    0
  4. seleco Messages postés 23 Statut Membre
     
    bonjour,

    suite à la demande express des enfants , et certains adultes
    il me demande ml--key
    je pense que c'est niette sur le forum ,
    alors comment fermer les ports sur eth1 et eth2 pour qu'il ne passe que 21,80,443 etc.. les principaux

    et me mettre un exemple d'ouverture de port pour l'eth0 exmple 4662

    merci encore
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Marc
     
    Hello

    pourquoi pas une boucle dans ton script ?

    Dans le style

    for each port in ( 21, 80, 443, ... ) do

    iptables -A FORWARD -i eth1 -o eth0 -p tcp -dport $port -m state --state ! INVALID -j ACCEPT
    iptables -A FORWARD -o eth1 -i eth0 -p tcp -dport $port -m state --state ESTABLISHED,RELATED -j ACC
    #
    ##Pour la seconde carte vers eth0
    iptables -A FORWARD -i eth2 -o eth0 -p tcp -dport $port -m state --state ! INVALID -j ACCEPT
    iptables -A FORWARD -o eth2 -i eth0 -p tcp -dport $port -m state --state ESTABLISHED,RELATED -j ACC

    # + accept udp, ...
    done

    (syntaxe a revoir et attention sens dport/sport)

    Bonne journée !
    0
  7. seleco Messages postés 23 Statut Membre
     
    bonjour ,
    merci marc , j'essais de comprendre , mais je suis ni doué pour le bash et ni sur iptables

    il me faudrait un exemple concrés (si possibles , bien sur)

    comme m'avais fait lami20j qui etait parfait
    bonne journée
    0
  8. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    avec la variante de marc tu n'est pas obligé de taper la même ligne plusieurs fois
    en revanche si tu veux avoir les règles une par une voici un exemple

    à savoir que si tu interdit l'accès sur le ports 80 on ne peux plus accéder à web
    et tu sur de vouloir faire ça?
    ce n'est pas plutôt l'intêret d'interdire l'access à certains sites?

    il faut voir aussi la politique adoptée
    - interdire tout et laisser accès à certains ports
    - accepter tout et interdire l'accès à certains ports
    #!/bin/bash
    iptables -F
    iptables -X
    iptables -P INPUT   DROP
    iptables -P OUTPUT  DROP
    iptables -P FORWARD DROP
    
    iptables -t nat -F
    iptables -t nat -X
    iptables -t nat -P PREROUTING    ACCEPT
    iptables -t nat -P POSTROUTING   ACCEPT
    iptables -t nat -P OUTPUT        ACCEPT
    
    iptables -t mangle -F
    iptables -t mangle -X
    iptables -t mangle -P PREROUTING    ACCEPT
    iptables -t mangle -P INPUT         ACCEPT
    iptables -t mangle -P OUTPUT        ACCEPT
    iptables -t mangle -P FORWARD       ACCEPT
    iptables -t mangle -P POSTROUTING   ACCEPT
    
    iptables -A INPUT -i lo -s '0.0.0.0/0' -d '0.0.0.0/0' -j ACCEPT
    iptables -A OUTPUT -o lo -s '0.0.0.0/0' -d '0.0.0.0/0' -j ACCEPT
    
    iptables -A INPUT -i eth0 -d x.x.x.x -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -o eth0 -m state --state ! INVALID -j ACCEPT
    
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.20
    #
    ##Pour la premiere carte vers eth0
    iptables -A FORWARD -o eth1 -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -i eth1 -o eth0 --dport 80 -j DROP
    iptables -A FORWARD -i eth1 -o eth0 --dport 21 -j DROP
    iptables -A FORWARD -i eth1 -o eth0 --dport 443 -j DROP
    iptables -A FORWARD -i eth1 -o eth0 -m state --state ! INVALID -j ACCEPT
    #
    ##Pour la seconde carte vers eth0
    iptables -A FORWARD -o eth2 -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -i eth2 -o eth0 --dport 80 -j DROP
    iptables -A FORWARD -i eth2 -o eth0 --dport 21 -j DROP
    iptables -A FORWARD -i eth2 -o eth0 --dport 443 -j DROP
    iptables -A FORWARD -i eth2 -o eth0 -m state --state ! INVALID -j ACCEPT
    #
    ## ssh
    iptables -A INPUT -p tcp -m tcp -s 192.168.223.42 --dport 22 -j ACCEPT
    
    0
  9. seleco Messages postés 23 Statut Membre
     
    je vais essayé d'etre clair pour ma strategie

    tous les ports sont fermés pour eth1 et eth2 vers eth0 , sauf que
    l' on autorise , une fois que sur eth1 et eth2 soit connecté , les ports ftp(21),http(80), https(443), outlook(j'me rappel plus les ports),msn et puis c'est tout
    je le ferais ligne par ligne , c'est plus parlant pour moi , surtout si je doit en mettre d'autre

    et ensuite ouvrir un port 4662 sur eth0
    là aussi ligne par ligne , car je prendrais l'exemple pour en faire d'autre (ligne bien sur)

    voila , en d'autre termes je n'autorise pas eth1 et eth2 à mettre p2P
    et j'autorise le serveur à y aller

    merci

    ps - peut etre en mp
    0
  10. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Qui a le droit d'admin sur les machines de ton LAN à part toi?
    0
  11. seleco Messages postés 23 Statut Membre
     
    personne , que moi
    0
  12. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Alors pourquoi tu te complique la vie?! :-))

    si tu ne veux pas P2P alors tu n'as qu'à désinstaller les logiciels ou ne pas installer
    les machines de ton LAN ont quoi comme OS?!
    0
  13. seleco Messages postés 23 Statut Membre
     
    j'aime bien me compliquer la vie ,
    j'plaisante
    je n'ai pas acces aux autres postes , je ne suis que le mec qui autorise ou non , et je prefere gerer le serveur que les postes qui s'y connectent, pour garder une bande passante "correcte" , et faire des users et groups sur m--key pour ceux qui me demanderai pourquoi il ne peuvent pas faire marcher mumule

    je saurais pas non plus quel OS ils ont je leur donne uniquement le gateway , l'ip et masque , dns
    0
  14. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    voila , en d'autre termes je n'autorise pas eth1 et eth2 à mettre p2P

    je pense que tu le sais qu'on peut changer le port dans les logiciels P2P, donc si 4662 ne marchera pas, ils vont configurer un autre port
    as-tu déjà pensé?
    0
  15. seleco Messages postés 23 Statut Membre
     
    si je mets que
    tous les ports sont fermés pour eth1 et eth2 vers eth0 , sauf que
    l' on autorise , une fois que sur eth1 et eth2 soit connecté , les ports ftp(21),http(80), https(443), outlook(j'me rappel plus les ports),msn et puis c'est tout


    le 4662 ne sert que pour le serveur
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      alors comment fermer les ports sur eth1 et eth2 pour qu'il ne passe que 21,80,443 etc.. les principaux

      alors désolé, je n'ai pas vu le mot que et c'était suffisant pour inverser :-))

      ok, je vais voir ça :-))
      0
  16. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    essaie ça (je n'ai pas testé chez moi)
    #!/bin/bash
    iptables -F
    iptables -X
    iptables -P INPUT   DROP
    iptables -P OUTPUT  DROP
    iptables -P FORWARD DROP
    
    iptables -t nat -F
    iptables -t nat -X
    iptables -t nat -P PREROUTING    ACCEPT
    iptables -t nat -P POSTROUTING   ACCEPT
    iptables -t nat -P OUTPUT        ACCEPT
    
    iptables -t mangle -F
    iptables -t mangle -X
    iptables -t mangle -P PREROUTING    ACCEPT
    iptables -t mangle -P INPUT         ACCEPT
    iptables -t mangle -P OUTPUT        ACCEPT
    iptables -t mangle -P FORWARD       ACCEPT
    iptables -t mangle -P POSTROUTING   ACCEPT
    
    iptables -A INPUT -i lo -s '0.0.0.0/0' -d '0.0.0.0/0' -j ACCEPT
    iptables -A OUTPUT -o lo -s '0.0.0.0/0' -d '0.0.0.0/0' -j ACCEPT
    
    iptables -A INPUT -i eth0 -d x.x.x.x -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -o eth0 -m state --state ! INVALID -j ACCEPT
    
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.20
    #
    ##Pour la premiere carte vers eth0
    iptables -A FORWARD -o eth1 -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -i eth1 -o eth0 --dport 80 -j ACCEPT
    iptables -A FORWARD -i eth1 -o eth0 --dport 20:21 -j ACCEPT
    iptables -A FORWARD -i eth1 -o eth0 --dport 443 -j ACCEPT
    iptables -A FORWARD -i eth1 -o eth0 -j DROP
    #
    ##Pour la seconde carte vers eth0
    iptables -A FORWARD -o eth2 -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -i eth2 -o eth0 --dport 80 -j ACCEPT
    iptables -A FORWARD -i eth2 -o eth0 --dport 20:21 -j ACCEPT
    iptables -A FORWARD -i eth2 -o eth0 --dport 443 -j ACCEPT
    iptables -A FORWARD -i eth2 -o eth0 -j DROP
    #
    ## ssh
    iptables -A INPUT -p tcp -m tcp -s 192.168.223.42 --dport 22 -j ACCEPT
    
    0
  17. seleco Messages postés 23 Statut Membre
     
    bonjour ,
    merci pour le script et la rapidité,
    j'ai pas eu , encore ,le temps d'essayer , y a du monde chez moi
    j'ai juste jeté un oeil
    je le test dés que j'ai un moment "calme"
    juste que je n'ai pas vu l'ouverture du port 4662
    est ce volontaire ou un oubli ?

    merci encore
    @+
    0
  18. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    le 4662 ne sert que pour le serveur
    non, ce n'est pas un oublie, mais ce n'est pas nécessaire de créer une règle pour ça
    le server a déjà accès par tout (voir cette règle dans le script)
    iptables -A OUTPUT -o eth0 -m state --state ! INVALID -j ACCEPT
    0
  19. seleco Messages postés 23 Statut Membre
     
    bonjour
    merci pour script ça fonctionne , sauf
    le 4662 que me met en Lo ID ; malgré l'ouverture du port sur la neufbox

    aurai tu une idée d'où ça vient ?

    merci
    0
  20. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    regarde ici emule lowid
    0
  21. seleco Messages postés 23 Statut Membre
     
    oui , j'avais deja lu , et je m'en suis meme servi pour le reglage de ma box
    ils disent bien
    Pour y remédier, il est nécessaire d'ouvrir les ports 4662 TCP, 4672 UDP, 4661 TCP et 4665 UDP sur le pare-feu (firewall) ! Attention, si vous avez une "box" (Livebox, Freebox, 9box etc ....), celle-ci dispose aussi d'un pare-feu. 


    le
    Attention, si vous avez une "box" (Livebox, Freebox, 9box etc ....), celle-ci dispose aussi d'un pare-feu.
    est deja fait
    0
  • 1
  • 2
  • 3