Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Iptable et DNS Local :(

15 réponses
Avatar
Troumad
Bonsoir

J'ai un problème avec mon DNS Local, il ne marche sur mon réseau local
que si je mets shorewall à la place d'IpTable et ce depuis hier soir !!!!!
Voici les règles mises pour mon DNS dans iptable. est-ce bon ?


iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT

nb : avec shorewall, je laisse tout passer localement.
--
Amicalement vOOotre Troumad Alias Bernard SIAUD
mon site : http://troumad.free.fr : AD&D maths WEB sectes
Pour la liberté http://lea-linux.org http://www.eurolinux.org/index.fr.html
N'envoyez que des documents avec des formats ouverts, comme
http://fr.openoffice.org


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter 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
Avatar
Stephane Bortzmeyer
On Thu, Apr 28, 2005 at 08:43:02AM +0200,
Troumad wrote
a message of 27 lines which said:

Voici les règles mises pour mon DNS dans iptable. est-ce bon ?



Il ne faut pas déboguer des règles au pifomètre ou au hasard. Il faut
mettre une dernière règle qui logue les paquets bloqués et l'examen du
journal montrera exactement ce qui ne va pas, ce qui est plus sûr que
le nasographe.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Pascal
Salut,

Troumad a écrit :

Voici les règles mises pour mon DNS dans iptable. est-ce bon ?

iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT



P'têt ben qu'oui, p'têt ben qu'non. C'est impossible à dire avec aussi
peu d'information. Une règle n'a de signification que si on la replace
dans le contexte global de toutes les autres règles. Comment savoir par
exemple s'il n'y a pas un règle placée avant qui bloque les paquets
concernés ? Quelles sont les politiques par défaut, et où sont les règles
qui autorisent les paquets de réponse correspondants en sortie ?

Bref, sans connaître l'ensemble de tes règles et leur ordre, on ne peut
rien dire. La sortie de iptables-save ou une copie du script *complet*
serait la bienvenue.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Troumad
Voilà, c'est long... et ça doit mériter des améliorations !

a écrit :

Salut,

Troumad a écrit :


Voici les règles mises pour mon DNS dans iptable. est-ce bon ?

iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT




P'têt ben qu'oui, p'têt ben qu'non. C'est impossible à dire avec aussi
peu d'information. Une règle n'a de signification que si on la replace
dans le contexte global de toutes les autres règles. Comment savoir
par exemple s'il n'y a pas un règle placée avant qui bloque les
paquets concernés ? Quelles sont les politiques par défaut, et où sont
les règles qui autorisent les paquets de réponse correspondants en
sortie ?

Bref, sans connaître l'ensemble de tes règles et leur ordre, on ne
peut rien dire. La sortie de iptables-save ou une copie du script
*complet* serait la bienvenue.




#!/bin/sh
# ATTENTION la ligne du dessus
# n'est pas un commentaire
# Pour simplifier une modification éventuelle des cartes réseaux
LOCAL="eth0"
NET="eth1"

case "$1" in
start)
echo "Mise en place du mur de feu"

# /etc/network/if-pre-up.d/iptables-start
# Script qui démarre les règles de filtrage "iptables"
# MISE à ZERO des règles de filtrage
iptables -F
iptables -t nat -F
# Je veux que les connexions entrantes soient bloquées par défaut
iptables -P INPUT DROP
# Je veux accepter les connexions qui entrent par
# une interface et sortent par l'autre (ex. de eth1 vers ppp0)
# appelé aussi Forwarding
iptables -P FORWARD ACCEPT
# Je veux que les connexions sortantes soient acceptées par défaut
iptables -P OUTPUT ACCEPT
# Pas de filtrage sur l'interface de "loopback"
# Je déconseille de retirer cette règle car
# ça peut poser pas mal de problème et faire perdre
# la main sur la machine
iptables -A INPUT -i lo -j ACCEPT
# Je veux permettre tous les paquets sortants provenant de mon
ordinateur
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
# Si je veux avoir une politique plus contraignante, je peux filtrer
# les demandes locales vers l'extérieur. Voici un listing
récupéré sur
# http://lea-linux.org/reseau/murdefeu.html
# en tcp :
# domain (obligatoire),
# ftp,
# ftp-data,
# sftp
# www,
# https,
# pop-3,
# imap2,
# imap3,
# smtp,
# ircd,
# cvspserver,
# rsync,
# 7070 (realaudio),
# 11371 (keyserver),
# ssh,
# 1441 (flux ogg de radio france)
# en udp :
# domain (obligatoire),
# 6970 et 7170 (realaudio)
# Décommentez la ligne suivante pour
# accepter le protocole ICMP (ex.ping)
iptables -A INPUT -p icmp -j ACCEPT
# Décommentez la ligne suivante pour
# accepter le protocole IGMP (multicast)
# iptables -A INPUT -p igmp -j ACCEPT
# J'accepte les packets entrants relatifs à des connexions déjà
établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Décommentez les deux lignes suivantes pour que le serveur FTP
éventuel
# soit joignable de l'extérieur
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
# Décommentez la ligne suivante pour que le serveur SSH éventuel
# soit joignable de l'extérieur
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Décommentez la ligne suivante pour que le serveur de mail éventuel
# soit joignable de l'extérieur
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
# Décommentez les deux lignes suivantes pour que le serveur de
DNS éventuel
# soit joignable de l'extérieur
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
# Décommentez la ligne suivante pour que le serveur Web éventuel
# soit joignable de l'extérieur
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Décommentez la ligne suivante pour que Imap soit
# accéssible sur le réseau interne
iptables -A INPUT -i $LOCAL -p tcp --dport 110 -j ACCEPT
# Décommentez la ligne suivante pour que le serveur sftp éventuel
# soit joignable de l'extérieur
iptables -A INPUT -p tcp --dport 115 -j ACCEPT
# Décommentez les deux lignes suivantes pour que le serveur
Samba éventuel
# soit joignable de l'extérieur
# iptables -A INPUT -p tcp --dport 139 -j ACCEPT
# iptables -A INPUT -p udp --dport 139 -j ACCEPT
# Décommentez la ligne suivante pour que le serveur CUPS éventuel
# soit joignable de l'extérieur
# iptables -A INPUT -p tcp --dport 631 -j ACCEPT
# CUPS uniquement pour le réseau interne
iptables -A INPUT -i $LOCAL -p tcp --dport 631 -j ACCEPT
# Décommentez les lignes suivantes pour que le serveur NFS éventuel
# configurer selon mon cours http://troumad.free.fr/Linux/Linux.sxw
# soit joignable du réseau interne
iptables -A INPUT -i $LOCAL -p tcp --dport 111 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 2049 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 4000 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 4001 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 4002 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 4003 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 111 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 2049 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 4000 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 4001 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 4002 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 4003 -j ACCEPT
# Décommentez les lignes suivantes pour que le serveur Généweb
# éventuel soit accessible
iptables -A INPUT -p tcp --dport 2317 -j ACCEPT
# Pour que l'administration du serveur Geneweb soit accessible
de l'extérieur
# iptables -A INPUT -p tcp --dport 2316 -j ACCEPT
# Pour faire fonctionner correctement bittorent
#iptables -A INPUT -p tcp --dport 6881 -j ACCEPT
#iptables -A INPUT -p tcp --dport 6882 -j ACCEPT
#iptables -A INPUT -p tcp --dport 6883 -j ACCEPT
#iptables -A INPUT -p tcp --dport 6884 -j ACCEPT
#iptables -A INPUT -p tcp --dport 6885 -j ACCEPT
#iptables -A INPUT -p tcp --dport 6886 -j ACCEPT
#iptables -A INPUT -p tcp --dport 6887 -j ACCEPT
#iptables -A INPUT -p tcp --dport 6888 -j ACCEPT
#iptables -A INPUT -p tcp --dport 6889 -j ACCEPT
#iptables -A INPUT -p tcp --dport 6969 -j ACCEPT
#iptables -A INPUT -p tcp --dport 7070 -j ACCEPT
#iptables -A INPUT -p tcp --dport 6881 -j ACCEPT
#iptables -A INPUT -p udp --dport 6882 -j ACCEPT
#iptables -A INPUT -p udp --dport 6883 -j ACCEPT
#iptables -A INPUT -p udp --dport 6884 -j ACCEPT
#iptables -A INPUT -p udp --dport 6885 -j ACCEPT
#iptables -A INPUT -p udp --dport 6886 -j ACCEPT
#iptables -A INPUT -p udp --dport 6887 -j ACCEPT
#iptables -A INPUT -p udp --dport 6888 -j ACCEPT
#iptables -A INPUT -p udp --dport 6889 -j ACCEPT
#iptables -A INPUT -p udp --dport 6969 -j ACCEPT
#iptables -A INPUT -p udp --dport 7070 -j ACCEPT

# La règle par défaut pour la chaine INPUT devient DROP
# pour des raisons de sécurité
iptables -A INPUT -j DROP
# FIN des règles de filtrage
# DEBUT des règles pour le partage de connexion (i.e. le NAT)
# Décommentez la ligne suivante pour que le système fasse office de
# "serveur NAT" et ainsi cacher les machines forwardées par le
firewall

iptables -t nat -A POSTROUTING -o $NET -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

# Si la connexion que vous partagez est une connexion ADSL, vous
# serez probablement confronté au fameux problème du MTU. En résumé,
# le problème vient du fait que le MTU de la liaison entre votre
# fournisseur d'accès et le serveur NAT est un petit peu
inférieur au
# MTU de la liaison Ethernet qui relie le serveur NAT aux
machines qui
# sont derrière le NAT. Pour résoudre ce problème, décommentez
la ligne
# suivante et remplaçez "eth0" par le nom de l'interface connectée à
# Internet.
# iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS
-o eth0 --clamp-mss-to-pmtu
# FIN des règles pour le partage de connexion (i.e. le NAT)
# DEBUT des règles de port forwarding
# Décommentez la ligne suivante pour que les requêtes TCP reçues sur
# le port 80 de l'interface eth0 soient forwardées à la machine dont
# l'IP est 192.168.0.3 sur son port 80 (la réponse à la requête sera
# forwardée au client)
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT
--to-destination 192.168.0.3:80
# FIN des règles de port forwarding
# FIN du script de démarrage
;;

stop)
echo "Arret du mur de feu"
# On vide (flush) toutes les regle existantes
iptables -F
iptables -X

# On remet la police par defaut
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

;;

restart)
$0 stop
/bin/sleep 1
#/usr/bin/sleep 1
$0 start
;;


*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;

esac


--
Amicalement vOOotre Troumad Alias Bernard SIAUD
mon site : http://troumad.free.fr : AD&D maths WEB sectes
Pour la liberté http://lea-linux.org http://www.eurolinux.org/index.fr.html
N'envoyez que des documents avec des formats ouverts, comme
http://fr.openoffice.org


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Troumad
Patrice OLIVER a écrit :


Tu peux placer : iptables -A INPUT -j LOG juste avant iptables -A
INPUT -j DROP



Si je comprends bien, c'est pour faire des log. C'est ça ?

Il manque : iptables -A OUTPUT -i lo -j ACCEPT vers iptables -A
INPUT -i lo -j ACCEPT



Ça fait quoi exactement.


Tu peux aussi lancer un tcpdump -nv, ensuite dans une autre fenêtre
(ou sur une autre console), tu fais un nslookup ou un host www.free.fr
par exemple. Tu vois si les trames ont bien un retour ou pas.



nb : je commente un maximum pour mettre ça dans mon cours et le donner
au plus de gens possibles.

--
Amicalement vOOotre Troumad Alias Bernard SIAUD
mon site : http://troumad.free.fr : AD&D maths WEB sectes
Pour la liberté http://lea-linux.org http://www.eurolinux.org/index.fr.html
N'envoyez que des documents avec des formats ouverts, comme
http://fr.openoffice.org


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Troumad
Patrice OLIVER a écrit :

Troumad a écrit :

Patrice OLIVER a écrit :


Tu peux placer : iptables -A INPUT -j LOG juste avant iptables
-A INPUT -j DROP





Si je comprends bien, c'est pour faire des log. C'est ça ?




Oui.


Il manque : iptables -A OUTPUT -i lo -j ACCEPT vers iptables -A
INPUT -i lo -j ACCEPT





Ça fait quoi exactement.




Il est bon que ton localhost puisse entrer et sortir, c'est la règle
de base de iptables. Sans celà, dans certains cas, tu peux ne pas
réussir à sortir de la boîte.



Tu peux aussi lancer un tcpdump -nv, ensuite dans une autre fenêtre
(ou sur une autre console), tu fais un nslookup ou un host
www.free.fr par exemple. Tu vois si les trames ont bien un retour ou
pas.





nb : je commente un maximum pour mettre ça dans mon cours et le
donner au plus de gens possibles.







OK. C'est mis avec commentaire. Ce sera bientôt dans mon cours :)

--
Amicalement vOOotre Troumad Alias Bernard SIAUD
mon site : http://troumad.free.fr : AD&D maths WEB sectes
Pour la liberté http://lea-linux.org http://www.eurolinux.org/index.fr.html
N'envoyez que des documents avec des formats ouverts, comme
http://fr.openoffice.org


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Pascal
> Patrice OLIVER a écrit :

Troumad a écrit :

Il manque : iptables -A OUTPUT -i lo -j ACCEPT vers iptables -A
INPUT -i lo -j ACCEPT



Ça fait quoi exactement.



Il est bon que ton localhost puisse entrer et sortir, c'est la règle
de base de iptables. Sans celà, dans certains cas, tu peux ne pas
réussir à sortir de la boîte.





Qu'est-ce que c'est que ce charabia ??
Tout simplement, ces deux règles (c'est -o au lieu de -i pour la
première) autorisent tout le trafic IP interne à la machine. Ce trafic
peut être dû par exemple à la communication entre un client et un service
locaux (SMTP, web, base de données, DNS...). Les paquets émis par la
machine à destination d'elle-même (par défaut 127.0.0.0/8 et toutes les
adresses de ses interfaces) sortent puis rentrent toujours par
l'interface de "loopback" lo.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Pascal
Troumad a écrit :
Voilà, c'est long... et ça doit mériter des améliorations !



Certes, mais je n'ai rien vu qui soit susceptible de bloquer le trafic
DNS entrant ou sortant sur le réseau local.

LOCAL="eth0"
NET="eth1"

case "$1" in
start)
echo "Mise en place du mur de feu"

# /etc/network/if-pre-up.d/iptables-start
# Script qui démarre les règles de filtrage "iptables"
# MISE à ZERO des règles de filtrage
iptables -F
iptables -t nat -F



Ajoute une commande -X pour chaque table pour supprimer les éventuelles
chaînes utilisateur comme dans le choix stop.

# Je veux que les connexions entrantes soient bloquées par défaut
iptables -P INPUT DROP



# Je veux accepter les connexions qui entrent par
# une interface et sortent par l'autre (ex. de eth1 vers ppp0)
# appelé aussi Forwarding
iptables -P FORWARD ACCEPT



Tu n'as peur de rien, dis ! Donc le firewall protège la passerelle mais
pas le réseau local.

# Je veux que les connexions sortantes soient acceptées par défaut
iptables -P OUTPUT ACCEPT



# Pas de filtrage sur l'interface de "loopback"
iptables -A INPUT -i lo -j ACCEPT



# Je veux permettre tous les paquets sortants provenant de mon
ordinateur
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT



Règle redondante avec la politique par défaut ACCEPT de la chaîne OUTPUT.

# accepter le protocole ICMP (ex.ping)
iptables -A INPUT -p icmp -j ACCEPT



AMA il vaut mieux gérer explicitement les différents types de requêtes
ICMP et laisser la règle suivante s'occuper des ICMP qui sont des
réponses ou des messages d'erreur relatifs à des connexions existantes.

# J'accepte les packets entrants relatifs à des connexions déjà
établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT



# Décommentez les deux lignes suivantes pour que le serveur FTP
éventuel
# soit joignable de l'extérieur
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT



La première règle pour le port 20 est inutile quand on utilise le suivi
de connexion. Le port 20 est utilisé uniquement comme port source par un
serveur FTP en mode actif pour établir une connexion ftp-data _sortante_
vers le client.

[...]
# Décommentez la ligne suivante pour que Imap soit
# accéssible sur le réseau interne
iptables -A INPUT -i $LOCAL -p tcp --dport 110 -j ACCEPT



110 c'est le port pour POP3, et le port IMAP est plutôt le 143.

[...]
iptables -A INPUT -i $LOCAL -p tcp --dport 111 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 2049 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 4000 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 4001 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 4002 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 4003 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 111 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 2049 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 4000 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 4001 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 4002 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 4003 -j ACCEPT



Quelle horreur, que c'est lourd. Essaie de regrouper autant que possible
les ports par intervalles et le reste avec la correspondance multiport,
ou mieux mport si ton noyau et ta version d'iptables le supportent. Par
exemple en TCP :

iptables [...] -p tcp -m multiport --dports 111,2049 -j [...]
iptables [...] -p tcp --dports 4000:4003 -j [...]

ou encore plus simplement :

iptables [...] -p tcp -m mport --dport 111,2049,4000:4003 -j [...]

et la même chose en UDP.

Suggestion : regrouper les règles INPUT concernant l'interface locale
dans une chaîne utilisateur pour éviter de répéter -i $LOCAL à chaque fois.

# La règle par défaut pour la chaine INPUT devient DROP
# pour des raisons de sécurité
iptables -A INPUT -j DROP



Conseil : préfère REJECT au lieu de DROP, c'est plus propre.
Eventuellement avec une limitation (-m limit) en cas de flood.

# FIN des règles de filtrage
# DEBUT des règles pour le partage de connexion (i.e. le NAT)
# Décommentez la ligne suivante pour que le système fasse office de
# "serveur NAT" et ainsi cacher les machines forwardées par le
firewall

iptables -t nat -A POSTROUTING -o $NET -j MASQUERADE



Une correspondance -s sur la plage d'adresses source du réseau local ne
ferait pas de mal.

[...]

restart)
$0 stop



Pourquoi faire puisque le $0 start qui suit vide aussi les chaînes et
redéfinit les politiques par défaut ?

/bin/sleep 1
#/usr/bin/sleep 1
$0 start




--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Troumad
Merci pour ce travail qu je me permets de commenter au fur et à mesure.


a écrit :

Troumad a écrit :

Voilà, c'est long... et ça doit mériter des améliorations !



Certes, mais je n'ai rien vu qui soit susceptible de bloquer le trafic
DNS entrant ou sortant sur le réseau local.



C'est bien mon problème ! Pourquoi ça marche avec shorewall alors ?

[...]
# MISE à ZERO des règles de filtrage
iptables -F
iptables -t nat -F



Ajoute une commande -X pour chaque table pour supprimer les
éventuelles chaînes utilisateur comme dans le choix stop.



iptables -t nat -F -X
ou
iptables -t nat -F
iptables -t nat -X

iptables -P INPUT DROP



# Je veux que les connexions entrantes soient bloquées par défaut

# Je veux accepter les connexions qui entrent par
# une interface et sortent par l'autre (ex. de eth1 vers ppp0)
# appelé aussi Forwarding
iptables -P FORWARD ACCEPT



Tu n'as peur de rien, dis ! Donc le firewall protège la passerelle
mais pas le réseau local.



Le réseau local, c'est mon PC, plus le multimédia. Le tout uniquement
sous Linux. Ce n'est pas un réseau d'entreprise.
Cependant, il me semble avoir mis une liste de restrictions possible
d'après http://lea-linux.org/reseau/murdefeu.html
Si quelqu'un a mieux, je suis partant !

iptables -P OUTPUT ACCEPT



[...]

iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT



Règle redondante avec la politique par défaut ACCEPT de la chaîne OUTPUT.



Cette dernière ligne est moins permissive que la dernière, donc certes
inutile. Il faudra que je cherche pourquoi elle est là elle aussi !

iptables -A INPUT -p icmp -j ACCEPT



# accepter le protocole ICMP (ex.ping)
AMA il vaut mieux gérer explicitement les différents types de requêtes
ICMP et laisser la règle suivante s'occuper des ICMP qui sont des
réponses ou des messages d'erreur relatifs à des connexions existantes.



Donc un ping de l'extérieur ne marchera pas ?

[...]

# Décommentez les deux lignes suivantes pour que le serveur
FTP éventuel
# soit joignable de l'extérieur
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT



La première règle pour le port 20 est inutile quand on utilise le
suivi de connexion. Le port 20 est utilisé uniquement comme port
source par un serveur FTP en mode actif pour établir une connexion
ftp-data _sortante_ vers le client.

[...]

# Décommentez la ligne suivante pour que Imap soit
# accéssible sur le réseau interne
iptables -A INPUT -i $LOCAL -p tcp --dport 110 -j ACCEPT



110 c'est le port pour POP3, et le port IMAP est plutôt le 143.
[...]

iptables -A INPUT -i $LOCAL -p tcp --dport 111 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 2049 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 4000 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 4001 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 4002 -j ACCEPT
iptables -A INPUT -i $LOCAL -p tcp --dport 4003 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 111 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 2049 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 4000 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 4001 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 4002 -j ACCEPT
iptables -A INPUT -i $LOCAL -p udp --dport 4003 -j ACCEPT




Quelle horreur, que c'est lourd. Essaie de regrouper autant que
possible les ports par intervalles et le reste avec la correspondance
multiport, ou mieux mport si ton noyau et ta version d'iptables le
supportent. Par exemple en TCP :

iptables [...] -p tcp -m multiport --dports 111,2049 -j [...]
iptables [...] -p tcp --dports 4000:4003 -j [...]



:) c'est plus joli quand on connait. Tu as du voir d'autres choses du
style plus loin !
Mais la différence entre ces deux lignes est où ? La première ports
isolé et la seconde ports concécutifs ?

ou encore plus simplement :

iptables [...] -p tcp -m mport --dport 111,2049,4000:4003 -j [...]



El là, tout d'un coup ! C'est encore mieux !
Je crois qu'il va faolloir que je rajoute des commentaires...


et la même chose en UDP.

Suggestion : regrouper les règles INPUT concernant l'interface locale
dans une chaîne utilisateur pour éviter de répéter -i $LOCAL à chaque
fois.

# La règle par défaut pour la chaine INPUT devient DROP
# pour des raisons de sécurité
iptables -A INPUT -j DROP



Conseil : préfère REJECT au lieu de DROP, c'est plus propre.
Eventuellement avec une limitation (-m limit) en cas de flood.



J'ai déjà des discutions à ce sujet : dire que le port est fermé ou
faire comme si on tombe sur un trou vide...

# DEBUT des règles pour le partage de connexion (i.e. le NAT)
# Décommentez la ligne suivante pour que le système fasse
office de
# "serveur NAT" et ainsi cacher les machines forwardées par le
firewall

iptables -t nat -A POSTROUTING -o $NET -j MASQUERADE



# FIN des règles de filtrage

Une correspondance -s sur la plage d'adresses source du réseau local
ne ferait pas de mal.



Ça veut dire quoi ? Il va falloir que je cherche !

[...]

restart)
$0 stop



Pourquoi faire puisque le $0 start qui suit vide aussi les chaînes et
redéfinit les politiques par défaut ?



C'est la question que je me posais. Le restart est donc inutile : stop
et start suffise. Mais j'ai fait du copié-collé de différents morceaux.

--
Amicalement vOOotre Troumad Alias Bernard SIAUD
mon site : http://troumad.free.fr : AD&D maths WEB sectes
Pour la liberté http://lea-linux.org http://www.eurolinux.org/index.fr.html
N'envoyez que des documents avec des formats ouverts, comme
http://fr.openoffice.org


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jean-Michel OLTRA
bonjour,


Le vendredi 29 avril 2005, Troumad a écrit...


>Une correspondance -s sur la plage d'adresses source du réseau local
>ne ferait pas de mal.



Ça veut dire quoi ? Il va falloir que je cherche !



-s 192.168.1.0/n
par exemple si, le réseau local est sur 192.168.1.0 sur n bits.

Ou tu définis une variable LAN et tu affectes $LAN dans la règle.

--
jm



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
David Dumortier
Le Thu Apr 28 2005 à 11:29:34PM +0200, dit :
> # accepter le protocole ICMP (ex.ping)
> iptables -A INPUT -p icmp -j ACCEPT

AMA il vaut mieux gérer explicitement les différents types de requêtes
ICMP et laisser la règle suivante s'occuper des ICMP qui sont des
réponses ou des messages d'erreur relatifs à des connexions existantes.




# ICMP
# Autorise tout en local
iptables -A INPUT -i $LAN -p icmp -j ACCEPT
iptables -A OUTPUT -o $LAN -p icmp -j ACCEPT
iptables -A FORWARD -i $LAN -o $EXT -p icmp -j ACCEPT
#iptables -A FORWARD -i $EXT -o $LAN -p icmp --icmp-type source-quench -j ACCEPT
iptables -A FORWARD -i $EXT -o $LAN -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i $EXT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i $EXT -p icmp --icmp-type host-unreachable -m limit --limit 1/s -j ACCEPT

# Rejète les ICMP "dangereux" vers l'extèrieur [1], [2]
# [3] pour les limites
iptables -A OUTPUT -o $EXT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j ACCEPT
iptables -A OUTPUT -o $EXT -p icmp --icmp-type source-quench -m limit --limit 1/s -j ACCEPT
iptables -A OUTPUT -o $EXT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A OUTPUT -o $EXT -p icmp --icmp-type host-unreachable -m limit --limit 1/s -j ACCEPT
iptables -A OUTPUT -o $EXT -p icmp -j DROP

Si quelqu'un peut m'expliquer le source-quench je suis un peu feneant sur
les RFC ...

et le rejet (logs-fi est ma règle de "log and drop") :
iptables -A logs-fi -j REJECT --reject-with icmp-port-unreachable

# Rèfs :
# [1] iptables -p PROTO --help
# [2] MISC HS FireWall 2
# [3] http://www.netfilter.org/

--
David Dumortier



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

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