OVH Cloud OVH Cloud

Shorewall, iptables et noyau ?

31 réponses
Avatar
David BERCOT
Bonjour,

Je viens de souscrire r=C3=A9cemment =C3=A0 un serveur priv=C3=A9. Cette so=
lution
semble tr=C3=A8s int=C3=A9ressante car on peut avoir totalement la main sur=
la
machine (choix de l'OS, acc=C3=A8s SSH, etc...), =C3=A0 un d=C3=A9tail pr=
=C3=A8s : le
noyau !
Ceci pourrait sembler secondaire =C3=A0 premi=C3=A8re vue, mais apparemment=
, ce
n'est pas le cas. Je m'explique.

J'ai donc commenc=C3=A9 par changer les sources.list / preferences et fait
un dist-upgrade de l'OS. Puis, j'ai install=C3=A9 tous mes programmes :
messagerie, serveur Web, etc... Au noyau pr=C3=A8s, je suis donc up-to-date
sur Debian Sid (je sais, je pourrais rester en stable, mais j'aime bien
Sid ;-))).
Puis j'installe mon firewall : shorewall. Et l=C3=A0, =C3=A7a se complique.=
Apr=C3=A8s
l'avoir param=C3=A9tr=C3=A9, je le d=C3=A9marre et j'obtiens :
"iptables: No chain/target/match by that name"

Si je regarde la documentation de Shorewall, il semble que cela vienne
du noyau (configuration particuli=C3=A8re) :
http://www.shorewall.net/troubleshoot.htm#Start-shell

Est-ce le bon diagnostic ? Auriez-vous une solution =C3=A0 me proposer ?

Je ne vous cache pas que j'aime bien shorewall car je le trouve tr=C3=A8s
simple =C3=A0 comprendre et =C3=A0 configurer. Toutefois, si c'est absolume=
nt
n=C3=A9cessaire, je suis OK pour =C3=A9voluer ;-)

Merci d'avance.

David.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

10 réponses

1 2 3 4
Avatar
David BERCOT
Le Mon, 26 Jan 2009 14:16:23 +0100,
David BERCOT a écrit :
> > Il me reste toutefois un souci. Je souhaite utiliser sslh (merci
> > Yves ;-))). J'ai donc un port unique en entrée et 2 ports en
> > local. Si je fais uniquement :
> > iptables -A INPUT -p tcp --dport port_entrée -j ACCEPT
> > ça ne marche pas !!!
> C'est censé marcher comment au niveau réseau, sslh ?
On arrive sur un port spécifique, et, ensuite, en fonction de ce qui
arrive, on est redirigé vers le bon service sur un autre port.
Je me demande si je ne pourrais pas faire un mix des règles
précédentes, du genre :
iptables -t filter -A INPUT -s 127.0.0.1 -p tcp --dport port_local1 -j
ACCEPT



Je pense avoir trouvé :
iptables -t filter -A INPUT -p tcp --source "mon_ip" -j ACCEPT

Je me demande si, pour peaufiner encore, il faudrait que je précise les
ports locaux ?

David.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Pascal Hambourg
David BERCOT a écrit :
Pascal Hambourg a écrit :
David BERCOT a écrit :
iptables -t filter -A INPUT -s 127.0.0.1 -i lo -j ACCEPT


L'option -s est trop restrictive, les paquets émis sur l'interface de
loopback peuvent avoir n'importe quelle adresse source locale. Cela
inclut la plage 127.0.0.0/8 et toutes les adresses configurées sur
les interfaces de la machine.





En clair, je te conseille fortement de supprimer l'option -s dans cette
règle. Quel bénéfice en terme de sécurité apporte-t-elle ?

Mhummm, il me semble que je n'ai que 127.0.0.1 (de visible en tous
cas)...



Tu peux penser ce que tu veux, ou bien vérifier avec cette commande qui
affichera toutes les destinations locales à la machine (installer le
paquet iproute si nécessaire) :

ip route list type local table local

C'est censé marcher comment au niveau réseau, sslh ?



On arrive sur un port spécifique, et, ensuite, en fonction de ce qui
arrive, on est redirigé vers le bon service sur un autre port.



