Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

#1 11 Jun 2006 14:03:59

A_Burn
Affranchi(e)
 
Date d'inscription: 11 Jun 2006
Messages: 5

[Iptables] : Problème de NAT (Résolu)

Bonjour,
voilà, mon PC central me sert généralement de passerelle pour le reste de mon LAN qui compte actuellement 3 postes.
D'habitude, je créé ce réseau à l'aide des deux seules règles suivantes :

Code:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE

Ce qui me permettait d'avoir internet sur tout mes postes.
Cette technique étant je le sais, insécurisée, j'ai donc décidé de sécurisé un peu plus mon accèss à internet.
Mais il se pose un problême de taille quand j'utilise les règles présentées si dessous, c'est que mon PC faisant office de passerelle ne peu plus accéder à internet correctement sad
Pourtant, les autres postes de mon réseau local peuvent y accéder !
Le problême vient je pense de la résolution des noms de domaines sur mon PC.
Sachant que ma connexion est chez wanadoo, que j'utilise donc les serveurs de nom de domaine de wanadoo, qui sont donc externes à mon réseau local, comment cela se fait-il que je ne puisse plus résoudre ces noms de domaines?
Voici mon fichier de configuration pour Iptables :

Code:

####### FORWARDING #######
echo 1 > /proc/sys/net/ipv4/ip_forward

###### MODULES CHARGING ######
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_filter   
                                
###### RULES CLEANING #######   
                                
# SIMPLE                        
iptables -F                     
iptables -X                     
                                
iptables -P INPUT DROP          
iptables -P OUTPUT DROP         
iptables -P FORWARD DROP        
                                
# NAT                           
iptables -t nat -F              
iptables -t nat -X              
                                
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
                                
# MANGLE                        
iptables -t mangle -F           
iptables -t mangle -X           
                                
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
                                
######## RULES ESTABLISHING ########

# LOCAL
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# LAN
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT

# CONNEXION SHARING
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# Toutes les connexions qui sortent du LAN vers le Net sont acceptées
iptables -A FORWARD -i eth0 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Seules les connexions déjà établies ou en relation avec des connexions établies sont acceptées venant du Net vers le LAN
iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# ICMP
iptables -A INPUT -p icmp  -m state --state RELATED -j ACCEPT

# Autorisation des requêtes DNS locales
#iptables -A OUTPUT -o ppp0 -p udp --sport 1024: --dport 53 -m state --state ! INVALID -j ACCEPT
#iptables -A INPUT -i ppp0 -p udp --sport 53 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT

# Accès SSH depuis le Net
#iptables -A INPUT -p tcp --dport ssh -i ppp0 -j ACCEPT
#iptables -A OUTPUT -p tcp --sport ssh -o ppp0 -j ACCEPT

######## RULES PRINTING #########
iptables -L
iptables -t nat -L

Que lorsque j'essait de me connecter à un shell ssh, j'ai un message d'erreur de non résolution de nom de domaine, et que lorsque j'essait de pinger un host à partir de ma passerelle, même en ne pingant qu'une IP, le résultat est

Code:

# ping 83.192.102.113
PING 83.192.102.113 (83.192.102.113) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted

--- 83.192.102.113 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms

Mon resolv.conf :

Code:

nameserver 80.10.246.1
nameserver 80.10.246.132

Si vous avez besoin d'avantage d'informations, n'hésitez pas à me demander.
Merci d'avance pour votre aide smile
Bonne journée.

Hors ligne

 

#2 11 Jun 2006 15:47:16

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: [Iptables] : Problème de NAT (Résolu)

Hello,

  Pour le ping en sortie, ça me parait normal: tu n'as pas de règle autorisant l'ICMP en sortie et la policy est drop.

  Pour la résolution DNS, c'est le port local 1024 qui me paraît louche: vu ton resolv.conf, tu n'
utilises pas de serveur DNS local, et les requêtes dns sortantes n'utilisent pas de port fixe.

  Le plus simple serait d'enlever les clauses --sport 1024 pour ta règle sur le DNS.

  Si tu tiens absolument à ce que les requêtes DNS originent d'un port fixe, je ne connais pas de méthode pour le faire avec le resolver système (a part trifouiller dans les sources peut-être), mais tu pourrais par contre installer bind sur ta passerelle, tu auras un cache DNS local en plus.

  Ensuite, il te faut considérer qui à accès a ta passerelle. Si un attaquant réussit a s'introduire dessus, il pourra supprimer toutes les règles qu'il veut. Donc, le filtrage en sortie est utile si des utilisateurs à qui tu ne fais pas confiance ont accès a la passerelle, et a condition que tu sois certain que ton système est blindé contre les escalations de privilège locales. Il peut aussi théoriquement servir a te rendre inutilisable comme relais dans un portscan aveuge, mais en principe la stack tcp de linux est déja résistante à cette attaque.
[/code]

Hors ligne

 

#3 11 Jun 2006 16:34:56

A_Burn
Affranchi(e)
 
Date d'inscription: 11 Jun 2006
Messages: 5

Re: [Iptables] : Problème de NAT (Résolu)


  Pour le ping en sortie, ça me parait normal: tu n'as pas de règle autorisant l'ICMP en sortie et la policy est drop.

  Pour la résolution DNS, c'est le port local 1024 qui me paraît louche: vu ton resolv.conf, tu n'
utilises pas de serveur DNS local, et les requêtes dns sortantes n'utilisent pas de port fixe.

  Le plus simple serait d'enlever les clauses --sport 1024 pour ta règle sur le DNS.

Pour ce qui est du ping, un

Code:

iptables -A OUTPUT -p icmp -j ACCEPT 

fonctionnerait-il ?

Pour ce qui est du DNS, si tu regardes bien mon script, tu verra qu'en fait les deux lignes qui le concerne sont commentés. Le fait est que j'ai suivit le tuturiel de  Christian Caleca (cf : http://christian.caleca.free.fr/) et que celui ci décrit ces deux lignes comme ne servant qu'en cas d'un serveur DNS interne au réseaux. Ce qui n'est pas le cas ici. Mais si tu me dis qu'il suffit d'appliquer ces deux règles sans le --sport 1024, cela voudrait-il dire que ceci arrangerait mes problêmes ? :

Code:

# Autorisation des requêtes DNS locales
iptables -A OUTPUT -o ppp0 -p udp --dport 53 -m state --state ! INVALID -j ACCEPT
iptables -A INPUT -i ppp0 -p udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT 

Merci smile

Hors ligne

 

#4 11 Jun 2006 18:03:42

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: [Iptables] : Problème de NAT (Résolu)

Oui et Oui. En fait, j'avais mal lu, si la clause est --sport 1024: (avec le : a la fin) tu peux la laisser.
Le resolver n'utilisera pas de ports inférieurs a 1024 comme clients.

Le tuto mentionne que cette ligne n'est nécessaire qu'avec un serveur dns local, parce que dans
un contexte à haute sécurité la passerelle ne doit pas être utilisée pour un autre usage et n'a pas
besoin de faire de résolutions DNS. donc on les bloque en vertu du principe de la minimisation des droits d'accès. C'est aussi pourquoi l'ICMP n'était pas autorisé.

Hors ligne

 

#5 11 Jun 2006 18:59:23

A_Burn
Affranchi(e)
 
Date d'inscription: 11 Jun 2006
Messages: 5

Re: [Iptables] : Problème de NAT (Résolu)

je viens d'essayer avec ces règles. Cela ne fonctionne pas comme prévu, mais nous avance cependant.
Maintenant, quand j'essais de me connecter à un shell ssh distant, je n'ai plus d'erreur de résolution de nom, mais rien n'est afficher, comme si mes packets étaient bien envoyés mais que je ne reçoit rien en retour.
Quand j'essais de me connecter à un site web, c'est pareil, je ne reçois rien en retour.

Hors ligne

 

#6 11 Jun 2006 21:54:01

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: [Iptables] : Problème de NAT (Résolu)

Bon, si tu as l'intention de te servir de la passerelle comme machine de travail, le plus simple est
probablement de mettre

Code:

iptables -P OUTPUT ACCEPT

et d'oublier toutes les règles concernant OUTPUT.

Hors ligne

 

#7 11 Jun 2006 23:35:27

WaVeR
Gourou(e) du libre
Lieu: Biel-Bienne
Date d'inscription: 08 Oct 2004
Messages: 531
Site web

Re: [Iptables] : Problème de NAT (Résolu)

Je suis de l'avis de BOFH, laisse le OUTPUT par defaut en accept et tu bloques ce que tu ne veux pas laisser sortir


There's no place like 127.0.0.1

Hors ligne

 

#8 13 Jun 2006 20:41:26

A_Burn
Affranchi(e)
 
Date d'inscription: 11 Jun 2006
Messages: 5

Re: [Iptables] : Problème de NAT (Résolu)

Ca marche, merci wink

Hors ligne

 

#9 15 Jun 2006 14:05:03

WaVeR
Gourou(e) du libre
Lieu: Biel-Bienne
Date d'inscription: 08 Oct 2004
Messages: 531
Site web

Re: [Iptables] : Problème de NAT (Résolu)

Modification de status à résolu


There's no place like 127.0.0.1

Hors ligne

 

#10 15 Jun 2006 19:32:04

A_Burn
Affranchi(e)
 
Date d'inscription: 11 Jun 2006
Messages: 5

Re: [Iptables] : Problème de NAT (Résolu)

Cela dis, j'ai encore un ptit probleme.
Je ne peu pas accéder aux FTP. Ca ne passe pas  :?
Je n'ai aucune idée du probleme, donc si on pouvait me filer un dernier coup de main, cela serait extremement appréciable.

Le fichier que j'utilise actuellement se limite à ça

Code:

# http://www.labo-linux.org/cours/module-3/chapitre-04-firewalling
# http://sid.rstack.org/index.php/Tuto_Netfiler1
# http://sid.rstack.org/index.php/Tuto_Netfilter2
# http://www.pcinpact.com/forum/sujet_45212.htm
# http://www.linuxpourlesnuls.org/modules.php?name=Forums&file=viewtopic&t=2553
# http://www.labo-linux.org/articles-fr/iptables-par-l-exemple/mix-it-together
# http://lea-linux.org/cached/index/Reseau-secu-iptables.html#

######################### LOCAL RULES #########################

/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_irc
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_filter

iptables -F
iptables -X

iptables -P INPUT DROP
iptables -P OUTPUT DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A OUTPUT -o ppp0 -j ACCEPT
iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT


# ICMP
# iptables -A INPUT -p icmp -m limit --limit 3/second -J ACCEPT    # accpetera 3 icmp par seconde, le 4eme sera rejeter.
#iptables -A INPUT -i ppp0 -p icmp -j ACCEPT
iptables -A INPUT -i ppp0 -p icmp --icmp-type 8 -j DROP # Refuse les icmp echo-request
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A OUTPUT -o ppp0 -p icmp --icmp-type 0 -j DROP # Refuse les icmp echo-reply sortant sur ppp0


######################### NAT RULES #########################
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE

Merci d'avance.

Hors ligne

 

#11 15 Jun 2006 21:02:25

WaVeR
Gourou(e) du libre
Lieu: Biel-Bienne
Date d'inscription: 08 Oct 2004
Messages: 531
Site web

Re: [Iptables] : Problème de NAT (Résolu)

Code:

FTP_PORT=21
FTP_DATA_PORT=20

modprobe ip_conntrack_ftp

iptables -A INPUT -p tcp --dport $FTP_DATA_PORT -j ACCEPT
iptables -A INPUT -p tcp --dport $FTP_PORT -j ACCEPT

There's no place like 127.0.0.1

Hors ligne

 

#12 15 Jun 2006 21:12:34

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: [Iptables] : Problème de NAT (Résolu)

Hello,

  Tant que tu -j ACCEPT ESTABLISHED,RELATED en output aussi, et que tu charges conntrack_ftp, il n'y a pas besoin d'ouvrir le data port (et il ne faudrait d'ailleurs pas)

Hors ligne

 

Pied de page des forums

Powered by FluxBB