Forum Linux.noyau Demande d'avis sur une config iptables.

Posté par  .
Étiquettes :
0
16
fév.
2007
Bonsoir.
Avant tout, j'espère ne pas m'être trompé de rubrique.
Ceci est un Copier/coller d'un de mes posts sur le forum de framasoft. Je me permet de le remettre ici car je n'ai reçu que deux réponses, toutes deux opposées l'une à l'autre.

Merci de votre aide.

J'aurais voulu avoir l'avis de certains sur ma config iptable au niveau sécurité. Comme iptables n'est pas super simple et que je ne suis pas professionnel des pare-feux, j'ai des doutes sur mon filtrage.
Je suis sous Ubuntu 6.06 server noyau 2.6.15-27-686 avec fluxbox en window manager (je trouve gnome un peu lent)

Autres précisions, c'est un ordinateur personnel (portable), pas le serveur de la DGSE contenant les nom des agents secrets. (Nan mais je préfère préciser ^^)
Par contre, ça doit être assez costaud pour tenir quand je me connecte dans des endroits pas trés sûrs (LAN's ?). Le SSH à un password solide (8 chiffes lettres majuscules/minuscules) et pas le login en root. Je suis le seul utilisateur.
J'espère avoir assez détaillé.
Merci d'avance.

:PREROUTING ACCEPT [12:2602]
:POSTROUTING ACCEPT [5:326]
:OUTPUT ACCEPT [5:326]
COMMIT

*mangle
:PREROUTING ACCEPT [169:31249]
:INPUT ACCEPT [169:31249]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [176:54645]
:POSTROUTING ACCEPT [176:54645]
COMMIT

:INPUT DROP [11:2554] //Par défaut : Rejeter tout le trafic entrant destiné à ma machine
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [176:54645] //Par défaut : Autoriser tout le trafic sortant de ma machine et venant d'elle
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT // Serveur SSH
-A INPUT -p udp -m udp --sport 53 -j ACCEPT // DNS
-A INPUT -p tcp -m tcp --sport 53 -j ACCEPT // DNS
-A INPUT -s 212.247.156.12 -p tcp -m tcp --sport 110 -j ACCEPT // POP limité à mon fai
-A INPUT -s 212.247.156.12 -p tcp -m tcp --sport 587 -j ACCEPT // SMTP (port 587 chez tele2) limité au fai
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT // Navigation web
-A INPUT -i lo -j ACCEPT // Connexions locales
-A INPUT -p tcp -m tcp --sport 4000 -j ACCEPT // Jeu (Diablo II sur wine)
-A INPUT -p tcp -m tcp --sport 6112 -j ACCEPT // Jeu (Diablo II sur wine)
-A INPUT -p tcp -m tcp --sport 1863 -j ACCEPT // Gaim (msn)
-A INPUT -p tcp -m tcp --sport 443 -j ACCEPT // HTTPS
-A INPUT -p tcp -m tcp --sport 6667 -j ACCEPT // IRC
COMMIT


Sur ce, on m'a dit qu'il serait préférable de filtrer la chaine OUTPUT aussi. Je l'ai fait (je ne vais pas ajouter la config, ce serait un peu lourd et c'est juste un miroir de INPUT)

Mais cela me pose quelques problèmes dans le fait que je ne puisse plus utiliser nmap.

J'ai pensé à la solution suivante :

iptables -A OUTPUT -o eth0 -p tcp -m owner --cmd-owner nmap -J ACCEPT

mais Iptables me gratifie d'un encouragent " Iptables : Invalid argument"

Merci pour vos réponses.
Cordialement. Choukette
  • # mwais

    Posté par  . Évalué à 2.

    Filtrer l'output, c'est pas nécessaire dans la mesure où tu es le seul utilisateur de la machine... donc à part si ça t'amuse follement, je laisserais tomber cette partie là...

    Ensuite, la partie de filtrage sur l'input est franchement lourde, rigide, moche... il serait plus simple et plus logique d'utiliser smart-drop (permet de faire des drops, reset, des reject, ... basés sur des limites) et statefull-accept...

    Un conseil aussi, à part si ton rêve est d'être totalement invisible, laisse l'icmp, c'est toujours intéressant pour la découverte de mtu...
  • # Pas un mirroir

    Posté par  . Évalué à 1.

    L'OUTPUT n'est pas tout à fait un mirroir de l'input, normallement pour chaque INPUT tu devrais avoir un OUTPUT avec, entre autre,le switch -m state --state ESTABLISHED(,RELATED) ajouté.

    Perso, je te conseille de mettre la POLICY d' INPUT, OUTPUT et FORWARD à DROP par défaut puis:

    Pour autoriser des connections entrantes tcp (internet-> vers ta machine):

    iptables -A INPUT -s [allowed-client-ip] -p tcp,udp --dport [port] -j ACCEPT
    iptables -A OUTPUT -d [allowed-client-ip] -p tcp,udp --sport [port] -j ACCEPT -m state --state ESTABLISHED

    Pour autoriser les connections sortantes tcp (initiées par ta machine->internet):

    iptables -A OUTPUT -d [destination-server-ip] -p tcp,udp --dport [port] -j ACCEPT
    iptables -A INPUT -s [destination-server-ip] -p tcp,udp --sport [port] -j ACCEPT -m state --state ESTABLISHED


    Dans ton cas, si tu souhaites t'autoriser toutes les connections sortantes(utile pour nmap aussi) sans trop de prendre la tête:

    modprobe ip_conntrack_ftp
    iptables -A OUTPUT -j ACCEPT
    iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

    Puis pour autoriser le ssh depuis l'exterieur rajoute les lignes de mon exemple sur les connection entrantes pour chaque ports que tu souhaites ouvrir:

    iptables -A INPUT -s 0/0 -p tcp --dport 22 -j ACCEPT
    # Plus nécessaire car OUTPUT est ACCEPT ..
    # iptables -A OUTPUT -d 0/0-p tcp --sport 22 -j ACCEPT -m state --state ESTABLISHED



    Entrée progressive dans le registre du parano:

    Il est aussi intéressant de ne pas utiliser directement ACCEPT mais
    de créér une table (par exemple 'TCPACCEPT') et valider quelques
    flags avant d'accepter le packet, par exemple:
    iptables -N TCPACCEPT
    iptables -A TCPACCEPT -p tcp ! --syn -m state --state NEW -j DROP
    iptables-A TCPACCEPT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
    iptables -A TCPACCEPT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
    iptables -A TCPACCEPT -p tcp --tcp-flags ALL ALL -j DROP
    iptables -A TCPACCEPT -p tcp --tcp-flags ALL NONE -j DROP
    iptables -A TCPACCEPT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
    iptables -A TCPACCEPT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

    Le DROP devrait être aussi remplacé par une table qui écrit des logs avant
    de DROPper..
    • [^] # Re: Pas un mirroir

      Posté par  . Évalué à 1.

      Merci pour toutes ces réponses. Je pense que je vais mixer un peu tout ça pour faire un truc "à ma sauce". Je suis un peu allergique au gaspillage de mémoire donc je vais trouver un compromis pour pas charger trop de modules.

      Encore merci pour ces réponses rapides.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.