OVH Cloud OVH Cloud

Port forwarding et serveur ftp

5 réponses
Avatar
Freegate
Bonjour,

Sur mon reseau local, j'ai un firewall / passerelle 192.168.0.1 et un
serveur FTP avec l'adresse 192.168.0.5

Je souhaite que les utilisateurs internet accèdent au serveur FTP
192.168.0.5

Mes regles de port forwarding pour le serveur ftp sont les suivantes :

IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 21 -j
DNAT --to-destination 192.168.0.5:80
IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 20 -j
DNAT --to-destination 192.168.0.5:80

Malheureusement les utilisateurs accèdent au serveur ftp installé sur le
firewall cad au 192.168.0.1 non au serveur FTP sur 192.168.0.5

Il convient de constater que le serveur ftp 192.168.0.5 est accessible en
local.
Je suppose donc que les règles de port forwarding ne marchent pas.

Avez vous une idée pour résoudre le pb ?

Merci

5 réponses

Avatar
Eric Razny
Le Mon, 24 Oct 2005 22:36:15 +0000, Freegate a écrit :

Bonjour,

Sur mon reseau local, j'ai un firewall / passerelle 192.168.0.1 et un
serveur FTP avec l'adresse 192.168.0.5

Je souhaite que les utilisateurs internet accèdent au serveur FTP
192.168.0.5

Mes regles de port forwarding pour le serveur ftp sont les suivantes :

IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 21 -j
DNAT --to-destination 192.168.0.5:80
IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 20 -j
DNAT --to-destination 192.168.0.5:80

Malheureusement les utilisateurs accèdent au serveur ftp installé sur le
firewall cad au 192.168.0.1 non au serveur FTP sur 192.168.0.5

Il convient de constater que le serveur ftp 192.168.0.5 est accessible en
local.
Je suppose donc que les règles de port forwarding ne marchent pas.

Avez vous une idée pour résoudre le pb ?



le DNAT ne suffit pas, encore faut-il que l'ip forwarding soit activé et
que les règles laissent passer les paquets.

Accessoirement avec un DNAT sur un port 80 pour du ftp (command+data!) ça
va être chaud si tu as un serveur web qui doit être interdit d'accès
via le net sur la même machine...

Comme quoi une p'tite erreur et hop, un trou et bonjour la sécu ;)

Eric

Avatar
Eric Razny
Le Mon, 24 Oct 2005 22:47:42 +0000, Eric Razny a écrit :

Je souhaite que les utilisateurs internet accèdent au serveur FTP
192.168.0.5
Mes regles de port forwarding pour le serveur ftp sont les suivantes :

IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 21 -j
DNAT --to-destination 192.168.0.5:80
IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 20 -j
DNAT --to-destination 192.168.0.5:80

Malheureusement les utilisateurs accèdent au serveur ftp installé sur le
firewall cad au 192.168.0.1 non au serveur FTP sur 192.168.0.5

Il convient de constater que le serveur ftp 192.168.0.5 est accessible en
local.
Je suppose donc que les règles de port forwarding ne marchent pas.


le DNAT ne suffit pas, encore faut-il que l'ip forwarding soit activé et
que les règles laissent passer les paquets.
Accessoirement avec un DNAT sur un port 80 pour du ftp (command+data!)
ça va être chaud si tu as un serveur web qui doit être interdit
d'accès via le net sur la même machine...


Bon, un peu plus réveillé et moins occupé :
seule la première règle est utile (vers le port 21 quand même!) si tu
fais du statefull avec ip_conntrack_ftp et le suivi du nat (ip_nat_ftp)
activé. Bien sur le module ip_nat doit être actif.

Accessoirement :
http://www.netfilter.org/documentation/HOWTO/fr/NAT-HOWTO.html
est ton ami.

La remarque sur les règles de forwarding et /proc/sys/net/ipv4/ip_forward
à 1 est toujours valable.

Tu as copier/coller ton script ou tu as resaisi le tout? (problème de
casse, par exemple sur iptables)

Eric.


Avatar
Freegate
...
|
| Bon, un peu plus réveillé et moins occupé :
| seule la première règle est utile (vers le port 21 quand même!) si tu
| fais du statefull avec ip_conntrack_ftp et le suivi du nat (ip_nat_ftp)
| activé. Bien sur le module ip_nat doit être actif.
|
| Accessoirement :
| http://www.netfilter.org/documentation/HOWTO/fr/NAT-HOWTO.html
| est ton ami.
|
En fait je me suis aidé de ce site

| Tu as copier/coller ton script ou tu as resaisi le tout? (problème de
| casse, par exemple sur iptables)
|

Ci-joint mon code et les modules chargés, si tu peux jeter un coup d'oiel
pour me dire ce qui ne va, STP.

Voici les modules chargés à l'aide de rc.local

/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_table
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat

Puis mes règles

######### REGLES PAR DEFAUT ######################
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

######## LOCAL-INTERNET ######


iptables -A local-internet -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -A local-internet -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j local-internet
iptables -A FORWARD -j local-internet

###### LES TABLES NAT ET MANGLE #########


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
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

######## LE MASQUERADING ######################

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE

########### ACTIVATION DE LA PASSERELLE #########

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

########### PAS DE SPOOFING #################

if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] ; then
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo 1 > $filtre
done
fi

############ PAS DE SYNFLOOD ###########

if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
fi

################### PAS DE PING ################

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ] ; then
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
fi

################ Fonctionnalité serveurs ##############

iptables -A INPUT -p tcp --dport ftp -j ACCEPT
iptables -A INPUT -p tcp --dport ftp-data -j ACCEPT

########## PORT FORWARDING ###############

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 21 -j
DNAT --to-destination 192.168.0.5:21
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 20 -j
DNAT --to-destination 192.168.0.5:20
Avatar
Dominique Blas
Bonjour,

Sur mon reseau local, j'ai un firewall / passerelle 192.168.0.1 et un
serveur FTP avec l'adresse 192.168.0.5

Je souhaite que les utilisateurs internet accèdent au serveur FTP
192.168.0.5

Mes regles de port forwarding pour le serveur ftp sont les suivantes :

IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 21 -j
DNAT --to-destination 192.168.0.5:80
Celle-ci est la bonne mais pourquoi diable redirigé vers le port 80 ?

Il y a un serveur FTP sur le port 80 du .5 ?

IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 20 -j
DNAT --to-destination 192.168.0.5:80
Celle-ci ne sert pas à grand chose. Losqu'on connaît le mode de

fonctionnement de FTP ...
on comprend tout de suite que cette règle n'a pas grand chose à faire là.

Malheureusement les utilisateurs accèdent au serveur ftp installé sur le
firewall cad au 192.168.0.1 non au serveur FTP sur 192.168.0.5
Au moins il est sécurisé ce FW avec un serveur FTP.

Déjà une chose qui serait bien c'est de donner TOUTES les règles et pas
seulement celles de la table NAT. Dans la table filter il y a REDIRECT
par exemple, qui fait des choses.

[...]

Avez vous une idée pour résoudre le pb ?
Il faudrait commencer par installer le service mandataire FTP

(ftp-ipconnect ou quelque chose dans ce goût)
ou s'assurer que toutes les connexions n'auront lieu qu'en passif.


Merci
De rien.


db

--

Courriel : usenet blas net

Avatar
Freegate
"Dominique Blas" a écrit dans le message de
news:435eb38a$0$1765$
| > Bonjour,
| >
| > Sur mon reseau local, j'ai un firewall / passerelle 192.168.0.1 et un
| > serveur FTP avec l'adresse 192.168.0.5
| >
| > Je souhaite que les utilisateurs internet accèdent au serveur FTP
| > 192.168.0.5
| >
| > Mes regles de port forwarding pour le serveur ftp sont les suivantes :
| >
| > IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 21 -j
| > DNAT --to-destination 192.168.0.5:80
| Celle-ci est la bonne mais pourquoi diable redirigé vers le port 80 ?
| Il y a un serveur FTP sur le port 80 du .5 ?


Le port de 80 est une erreur de ma part quand j'ai recopié mes règles en
écrivant mon post. Cela étant mon pb résolu car il manquait juste une régle
qui autorisait la redirection vers le 192.168.0.5:21

merci