Petage de cable sur iptables + FTP

Petage de cable sur iptables + FTP - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 19-11-2007 à 09:34:43    

Bonjours a tous voila depuis se week end je me bas avec iptables.
J'essaye d'optenir une connection sortante ftp viable (pour les MAJ ...) mais je coince; j'ai toujours se fichu time out
 
aptitude update
Err http://ftp.fr.debian.org lenny Release.gpg
  Could not connect to ftp.fr.debian.org:80 (212.27.32.66), connection timed out
0% [Connecting to security.debian.org (212.211.132.250)]
 
voici ma conf iptables


 
#!/bin/bash
 
modprobe ip_conntrack_ftp
 
#vidage des tables de filtrage
iptables -F
iptables -X
 
#drop par defaut
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
 
#traffic local localhost authorisé
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
 
#Authorisé ping
iptables -A INPUT -p icmp -i eth0 --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp -o eth0 --icmp-type echo-request -j ACCEPT
 
#Authorisation DNS
iptables -A INPUT -p udp -i eth0 --sport 53 --dport 1024:  -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -o eth0 --sport 1024: --dport 53 -m state --state ! INVALID -j ACCEPT
 
#Authorisation SSH
iptables -A INPUT -p tcp -i eth0 --dport ssh -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --sport ssh -m state --state ESTABLISHED -j ACCEPT
 
#Authorisation Apache
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --sport 80 -m state --state ESTABLISHED -j ACCEPT
 
#FTP
iptables -A INPUT -p tcp -i eth0 --sport 21 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
#FTP-data actif
#iptables -A INPUT -p tcp -i eth0 --sport 20 -m state --state ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -p tcp -o eth0 --dport 20 -m state --state ESTABLISHED -j ACCEPT
#FTP-dat passif
#iptables -A INPUT -p tcp -i eth0 --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -p tcp -o eth0 --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
 
#Authorisation Teamspeak
#Serveur Web
iptables -A INPUT -p tcp -i eth0 --dport 14534 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --sport 14534 -m state --state ESTABLISHED -j ACCEPT
#ts
iptables -A INPUT -p tcp -i eth0 --dport 51234 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 8767:8800 -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --sport 51234 -j ACCEPT
iptables -A OUTPUT -p udp -o eth0 --sport 8767:8800 -j ACCEPT


 
si quelqu'un a une idée .
 
Merci d'avance

Reply

Marsh Posté le 19-11-2007 à 09:34:43   

Reply

Marsh Posté le 19-11-2007 à 09:40:47    

ton url c'est : http://ftp.fr.debian.org
Donc c'est de l'HTTP, non [:pingouino dei]

 

et donc il manque un
iptables -A OUTPUT -p tcp --dport 80 -d ftp.fr.debian.org -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT


Message édité par o'gure le 19-11-2007 à 09:42:21

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 19-11-2007 à 09:42:41    

ou p..... honte sur moi j'aurai pu cherché longtemps


Message édité par dreamkiller le 19-11-2007 à 09:42:59
Reply

Marsh Posté le 19-11-2007 à 09:43:49    

[:ddr555]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 19-11-2007 à 09:48:43    

Enfin quoique c'est pas gagner Waiting for headers :@
 
a si j'ai recopier bêtement:
iptables -A OUTPUT -p tcp --dport 80 -d ftp.fr.debian.org -m state --state NEW -j ACCEPT
 
Alors que  
iptables -A OUTPUT -p tcp --dport 80 -d ftp.fr.debian.org -m state --state NEW,ESTABLISHED -j ACCEPT est mieu  
 
 
merci bien comme quoi les choses les plus simples sont souvent celle auquel on ne pense pas


Message édité par dreamkiller le 19-11-2007 à 09:51:19
Reply

Marsh Posté le 25-11-2007 à 23:10:16    

bon ben la j'ai vraiment un probleme de ftp j'arrive pas a acceder au serveur ftp sur la passerelle depuis un post du reseau local (avec filezilla j'ai une erreur :
Command: LIST
Error: Transfer channel can't be opened. Reason: Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu.
Error: Could not retrieve directory listing

)
 
mes ligne iptables pour les connections FTP si quelqu'un a deja eu se probleme
 
iptables -A OUTPUT -o eth0  -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0  -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 1024: --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0  -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT


Message édité par dreamkiller le 25-11-2007 à 23:12:16
Reply

Marsh Posté le 26-11-2007 à 12:39:13    

tu vyrres toutes ces règles et tu modprobe conntrack_ftp

Reply

Marsh Posté le 26-11-2007 à 18:35:01    

merde j'ai oublier de le copier mais y a un modprobe ip_conntrack_ftp

Reply

Marsh Posté le 26-11-2007 à 19:09:06    

Dans ce cas tu n'as besoin que :
 en input :
   - port 21 en NEW
   - tout en ESTABLISHED et RELATED
 en output :
   - tout en ESTABLISHED et RELATED


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 26-11-2007 à 19:42:34    

tu entend quoi par tout? parceque c'est vague
 

Reply

Marsh Posté le 26-11-2007 à 19:42:34   

Reply

Marsh Posté le 26-11-2007 à 19:59:58    

iptables -A INPUT -i eth0 -p tcp  -m state ESTABLISHED,RELATED -j ACCEPT
 
Plus clair ?


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 26-11-2007 à 20:01:31    

c'est pas un peu trop permissif comme regle?

Reply

Marsh Posté le 26-11-2007 à 20:04:41    

Non [:spamafote]
Ca n'accepte que les paquets appartenant DEJA à une "session" AUTORISEE d'un point de vue netfilter ou en rapport avec une "session".

 

Généralement je commence mes règles par ca. C'est fait pour autant l'utiliser...


Message édité par o'gure le 26-11-2007 à 20:05:02

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 26-11-2007 à 20:08:07    

ba je sais pas on ma toujours dit on drop tout puis apres on authorise au cas par cas

Reply

Marsh Posté le 26-11-2007 à 20:14:27    

dreamkiller a écrit :

ba je sais pas on ma toujours dit on drop tout puis apres on authorise au cas par cas


L'un n'empêche pas l'autre... si tu drop tout puis mets cette règle derrière, tu vas pas arriver à grand chose [:spamafote]

Reply

Marsh Posté le 26-11-2007 à 20:19:52    

dreamkiller a écrit :

ba je sais pas on ma toujours dit on drop tout puis apres on authorise au cas par cas


Revoit la notion de stateful de netfilter


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 26-11-2007 à 21:58:32    

bon ben je suis bon pour revoir l'ensemble de mes regles au cas par cas

Reply

Marsh Posté le 27-11-2007 à 08:00:41    

Mon mes règles :
en input et output la première de mes règles c'est la règle pour autoriser le ESTABLISHED et le RELATED. Après il suffit d'accepter uniquement le paquet pour le NEW et c'est tout. Et au contraire, c'est bien plus correct de procéder comme suit que :
 - autoriser en out le port 80 en destination
 - puis autoriser en le port 80 en source (pour le trafic retour).
 
Si tu fais ca, c'est un gros trou dans ton firewall. Pour par exemple scaner comme on veut ta machine, ou exploiter un port ouvert mais mal protégé, il suffit d'émettre son trafic avec un port source = 80.


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 27-11-2007 à 11:33:39    

dreamkiller a écrit :

c'est pas un peu trop permissif comme regle?


et bien non au contraire. C'est toi qui fait fausse route à écrire 15k règles alors qu'il suffit juste d'autoriser les débuts de connexions et laisser le conntrack faire la suite.
 
 
TOutes façons, une fois que tu as fait un "iptables -A INPUT -i eth0  -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT " on déjà quasiment au "iptables -A INPUT -i eth0 -p tcp  -m state ESTABLISHED,RELATED -j ACCEPT "

Reply

Marsh Posté le 27-11-2007 à 11:34:56    

M'est d'avis qu'il faudrait surtout mettre des --syn quand il faut.

Reply

Marsh Posté le 27-11-2007 à 17:37:02    

o'gure a écrit :

