Iptables ssh et X11forwarding

Salut,

J’essaye vainement de lancer via ssh une application graphique, mais j’ai cette erreur lorsque iptables est “rempli”

iptables sur la machine distante:

# iptables -S -P INPUT DROP -P FORWARD DROP -P OUTPUT ACCEPT -N fail2ban-ssh -A INPUT -p tcp -m multiport --dports 12222 -j fail2ban-ssh -A INPUT -i eth1 -j DROP -A INPUT -i eth2 -j DROP -A INPUT -i eth0 -j ACCEPT -A INPUT -p tcp -m tcp --tcp-flags ACK ACK -j ACCEPT -A INPUT -m state --state ESTABLISHED -j ACCEPT -A INPUT -m state --state RELATED -j ACCEPT -A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 4 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 12 -j ACCEPT -A INPUT -p tcp -m tcp --dport 12222 -j ACCEPT -A fail2ban-ssh -j RETURN

Si je “flush” iptables plus d’erreur… eth0 est pourtant réglé sur "ACCEPT"
D’ou est-ce que ça peut venir ?

Tu devrais te créer une règle qui te loggue tout ce qui ne va pas (A placer tout au début du script iptables, juste après tes règles par défaut [iptables -P xxxxx DROP] :

[code]DEBUG=“yes”

if [ “$DEBUG” == “yes” ]; then
iptables -N DEBUG
iptables -A INPUT -j DEBUG
iptables -A FORWARD -j DEBUG
iptables -A OUTPUT -j DEBUG
iptables -A DEBUG -j LOG --log-level 7 --log-prefix "[DEBUG] "
fi
[/code]

Ce qui fera que tous tes paquets passeront par la table “DEBUG” et seront marqués dans tes logs [DEBUG] IN=… dans /var/log/kern.log et/où /var/log/messages

Il n’y a, comme tu peux le voir, pas de règle DROP où autre, ce qui fait que les paquets continuent leur chemin dans les règles iptables sans aucune modification. Il te suffit ensuite de passer la variable $DEBUG=“no” pour ne plus logguer tout ce qui passe dans tes règles.

PS : Je soupçonne un problème de FORWARD, car lorsque tu tentes de faire du ssh -X , il y a des FORWARDS entre ton interface physique et LO. Or, ton FORWARD est à DROP par défaut.

Je te conseille même de faire un script plus détaillé qui te montrera au premier coups d’oeil quelle table gère ton paquet :

[code]DEBUG=“yes”

if [ “$DEBUG” == “yes” ]; then

On crée les tables pour logguer

iptables -N DEBUG.IN
iptables -A DEBUG.IN -j LOG --log-level debug --log-prefix "[DEBUG.IN ] "

iptables -N DEBUG.FWD
iptables -A DEBUG.FWD -j LOG --log-level debug --log-prefix "[DEBUG.FWD] "

iptables -N DEBUG.OUT
iptables -A DEBUG.OUT -j LOG --log-level debug --log-prefix "[DEBUG.OUT] "

On fait passer les paquets par nos tables de log

iptables -A INPUT -j DEBUG.IN
iptables -A FORWARD -j DEBUG.FWD
iptables -A OUTPUT -j DEBUG.OUT
fi
[/code]

et de toujours ajouter en fin de script trois règles qui droppent, en plus de la politique par défaut, tout en logguant.

[code]# On crée les tables LOG & DROP
iptables -N DROP.IN
iptables -A DROP.IN -j LOG --log-level debug --log-prefix "[DROP.IN ] "
iptables -A DROP.IN -j DROP

iptables -N DROP.FWD
iptables -A DROP.FWD -j LOG --log-level debug --log-prefix "[DROP.FWD] "
iptables -A DROP.FWD -j DROP

iptables -N DROP.OUT
iptables -A DROP.OUT -j LOG --log-level debug --log-prefix "[DROP.OUT] "
iptables -A DROP.OUT -j DROP

On fait passer les paquets par nos tables de log

iptables -A INPUT -j DROP.IN
iptables -A FORWARD -j DROP.FWD
iptables -A OUTPUT -j DROP.OUT
[/code]

Salut,
Merci, j’essaye.
Je n’avais pas pensé à loguer… J’ai eu autrefois des mauvaises surprises de /var/log qui explosaient à cause de ça (pas de rotation…) et du coup j’évite…

Je te fournis la configuration que j’ai appliqué sur ma machine ‘firewall/internet’, qui permets de séparer tout ce que je loggue d’iptables dans un fichier /var/log/netfilter et les règles DEBUG dans un fichier spécifique /var/log/netfilter_debug (Il faudra adapter les filtres en fonction des --log-prefix que tu utiliseras), ainsi que le script de rotation :

  1. /etc/rsyslog.d/20-firewall.conf

[code]# Log kernel generated Firewall log messages to file
:msg,contains,“INVALID state – DENY” /var/log/netfilter
& ~

:msg,contains,"[DEBUG" /var/log/netfilter_debug
& ~

:msg,contains,"[SPOOF" /var/log/netfilter
& ~

:msg,contains,"[PING" /var/log/netfilter
& ~

:msg,contains,“KNOWN” /var/log/netfilter
& ~

:msg,contains,"[FORWARD" /var/log/netfilter
& ~

:msg,contains,"[INPUT" /var/log/netfilter
& ~

:msg,contains,"[OUTPUT" /var/log/netfilter
& ~

:msg,contains,“DROP_” /var/log/netfilter
& ~

:msg,contains,"[BLOCK" /var/log/netfilter
& ~

:msg,contains,“BAD” /var/log/netfilter
& ~

:msg,contains,"[LOOPBACK" ~[/code]

  1. /etc/logrotate.d/netfilter

[code]/var/log/netfilter {
rotate 7
daily
compress
missingok
notifempty
}

/var/log/netfilter_debug {
rotate 7
daily
compress
missingok
notifempty
}[/code]

Pour t’aider à comprendre mes règles rsyslog, mes logs iptables sont du genre “[INPUT_HTTP_ETH0]” où “[FORWARD_DROP_ETH0_ETH1]”.

& ~ signifie que si la ligne de log correspond au filtre au dessus, on stope et on ne parcours plus le reste des filtres

~ en fin de ligne signifie de ne pas logguer.

Re,
Bon j’ai bien remplis les logs… :mrgreen:
J’ai fini par trouver…

[quote]PORT 6011 – Information

Port Number: 6011
TCP / UDP: [b]UDP[/b]
Delivery: No
Protocol / Name: [b]x11[/b]
Port Description: x11.x window system
Virus / Trojan: No[/quote]

Merci!

Re,
J’ai déconné…

Il manquait un gros morceau… :blush:

Merci pour tes infos, je regarde ça de plus près maintenant que j’ai réglé ma GROSSE boulette… :wink: