Petage de cable sur iptables + FTP - réseaux et sécurité - Linux et OS Alternatifs
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
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
Marsh Posté le 19-11-2007 à 09:42:41
ou p..... honte sur moi j'aurai pu cherché longtemps
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
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
Marsh Posté le 26-11-2007 à 18:35:01
merde j'ai oublier de le copier mais y a un modprobe ip_conntrack_ftp
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
Marsh Posté le 26-11-2007 à 19:59:58
iptables -A INPUT -i eth0 -p tcp -m state ESTABLISHED,RELATED -j ACCEPT
Plus clair ?
Marsh Posté le 26-11-2007 à 20:01:31
ReplyMarsh Posté le 26-11-2007 à 20:04:41
Non
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...
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
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
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
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
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.
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 "
Marsh Posté le 27-11-2007 à 11:34:56
M'est d'avis qu'il faudrait surtout mettre des --syn quand il faut.
Marsh Posté le 27-11-2007 à 17:37:02
o'gure a écrit : Mon mes règles : |
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
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 |
(il faut noté le sport dans le deuxieme cas)
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
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
Marsh Posté le 10-03-2009 à 12:56:54
Peux tu préciser ta distribution et la version du noyau que tu utilises ?
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.
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
Marsh Posté le 10-03-2009 à 14:42:11
Personne n'a une petite idée svp car je bloque vraiment dessus ?
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 !
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 !
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...
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