Mon mes règles :
en input et output la première de mes règles c'est la règle pour autoriser le ESTABLISHED et le RELATED. Après il suffit d'accepter uniquement le paquet pour le NEW et c'est tout. Et au contraire, c'est bien plus correct de procéder comme suit que :
 - autoriser en out le port 80 en destination
 - puis autoriser en le port 80 en source (pour le trafic retour).
 
Si tu fais ca, c'est un gros trou dans ton firewall. Pour par exemple scaner comme on veut ta machine, ou exploiter un port ouvert mais mal protégé, il suffit d'émettre son trafic avec un port source = 80.


 
si j'ai bvien compri se genre de regle
 
#Authorisation Apache
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
 
#Authorisation traffic web sortant pour mise a jour
iptables -A OUTPUT -p tcp -o eth0 --dport 80 -m state --state NEW -j ACCEPT
 
 
c'est a evité
 
en tout cas j'ai revu ma conf et virer toute les ligne pour le retour

Reply

Marsh Posté le 27-11-2007 à 17:43:31    

Non ca c'est bon (enfin tant que tu as une règle pour autoriser les connexions ESTABLISHED dans les deux sens)

 

Ce qui est a évité c'est, par exemple pour autorisé le trafic web sortant :

iptables -A OUTPUT -p tcp -o eth0 --dport 80  -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --sport 80 -j ACCEPT


(il faut noté le sport dans le deuxieme cas)


Message édité par o'gure le 27-11-2007 à 18:28:14

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 27-11-2007 à 18:04:31    

oui logique en faite  
sauf que je vien de m'appercevoir que j'ai se genre de regle qui traine mais sur d'autre port

Reply

Marsh Posté le 10-03-2009 à 12:09:59    

Sltmoi j'ai un autre soucis concernant le ftp, j'utilise filezilla

 

#!/bin/sh
# /etc/network/if-pre-up.d/iptables-start.sh
# Script "iptables-filtrage-start.sh"
# Fichier contenant les règles de filtrage "iptables"

 

# Chargement des differents modules
modprobe ip_conntrack;
modprobe iptable_nat;
modprobe ip_conntrack_ftp;

 

# Activation du NAT dans le kernel Lnx
echo 1 > /proc/sys/net/ipv4/ip_forward

 

# Initialisation de la table FILTER
# Par defaut, tout les paquets sont détruits
iptables -t filter -F
iptables -t filter -X
iptables -t filter -P INPUT   DROP
iptables -t filter -P OUTPUT  DROP
iptables -t filter -P FORWARD DROP

 

# Initialisation de la table 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

 

# Initialisation de la table 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

 

#Aucun filtrage sur la boucle locale
iptables -t filter -A OUTPUT -o lo -j ACCEPT
iptables -t filter -A INPUT  -i lo -j ACCEPT

 

#Autorise le ping du reseau SBO <=> FW
iptables -t filter -A INPUT -i eth3 -s 192.168.147.0/24 -p icmp -d 192.168.147.254 -j ACCEPT
iptables -t filter -A OUTPUT -o eth3 -s 192.168.147.254 -p icmp -d 192.168.147.0/24 -j ACCEPT

 

#Autorise la connexion internet sur l'interface eth4
iptables -A INPUT -i eth4 -j ACCEPT
iptables -A OUTPUT -o eth4 -j ACCEPT

 

#Autorise l'accés internet ( NAT )
iptables -t nat -A POSTROUTING -o eth4 -j MASQUERADE

 

#J'autorise l'accés FTP entre le lan et SBO

 

iptables -A FORWARD -s 192.168.147.10 -d 192.168.102.10 -i eth3 -o eth1 -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 192.168.102.10 -d 192.168.147.10 -i eth1 -o eth3 -p tcp --sport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT

 

sur le serveur ftp on constate bien qu'il y a une tentative de connection en revanche j'ai des messages d'erreurs

 

sur le ftp coté client  il me marque ceci :

 

Réponse: 257 "/" is current directory.
Commande: PASV
Réponse: 227 Entering Passive Mode (192,168,102,10,4,30)
Commande: LIST
Réponse: 425 Can't open data connection.
Erreur: Échec lors de la récupération du contenu du dossier

 

