OVH Cloud OVH Cloud

Demande de commentaires sur script iptables

5 réponses
Avatar
Pascal
Salut,

Comme je l'avais écrit dans un fil précédent, je suis en train d'écrire
un script de firewall basé sur iptables pour un routeur. Mais pour
commencer, je préfère vous soumettre une version allégée pour une simple
station (sans routage ni NAT) ayant une interface sur un réseau non sûr
afin de valider mes choix, particulièrement en matière de politique
générale et de gestion des états du suivi de connexion.

C'est là :
http://www.plouf.fr.eu.org/firewall/firewall-station.html

Note : j'ai un petit souci avec les protocoles non autorisés autres que
TCP, UDP et ICMP. Pour se conformer le plus possible au standard, mon
script renvoie un message d'erreur ICMP "protocol unreachable" en
réponse aux paquets NEW qui n'ont pas déjà été acceptés ni bloqués. Mais
les paquets envoyés par le scan IP de nmap (option -sO) que j'ai utilisé
pour tester sont tous vus comme INVALID et mon script n'envoie donc
aucune erreur ICMP dans ce cas. Pourtant, le premier paquet GRE envoyé
par un client PPTP est bien vu comme NEW.

Voilà, merci de vos commentaires féroces mais constructifs :)

5 réponses

Avatar
Xavier
Salut,

Comme je l'avais écrit dans un fil précédent, je suis en train d'écrire
un script de firewall basé sur iptables pour un routeur. Mais pour
commencer, je préfère vous soumettre une version allégée pour une simple
station (sans routage ni NAT) ayant une interface sur un réseau non sûr
afin de valider mes choix, particulièrement en matière de politique
générale et de gestion des états du suivi de connexion.

C'est là :
http://www.plouf.fr.eu.org/firewall/firewall-station.html

Note : j'ai un petit souci avec les protocoles non autorisés autres que
TCP, UDP et ICMP. Pour se conformer le plus possible au standard, mon
script renvoie un message d'erreur ICMP "protocol unreachable" en
réponse aux paquets NEW qui n'ont pas déjà été acceptés ni bloqués. Mais
les paquets envoyés par le scan IP de nmap (option -sO) que j'ai utilisé
pour tester sont tous vus comme INVALID et mon script n'envoie donc
aucune erreur ICMP dans ce cas. Pourtant, le premier paquet GRE envoyé
par un client PPTP est bien vu comme NEW.

Voilà, merci de vos commentaires féroces mais constructifs :)
Bonsoir,


Après une lecture rapide:
- par principe, je mettrais les règles ESTABLISHED en tête: comme elles
sont lues dans l'ordre, ça permet d'accélérer le traitement des paquets
en cours de connexion qui représentent la majorité.
- d'autres part, les règles "-p tcp --syn" doivent être accompagnées de
"-m state --state NEW", sinon, les règles ESTABLISHED ne servent à
rien... idem pour les "-p udp"

@+
Xavier

Avatar
Nicolas George
"" wrote in message <cpi6j5$2ikr$:
http://www.plouf.fr.eu.org/firewall/firewall-station.html


Tu as une raison d'utiliser DROP plutôt que REJECT ?

Avatar
Pascal
Nicolas George wrote:
"" wrote in message <cpi6j5$2ikr$:

http://www.plouf.fr.eu.org/firewall/firewall-station.html


Tu as une raison d'utiliser DROP plutôt que REJECT ?


Ça dépend, à quel endroit étant donné que j'utilise les deux ?


Avatar
Nicolas George
"" wrote in message <cpi9qf$2jud$:
Ça dépend, à quel endroit étant donné que j'utilise les deux ?


Oups, excuse-moi, j'avais mal lu. Effectivement, tel que tu l'utilises, ça
me semble très bien de ce point de vue.

Avatar
Pascal
Xavier wrote:

Après une lecture rapide:
- par principe, je mettrais les règles ESTABLISHED en tête: comme elles
sont lues dans l'ordre, ça permet d'accélérer le traitement des paquets
en cours de connexion qui représentent la majorité.


Principe de bon sens que, sauf erreur, j'ai appliqué aussi tôt que
possible, c'est-à-dire juste après la correspondance de l'interface
d'entrée.
Mais comme j'utilise des chaînes utilisateur, le script serait peut-être
plus facile à comprendre en commençant à le lire par la fin.

- d'autres part, les règles "-p tcp --syn" doivent être accompagnées de
"-m state --state NEW", sinon, les règles ESTABLISHED ne servent à
rien... idem pour les "-p udp"


Sauf erreur c'est le cas, ces règles sont placées dans un chaîne appelée
suite à correspondance avec l'état NEW.