Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

iptables : DROP par défaut, le LAN accède à Tux mais Tux sort pas (sauf pour surfer)

6 réponses
Avatar
sittiherve
Bonjour,
Voilà donc, après deux jour de recherche sans résultat, je vous soumets mon
problème.
Nous avons un serveur Mandriva (smb, postfix, fetchmail, squid, ...) qui
fait passerelle sur notre LAN.
J'ai modifié mes iptables pour tout dropper par défaut (voir script ) (mieux
pour les trojans ...etc.)
Depuis,
- nous pouvons aller surfer (sauf si on utilise squid).
- impossible de recevoir les email : lorsque je fais un telnet
ip.mon.fai. 110 ... la résolution DNS est Ok mais pas de connexion.
J'ai donc un problème sur INPUT et OUTPUT (d'ailleurs, en les remettant à
ACCEPT par defaut, ca fonctionne.
Aussi, je vousais vous dire : "j'en ai
mmmmmmmmmmmmmaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrreeeeeeeeeeeeeeeeeeeee"
Merci de votre compréhension ... et de votre solution.

# Chargement des modules
/sbin/modprobe iptable_nat
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_state
/sbin/modprobe ipt_MASQUERADE

# Effacement des règles des tables
/sbin/iptables -t nat -F
/sbin/iptables -F
/sbin/iptables -X

# Define default policy to DROP packets
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

net=192.168.0.0
mask=255.255.255.0
inif=eth1
outif=eth0

# Accept all local (loopback) traffic on the lo interface
/sbin/iptables -A INPUT -s 127.0.0.1 -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -d 127.0.0.1 -o lo -j ACCEPT

#/sbin/iptables -A OUTPUT -p tcp --dport 110 -s 192.168.0.0/24 -j ACCEPT

## Règles concernant les INPUT/OUTPUT
# Permit DNS traffic
/sbin/iptables -A INPUT -p udp --sport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

# Accept local-network return traffic from private network 192.168.0.0/24:
/sbin/iptables -A INPUT -m state -p tcp --dport 1024:65535 --state
ESTABLISHED,RELATED -s 192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 1024:65535 ! --state
INVALID -d 192.168.0.0/24 -j ACCEPT

# Accept all HTTP connections
/sbin/iptables -A INPUT -m state -p tcp --dport 80 ! --state INVALID -j
ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 80 --state
ESTABLISHED,RELATED -j ACCEPT

# Accept local (192.168.0.0/24) POP traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 110 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 110 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT

# Accept local (192.168.0.0/24) IMAP traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 443 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 443 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT

# Accept local (192.168.0.0/24) SMTP traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 25 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 25 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT

# Accept local (192.168.0.0/24) SMB traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 139 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 139 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT
/sbin/iptables -A INPUT -m state -p tcp --dport 445 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 445 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT

# Accept local (192.168.0.0/24) SQUID traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 3128 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 3128 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT

##################################################################

# Accept extern traffic on the public interface for Apache
/sbin/iptables -A INPUT -i $outif -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A FORWARD -i $outif -d $net/$mask -p tcp --sport
80 -mstate --state RELATED,ESTABLISHED -j ACCEPT


## Règles concernant le forwarding :
# Activation du routage NAT: translation d'adresse
/sbin/iptables -t nat -A POSTROUTING -s $net/$mask -o $outif -j MASQUERADE

# Acceptation des paquets en entrée sur out uniquement si correspondant à
des connexions établies ou necessitant une nouvelle connexion.
/sbin/iptables -A FORWARD -i $outif -d $net/$mask -mstate --state
RELATED,ESTABLISHED -j ACCEPT

# on accepte tous les paquets sortants du réseau local
/sbin/iptables -A FORWARD -s $net/$mask -o $outif -j ACCEPT

# Log all other traffic
/sbin/iptables -A INPUT -j LOG
/sbin/iptables -A OUTPUT -j LOG
/sbin/iptables -A FORWARD -j LOG

echo 1 >/proc/sys/net/ipv4/ip_forward

6 réponses

Avatar
Pascal Hambourg
Salut,

Nous avons un serveur Mandriva (smb, postfix, fetchmail, squid, ...) qui
fait passerelle sur notre LAN.
J'ai modifié mes iptables pour tout dropper par défaut (voir script ) (mieux
pour les trojans ...etc.)


Les trojans, bof... C'est mieux de bloquer par défaut et d'accepter au
cas par cas simplement parce que c'est plus sûr : si on oublie
d'accepter quelque chose on s'en rend vite compte, la preuve avec ton cas.

Depuis,
- nous pouvons aller surfer (sauf si on utilise squid).


Donc ça passe en FORWARD, je suppose.

- impossible de recevoir les email : lorsque je fais un telnet
ip.mon.fai. 110 ... la résolution DNS est Ok mais pas de connexion.


Depuis la passerelle ou depuis le LAN ?

# Chargement des modules
/sbin/modprobe iptable_nat
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_state
/sbin/modprobe ipt_MASQUERADE


Normalement c'est inutile tout ça, les modules nécessaires devraient
être chargés automatiquement par les règles qui en ont besoin.

# Effacement des règles des tables
/sbin/iptables -t nat -F
/sbin/iptables -F
/sbin/iptables -X

# Define default policy to DROP packets
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

net2.168.0.0
mask%5.255.255.0


J'aurais rassemblé adresse réseau et masque en une seule variable
contenant le préfixe 192.168.0.0/24.

inif=eth1
outif=eth0

# Accept all local (loopback) traffic on the lo interface
/sbin/iptables -A INPUT -s 127.0.0.1 -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -d 127.0.0.1 -o lo -j ACCEPT


Trop restrictif. 127.0.0.1 n'est pas la seule adresse utilisée sur
l'interface de loopback. Il y a toute la plage 127.0.0.0/8 et aussi les
adresses de toutes les autres interfaces locales (eth0, eth1). Bref, pas
la peine de vérifier l'adresse source ou destination du trafic local. La
fonction de routage du noyau s'en charge déjà très bien toute seule.

## Règles concernant les INPUT/OUTPUT
# Permit DNS traffic
/sbin/iptables -A INPUT -p udp --sport 53 -j ACCEPT


Trop permissif, ça laisse passer un paquet UDP entrant vers n'importe
quel port destination du moment qu'il provient du port source 53. Pour
le trafic retour, toujours utiliser le suivi de connexion.

/sbin/iptables -A OUTPUT -p udp --dport 53 -j ACCEPT


Quid des requêtes DNS sur TCP ?

# Accept local-network return traffic from private network 192.168.0.0/24:
/sbin/iptables -A INPUT -m state -p tcp --dport 1024:65535 --state
ESTABLISHED,RELATED -s 192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 1024:65535 ! --state
INVALID -d 192.168.0.0/24 -j ACCEPT


- Pourquoi n'autoriser que les connexions à partir d'un port source non
privilégié ? Cela bloque notamment les connexions de données FTP en mode
actif (port source 20).
- Quid des protocole autres que TCP (UDP, ICMP...) ?
- Vérifier l'interface d'entrée est plus sûr que vérifier l'adresse
source. Avec ces règles un paquet provenant de l'extérieur dont
l'adresse source est usurpée ("spoofée") pourrait être accepté à tort.

# Accept all HTTP connections
/sbin/iptables -A INPUT -m state -p tcp --dport 80 ! --state INVALID -j
ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 80 --state
ESTABLISHED,RELATED -j ACCEPT


- Le trafic HTTP n'est jamais dans l'état RELATED, seulement NEW et
ESTABLISHED.
- La gestion du trafic retour/établi/lié est inutilement compliquée.
Inutile de vérifier le port à chaque paquet une fois que le paquet
initial a été accepté, le suivi de connexion s'en charge déjà. Une seule
règle par sens et éventuellement par interface suffirait pour gérer
*tout* ce trafic.

# Accept local (192.168.0.0/24) POP traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 110 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 110 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT

# Accept local (192.168.0.0/24) IMAP traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 443 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 443 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT

# Accept local (192.168.0.0/24) SMTP traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 25 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 25 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT

# Accept local (192.168.0.0/24) SMB traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 139 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 139 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT
/sbin/iptables -A INPUT -m state -p tcp --dport 445 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 445 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT

# Accept local (192.168.0.0/24) SQUID traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 3128 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 3128 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT


Mêmes remarques que pour HTTP pour toutes ces applications.
Et mieux vaut vérifier l'interface d'entrée/sortie que l'adresse
source/destination.

##################################################################

# Accept extern traffic on the public interface for Apache
/sbin/iptables -A INPUT -i $outif -p tcp --dport 80 -j ACCEPT


C'est un peu tard, les connexions HTTP entrantes ont déjà été acceptées
plus haut.

/sbin/iptables -A FORWARD -i $outif -d $net/$mask -p tcp --sport
80 -mstate --state RELATED,ESTABLISHED -j ACCEPT


- Il n'y pas d'état RELATED dans HTTP.
- Ça ne sert à rien de vérifier le port source d'un paquet ESTABLISHED
puisque le suivi de connexion s'en charge.
- Je n'ai pas déjà dit tout ça ?
- Que fait une règle FORWARD à cet endroit du script et quel rapport
avec la règle INPUT qui la précède ?

## Règles concernant le forwarding :
# Activation du routage NAT: translation d'adresse


Note : dans Linux et Netfilter/iptables, il n'y a pas de "routage NAT" :
routage et NAT (sous toutes ses formes) sont des opérations indépendantes.

/sbin/iptables -t nat -A POSTROUTING -s $net/$mask -o $outif -j MASQUERADE

# Acceptation des paquets en entrée sur out uniquement si correspondant à
des connexions établies ou necessitant une nouvelle connexion.
/sbin/iptables -A FORWARD -i $outif -d $net/$mask -mstate --state
RELATED,ESTABLISHED -j ACCEPT


Il manque un(e) espace entre '-m' et 'state'.

# on accepte tous les paquets sortants du réseau local
/sbin/iptables -A FORWARD -s $net/$mask -o $outif -j ACCEPT


Il serait plus simple de vérifier l'interface d'entrée.

# Log all other traffic
/sbin/iptables -A INPUT -j LOG
/sbin/iptables -A OUTPUT -j LOG
/sbin/iptables -A FORWARD -j LOG

echo 1 >/proc/sys/net/ipv4/ip_forward


Je ne vois aucune règle autorisant les connexions sortantes à partir de
la passerelle vers l'extérieur. Par exemple, pour le proxy HTTP/HTTPS et
le POP3, il faudrait :

iptables -A OUTPUT -p tcp -m multiport --dports 80,443,110
-m state --state NEW,ESTABLISHED -j ACCEPT

Et la règle correspondante pour le trafic retour dans INPUT.

Avatar
Sam
Bonjour,

Je vais essayer de répondre,

Bonjour,
Voilà donc, après deux jour de recherche sans résultat, je vous soumets mon
problème.
Nous avons un serveur Mandriva (smb, postfix, fetchmail, squid, ...) qui
fait passerelle sur notre LAN.
J'ai modifié mes iptables pour tout dropper par défaut (voir script ) (mieux
pour les trojans ...etc.)
Depuis,
- nous pouvons aller surfer (sauf si on utilise squid).
- impossible de recevoir les email : lorsque je fais un telnet
ip.mon.fai. 110 ... la résolution DNS est Ok mais pas de connexion.
J'ai donc un problème sur INPUT et OUTPUT (d'ailleurs, en les remettant à
ACCEPT par defaut, ca fonctionne.
Aussi, je vousais vous dire : "j'en ai
mmmmmmmmmmmmmaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrreeeeeeeeeeeeeeeeeeeee"
Merci de votre compréhension ... et de votre solution.
# Chargement des modules
/sbin/modprobe iptable_nat
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_state
/sbin/modprobe ipt_MASQUERADE
# Effacement des règles des tables
/sbin/iptables -t nat -F
/sbin/iptables -F
/sbin/iptables -X
# Define default policy to DROP packets
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
net2.168.0.0
mask%5.255.255.0
inif=eth1
outif=eth0
# Accept all local (loopback) traffic on the lo interface
/sbin/iptables -A INPUT -s 127.0.0.1 -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -d 127.0.0.1 -o lo -j ACCEPT
#/sbin/iptables -A OUTPUT -p tcp --dport 110 -s 192.168.0.0/24 -j ACCEPT


Là ça sent le gars désespéré qui veut que le port 110 marche en sortie ;-)
Sauf que si par la suite il y a une règle qui dit le contraire (puisque
tu dis que ça marche pas), et ben c'est la dernière règle bloquante qui
l'emporte.

## Règles concernant les INPUT/OUTPUT
# Permit DNS traffic
/sbin/iptables -A INPUT -p udp --sport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --dport 53 -j ACCEPT


Il faut pas oublier tcp pour le port 53
Il manque l'interface
Puisque par la suite tu gères les états, mets les aussi maintenant :
iptables -A INPUT -i $wan -p udp --sport 53 -m state --state ESTABLISHED
-J ACCEPT
iptables -A OUTPUT -o $wan -p udp --dport 53 -m state NEW,ESTABLISHED -j
ACCEPT

# Accept local-network return traffic from private network 192.168.0.0/24:
/sbin/iptables -A INPUT -m state -p tcp --dport 1024:65535 --state
ESTABLISHED,RELATED -s 192.168.0.0/24 -j ACCEPT


Et pourquoi que tcp, pas udp ?
En faisant ça, tu risques d'accepter les adresses spoofées privées
venant d'Internet car pas d'interface désignée.
iptables -A INPUT -i $lan -p tcp etc ....

/sbin/iptables -A OUTPUT -m state -p tcp --sport 1024:65535 ! --state
INVALID -d 192.168.0.0/24 -j ACCEPT


Il manque l'interface
Je ne comprends pas trop pourquoi un état invalid devrait être accepté.

# Accept all HTTP connections
/sbin/iptables -A INPUT -m state -p tcp --dport 80 ! --state INVALID -j
ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 80 --state
ESTABLISHED,RELATED -j ACCEPT


Je comprends de moins en moins.
Normalement pour forward lan -> wan:
iptables -A FORWARD -i $lan -o $wan -p tcp --sport 1024:65535 --dport 80
-m state --state NEW, ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $wan -o $lan -p tcp --sport 80 --dport 1024:65535
-m state --state ESTABLISHED -j ACCEPT

puis pour passerelle -> $wan

iptables -A OUTPUT -o $wan -p tcp --dport 80 --sport 1024:65535 -m state
--state NEW -j ACCEPT
iptables -A INPUT -i $wan -p tcp --sport 80 --dport 1024:65535 -m state
--state ESTABLISHED -j ACCEPT


# Accept local (192.168.0.0/24) POP traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 110 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 110 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT
# Accept local (192.168.0.0/24) IMAP traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 443 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 443 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT
# Accept local (192.168.0.0/24) SMTP traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 25 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 25 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT
# Accept local (192.168.0.0/24) SMB traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 139 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 139 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT
/sbin/iptables -A INPUT -m state -p tcp --dport 445 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 445 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT
# Accept local (192.168.0.0/24) SQUID traffic
/sbin/iptables -A INPUT -m state -p tcp --dport 3128 ! --state INVALID -s
192.168.0.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -m state -p tcp --sport 3128 --state
ESTABLISHED,RELATED -d 192.168.0.0/24 -j ACCEPT


Plusieurs remarques :

Plutôt que de traiter X fois l'état invalid, tu le traites une bonne
fois pour toutes à part :

iptables -N INVALID_PACKET
iptables -F INVALID_PACKET
iptables -A FORWARD -m state --state INVALID -j INVALID_PACKET

Il manque encore les interfaces.

##################################################################

# Accept extern traffic on the public interface for Apache
/sbin/iptables -A INPUT -i $outif -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A FORWARD -i $outif -d $net/$mask -p tcp --sport
80 -mstate --state RELATED,ESTABLISHED -j ACCEPT


## Règles concernant le forwarding :
# Activation du routage NAT: translation d'adresse
/sbin/iptables -t nat -A POSTROUTING -s $net/$mask -o $outif -j MASQUERADE

# Acceptation des paquets en entrée sur out uniquement si correspondant à
des connexions établies ou necessitant une nouvelle connexion.
/sbin/iptables -A FORWARD -i $outif -d $net/$mask -mstate --state
RELATED,ESTABLISHED -j ACCEPT

# on accepte tous les paquets sortants du réseau local
/sbin/iptables -A FORWARD -s $net/$mask -o $outif -j ACCEPT


Et on pollue Internet avec les vers qui infectent le réseau local.
Je dis ça parce qu'en début tu dis que tu veux affiner tes règles.
Le réseau local ne doit sortir en NEW que les ports désignés par les
règles précédentes (et c'est pour ça aussi qu'il y a des règles
précédentes ;-) ).

services_autorises="25,80,110,993" etc ...
iptables -A FORWARD -i $lan -o $wan -p tcp -m multiport --sport
1024:655535 --dport $services_autorises -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $wan -o $lan -p tcp -m multiport --sport
$services_autorises --dport 1024:65535 -m state --state ESTABLISHED -j
ACCEPT

# Log all other traffic
/sbin/iptables -A INPUT -j LOG
/sbin/iptables -A OUTPUT -j LOG
/sbin/iptables -A FORWARD -j LOG

echo 1 >/proc/sys/net/ipv4/ip_forward


J'ai fais ça rapidement, y'a peut-être des erreurs, mais tu dois revoir
ton script entièrement, c'est trop mélangé.
Gère interface pas interface, n'hésite pas à détailler les connexions
(états etc ...).

$lan -> passerelle
iptables -A INPUT -i $lan
$lan -> $wan
iptables -A FORWARD -i $lan -o $wan
passerelle -> $wan
iptables -A OUTPUT -o $wan

Sam ... qui passait par là pour voir s'il avait une réponse ;-)

Avatar
Sam
Mes excuses à Pascal pour la réponse en double, j'avais commencé ma
réponse avant qu'il n'ait envoyé la sienne.

Sam.
Avatar
Sam

/sbin/iptables -A OUTPUT -m state -p tcp --sport 1024:65535 ! --state
INVALID -d 192.168.0.0/24 -j ACCEPT


Je ne comprends pas trop pourquoi un état invalid devrait être accepté.


Je dois avoir besoin de lunettes, je ne voyais pas le '!' .

Sam.


Avatar
Pascal Hambourg

#/sbin/iptables -A OUTPUT -p tcp --dport 110 -s 192.168.0.0/24 -j ACCEPT


Là ça sent le gars désespéré qui veut que le port 110 marche en sortie ;-)


Mais qui n'a pas mis la bonne adresse source et a oublié d'accepter le
trafic retour...

Sauf que si par la suite il y a une règle qui dit le contraire (puisque
tu dis que ça marche pas), et ben c'est la dernière règle bloquante qui
l'emporte.


Non, c'est la première règle avec une cible "terminale" qui gagne. Dès
qu'une règle accepte, bloque ou rejette une paquet, l'examen des règles
de la chaîne s'interrompt et les règles suivantes sont ignorées.


Avatar
Sam
#/sbin/iptables -A OUTPUT -p tcp --dport 110 -s 192.168.0.0/24 -j ACCEPT
Là ça sent le gars désespéré qui veut que le port 110 marche en sortie

;-)
Mais qui n'a pas mis la bonne adresse source et a oublié d'accepter le

trafic retour...
Sauf que si par la suite il y a une règle qui dit le contraire
(puisque tu dis que ça marche pas), et ben c'est la dernière règle
bloquante qui l'emporte.


Non, c'est la première règle avec une cible "terminale" qui gagne. Dès
qu'une règle accepte, bloque ou rejette une paquet, l'examen des règles
de la chaîne s'interrompt et les règles suivantes sont ignorées.


Oui grosse erreur de ma part ... j'avais oublié (ça fait de long mois
que je ne pratique plus trop iptables).

Sam.