Sur le ftp coté serveur j'ai ca :

 

257 "/" is current directory.
chris (192.168.147.10)> PASV
chris (192.168.147.10)> 227 Entering Passive Mode (192,168,102,10,4,30)
chris (192.168.147.10)> LIST
chris (192.168.147.10)> 425 Can't open data connection.

 

je pense que c'est au niveau du ftp passif mais comment résoudre le probleme sur du filtrage
Doit je activer une plage de port sur le serveur ?

 

Merci d'avance de vos reponses, car je bloque dessus et c'est au niveau du filtrage car sans filtrage j'arrive bien a faire du ftp, soit il me manque des lignes, soit c'est au niveau des ports


Message édité par shurik84 le 10-03-2009 à 14:55:22
Reply

Marsh Posté le 10-03-2009 à 12:56:54    

Peux tu préciser ta distribution et la version du noyau que tu utilises ?


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 10-03-2009 à 13:04:00    

il faudrait dans le cadre d'un mode actif pour le ftp, router également le port 20 en tcp.
Après il doit être possible de préciser la plage de ports utilisée par ton serveur ftp et donc de la router.


---------------
Intermittent du GNU
Reply

Marsh Posté le 10-03-2009 à 13:14:18    

Pour le firewall , Distribution Debian Etch 4.0.r6 , noyau 2.6.18-6-686  
Je sais c'est plus trop la bonne version Stable mais pour le moment je reste dessus :)
Pour les 2 FTP c'est du windows XP Pro classique
 
Ben en faite voila la je fait du forward donc j'ai toujours les 3 poste de test
Serveur FTP == Serveur Firewall == Client FTP
 
De plus en faisant une analyse de trame avec wireshark: j'ai ceci
je peut voir que le port source est bien 21 mais en revanche j'ai en port destination 1084 soit :
 
Transmission Control Protocol, Src Port: ftp (21), Dst Port: ansoft-lm-1 (1084), Seq: 0, Ack: 1, Len: 0
bien sure ceci n'est pas l'analyse detaillé mais ce dst port m'intrigue un peu !
 
J'ai l'impression d'avoir une connexion du client sur le serveur et une impression de blocage coté serveur cad pas de reponse


Message édité par shurik84 le 10-03-2009 à 14:08:30
Reply

Marsh Posté le 10-03-2009 à 14:42:11    

Personne n'a une petite idée svp car je bloque vraiment dessus ?

Message cité 1 fois
Message édité par shurik84 le 10-03-2009 à 14:42:26
Reply

Marsh Posté le 10-03-2009 à 14:44:36    

shurik84 a écrit :

Personne n'a une petite idée svp car je bloque vraiment dessus ?


Ce forum n'est pas une hotline, les gens regardent les topics lorsqu'ils ont le temps !
Donc évite de remonter ton topic tant qu'il est en première page !

Reply

Marsh Posté le 10-03-2009 à 14:51:42    

Masquerade c'est uniquement pour permettre a une des mes interfaces du serveur de me connecter sur internet pour les dl de packages, a priori elle n'intervient pas pour le ftp

 

juste ceci en ce qui concerne la NAT:

 

#Autorise la connexion internet l'interface eth4
iptables -A INPUT -i eth4 -j ACCEPT
iptables -A OUTPUT -o eth4 -j ACCEPT

 

#Autorise l'accés internet ( NAT )
iptables -t nat -A POSTROUTING -o eth4 -j MASQUERADE

 

MAJ : je sais bien mais j'ai hésiter étant donné que ici dreamkiller faisait réference au FTP avec iptables
Je me suis dit que j'allais poser mon probleme sur le meme sujet !
Si c'est plus simple je peut retourner sur le topic initial !


Message édité par shurik84 le 10-03-2009 à 15:08:38
Reply

Marsh Posté le 10-03-2009 à 14:58:05    

oui, j'ai vu après => j'ai effacé mon post.
Après, vu ton historique, au lieu de "squatter" les topics ici où là, tu aurais pu continuer sur ton topic initial. Ca évite de rappeler sans cesse l'architecture, l'historique...  
bref...


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed