OVH Cloud OVH Cloud

patch-o-matic

6 réponses
Avatar
2alrick2
Bonjour à tous ...
J'ai installé iptables avec la dernière version : "iptables v1.2.11"
le noyau installé : 2.4.20

Dessus j'ai installé le patch... merci à tous, mais j'ai un problème, je
n'arrive pas à utiliser le patch connlimit (sur une autre doc dont j'ai
un example, il s'appelle iplimit dans le netfilter extensions HOWTO),
voici la commande tapée avec l'erreur renvoyée :

iptables -A INPUT -p tcp --syn --dport http -m connlimit
--connlimit-above 4 -j REJECT
iptables: No chain/target/match by that name
De quelle cible s'agit-il ?

bon j'ai essayé plusieurs combinaisons et rien à faire. Ce match
connlimit me semble très interessant et il serait dommage de ne pas
l'utiliser !!!

Le patch (patch-o-matic) en question fonctionne car d'autres match comme
"ttl" peuvent être utilisé.

Par contre, j'ai une piste, serait-ce la bonne, dans le répertoire
/lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ le fichier
"connlimit.o" n'existe pas, est-ce le problème ?
Si oui, comment le réinjecter ? sachant aussi que :
iptables -m connlimit --help fonctionne correctement


J'ai regardé dans le menuconfig et le match en question est présent avec
l'option <M> donc cela est correct.

Merci à tous de m'aider
Richard

6 réponses

Avatar
TiChou
Dans le message <news:421122d8$0$829$,
*2alrick2* tapota sur f.c.o.l.configuration :

Bonjour à tous ...


Bonsoir,

J'ai installé iptables avec la dernière version : "iptables v1.2.11"


La dernière version de iptables est la 1.3.0.

le noyau installé : 2.4.20


Sources vanilla ?

Dessus j'ai installé le patch...


Quel patche ? Je devine patch-o-matic d'après l'objet de votre message. Dans
ce cas, quelle version de POM avez-vous utilisé ? Quel niveau d'installation
de POM avez-vous effectué ? Et quelles extensions ont été rajoutées, en
sachant que certaines d'entre elles sont incompatibles avec d'autres ?

merci à tous,


De rien, mais on n'a encore rien fait pour vous. ;-)

mais j'ai un problème, je n'arrive pas à utiliser le patch connlimit (sur
une autre doc dont j'ai un example, il s'appelle iplimit dans le
netfilter extensions HOWTO), voici la commande tapée avec l'erreur
renvoyée :

iptables -A INPUT -p tcp --syn --dport http -m connlimit --connlimit-above
4 -j REJECT
iptables: No chain/target/match by that name
De quelle cible s'agit-il ?


Je vous suggère de bien lire la documentation de iptables/Netfilter avant de
vous aventurer dans des règles utilisant des extensions exotiques.
En effet, construire une règle iptables sans savoir ce qu'est la chaîne ou
la cible, ça risque de ne pas aboutir à grand chose. ;-)
Ici, dans votre règle, il n'y a qu'une cible, c'est REJECT.

man iptables

-A, --append chain rule-specification
-j, --jump target

etc.

Donc l'erreur peut venir du fait que la chaîne INPUT n'existe pas, très
improbable, que la cible REJECT n'existe pas, possible, ou que le match
connlimit n'existe pas, probable.

bon j'ai essayé plusieurs combinaisons


Lesquelles ?

et rien à faire. Ce match connlimit me semble très interessant et il
serait dommage de ne pas l'utiliser !!!


Tout dépend de ce que vous comptez en faire et de vos besoins.

Le patch (patch-o-matic) en question fonctionne car d'autres match comme
"ttl" peuvent être utilisé.


Le match ttl est déjà présent en standard dans le noyau 2.4.20 et n'a donc
pas été ajouté par POM (en supposant que celui-ci ait été installé comme il
faut).

Par contre, j'ai une piste, serait-ce la bonne, dans le répertoire
/lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ le fichier "connlimit.o"
n'existe pas, est-ce le problème ?


Le nom du fichier du module correspondant au match connlimit se nomme non
pas 'connlimit.o' mais 'ipt_connlimit.o'. Si ce fichier est présent,
vérifiez, avec la commande 'lsmod', que le module en question est bien
chargé automatiquement (généralement) ou manuellement.

Si oui, comment le réinjecter ?


Que voulez-vous dire ?

sachant aussi que :
iptables -m connlimit --help fonctionne correctement


Ceci indique juste que la commande 'iptables' a été compilé avec le support
du match connlimit.

J'ai regardé dans le menuconfig et le match en question est présent avec
l'option <M> donc cela est correct.


Mais avez recompilez et installez le nouveau noyau et les nouveaux modules ?
Vous nous dites rien sur la procédure exacte que vous avez utilisez pour
mettre en place tout ceci.
L'installation de POM n'est pas une mince affaire et le résultat final n'est
pas garanti. Faut bien garder à l'esprit que POM réunit un ensemble de
patches dont la plupart sont expérimentaux, développés pour certaines
versions de noyaux et pas d'autres.
En attendant il faudrait nous en dire plus sur la configuration du noyau qui
tourne actuellement, par exemple en nous donnant le résultat de la commande
suivante :

$ grep -A3 -B3 IP_NF /boot/config

et aussi nous détailler un peu plus ce que vous avez fait en répondant aux
différentes questions posées dans cette réponse.

Merci à tous de m'aider


De rien.

--
TiChou

Avatar
2alrick2
Bonsoir,

Je reviens après avoir essayer de reprendre tout à zéro et je ne trouve
pas je réponds donc aux questions posés :
La version iptables est bien v1.2.11
J'ai installé une redhat 9.0 la version du noyau 2.4.20-8

Le patch que je souhaite installer est bien le patch-o-matic :-)
la version, je ne la connais pas nouvellement téléchargée.

J'ai inséré un certain nombre de "match" dont le fameux "connlimit"

Alors, concernant iptables, j'ai déjà construit une ébauche de firawall
dont voici le détail : (fichier extrait d'un exécutable en shell)

# Identification de l'adresse IP donnée par Wanadoo via la commande
"pppd call adsl"
IP=`ifconfig ppp0 | grep 'inet' | cut -d ':' -f 2 | cut -d ' ' -f 1`

# Lancement des differentes tables de firewall
# ----------------------------------------------

# Insertion des modules de suivi de connexion; la commande insmod insère
dans un module
# déjà en service :

# Tout bloquer par défaut
# met en place par déut la (P) police par défaut
# création d'une nouvelle table (-N)
iptables -N filtre-ppp0
# interdit les echos sur la machine
iptables -A filtre-ppp0 -s $IP -p icmp -j DROP
# rejet de toutes les demandes entrantes-sortantes invalides
iptables -A filtre-ppp0 -m state --state INVALID -j DROP
# Suppression des pacquets invalides
iptables -A filtre-ppp0 -m state --state INVALID -j DROP
# Valide les paquets deja etablis
iptables -A filtre-ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# rejete les nouveaux paquets, les pacquets invalides (le "!" indique le contraire)
iptables -A filtre-ppp0 -m state --state NEW -i ! ppp0 -j ACCEPT
# bloque les multiples acces
iptables -A filtre-ppp0 -i ppp0 -m limit -j LOG --log-prefix
"Bad packet from ppp0:"
# bloque les multiple acces
iptables -A filtre-ppp0 -i ! ppp0 -m limit -j LOG --log-prefix "Bad packet not
from ppp0:"
# Autoriser les entrees sur le port 21
iptables -A filtre-ppp0 -p tcp --dport ftp -j ACCEPT
iptables -A filtre-ppp0 -p tcp --dport 20 -j ACCEPT
# Autoriser les acces en ssh
iptables -A filtre-ppp0 -p tcp --dport ssh -j ACCEPT
# rejeter sans reponse toutes les connexions de ppp0
iptables -A filtre-ppp0 -j DROP
# echo "test 1"
# mise en place du filtrage
# Interdiction de l'interface ppp0 d'etablir la connexion
iptables -A INPUT -j filtre-ppp0
# Verification du forward
iptables -A FORWARD -j filtre-ppp0
# permet le rejet sans indication au distant de connexion sur
le serveur
iptables -A OUTPUT -j filtre-ppp0

# insertion directe dans la table de routage des filtrages
# autorisation de nombres de connexions simultannees de la meme
IP sur le port ssh
iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 2 -j DROP
# autorisation de nombres de connexions simultannees de la meme IP sur le port ftp
iptables -A INPUT -p tcp --syn --dport 21 -m connlimit --connlimit-above 2 -j DROP

# Autorisation du forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
}

filtre2

exit 0


Tout cela fonctionne sauf le "connlimit". Les différentes combinaisons essayées sont tout
simplement de changer d'un après l'autre par exemple changé cela :
iptables -A INPUT -p tcp --syn --dport 21 -m connlimit --connlimit-above 2 -j DROP en :
iptables -A OUTPUT -p tcp --syn --dport 21 -m connlimit --connlimit-above 2 -j DROP

c'est toujours la même erreur : iptables: No chain/target/match by that name
par contre dans les log :
/var/log/messages, j'ai le message suivant :
Feb 16 18:47:03 comanche modprobe: modprobe: Can't locate module ipt_connlimit

coté lsmod : pas de connlimit donc pas chargé, ce qui rejoint la phrase ci-dessus.
à nouveau "locate -u" puis locate "ipt_connlimit", j'obtient le résultat suivant :
/usr/src/linux-2.4.20-8/include/linux/netfilter_ipv4/ipt_connlimit.h
/usr/src/linux-2.4.20-8/net/ipv4/netfilter/ipt_connlimit.c
pas de ipt_connlimit.o ????? normal ?

Donc, j'ai relancé tout le processus présenté dans le howto "netfilter extention"
mais soit je ne comprends pas quelquechose, surement ! :-) soit ??? :-) ou bien encore
j'oublie une étape plus sur ?? ;-)

Concernant le noyau celui-ci a été recompilé
make dep ; make clean ; make menuconfig (avec l'ajout en module de mon fameux connlimit) ;
make ; make bzImage ; make modules et enfin make modules_install
et c'est tout.

concernant le grep demandé, voici le résultat :
#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=m
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_MATCH_LIMIT=m
CONFIG_IP_NF_MATCH_MAC=m
CONFIG_IP_NF_MATCH_MARK=m
CONFIG_IP_NF_MATCH_MULTIPORT=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_TCPMSS=m
CONFIG_IP_NF_MATCH_STATE=m
CONFIG_IP_NF_MATCH_UNCLEAN=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_LENGTH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_AH_ESP=m
CONFIG_IP_NF_MATCH_PKTTYPE=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_DSCP=m
CONFIG_IP_NF_MATCH_HELPER=m
CONFIG_IP_NF_MATCH_CONNTRACK=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_MIRROR=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_NAT_SNMP_BASIC=m
CONFIG_IP_NF_NAT_LOCAL=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m


#
--
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_FTP=m

CONFIG_IP_NF_NAT_FTP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_TCPMSS=m
CONFIG_IP_NF_COMPAT_IPCHAINS=m
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_COMPAT_IPFWADM=m
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IPV6=m
CONFIG_IPV6_EUI64=y
CONFIG_IPV6_NO_PB=y

Quant au lsmod une fois la connexion faite et le fichier de firewall lancé :
ipt_LOG 4088 2 (autoclean)
ipt_limit 1496 2 (autoclean)
ipt_state 1048 4 (autoclean)
iptable_filter 2316 1 (autoclean)
ipt_MASQUERADE 2072 1 (autoclean)
iptable_nat 20472 1 (autoclean) [ipt_MASQUERADE]
ip_conntrack 25888 2 (autoclean) [ipt_state ipt_MASQUERADE iptable_nat]
# note : chargé par insmod mais non utilisé par mon programme de filtrage
ip_tables 14488 8 [ipt_LOG ipt_limit ipt_state iptable_filter
ipt_MASQUERADE iptable_nat]
n_hdlc 7424 1 (autoclean)
ppp_synctty 7392 1 (autoclean)
ppp_generic 23740 3 (autoclean) [ppp_synctty]
slhc 6580 0 (autoclean) [ppp_generic]
natsemi 18400 0 (unused)
via-rhine 14832 1
mii 3720 0 [via-rhine]
keybdev 2720 0 (unused)
mousedev 5204 0 (unused)
hid 20772 0 (unused)
input 5632 0 [keybdev mousedev hid]
usb-uhci 24652 0 (unused)
usbcore 73088 1 [hid usb-uhci]
ext3 64704 2
jbd 47828 2 [ext3]


J'espère avoir fourni toutes les informations qui pourront m'aider plus tard suite à cette
longue lecture de vos part ... :-)
En vous remerciant de votre patience

Richard


TiChou wrote:
Dans le message <news:421122d8$0$829$,
*2alrick2* tapota sur f.c.o.l.configuration :

Bonjour à tous ...



Bonsoir,

J'ai installé iptables avec la dernière version : "iptables v1.2.11"



La dernière version de iptables est la 1.3.0.

le noyau installé : 2.4.20



Sources vanilla ?

Dessus j'ai installé le patch...



Quel patche ? Je devine patch-o-matic d'après l'objet de votre message.
Dans ce cas, quelle version de POM avez-vous utilisé ? Quel niveau
d'installation de POM avez-vous effectué ? Et quelles extensions ont été
rajoutées, en sachant que certaines d'entre elles sont incompatibles
avec d'autres ?

merci à tous,



De rien, mais on n'a encore rien fait pour vous. ;-)

mais j'ai un problème, je n'arrive pas à utiliser le patch connlimit (sur
une autre doc dont j'ai un example, il s'appelle iplimit dans le
netfilter extensions HOWTO), voici la commande tapée avec l'erreur
renvoyée :



iptables -A INPUT -p tcp --syn --dport http -m connlimit
--connlimit-above 4 -j REJECT
iptables: No chain/target/match by that name
De quelle cible s'agit-il ?



Je vous suggère de bien lire la documentation de iptables/Netfilter
avant de vous aventurer dans des règles utilisant des extensions exotiques.
En effet, construire une règle iptables sans savoir ce qu'est la chaîne
ou la cible, ça risque de ne pas aboutir à grand chose. ;-)
Ici, dans votre règle, il n'y a qu'une cible, c'est REJECT.

man iptables

-A, --append chain rule-specification
-j, --jump target

etc.

Donc l'erreur peut venir du fait que la chaîne INPUT n'existe pas, très
improbable, que la cible REJECT n'existe pas, possible, ou que le match
connlimit n'existe pas, probable.

bon j'ai essayé plusieurs combinaisons



Lesquelles ?

et rien à faire. Ce match connlimit me semble très interessant et il
serait dommage de ne pas l'utiliser !!!



Tout dépend de ce que vous comptez en faire et de vos besoins.

Le patch (patch-o-matic) en question fonctionne car d'autres match
comme "ttl" peuvent être utilisé.



Le match ttl est déjà présent en standard dans le noyau 2.4.20 et n'a
donc pas été ajouté par POM (en supposant que celui-ci ait été installé
comme il faut).

Par contre, j'ai une piste, serait-ce la bonne, dans le répertoire
/lib/modules/2.4.20-8/kernel/net/ipv4/netfilter/ le fichier
"connlimit.o" n'existe pas, est-ce le problème ?



Le nom du fichier du module correspondant au match connlimit se nomme
non pas 'connlimit.o' mais 'ipt_connlimit.o'. Si ce fichier est présent,
vérifiez, avec la commande 'lsmod', que le module en question est bien
chargé automatiquement (généralement) ou manuellement.

Si oui, comment le réinjecter ?



Que voulez-vous dire ?

sachant aussi que :
iptables -m connlimit --help fonctionne correctement



Ceci indique juste que la commande 'iptables' a été compilé avec le
support du match connlimit.

J'ai regardé dans le menuconfig et le match en question est présent
avec l'option <M> donc cela est correct.



Mais avez recompilez et installez le nouveau noyau et les nouveaux
modules ?
Vous nous dites rien sur la procédure exacte que vous avez utilisez pour
mettre en place tout ceci.
L'installation de POM n'est pas une mince affaire et le résultat final
n'est pas garanti. Faut bien garder à l'esprit que POM réunit un
ensemble de patches dont la plupart sont expérimentaux, développés pour
certaines versions de noyaux et pas d'autres.
En attendant il faudrait nous en dire plus sur la configuration du noyau
qui tourne actuellement, par exemple en nous donnant le résultat de la
commande suivante :

$ grep -A3 -B3 IP_NF /boot/config

et aussi nous détailler un peu plus ce que vous avez fait en répondant
aux différentes questions posées dans cette réponse.

Merci à tous de m'aider



De rien.




Avatar
Pascal
Salut,


Concernant le noyau celui-ci a été recompilé
make dep ; make clean ; make menuconfig (avec l'ajout en module de mon
fameux connlimit) ; make ; make bzImage ; make modules et enfin make
modules_install


D'après la doc "make menuconfig" vient en premier, avant "make dep". Je
ne sais pas si cet ordre est obligatoire, j'utilise la méthode Debian
avec make-kpkg qui simplifie bien les choses.

et c'est tout.


As-tu installé le nouveau kernel dans /boot ? As-tu mis à jour la
configuration du bootloader (lilo ou autre) pour qu'il soit pris en
compte ? As-tu redémarré sur le nouveau noyau ?

Avatar
TiChou
Dans le message <news:4213beca$0$17287$,
*2alrick2* tapota sur f.c.o.l.configuration :

Bonsoir,


Bonsoir,

Je reviens après avoir essayer de reprendre tout à zéro et je ne trouve
pas je réponds donc aux questions posés :


