[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: automatiser le chargement de ip_conntrack_ftp et ip_nat_ftp



HEHO a écrit :

Au chargement du système [...] la plus simple consiste à ajouter le nom des modules ip_conntrack_ftp et ip_nat_ftp dans /etc/modules.

bah je me disais que c'était pas terrible (cf ma réponse à frédéric)

Tu parles des dépendances ? Sur toutes les Debian que j'ai utilisées, soit depuis potato, le chargement d'un module par /etc/modules, modprobe ou iptables a toujours entraîné le chargement automatique des éventuels modules dont il dépend. Seule exception que j'ai constatée : ip_nat_ftp ne chargeait pas ip_conntrack_ftp avec le noyau 2.4.18. En fait il n'était pas marqué comme dépendance bien que nécessaire. Ça a été corrigé sur les noyaux récents.

[...]
je parlais du script de :
http://people.via.ecp.fr/~alexis/formation-linux/firewall.html
que j'ai mis comme spécifié dans la page dans :
/etc/network/if-pre-up.d/iptables-start

c'est pas bien le modprobe à cet endroit?

Non, je ne trouve pas. En fait je trouve carrément que c'est /etc/network/if-pre-up.d/ qui n'est pas un endroit approprié pour un tel script. En effet ce script est exécuté lors de l'activation de chaque interface gérée par ifupdown, soit une fois pour lo, une fois pour eth0, une fois pour eth1... C'est complètement inutile car ce script ne tient pas compte de l'interface pour l'activation de laquelle il est exécuté. A chaque fois il efface et recrée aveuglément toutes les règles.

D'autre part, il y a un détail que je trouve peu cohérent dans cette page : l'activation du routage (ip_forward) lors du démarrage de l'interface de loopback dans /etc/network/interfaces, alors qu'il y a /etc/network/options ou /etc/syslog.conf pour ça.

Ma vision d'un script iptables est la suivante. Elle se décompose en deux approches différentes au choix.

1) Un unique script monolithique exécuté une fois pour toutes au démarrage du système grâce à un lien symbolique placé dans /etc/rcS.d/, qui :
- initialise les politiques par défaut,
- efface les règles et chaînes préexistantes,
- crée toutes les règles pour toutes les interfaces d'un coup,
- modifie les paramètres réseau du noyau dans /proc/sys/net/ si nécessaire et s'il n'était pas possible de le faire dans /etc/sysctl.conf (par exemple parce qu'un paramètre n'existait pas encore à ce stade, le module correspondant n'étant pas encore chargé).

Cette méthode est adaptée à une configuration réseau statique où les interfaces sont permanentes et leurs configurations IP sont fixes, par exemple seulement des interfaces ethernet statiques, pas de DHCP ni PPP. Des modules Netfilter peuvent éventellement être chargés par ce script, ou par /etc/modules.conf.

2) Un ensemble modulaire comprenant plusieurs scripts.

2a) Un script d'initialisation exécuté une fois pour toutes au démarrage du système, comme dans l'approche précédente, mais qui n'effectue que des tâches indépendantes des interfaces, c'est-à-dire :
- initialise les politiques par défaut,
- efface les règles et chaînes préexistantes,
- crée toutes les règles ne dépendant pas des interfaces,
- modifie les paramètres réseau du noyau dans /proc/sys/net/ indépendants des interfaces.

2b) Un ou plusieurs scripts spécifiques exécutés quand une interface est activée ou désactivée, tenant compte du nom de l'interface, de ses caractéristiques, dont le rôle est de créer et supprimer les règles spécifiques à chaque interface. Ceux liés aux interfaces gérées par ifupdown peuvent être placés dans /etc/network/if-pre-up.d/ et ses voisins, ou appelés par des options de type pre-up placées dans /etc/network/interfaces. Pour les interfaces PPP, ces scripts sont typiquement placés dans /etc/ppp/ip-up.d/ et /etc/ppp/ip-down.d/.

Cette méthode est adaptée à une configuration réseau dynamique où les interfaces peuvent être créées et supprimées à la volée (PPP) ou leurs adresses peuvent être variables (DHCP).

Enfin, on peut combiner les deux approches : les règles des interfaces permanentes (ethernet) sont créés par le script de démarrage, et les règles des interfaces dynamiques (PPP) sont créées et effacées par des scripts spécifiques. C'est la méthode que j'ai appliquée pour ma passerelle qui a une deux interfaces ethernet statiques, une interface PPP dynamique pour la connexion internet et un nombre variable d'interfaces PPP pour le serveur PPTP.



Reply to: