Conseil iptables

Bonjour

J'aimerais avoir des conseils pour une règle iptable que je viens de créer en parcourant le net.

Mon réseau et :

Un réseau local en 10.150.20.0 connecté sur proxy squid (eth0 - 10.150.20.1/24) avec (eth1 - 192.168.0.1/24) en sortie internet (jaimerais que le proxy face office de firewall + proxy)

Voici la règle que j'ai créé

-----------------------------
# Vider les tables
iptables -F
iptables -X

# Interdire toutes les connexions entrantes et sortantes
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# pour accepter tous sur la machine locale
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Ne pas casser les connexions etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Activer ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

# Autoriser les requettes DNS et WWW
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

# Autoriser le ping
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT

# accepter que le proxy ai une connexion internet directe
iptables -A OUTPUT -o eth1 -m state --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth1 -m state --state ESTABLISHED -p tcp --sport 80 -j ACCEPT

# LAN = Acces internet complet
#iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT
#iptables -A FORWARD -o eth1 -i ppp0 -j ACCEPT

# Activation du forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Rendre le proxy transparent
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.150.20.1:3128

# MASQUERADE eth0 vers eth1
iptables -t nat -A POSTROUTING -s 10.150.20.0/24 -j MASQUERADE

# Toutes les règles qui n'on pas passé seront refusées
iptables -A INPUT -j DROP
iptables -A FORWARD -j DROP
iptables -A OUTPUT -j DROP

------------------------------------

Pensez vous que les règles sont correctes

Merci
Configuration: Windows XP
Firefox 2.0.0.4

8 réponses

  1. Contributeur
    re

    à voir =>

    iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT  
    iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT  


    Editez le fichier /etc/sysctl.conf et rajoute ses lignes Protection antispoofing

    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.all.rp_filter = 1


    Astuces pour debugger le script de firewall lances la commande suivante =>

    sh -x /etc/init.d/fw les erreurs seront + facile à identifier ont sait jamais !!!

    Pour info => le firewall peut avoir 3 interfaces

    eth0 = interface  externe  connectées  à  internet  
    eth1 = reliant  le  firewall au  reseaux  interne  
    eth2 = interface  de  la  DMZ  la  zone  ou  se  trouvent  les  serveurs  accesibles  depuis internet  
    

    bonne chance .....
    1. Bonjour et merci pour les conseils

      Non je n'ai pas tester encore le tous, je le fait ce weekend

      Est-ce correcte ?

      #Forwarding du lan vers l'Internet
      iptables -A FORWARD -o eth0 -p tcp --sport 80 -i eth1 -j ACCEPT
      iptables -A FORWARD -i eth0 -p tcp --dport 80 -o eth1 -j ACCEPT

      Merci
      1. Dans tes règles de forward il est toujours bien de préciser l'interface d'entrée et/ou sortie.

        Sinon mis à part ça ce que tu as fais semble correcte et suis les conseils ci-dessus.

        Par contre au niveau de ta règle de Prerouting et Postrouting tu les as testé ? Elles fonctionnent ?
        1. Contributeur
          salut

          à voir =>>

          # Cela bloqueras les scans de ports dit < furtifs >> n accepte que les paquets TCP avec le flag SYN

          iptables -A INPUT -i lo -j ACCEPT
          iptables -A INPUT -m state --state INVALID -j DROP
          iptables -A INPUT -m state --state NEW,RELATED -p tcp --tcp-flags ! ALL SYN -j DROP
          iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
          iptables -A INPUT -j DROP

          # Filtrage des broadcasts

          iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP

          # Delais à l etablissement de certaines connection ( FTP ou SMTP )

          iptables -A INPUT -p tcp --destination-port auth -j REJECT --reject-with tcp-reset
          1. Est-ce que cette règle est bonne

            #Fowarding du lan vers l'Internet
            iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
            iptables -A FORWARD -p tcp --sport 80 -j ACCEPT

            Merci
            1. OK, merci

              Que faut-il rajouter pour fowarder uniquement le port 80

              Merci
              1. Modérateur
                Salut,
                au lieu de
                echo 1 > /proc/sys/net/ipv4/ip_forward


                edite plutôt le fichier /etc/sysctl
                et mets la ligne
                net.ipv4.ip_forward = 1
                # Toutes les règles qui n'on pas passé seront refusées
                iptables -A INPUT -j DROP
                iptables -A FORWARD -j DROP
                iptables -A OUTPUT -j DROP


                Inutile, tu as déjà fixé la politique de tes chaînes au début de script

                Tu as 2 cartes reséaux eth0 et eth1 mais je ne vois pas de communication entre les interfaces (chaîne FORWARD)

                1. salut
                  je vois pas l'interet de ta derniere regle si tu mets (au debut) DROP par defaut

                  d'un point de vue secure je te dirais de refuser le ping ou alors d'imposer une limite au nombre de ping

                  je ne sais plus si c'est faisable mais je te dirais de ne garder le ESTABLISHED et RELATED seulement pour les connexions que tu as specifie.

                  apres je vais m'arreter la sinon je vais dire encore plus de betises