Il aurait été bien que vos réponses se situent en dessous de chaque
question, facilitant grandement la lecture.
Je vous invite de plus à lire et suivre les instructions du site suivant
afin de se conformer aux règles d'usage de Usenet :

http://www.giromini.org/usenet-fr/repondre.html

La version iptables est bien v1.2.11
J'ai installé une redhat 9.0 la version du noyau 2.4.20-8


Donc c'est un noyau non officiel, noyau propre à Red Hat avec tous les
patches qu'il comporte (pas loin de 150).
Je vous rappelle que patch-o-matic est fait pour s'appliquer proprement sur
un noyau vanilla (kernel.org).
Au passage, ce noyau Red Hat est vieux et vulnérable.

Le patch que je souhaite installer est bien le patch-o-matic :-)
la version, je ne la connais pas nouvellement téléchargée.


Il y a forcément un numéro de version, ne serait-ce que dans le nom de
l'archive que vous avez téléchargé.

Feb 16 18:47:03 comanche modprobe: modprobe: Can't locate module
ipt_connlimit


Cela confirme que le module ipt_connlimit n'a pas été installé sur votre
système.

Concernant le noyau celui-ci a été recompilé
make dep ; make clean ; make menuconfig (avec l'ajout en module de mon
fameux connlimit) ; make ; make bzImage ; make modules et enfin make
modules_install et c'est tout.


Voir la remarque de Pascal qui peut avoir son importance. Pour repartir avec
des sources propres, faites une eventuelle sauvegarde du fichier .config et
:

make mrproper
cp <...>/.config .config
make oldconfig
make menuconfig
make dep
make clean
[...]

#
# IP: Netfilter Configuration
#
[...]

CONFIG_IP_NF_MATCH_LIMIT=m
CONFIG_IP_NF_MATCH_MAC=m
CONFIG_IP_NF_MATCH_MARK=m
CONFIG_IP_NF_MATCH_MULTIPORT=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_TCPMSS=m
CONFIG_IP_NF_MATCH_STATE=m
CONFIG_IP_NF_MATCH_UNCLEAN=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_LENGTH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_AH_ESP=m
CONFIG_IP_NF_MATCH_PKTTYPE=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_DSCP=m
CONFIG_IP_NF_MATCH_HELPER=m
CONFIG_IP_NF_MATCH_CONNTRACK=m


Aucune trace du module connlimit (option CONFIG_IP_NF_MATCH_CONNLIMIT). Donc
évidemment ce module n'a jamais été compilé et il y a donc de forte chance
pour que le patch-o-matic n'ait pas été appliqué correctement ce qui ne
m'étonnerait pas vu les sources noyaux utilisées.

--
TiChou

Avatar
Pascal
Re,


Voir la remarque de Pascal qui peut avoir son importance. Pour repartir
avec des sources propres, faites une eventuelle sauvegarde du fichier
.config et :

make mrproper


Rhâzut, j'avais oublié cette étape que je ne fais jamais. La méthode
Debian incite à la facilité ;-)

cp <...>/.config .config
make oldconfig
make menuconfig


A ce sujet j'ai une question : "make *config" agit-il sur d'autres
fichiers que .config (ou le fichier désigné pour sauvegarder la
configuration) ?

make dep


Comme en fait je n'y connais rien en compilation de noyau j'en profite
pour demander aux spécialistes si le résultat de cette étape dépend du
contenu de .config.

Avatar
2alrick2
J'ai donc recompilé le noyau mais celui-ci a fait le dur d'oreille. Tout c'est "planté"
impossible de redemarrer. J'ai donc pris part de tout recommencer depuis le début en
réinstallant tout avec une distribution plus récente.
C'est ainsi aussi que l'on progresse ! :-)
Je vous remercie la prochaine fois, j'essaierai de faire mieux

peut être à bientot

wrote:

Salut,



Concernant le noyau celui-ci a été recompilé
make dep ; make clean ; make menuconfig (avec l'ajout en module de mon
fameux connlimit) ; make ; make bzImage ; make modules et enfin make
modules_install



D'après la doc "make menuconfig" vient en premier, avant "make dep". Je
ne sais pas si cet ordre est obligatoire, j'utilise la méthode Debian
avec make-kpkg qui simplifie bien les choses.

et c'est tout.



As-tu installé le nouveau kernel dans /boot ? As-tu mis à jour la
configuration du bootloader (lilo ou autre) pour qu'il soit pris en
compte ? As-tu redémarré sur le nouveau noyau ?