Redirigé comment ? En établissant une seconde connexion locale ? Avec
quelles adresses source et destination ?

Je me demande si je ne pourrais pas faire un mix des règles
précédentes, du genre :
iptables -t filter -A INPUT -s 127.0.0.1 -p tcp --dport port_local1 -j
ACCEPT



Cette règle est plus restrictive que celle-ci dessus, donc bof.

Pour savoir quels paquets nécessaires sont bloqués, tu peux ajouter une
règle avec LOG en fin de chaîne et regarder dans les logs du noyau :

iptables -t filter -A INPUT -j LOG

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
David BERCOT
Le Mon, 26 Jan 2009 15:29:03 +0100,
Pascal Hambourg a écrit :
David BERCOT a écrit :
> Pascal Hambourg a écrit :
>> David BERCOT a écrit :
>>> iptables -t filter -A INPUT -s 127.0.0.1 -i lo -j ACCEPT
>> L'option -s est trop restrictive, les paquets émis sur l'interface
>> de loopback peuvent avoir n'importe quelle adresse source locale.
>> Cela inclut la plage 127.0.0.0/8 et toutes les adresses
>> configurées sur les interfaces de la machine.

En clair, je te conseille fortement de supprimer l'option -s dans
cette règle. Quel bénéfice en terme de sécurité apporte-t-elle ?

> Mhummm, il me semble que je n'ai que 127.0.0.1 (de visible en tous
> cas)...

Tu peux penser ce que tu veux, ou bien vérifier avec cette commande
qui affichera toutes les destinations locales à la machine (installer
le paquet iproute si nécessaire) :

ip route list type local table local



En effet, c'est un peu plus complet. Et de toutes façons, tu t'y
connais visiblement que moi là-dessus ;-)
J'ai donc supprimé '-s 127.0.0.1' !

>> C'est censé marcher comment au niveau réseau, sslh ?
>
> On arrive sur un port spécifique, et, ensuite, en fonction de ce q ui
> arrive, on est redirigé vers le bon service sur un autre port.

Redirigé comment ? En établissant une seconde connexion locale ? Avec
quelles adresses source et destination ?



Alors là, il faudrait demander à Yves ;-)

> Je me demande si je ne pourrais pas faire un mix des règles
> précédentes, du genre :
> iptables -t filter -A INPUT -s 127.0.0.1 -p tcp --dport port_local1
> -j ACCEPT

Cette règle est plus restrictive que celle-ci dessus, donc bof.



Oui, en effet.
Mais avec l'adresse de la machine (comme je l'ai mis dans un autre
post), ça semble ok :
iptables -t filter -A INPUT -p tcp --source 'adresse_ip' -j ACCEPT

Pour savoir quels paquets nécessaires sont bloqués, tu peux ajo uter
une règle avec LOG en fin de chaîne et regarder dans les logs du
noyau :

iptables -t filter -A INPUT -j LOG



Ben oui, mais non ;-) Je retrouve mon problème de shorewall où ça
bloque sur le LOG !!!

David.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Pascal Hambourg
David BERCOT a écrit :

Mais avec l'adresse de la machine (comme je l'ai mis dans un autre
post), ça semble ok :
iptables -t filter -A INPUT -p tcp --source 'adresse_ip' -j ACCEPT



L'adresse de la machine, tu veux dire du serveur ?

Pour savoir quels paquets nécessaires sont bloqués, tu peux ajouter
une règle avec LOG en fin de chaîne et regarder dans les logs du
noyau :

iptables -t filter -A INPUT -j LOG



Ben oui, mais non ;-) Je retrouve mon problème de shorewall où ça
bloque sur le LOG !!!



Ah zut, c'est vrai. Donc ce serait bien l'absence de la cible LOG qui
gêne shorewall. Dans ce cas tu peux utiliser tcpdump ou wireshark/tshark
sur l'interface externe et sur l'interface de loopback pour voir le
début de la communication et où ça commence à coincer. Mais c'est moins
pratique.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
David BERCOT
Le Mon, 26 Jan 2009 16:43:38 +0100,
Pascal Hambourg a écrit :
David BERCOT a écrit :
>
> Mais avec l'adresse de la machine (comme je l'ai mis dans un autre
> post), ça semble ok :
> iptables -t filter -A INPUT -p tcp --source 'adresse_ip' -j ACCEPT

L'adresse de la machine, tu veux dire du serveur ?



Toutafé ;-)

>> Pour savoir quels paquets nécessaires sont bloqués, tu peux ajouter
>> une règle avec LOG en fin de chaîne et regarder dans les log s du
>> noyau :
>>
>> iptables -t filter -A INPUT -j LOG
>
> Ben oui, mais non ;-) Je retrouve mon problème de shorewall oà ¹ ça
> bloque sur le LOG !!!

Ah zut, c'est vrai. Donc ce serait bien l'absence de la cible LOG qui
gêne shorewall.



Oui, apparemment. Ca me semble bizarre que cette cible ait été
supprimée. Mais bon, j'imagine qu'il doit y avoir une bonne raison (ou
alors, c'est oubli ;-))).

Dans ce cas tu peux utiliser tcpdump ou
wireshark/tshark sur l'interface externe et sur l'interface de
loopback pour voir le début de la communication et où ça c ommence à
coincer. Mais c'est moins pratique.



Comme ça m'a l'air OK, je crois que je vais en rester là pour
l'instant. Mais à l'occasion, pourquoi pas...

Merci pour ton aide en tous cas...

David.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Pascal Hambourg
David BERCOT a écrit :
Pascal Hambourg a écrit :
David BERCOT a écrit :
Mais avec l'adresse de la machine (comme je l'ai mis dans un autre
post), ça semble ok :
iptables -t filter -A INPUT -p tcp --source 'adresse_ip' -j ACCEPT


L'adresse de la machine, tu veux dire du serveur ?



Toutafé ;-)



Un paquet émis par le serveur (puisqu'avec son adresse source) et reçu
par lui-même (puisque traversant chaîne INPUT) passe forcément par
l'interface de loopback lo. Par conséquent c'était l'option -s 127.0.0.1
dans la règle autorisant le trafic sur cette interface qui le bloquait.
Si tu as supprimé cette option, la règle supplémentaire ci-dessus ne
devrait plus être nécessaire.

Ah zut, c'est vrai. Donc ce serait bien l'absence de la cible LOG qui
gêne shorewall.



Oui, apparemment. Ca me semble bizarre que cette cible ait été
supprimée. Mais bon, j'imagine qu'il doit y avoir une bonne raison (ou
alors, c'est oubli ;-))).



Sûrement un oubli. Parce que pour débugger et journaliser le firewall
sans ça...

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
David BERCOT
Le Mon, 26 Jan 2009 17:34:07 +0100,
Pascal Hambourg a écrit :
David BERCOT a écrit :
> Pascal Hambourg a écrit :
>> David BERCOT a écrit :
>>> Mais avec l'adresse de la machine (comme je l'ai mis dans un autre
>>> post), ça semble ok :
>>> iptables -t filter -A INPUT -p tcp --source 'adresse_ip' -j ACCEPT
>> L'adresse de la machine, tu veux dire du serveur ?
>
> Toutafé ;-)

Un paquet émis par le serveur (puisqu'avec son adresse source) et
reçu par lui-même (puisque traversant chaîne INPUT) passe forcément
par l'interface de loopback lo. Par conséquent c'était l'option -s
127.0.0.1 dans la règle autorisant le trafic sur cette interface qui
le bloquait. Si tu as supprimé cette option, la règle supplà ©mentaire
ci-dessus ne devrait plus être nécessaire.



Ah, exact ;-) Je vais tester ça tout de suite ! Si je peux mettre une
ligne en moins, c'est toujours ça de gagné !
Bon, ça marche. Tu avais donc raison (même si je n'en ai pas
douté ;-))).

>> Ah zut, c'est vrai. Donc ce serait bien l'absence de la cible LOG
>> qui gêne shorewall.
>
> Oui, apparemment. Ca me semble bizarre que cette cible ait été
> supprimée. Mais bon, j'imagine qu'il doit y avoir une bonne raison
> (ou alors, c'est oubli ;-))).

Sûrement un oubli. Parce que pour débugger et journaliser le fi rewall
sans ça...



Oui, mais malheureusement, je leur ai déjà écrit sur ce suje t et ils
m'ont clairement répondu que le noyau était fixe et qu'on ne pouv ait
rien faire à moins de prendre une autre offre !
Peut-être qu'ils le changeront prochainement.
En attendant, je n'aurais pas de log là-dessus et c'est bien dommage.

David.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Grégory Bulot
David BERCOT à écrit le Mon, 26 Jan 2009 14:5 6:51
+0100

je réponds à mon post de réponse non encore arrivé sur la liste :


modprobe ipt_LOG



--

Cordialement
Grégory BULOT

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Grégory Bulot
David BERCOT à écrit le Mon, 26 Jan 2009 19:0 7:05
+0100
Le Mon, 26 Jan 2009 17:34:07 +0100,
Pascal Hambourg a écrit :
> David BERCOT a écrit :
> > Pascal Hambourg a écrit :
> >> David BERCOT a écrit :
> >>> Mais avec l'adresse de la machine (comme je l'ai mis dans un
> >>> autre post), ça semble ok :
> >>> iptables -t filter -A INPUT -p tcp --source 'adresse_ip' -j
> >>> ACCEPT
> >> L'adresse de la machine, tu veux dire du serveur ?
> >
> > Toutafé ;-)
>
> Un paquet émis par le serveur (puisqu'avec son adresse source) et
> reçu par lui-même (puisque traversant chaîne INPUT) pass e forcément
> par l'interface de loopback lo. Par conséquent c'était l'opti on -s
> 127.0.0.1 dans la règle autorisant le trafic sur cette interface q ui
> le bloquait. Si tu as supprimé cette option, la règle suppl émentaire
> ci-dessus ne devrait plus être nécessaire.

Ah, exact ;-) Je vais tester ça tout de suite ! Si je peux mettre une
ligne en moins, c'est toujours ça de gagné !
Bon, ça marche. Tu avais donc raison (même si je n'en ai pas
douté ;-))).

> >> Ah zut, c'est vrai. Donc ce serait bien l'absence de la cible LOG
> >> qui gêne shorewall.
> >
> > Oui, apparemment. Ca me semble bizarre que cette cible ait étà ©
> > supprimée. Mais bon, j'imagine qu'il doit y avoir une bonne rais on
> > (ou alors, c'est oubli ;-))).
>
> Sûrement un oubli. Parce que pour débugger et journaliser le
> firewall sans ça...

Oui, mais malheureusement, je leur ai déjà écrit sur ce su jet et ils
m'ont clairement répondu que le noyau était fixe et qu'on ne po uvait
rien faire à moins de prendre une autre offre !
Peut-être qu'ils le changeront prochainement.
En attendant, je n'aurais pas de log là-dessus et c'est bien dommage.




Pour une fois que j'avais bon du 1er coup mon post est passé aux
oubliettes :-D

http://marc.info/?l=netfilter&m3279246130495&w=2

chez moi (lenny) le module est là : /lib/iptables/libipt_LOG.so

lsmod me réponds ceci comme module : ipt_LOG


bon par contre je vois pas comment le charger en mémoire .....
--

Cordialement
Grégory BULOT

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
David BERCOT
Bonjour,

Le Thu, 29 Jan 2009 05:52:54 +0100,
Grégory Bulot a écrit :
David BERCOT à écrit le Mon, 26 Jan 2009 14 :56:51
+0100

je réponds à mon post de réponse non encore arrivé su r la liste :

modprobe ipt_LOG



Oui mais, justement, je ne peux pas charger de module ;-)
Le répertoire /lib/modules/'version noyau' n'existe pas !!!

Le noyau est full modules (du moins, ceux considérés comme import ants
par ceux qui l'ont compilé) et non modifiable (pas de rajout possible).

J'ai donc dû abandonner shorewall et utiliser directement iptables
(sans règle autour de LOG).

David.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2 3 4