Problème de règles (IPTABLES)

[quote=“yannick.fr”]2 règles: 1 pour la source 1 pour le destinataire donc

iptables -A OUTPUT -p udp --source weblist.teamspeak.com -j --sport 2010 -j ACCEPT iptables -A OUTPUT -p udp --source weblist.teamspeak.com -j --dport 2010 -j ACCEPT[/quote]
Pour moi le port 2010 ne peut être qu’un port distant, donc la première règle n’a pas lieu d’être.

iptables -A INPUT -s weblist.teamspeak.com -j LOG --log-prefix "weblist_in " iptables -A OUTPUT -d weblist.teamspeak.com -j LOG --log-prefix "weblist_out "
A ajouter en fin de chaîne après toutes les règles ACCEPT. Idem pour l’autre machine.
Les messages seront dans les logs du noyau (dmesg ou /var/log/kern.log).

bonjour :unamused:

D’accord, c’est noté !
J’applique toutes ces règles dès ce matin, et je check les logs ce soir [dmesg ou /var/log/kern.log]

Je te remercie vraiment pour ton aide juste et précieuse. :023

Je devais être fatigué pour avoir laissé passer ça :

Le but est d’autoriser les paquets sortant vers weblist.teamspeak.com, donc [mono]-d[/mono] au lieu de [mono]-s[/mono].

Corrigé: ce qui donne
iptables -A OUTPUT -p udp –destination weblist.teamspeak.com --dport 2010 -j ACCEPT

Voilà, le résultat des logs ==> toutes les 10 minutes nous avons:

Rien en ce qui concerne weblist_in.
Rappel des règles que l’on a appliqué

iptables -t filter -A INPUT -p tcp --dport 30033 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 10011 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 41144 -j ACCEPT iptables -A OUTPUT -p udp --sport 2011:2110 -j ACCEPT iptables -A OUTPUT -p udp --destination weblist.teamspeak.com --sport 2010 -j ACCEPT echo - Regle generales Teamspeak autorisees :[OK] iptables -A INPUT -s weblist.teamspeak.com -j LOG --log-prefix "weblist_in " iptables -A OUTPUT -d weblist.teamspeak.com -j LOG --log-prefix "weblist_out " echo - Log relatif a weblist.teamspeak.com actif: [OK]
Nous pouvons en déduire que la dernière règle (weblist.teamspeak.com) est correcte

Tu déduis un peu vite.

Qu’est-ce qu’il fait encore là ce --sport ? Tu n’avais pas corrigé ? Pas étonnant que ces paquets soient bloqués.

Forcément, si les paquets émis vers cette machine sont bloqués, elle ne risque pas d’envoyer de réponse.

Tu as aussi ajouté les règles équivalentes pour accounting.teamspeak.com ?
Tant que tu y es, tu peux ajouter une règle de LOG pour tous les paquets sortants non acceptés. Ainsi tu verras si un processus local essaie d’envoyer du trafic que tu n’as pas autorisé. En entrée c’est plus délicat de le faire, il va inévitablement y avoir le bruit de fond d’internet.

Message supprimé car corrigé après un commentaire arrivé entre temps …
Je suggérais
iptables -t filter -P OUTPUT DROP -j LOG --log-prefix "Dropped_Packet "

Tu ne peux pas mélanger la politique par défaut et une règle de LOG dans une même commande. Il faut une commande pour définir la politique par défaut (DROP) et une commande pour créer une règle -j LOG en fin de chaîne.

C’est vrai, et IPTABLES le fait savoir …

Donc, on créé une chain (-N) Dropped_Packets, dédié à OUTPUT (-A) avec laquelle on va utiliser les logs et ensuite droper.

#Pour suivi, on log les paquets Drop
iptables -N Dropped_Packets
iptables -A OUTPUT -j Dropped_Packets
iptables -A Dropped_Packets -j LOG --log-prefix "Dropped "
iptables -A Dropped_Packets -j DROP
echo - Log relatif au DROP actif: [OK]

Il n’était pas utile de créer une chaîne. Il suffisait d’ajouter la règle LOG en fin de chaîne, et la politique par défaut DROP faisait le reste.
Créer une chaîne LOG_DROP est utile lorsqu’on veut logger puis bloquer certains paquets spécifiques. Là tu veux juste logger tous les paquets qui n’ont pas été acceptés, et qui vont être bloqués par la politique par défaut de toute façon.

J ai tenté avec

iptables -t filter -P OUTPUT DROP -j LOG --log-prefix "Dropped_Packet " Illegal option `-j’ with this command

Donc ce serait :
iptables -A OUTPUT -j LOG --log-prefix "Dropped_Packet " ??

Oui. Comme je l’ai déjà dit et tu l’as déjà constaté on ne peut pas combiner -P et -j.

Voilà le résultat du log

Jul 9 18:59:06 srv01 kernel: [1187201.682914] Dropped_Packet IN= OUT=venet0 SRC=5.XXX.xxx.XXX DST=194.97.114.3 LEN=32 TOS=0x00 PREC=0x00 TTL=64 ID=44722 DF PROTO=UDP SPT=51654 DPT=2010 LEN=12
Jul 9 18:59:06 srv01 kernel: [1187201.683033]
weblist_out IN= OUT=venet0 SRC=5.XXX.xxx.XXX DST=194.97.114.3 LEN=32 TOS=0x00 PREC=0x00 TTL=64 ID=44723 DF PROTO=UDP SPT=51654 DPT=2010 LEN=12

Il y a problème, on log les paquets sortants autorisés à destination de weblist.teamspeak.com que l on retrouve dans la deuxième ligne du rapport avec :
iptables -A OUTPUT -d weblist.teamspeak.com -j LOG --log-prefix "weblist_out "

On log les paquets non autorisés en sortie (donc bloqués par la politique par défaut) avec :
iptables -A OUTPUT -j LOG --log-prefix "Dropped_Packet "

J’observe que les “paquets autorisés” correspondent au “paquets bloqués” …
Je sais que je me suis embrouillé quelque part … :unamused:

Edit: en fait je log les paquets qui sortent (autorisés ou non) …

C’est le même paquet loggé deux fois, par deux règles différentes.
Je crois qu’il est temps que tu publies l’état complet de ton jeu de règles, qu’on voit où tu en es exactement. Soit le script générateur, soit la sortie d’iptables-save.

le script:

[code]#!/bin/sh

Vidage des tables et des regles personnelles

iptables -t filter -F
iptables -t filter -X
echo - Vidage des regles et des tables : [OK]

Interdire toutes connexions entrantes et sortantes

iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
echo - Interdire toutes les connexions entrantes et sortantes : [OK]

Ne pas casser les connexions etablies

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
echo - Ne pas casser les connexions etablies : [OK]

Autoriser loopback

iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
echo - Loopback autorise: [OK]

Autoriser requetes DNS

iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
echo - Requete DNS autorisees :[OK]

Autoriser HTTP, HTTPS et SSH (via 443)

iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
echo - HTTP et HTTPS autorises :[OK]

Autoriser Webmin via venet0 & tun0 sur le port 10000

iptables -A INPUT -i venet0 -p tcp --dport 10000 -j ACCEPT
iptables -A INPUT -i tun0 -p tcp --dport 10000 -j ACCEPT
echo - Webmin sur port 1000 autorise :[OK]

Autoriser le monitoring OVH

iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source ping.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.p19.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.rbx.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.rbx2.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.sbg.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.bhs.ovh.net -j ACCEPT
echo - Ping du monitoring OVH:[OK]

#Autoriser OpenVPN, Regles obligatoires pour ouvrir deverrouiller acces:
iptables -t filter -A INPUT -p udp --dport 25565 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT

Regles de translation d’adresses

iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
echo - OpenVPN sur port 25565 + traffic autorise :[OK]

Teamspeak numero 1 (9987)

iptables -t filter -A INPUT -p udp --dport 9987 -j ACCEPT
echo - Premier serveur Teamspeak sur 9987 autorise : [OK]

Licence Teamspeak

iptables -A OUTPUT -p tcp -d accounting.teamspeak.com --dport 2008 -j ACCEPT
echo - Check logs License TS :[OK]

Regles generales du process Teamspeak (optionnel)

iptables -t filter -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 41144 -j ACCEPT
iptables -A OUTPUT -p udp --sport 2011:2110 -j ACCEPT
iptables -A OUTPUT -p udp --destination weblist.teamspeak.com --sport 2010 -j ACCEPT
echo - Regle generales Teamspeak autorisees :[OK]

#Pour suivi, on log ce qu il se passe concernant weblist.teamspeak.com
iptables -A INPUT -s weblist.teamspeak.com -j LOG --log-prefix "weblist_in "
iptables -A OUTPUT -d weblist.teamspeak.com -j LOG --log-prefix "weblist_out "
echo - Log relatif a weblist.teamspeak.com actif: [OK][/code]

J’ai ajouté cet après-midi en ligne de commande :

Ca donne sacrement mal à la tête …

Merci pour ton support en tout cas !

Malgré mes remarques répétées, je constate la présence persistante de [mono]–sport 2010[/mono] au lieu de [mono]–dport[/mono], d’où les logs tout aussi persistants.

Il manque aussi des règles LOG pour vérifier si du trafic depuis ou vers accounting.teamspeak.com est bloqué, au cas où j’aurais mal interprété les exigences.

Hello,

Updated !
Modifs effectuées (sur le script )

Ajout de en fin de script de:

iptables -A INPUT -s accounting.teamspeak.com -j LOG --log-prefix "Account_TS_in " iptables -A OUTPUT -d accounting.teamspeak.com -j LOG --log-prefix "Account_TS_out " iptables -A OUTPUT -j LOG --log-prefix "Dropped_Packet "

Je poste courant de la matinée un morceau de log.

Merci

Bon la seule trace que j’obtiens avec les logs

Jul 10 11:36:49 vps01 kernel: [1247065.515054] Dropped_Packet IN= OUT=venet0 SRC=5.XXX.xxx.XXX DST=108.60.199.109 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=30405 DF PROTO=TCP SPT=50864 DPT=80 WINDOW=14600 RES=0x00 SYN URGP=0
ça correspond à Virtualmin, certainement pour le MAJ du module Webmin.

Par contre aucune trace de

weblist_in, weblist_out, Account_TS_in, Account_TS_out, :017

Tu sais, sommes pas obligés de nous prendre la tête avec ça, là ça fonctionne …

Aucune trace = aucun paquet bloqué depuis ou vers ces machines dont tout va bien.

Ok, c’est juste que je ne comprends pas pourquoi weblist_out n’est pas dans le log…

iptables -A OUTPUT -d weblist.teamspeak.com -j LOG --log-prefix "weblist_out "

alors qu’une règle est existe justement pour laisser sortir en 2010:

iptables -A OUTPUT -p udp --destination weblist.teamspeak.com --dport 2010 -j ACCEPT

En tout cas, ce sujet est clôturé. Un super big merci pour tes réponses constructives. :041

Merci