[Debian] problemes iptables

Fermé
fabss - 1 mai 2006 à 19:29
 fabss - 7 mai 2006 à 11:34
Bonjour,

Sur une debian avec un noyau 2.6.16 que je viens de recompiler expres pour iptables. (suis débutant)

Lorsque que je saisis la commande ou une autre relative a iptable il me dit ça :

fabs:/etc/init.d# iptables -t filter -P INPUT DROP
iptables v1.3.3: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

Sinon lorsque je lance la commande :

fabs:/etc/init.d# iptables
iptables v1.3.3: no command specified
Try `iptables -h' or 'iptables --help' for more information.

donc je ne comprends pas,
si quelqu'un pourrait m'aider ?
Merci

20 réponses

kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
1 mai 2006 à 19:55
Tu as bien selectionner dans la compilation du noyau tous et absolument tous les modules pour iptables (notamment le baratin avec "xptables") car il y a eu de changements importants depuis 2.6.14 (ou 2.6.15) et si on part d'un ancien fichier ".config" ca ne marche pas automatiquement pour la bonne selection !

Alors revois tres tres soigneusement ta config noyau et recompile.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
1 mai 2006 à 20:02
0
Bonjour,

Je vous remercie pour vos réponses.
Effectivement je ne crois pas avoir selectionner tous les modules pour iptables.

Donc je recompile le noyau ce soir et vous tiens informez.

bonne journée
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
2 mai 2006 à 17:29
Re,

alors tu peux télécharger le dernière version qui vient de sortir
 2.6.16.12 2006-05-01 19:17 UTC 

lami20j

P.S. je l'ai déjà compilé avec les options qui vont bien et iptables fonctionne impeccable.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
re,

ah mince j'ai pas vu ton msg avant.
mais je crois que je vais faire comme tu me dis.
car en voulant remettre le initrd il me dit ça :

fabs:/usr/src/kernel/linux# mkinitrd -o /boot/initrd-2.6.16 2.6.16
find: /lib/modules/2.6.16/kernel/drivers/ide: Aucun fichier ou répertoire de ce type

j'ai pas bien compris pourquoi le rep ~/ide a disparu.

là je sais que c'est meme pas la peine de rebooter, ça va etre kernel panic.

Avez vous une explication à la disparition de ce rep ?
Merci
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
2 mai 2006 à 23:06
Tu as bien fait "make modules_install" avant la commande avec "mkinitrd ..." ??

Sinon revois ta config du noyau (le truc "make xconfig" ou similaire), peut-etre tu as mis de choses en dur qui ne sont plus en modules ?

Un repertoire qui manquent dans /lib/modules/2.6.16/... signifie de choses que tu n'as pas configurees.
0
Bonjour,

Oui j'ai bien fait le mkinitrd apres le make modules install.
En fait j'ai remarqué ce probleme quand je boot et compile sur le noyau 2.6.16.

j'ai 2 solutions :
- ou je boot et compile sur un 2.4
-ou je prends la derniere version du noyau de kernel.org

ah oui juste un truc, pour reprendre un .config(2.6.12) précédent.
il faut que dans le menu "make menuconfig", je le load et apres je recompile.
c'est ça qu'il faut faire pour retrouver le 2.6.12 par exemple ?

Merci de vos réponses
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
3 mai 2006 à 13:05
Si tu as un ficher .config qui fonctionne vraiment (!!) c'est plus simple, tu copie ce fichier .config vers le repertoire source pour la nouvelle version du noyau et tu fais simplement "make oldconfig". Eventuellement ca te pose de questions et d'habitude il suffit d'y reprendre par "Enter" le choix par defaut.
Tu peux aussi prendre un fichier config d'un noyau de ta distribution, typiquement on les trouves dans le repertoire /boot sous nom de config-<version>, alors avec ca tu fais:
cd /repertoire_sources
cp /boot/config-<version> .config
make oldconfig
make bzImage

etc.
Seulement si on fait ce transfer entre une version 2.6.12 ou 2.6.13 vers une version 2.6.14, 2.6.15.x, 2.6.16.x il y a eu ce fameux changement pour iptables/xptables qui va perturber ca. Dans ce cas il faut dans les questions de "make oldconfig" soigneusement faire attention de tout selectionner en module "m" qui a un rapport quelconque avec iptables/xptables/netfilter etc. (ce sont facilement ~50 modules, meme plus a selectionner!). Sinon tu fais apres le "make oldconfig" un "make xconfig" (ou "make menuconfig" comme tu veux) et tu vas dans les bon menus pour actualiser ou adapter ta selecionne. Si tu ne charges pas de fichier express il prendra bien le fichier .config dans le repertoire actuel.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
3 mai 2006 à 13:09
Re,

tu peux compiler ton noyau à la Debian
http://people.via.ecp.fr/~alexis/formation-linux/config-noyau.html
aussi
https://www.google.fr/search?hl=fr&q=compiler+noyau+%C3%A0+la+sauce+debian&btnG=Rechercher&meta=&gws_rd=ssl

Et un aide pour les Options de configuration du noyau
http://casteyde.christian.free.fr/system/linux/guide/online/a11052.html

lami20j
0
Bonjour,

Je vous remercie pour vos messages.

Bon j'ai reussi à compiler un noayau 2.6.16.12.
Iptables fonctionne enfin !!

J'ai juste une petite question encore :p

j'ai une mandria 2006 ou iptables est bien configuré et je voudrais le porter sur debian.
y'a t-il un fichier du genre iptables.conf que je pourrais copier de la de la mandriva à la debian ?

Ceci me simplifirait la tache ;)
bonne journée.
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
4 mai 2006 à 15:29
Une facon directe mais pas tout automatique:

Tu fais en Mandriva (en root avec /sbin/ etc. dans ton PATH):
iptables-save > ma_config_iptables.dat

et tu copies ce fichier "ma_config_iptables.dat" vers la Debian (c'est un nom quelconque comme tu veux), disons dans /etc/ ou un nouveau sous-repertoire, disons /etc/mon_pare_feu/ (comme tu veux) et apres il faut se debrouiller a chaque boot pour executer:
iptables-restore </etc/ma_config_iptables.dat

ou:
iptables-restore </etc/mon_pare_feu/ma_config_iptables.dat

selon l'endroit de ce fichier.

Avec ca tu auras la config identique entre Mandriva et Debian mais fait attention si par exemple en Mandriva ta carte reseau est eth0 et en Debian eth1 ou a l'inverse. Dans ce cas il faut d'abord editer le fichier et bien remplacher tous les eth0 vers eth1 ou a l'inverse!

Un autre inconvenient: Si tu modifies la config en Mandriva (par shorewall ou le pare feu de DrakConf) il faut bien-sur refaire ca.

Si tu fais en Mandriva avec ton propre script iptables contenant une liste de commandes iptables qui fait tout (et pas avec le pare feu automatique de DrakConf ni avec shorewall) dans ce cas le mieux est simplement de copier et executer le meme script en Debian, eventuellement en tenant compte des transformations eth0 => eth1 etc.

Fais aussi attention si tu utilises en Debian un autre numero IP qu'en Mandriva (par exemple entre 192.168.0.2 et 192.168.0.3). Normalement ca ne devrait pas poser un probleme mais qui sait quelles differences de config on a entre les deux distributions et apres reste a savoir si les regles iptables necessite vraiment une adaptation a ce genre de differences.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
4 mai 2006 à 15:51
Salut,

Une autre solution c'est de mettre tout dans un script shell et d'ajouter la commande d'exécution dans /etc/rc.local.
Ainsi à chaque démarrage le script sera exécuté.

Création de script :

Tu ouvres un editeur de texte et tu tapes :
#!/usr/bin/sh

# tu écrit les reglès 
/sbin/iptables .........


#fin de script
et tu l'enregistre avec le nom que tu veux plus extension .sh (pas obligatoire sous linux, mais comme ça tu sais de quoi il s'agit)

Sous mandriva tu tapes
chmod 0700 /chemin/vers/script.sh
echo '/chemin/vers/script.sh' >> /etc/rc.local


Sous Debian (le fichier rc.local n'existe pas donc sera crée, avec >> s'il existe - ce qui veut dire que c'est toi qui l'a crée - il ajoute une ligne à la fin)

chmod 0700 /chemin/vers/script.sh
echo '/chemin/vers/script.sh' >> /etc/rc.local
chmod 0744 /etc/rc.local
lami20j
0
re,

ok je vous remercie pour vos réponses.
j'étudie tout ça et je vous dis quoi en retour ;)

encore merci
bonne soirée
0
re,

Bon je suis allé au plus simple, j'ai suivi le tuto de kmf31, car j'utilise shorewall sur mandriva pour configurer le firewall. (Avec le temps j'étudirais un peu plus iptables.

donc de la mandriva j'ai sauvegardé un fichier iptables_mandriva.dat, que j'ai mis sur une partition fat32.

lorsque que je fais :
fabs:/etc/fabs# iptables-restore iptables_mandriva.dat
iptables-restore v1.3.3: Problem when communicating with ipset, errno=92.

il me retourne ça !!
je tiens a signaler que j'utilise la meme adresse locale sur la mandriva et debian et les 2 sont en eth0, et les 2 versions d'iptables sont 1.3.3 ;)

Si ça vous quelquechose ce message ?
un grand merci
0
bonjour,

moué bon ça inspire personne ce message.

Ah je pensais a un truc; si je copie le /sbin/iptables de mandriva dans debian /sbin/iptables de debian, ça ne marcherait pas ?

Si il n'y a pas de solutions, bien je vais m'y mettre à apprendre le iptables ...

bonne journée
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
5 mai 2006 à 13:46
Je n'ai pas d'idee precise sur le probleme mais il faut savoir que la fonctionnalite d'iptables ne depend pas seulement du binaire dans /sbin/ mais aussi de:
1) des modules qui viennent avec ton noyau (dans /lib/modules/(...)/... )
2) des bibliotheques du logiciel iptables qui se trouvent dans /lib/iptables/..., si tu veux copier de choses c'est plutot ca. Tu peux verifier si dans /lib/iptables/ de Mandriva et Debian il y a les memes fichiers et surtout le meme nombre (pour compter le nombre: "ls /lib/iptables/ | wc -l"). Meme avec de versions indentiques d'iptables il est possible qu'il n'y a pas le meme nombre de bibliotheques prevu. Ca depend comment iptables a ete compile avec quelle version du noyau etc.

En fait il est possible que la difference entre les versions du noyau joue un role, en Mandriva c'est toujours 2.6.12-blabla et en Debian ca peut etre plus recent (genre 2.6.15-blabla ou 2.6.16-blabla) et justement il y a eu de modifs importantes entre les deux. Toute fois cote l'usage avec les options d'iptables ca ne devrait rien changer et notamment le shorewall n'utilise que des choses standard qui existent dans tous les noyaux raisonables (aussi dans les noyaux 2.4.xx).

Peut-etre ton probleme n'est pas la difference de noyau, ou bibliotheque mais plutot le fait que shorewall cree lui meme plusieures chaines de filtrages en plus (un peu comme les sous-programmes dans de grands programmes). D'habitude il n'y a par defaut que les trois chaines standard INPUT, OUTPUT et FORWARD et si on fait soit meme un script iptables pas trop complique ca suffit largement. Seulement shorewall cree le script iptables (c.-a-d. ca utilise aussi iptables seulement il fait le boulot de detail pour les options etc.) il cree pleines d'autres chaines et le script devient ainsi assez complique a lire. J'aurais pense que ceci ne joue pas de tout si on s'en sert des commandes iptables-save et iptables-restore mais peut-etre il faut avant l'usage du iptables-restore bien nettoyer les autres chaines (avec: "ipables -F <nom_autre_chaine>") ou l'ancienne config pare feu de Debian s'il y en a une.

Il est aussi possible qu'en depit du message d'erreur la commande avec iptables-restore a (partiellement) marche et etabli les regles pare feu. Regarde ce que "iptables-save" affiche apres. Si c'est parreil que le fichier que tu as cree en Mandriva c'est en principe bon.


A part ca l'affichage du "iptables-save" permet assez facilement de creer son propre script iptables. En gros il faut copier cet output vers un fichier (grenre: firewall.sh ou similaire) et l'editer dans le sens d'ajouter avant chaque "regle" le nom /sbin/iptables pour completer une ligne d'appel d'iptables. Apres les lignes commencant avec ":", par exemple ":INPUT ..." etc. il faut les commenter (mettre un "#" devant) ou simplement virer. En plus au debut du script il faut ajouter quelque chose comme ca pour nettoyer avant de definir les regles:
/sbin/iptables -P INPUT DROP
/sbin/iptables -F INPUT 
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -F OUTPUT 
/sbin/iptables -P FORWARD DROP
/sbin/iptables -F FORWARD 
/sbin/iptables -F -t nat

Apres on rend le script executable avec "chmod +x firewall.sh" et on peut l'executer avec "./firewall.sh". En principe ca doit faire la meme chose iptables-restore mais l'avantage sera qu'on pourra plus facilement editer des lignes pour reagir au message d'erreurs.
0
re,

Je te remercie kmf31 pour l'interet que tu portes à mon probléme, tu as un esprit altruiste qui reflete bien celui du libre ;)

donc je pense faire tout cela ce week end ;)

je te tiendrais informé.

et merci de m'aider encore
bon week end ;)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
5 mai 2006 à 20:13
Salut,

ça pourra t'aider pour mieux comprendre

http://christian.caleca.free.fr/netfilter.html

lami20j
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
5 mai 2006 à 22:16
Re,

et aussi ce tuto pour les ipetables
http://olivieraj.free.fr/fr/linux/information/firewall/

lami20j
0
bonjour,

Merci lami20j pour tes liens, ils etaient fort interessant.

Bon sinon j'ai trouvé une solution tres simple.
En fait, j'ai suivi le tuto ici : https://www.commentcamarche.net/faq/1317-linux-installation-d-un-firewall

Je suis deja derriere un routeur et je n'ai pas de serveurs, donc en mode sipmle utlisateur je n'ai pas besoin d'une sécurité extreme:

j'ai mis toute ces régles et c'est impeccable :
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT

iptables -t filter -A INPUT -s 127.0.0.1 -i lo -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Apres il me fallait forwarder un port : j'ai mis cette regle :
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

et tout fonctionne tres bien.

Je vous remercie pour toute vos réponses.
Bonne journée
0