IPTABLES ajouter, supprimer des règles : la syntaxe

Bonsoir,
j’ai un petit souci, je m’interroge sur l’utilité d’une ligne, que j’aimerai supprimer, mais je n’y arrive pas :

[quote]debian:/home/jcode# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination

ACCEPT udp – anywhere anywhere udp dpt:33434
[/quote]Comment reconstituer la systaxe exacte de la ligne pour supprimer la règle avec l’option -D, ou comment faire autrement ?
D’ailleurs elle me parait bizarre cette ligne …

iptables -D INPUT -p udp --dport 33434 -j ACCEPT

je dirais

:smiley: Merci … impecc !
et ça :

[quote]Chain INPUT (policy DROP)
target prot opt source destination

LOG_FILTER all – anywhere anywhere
LOG all – anywhere anywhere LOG level info prefix `Unknown Input’
[/quote]C’est normal que ce soit en Unknown Input dans les logs ?
Est-ce qu’il faut configurer ça ?

dis donc, normalement, iptables arrive vierge. comment ça se fait que tu doives supprimer des règles ? d’ou viennent elles ?

c’est à dire que je suis en phase de test à mes risques et périls, d’iptables, et j’aurais bien besoin d’un peu d’aide … :confused:
la configuration actuelle émane du script que tu as donné en exemple, script de Ed, dans “iptables pour les nuls”, mais j’en ai testé plusieurs …
j’ai légèrement modifier celui de Ed pour mes besoins (concernant le réseau local - absent chez moi - la liste des ports à ouvrir, etc … mais pas le squelette), et en ce moment, c’est celui-ci qui a initié les règles d’iptables.
Aprés, par ci par là, j’ai du lancé des commandes un peu scabreuses (style le port udp de tout à l’heure) …

Bon, reprends le concept à la base: le script sauve ce que tu as au moment ou tu eteint, et le restaure au moment ou tu rallumes, en le prenant dans un fichier (appelons le X, je ne me souviens plus ou c’est sauvegardé dans le tuto).
Ce qu’il y a dedans n’est que pour l’exemple. Il faut commencer avec un fichier iptables save vierge, et ajouter une à une les règles qui t’interressent.
Le tuto de ricardo fournit juste un moyen de considèrer le pare feu comme quelquechose qu’on sculpte. Mais il y a dans le tuto une methode reset, qui permet de redémarrer avec un truc vierge, et de le retravailler aprés.
Tu vois ce que je veux dire, j’veux dire ?

Oui trés bien … justement, je commence à sculpter :stuck_out_tongue: , mais la matière est dure, et vaste :cry:
Là, j’ai un souci avec l’option string, elle passe pas … Prenon un bête exemple :

$IPTABLES -I INPUT -p tcp -s 0.0.0.0/0 --dport $P -m string --string="default.ida" -j REJECT iptables v1.3.5: STRING match: You must specify `--algo' Try `iptables -h' or 'iptables --help' for more information.
et c’est pas dans man iptables ou iptables -h que ça parle de algo … c’est de l’expagnole ou c’est un mot clé ? 8)
J’ai essayé avec/sans égal, avec/sans guillemets, rien à faire … j’ai pourtant bien le module :

/lib/iptables/libipt_string.so /usr/local/lib/iptables/libipt_string.so /usr/src/iptables-1.3.5.0debian1/iptables/extensions/libipt_string.so Ahhhh ben je crois que non … pffff, il est pas dans mon noyau …
Si c’est ça, que faire ? (ne me parlez plus de compilation 8) )

EDIT : bon j’ai ça pourtant : CONFIG_NETFILTER_XT_MATCH_STRING=m
ps: je range ici quelques liens en rapport avec la syntaxe :
faqs.org/docs/linux_network/ … uture.html
linuxjournal.com/article/5839
redhat.com/docs/manuals/linu … tions.html

COmmence par faire un modprobe des modules dans /lib/modules/2.6.???/kernel/net/ipv6/netfilter/

personnellement, j’active tous les modules iptables dans ma config noyau, parceque je ne sais pas à l’avance desquels je vais me servir.
Sinon, tu peux savoir ce que tu as comme module ip dispoavec:

aprés, la plupart de ces modules sont chargés automatiquement quand iptables en a besoin (les ipt_* doivent être spécifiquement forcés au démarrage par exemple). Il vaut mieux rajouter ceux qu’on veut absolument voir actifs dans /etc/modules .

[quote=“MattOTop”]personnellement, j’active tous les modules iptables dans ma config noyau, parceque je ne sais pas à l’avance desquels je vais me servir.[/quote]C’est précisément ce que je me suis dit, en recompilant :wink: et j’ai activé tout les modules … j’ai hésité sur ipv6, et finalement, j’ai mis tout ce qui le concernait, mais je crois que je me suis rajouté une difficulté … (je comprend déjà pas ipv4).
j’ai pu modprobe ipt_string, mais l’insertion de la règle donne toujours une erreur …
Oui ben voilà mes modules, aprés recompilation d’iptable, usage de patch-o-matic, et patch d’un 2.6.17 (bonjour l’angoisse et la nuit blanche)

find /lib/modules/`uname -r` -name "ip*.ko" -print | grep ipv4 /lib/modules/2.6.17/kernel/net/ipv4/ip_gre.ko /lib/modules/2.6.17/kernel/net/ipv4/ipip.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_conntrack_amanda.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_conntrack_h323.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_conntrack_irc.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_conntrack_pptp.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_conntrack_tftp.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_nat.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_nat_amanda.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_nat_ftp.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_nat_h323.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_nat_irc.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_nat_pptp.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_nat_snmp_basic.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_nat_tftp.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_queue.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ip_tables.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_DSCP.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_ECN.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_LOG.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_NETMAP.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_REJECT.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_ROUTE.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_SAME.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_TARPIT.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_TCPMSS.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_TOS.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_TTL.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_ULOG.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_addrtype.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_ah.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_dscp.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_ecn.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_hashlimit.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_iprange.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_owner.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_recent.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_tos.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/ipt_ttl.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/iptable_filter.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/iptable_mangle.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/iptable_nat.ko /lib/modules/2.6.17/kernel/net/ipv4/netfilter/iptable_raw.ko

find /lib/modules/`uname -r` -name "ip*.ko" -print | grep ipv6 /lib/modules/2.6.17/kernel/net/ipv6/ip6_tunnel.ko /lib/modules/2.6.17/kernel/net/ipv6/ipcomp6.ko /lib/modules/2.6.17/kernel/net/ipv6/ipv6.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6_queue.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6_tables.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_HL.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_LOG.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_REJECT.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_ROUTE.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_ah.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_dst.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_eui64.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_frag.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_hbh.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_hl.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6table_filter.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_owner.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6t_rt.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6table_mangle.ko /lib/modules/2.6.17/kernel/net/ipv6/netfilter/ip6table_raw.ko

en mettant dans /etc/modutils/aliases tu décommentes ou tu ajoutes:

alias net-pf-10 offtu désactives complètement l’ipv6 ce qui t’évite de devoir te protèger, et ta machine bootera plus vite en plus.

Ok, c’est fait, mais mon problème subsiste …
j’ai bien :

C’est bien ce qui correspond à un modprobe ipt_string non ?
je vois pas ce qui manque pour que ça passe … Quelqu’un peut me filer une règle iptables utilisant -m string --string qui fonctionne chez lui, que je tente (histoire d’être sur de la syntaxe, la doc est trop mal foutue et bonjour les infos raçies sur google en matière de tutoriel iptables … ).?
je vois pas ce que mon message d’erreur veut dire … --algo ? quézaco ?

comprends pas ton problême.
En cherchant 1/4 de secondes dans la doc d’iptables sur -m string, je lis (et ça me parait clair):

[quote] string
This modules matches a given string by using some pattern matching strategy. It requires a linux kernel >= 2.6.14.

   --algo  bm|kmp
          Select the pattern matching strategy. (bm = Boyer-Moore, kmp = Knuth-Pratt-Morris)

   --from offset
          Set the offset from which it starts looking for any matching. If not passed, default is 0.

   --to offset
          Set the offset from which it starts looking for any matching. If not passed, default is the packet size.

   --string pattern
          Matches the given pattern.  --hex-string pattern Matches the given pattern in hex notation.[/quote]il y a donc deux valeurs possibles pour --algo. Laquelle as tu testée ?

:blush: oui effectivement … [quote]m match --algo=bm --string toto.exe[/quote]ça marche mieux …
Ben déjà, l’erreur renvoie à iptables -h ou --help, qui ne nous apprend rien.
Maintenant je me souviendrai que -h ne donne qu’un résumé de manpage.
C’est quand même dingue que une recherche sur google ne soit renvoie pas sur une solution, pourtant j’ai cherché.
J’ai pris la commande telle quelle dans un exemple, sans argument algo, difficile de deviner pourquoi chez moi ça marchait pas …
Tous les exemples que j’ai vu sont sans cet argument alors … enfin bon bref.
Merci MattOTop, impecc ! :smiley:

[quote=“MattOTop”]tu désactives complètement l’ipv6 ce qui t’évite de devoir te protèger[/quote]C’est mystérieux ça non ? tu peux développé un tout petit peu ? ipv6 est une passoire ?

Nan c’est pas forcément ça*, mais toi, tu as déjà pratiqué du firewall d’ipv6 ?
Parcequ’en ce qui me concerne, comme je ne m’y interesse pas pour l’instant et que je le désactive systêmatiquement, je n’ai jamais essayé.
Je préfère désactiver pour être certain que personne n’exploite un truc dont moi même n’ai pas l’utilité.

*quoi que comme la base d’ipv6 est une communication augmentée entre les éléments actifs pour leur permettre de s’autoconfigurer, je m’attend sur l’ipv6 à du spoofing (usurpation) comme on a jamais imaginé que ce soit possible en ipv4. Mais bon, c’est juste une intuition, puisque je ne me sers pas d’ipv6. :wink:

ok merci des précisions …
heu, je crois que j’ai fait une grosse bêtise tout à l’heure en essayant un pipe de sed avec un find :confused:
Qui peut me donner le résultat de son :

ls /lib/modules/`uname -r`/kernel/net/netfilterje crains le pire …
Bon j’ai un autre souci, mais ça rentre pas dans le cadre de ce post … donc :arrow_right:

[quote=“usinagaz”]Qui peut me donner le résultat de son :

ls /lib/modules/`uname -r`/kernel/net/netfilter[/quote]Moi j’ai çaash@seal:~$ ls /lib/modules/`uname -r`/kernel/net/netfilter nfnetlink.ko xt_conntrack.ko xt_multiport.ko xt_SECMARK.ko nfnetlink_log.ko xt_dccp.ko xt_NFQUEUE.ko xt_state.ko nfnetlink_queue.ko xt_esp.ko xt_NOTRACK.ko xt_statistic.ko x_tables.ko xt_helper.ko xt_physdev.ko xt_string.ko xt_CLASSIFY.ko xt_length.ko xt_pkttype.ko xt_tcpmss.ko xt_comment.ko xt_limit.ko xt_policy.ko xt_tcpudp.ko xt_connbytes.ko xt_mac.ko xt_quota.ko xt_connmark.ko xt_mark.ko xt_realm.ko xt_CONNMARK.ko xt_MARK.ko xt_sctp.ko

ok merci Ash, c’est bien ce que je pensais … :unamused: j’ai fait une belle bourde !
moi j’ai ça :

nfnetlink.ko xt_conntrack.koe xt_mark.ko xt_policy.koe nfnetlink.koe xt_dccp.ko xt_MARK.ko xt_realm.ko nfnetlink_log.ko xt_dccp.koe xt_mark.koe xt_realm.koe nfnetlink_log.koe xt_esp.ko xt_MARK.koe xt_sctp.ko nfnetlink_queue.ko xt_esp.koe xt_multiport.ko xt_sctp.koe nfnetlink_queue.koe xt_helper.ko xt_multiport.koe xt_state.ko x_tables.ko xt_helper.koe xt_NFQUEUE.ko xt_state.koe x_tables.koe xt_length.ko xt_NFQUEUE.koe xt_string.ko xt_CLASSIFY.ko xt_length.koe xt_NOTRACK.ko xt_string.koe xt_CLASSIFY.koe xt_limit.ko xt_NOTRACK.koe xt_tcpmss.ko xt_comment.ko xt_limit.koe xt_pkttype.ko xt_tcpmss.koe xt_comment.koe xt_mac.ko xt_pkttype.koe xt_tcpudp.ko xt_conntrack.ko xt_mac.koe xt_policy.ko xt_tcpudp.koe Alors, où est normalement l’emplacement des fichiers d’extensions .koe ? J’hésite à les supprimer, à mon avis, ma commande foireuse les a pris de quelquepart, les a renommés en .koe, et les a placés ici …
Je pourrai avoir le résultat d’un $ locate x_tables.ko par exemple ?

Je ne sais pas trop ce que tu fait mais bon chez moi ca donneash@seal:/tmp$ locate x_tables.ko /lib/modules/2.6.18-1-k7/kernel/net/netfilter/x_tables.ko /lib/modules/2.6.18-1-486/kernel/net/netfilter/x_tables.ko /lib/modules/2.6.17-2-k7/kernel/net/netfilter/x_tables.ko /lib/modules/2.6.18-1-686/kernel/net/netfilter/x_tables.ko

tu n’aurais pas simplement fait une copie, un truc genre

cd /lib/modules/`uname -r`/kernel/net/netfilter find . -name "*.ko" -exec cp {} {}e \;