Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
775 connectés 

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

iptables + serveur ftp

n°430289
vvanholl
Linux patriot
Posté le 12-03-2004 à 12:50:18  profilanswer
 

Salut,
 
J'explique rapidement mon problème :
 
Tout d'abord mon installation :
1 PC qui fait routeur et firewall qui tourne sous Debian Woody
1 PC Serveur sur reseau local avec Serveur FTP monté dessus
 
eth0                                     eth1
[INTERNET] <--> [ PC FIREWALL ] <-> [ RESEAU LOCAL ]
                  192.168.1.1         192.168.1.0/24
 
Le serveur FTP est sur l'adresse en local 192.168.1.3
 
Sur le réseau local, le serveur fonctionne très bien
 
Le problème vient quand je veut appeler mon serveur FTP à partir d'internet. J'ai pourtant fait du forwarding vers le serveur FTP avec le port 20 et 21 mais ca ne change rien.  
 
J'arrive à me connecter mais je n'arrive pas à transferer des fichiers en upload et en download . Ca semble se bloquer.
 
Comment dois je configurer mon firewall pour qu'on puisse utiliser le serveur FTP de l'exterieur ?

mood
Publicité
Posté le 12-03-2004 à 12:50:18  profilanswer
 

n°430304
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 12-03-2004 à 13:07:24  profilanswer
 

tu rediriges les requetes FTP qui s'adressent à ta passerelle vers ton serveur :)

n°430323
vvanholl
Linux patriot
Posté le 12-03-2004 à 13:21:20  profilanswer
 

c'est fait je redirige tout ce qui vient de l'exterieur par le port  20 et 21 vers 192.168.1.3:20 et 192.168.1.3:21.
 
Je parviens à me connecter mais pas de transferts possibles

n°430325
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 12-03-2004 à 13:23:11  profilanswer
 

il faut rediriger les related aussi je crois (à confirmer par un gourou iptables)

n°430344
ZeBib
4tus
Posté le 12-03-2004 à 14:01:59  profilanswer
 

t'as pensé au module ip_conntrack_ftp et/ou ip_nat_ftp ? (très pratique pour le ftp passif)

n°430345
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 12-03-2004 à 14:02:33  profilanswer
 

+1

n°430468
vvanholl
Linux patriot
Posté le 12-03-2004 à 16:04:44  profilanswer
 

oui mais comment ca marche ip_conntrack_ftp ?  
C'est la premiere fois que j'installe un firewall avec iptables

n°430511
ZeBib
4tus
Posté le 12-03-2004 à 16:49:13  profilanswer
 

vvanholl a écrit :

oui mais comment ca marche ip_conntrack_ftp ?  
C'est la premiere fois que j'installe un firewall avec iptables


 
Il faut que tu load le module (commande modprobe) avec, si tu n'utilises pas le port par défaut (21), un paramètre qui indique le port.
 
A partir de là tu peux utiliser le mode passif, donc ouvrir uniquement le port voulu sur le FW en entrée et faire du DNAT vers ta machine locale.

n°430813
vvanholl
Linux patriot
Posté le 12-03-2004 à 21:31:18  profilanswer
 

Pour info voici mon fichier de regles firewall  
 
#!/bin/sh
 
IPTABLES=/sbin/iptables
INT_IF="bond0"
EXT_IF="eth0"
 
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
 
$IPTABLES -F
$IPTABLES -t nat -F
 
$IPTABLES -X LOG_DROP
$IPTABLES -N LOG_DROP
$IPTABLES -A LOG_DROP -j LOG --log-prefix "[IPT-DROP] "
$IPTABLES -A LOG_DROP -j DROP
$IPTABLES -X LOG_ACCEPT
$IPTABLES -N LOG_ACCEPT
$IPTABLES -A LOG_ACCEPT -j LOG --log-prefix "[IPT-ACCEPT] "
$IPTABLES -A LOG_ACCEPT -j ACCEPT
 
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
 
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A FORWARD -i lo -j ACCEPT
$IPTABLES -A FORWARD -o lo -j ACCEPT
 
$IPTABLES -A INPUT -i $INT_IF -j ACCEPT
$IPTABLES -A OUTPUT -o $INT_IF -j ACCEPT
$IPTABLES -A FORWARD -i $INT_IF -j ACCEPT
$IPTABLES -A FORWARD -o $INT_IF -j ACCEPT
 
$IPTABLES -A OUTPUT -o $EXT_IF -j ACCEPT
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -i $EXT_IF -p tcp --dport 22 -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT_IF -p icmp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -i $EXT_IF -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -i $EXT_IF -p icmp -m state --state NEW -m limit --limit 10/min -j ACCEPT
 
#$IPTABLES -A INPUT -i $INT_IF -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j LOG_ACCEPT
#$IPTABLES -A INPUT -i $INT_IF -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j LOG_ACCEPT
#$IPTABLES -A INPUT -i $INT_IF -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state NEW -j LOG_ACCEPT
 
$IPTABLES -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE
 
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp --dport 80 -j DNAT --to-destination 192.168.1.3:80
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp --dport 443 -j DNAT --to-destination 192.168.1.3:443
 
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp --dport 20 -j DNAT --to-destination 192.168.1.3:20
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp --dport 21 -j DNAT --to-destination 192.168.1.3:21
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp --sport 1024:65535 --dport 50000:51000 -j DNAT --to-destination 192.168.1.3
 
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp --dport 25 -j DNAT --to-destination 192.168.1.3:25
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp --dport 110 -j DNAT --to-destination 192.168.1.3:110
 
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp --dport 6667 -j DNAT --to-destination 192.168.1.3:6667
 
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp --dport 8000 -j DNAT --to-destination 192.168.1.3:8000
 
$IPTABLES -A INPUT -i $EXT_IF -j LOG_DROP

n°430831
Zzozo
Modérateur
Un peu, passionément, à la fol
Posté le 12-03-2004 à 22:30:10  profilanswer
 

il te manque une règle du style :


$IPTABLES -A INPUT -i $EXT_IF -p tcp --dport 21 -m state --state NEW -j ACCEPT  


je pense
 
 
 
Ah oui, j'oubliais ça :


$IPTABLES -A FORWARD --m state --state RELATED,ESTABLISHED -j ACCEPT  
$IPTABLES -A FORWARD -d 192.168.1.3 -p tcp -m tcp --dport 21 --m state --state NEW -j ACCEPT
 


A toi de mettre ces exemples de règles au bon endroit dans le bon ordre pour que ca marche ... :D
 
Et comme posté plus haut, penses à charger les modules de connection tracking, y compris le ip_conntrack_ftp
 
EDIT : j'avais pas vu ça :


$IPTABLES -A FORWARD -o $INT_IF -j ACCEPT


C'est joli ça ... heureusement que tu as que des adresses privées derrière ton fw (encore que ...)  :D


Message édité par Zzozo le 13-03-2004 à 03:14:24
mood
Publicité
Posté le 12-03-2004 à 22:30:10  profilanswer
 

n°430893
Zzozo
Modérateur
Un peu, passionément, à la fol
Posté le 13-03-2004 à 02:32:29  profilanswer
 

black_lord a écrit :

il faut rediriger les related aussi je crois (à confirmer par un gourou iptables)


uh ?  
Euh ... ca se redirige pas les "related" ... vu que cé le tracking de connection qui s'occupe de ça ... ca sera fait automatiquement si cé nécessaire ... :o
:D


Aller à :
Ajouter une réponse
 

Sujets relatifs
accéder au serveur knoppix à partir de voisinage reseau xpRedhat 9.0 Vs Mandrake 9.1 Pour mon serveur de fichiers
probleme serveur graphique sous Debian 3.0 Woodyfedora en serveur ?
probleme iptables - shorewalldns et netbios - resolution et serveur de nom
Iptables, Serveur FTP sur rzo interne & Client FTPProbleme Iptables et serveur DNS
Serveur VPN Win2000 derrière un firewall IPTABLESIpTables / Serveur Counter Strike
Plus de sujets relatifs à : iptables + serveur ftp


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR