Rechercher : dans
Par :

Problème avec mon Serveur FTP natté (iptables

Dernière réponse le 13 jun 2004 à 01:14:42 Tub, le 12 avr 2004 à 14:17:39 
 Signaler ce message aux modérateurs

Bonjour à tous,

Je vous explik ma situation : J'ai une passerelle avec Mandrake 9.2 connecté à internet par linterface ppp0 et connecté au reseau locale en eth0 (ip : 192.168.1.10).
J'ai un serveur ftp sur un poste Windows 2000 de mon reseau (ip : 192.168.1.17).
Je voudrais donc que celui ci soit accessible depuis l'éxterieur !
J'ai donc récuperer un script Iptable qui a priori est pas mal du tout mais en ce qui concerne mon serveur ftp, ca ne marche pas.
En pensant que c'était peut etre le script j'ai essayer d'autre manip que j'ai trouvé sur le net mais aucune fonctionne !
Le niveau de sécurité de ma mandrake est au niveau "Normal" et DrakeFirewall est désactivé !! Peut etre que mon script est correct mais qu'il y a peut etre une otre couche de securité ???

Sinon voici mon script :

#!/bin/sh

#path to iptables
IPT="/sbin/iptables"

#interface connected to the internet
EXTERNAL_IF="ppp0"

#interface connected to the LAN
INTERNAL_IF="eth0"

#Address of your network
INTERNAL_NETWORK="192.168.1.0/24"

#Services that are available on the firewall
FIREWALL_SERVICES_TCP="ftp ftp-data ssh 21"
FIREWALL_SERVICES_UDP="domain"

#Services which are routed by the firewall
ROUTED_SERVICES_TCP="ftp ftp-data ssh https domain"
ROUTED_SERVICES_UDP="domain"

#Services which are available on LAN only
SERVICES_ON_LAN_TCP="domain netbios-ssn netbios-ns netbios-dgm"
SERVICES_ON_LAN_UDP="domain netbios-ssn netbios-ns netbios-dgm"

#Accepted ICMP types
ICMP="echo-reply destination-unreachable echo-request time-exceeded source-quench"

#ports that will be forwarded
FORWARDED_PORTS="4662:192.168.1.17:4662 20:192.168.1.17:20 21:192.168.1.17:21"

#If something try to connect more than this number, the connections will be logged
MAX_CONNECT_PER_SECOND=1

function start(){
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp

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

echo -n "Drop ALL rulez ..."
$IPT -P INPUT DROP
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
echo "done"

#accept traffic for lo
echo -n "Accept Traffic on lo ... "
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
echo "done"

#accept traffic for LAN
$IPT -A FORWARD -i $INTERNAL_IF -o $EXTERNAL_IF -j ACCEPT
$IPT -A FORWARD -i $EXTERNAL_IF -o $INTERNAL_IF -j ACCEPT
echo "done"

#masquerading
echo -n "Masquerading network $INTERNAL_NETWORK ..."
$IPT -t nat -A POSTROUTING -s $INTERNAL_NETWORK -o $EXTERNAL_IF -j MASQUERADE
echo "done"

for v in $FIREWALL_SERVICES_TCP; do
echo -n "Accepting port $v for server usage (tcp) ... "
$IPT -A INPUT -i $INTERNAL_IF -p tcp --dport $v -j ACCEPT
$IPT -A OUTPUT -o $INTERNAL_IF -p tcp --sport $v -j ACCEPT
$IPT -A INPUT -i $EXTERNAL_IF -p tcp --dport $v -j ACCEPT
$IPT -A OUTPUT -o $EXTERNAL_IF -p tcp --sport $v -j ACCEPT
echo "done"
done

for v in $FIREWALL_SERVICES_UDP; do
echo -n "Accepting port $v for server usage (udp) ... "
$IPT -A INPUT -i $INTERNAL_IF -p udp --dport $v -j ACCEPT
$IPT -A OUTPUT -o $INTERNAL_IF -p udp --sport $v -j ACCEPT
$IPT -A INPUT -i $EXTERNAL_IF -p udp --dport $v -j ACCEPT
$IPT -A OUTPUT -o $EXTERNAL_IF -p udp --sport $v -j ACCEPT
echo "done"
done

for v in $ROUTED_SERVICES_TCP; do
echo -n "Routing port $v (tcp) ... "
$IPT -A INPUT -i $INTERNAL_IF -p tcp --dport $v -j ACCEPT
$IPT -A OUTPUT -o $INTERNAL_IF -p tcp --sport $v -j ACCEPT
$IPT -A INPUT -i $EXTERNAL_IF -p tcp --sport $v -j ACCEPT
$IPT -A OUTPUT -o $EXTERNAL_IF -p tcp --dport $v -j ACCEPT
echo "done"
done

for v in $ROUTED_SERVICES_UDP; do
echo -n "Accepting port $v (udp) ... "
$IPT -A INPUT -i $INTERNAL_IF -p udp --dport $v -j ACCEPT
$IPT -A OUTPUT -o $INTERNAL_IF -p udp --sport $v -j ACCEPT
$IPT -A INPUT -i $EXTERNAL_IF -p udp --sport $v -j ACCEPT
$IPT -A OUTPUT -o $EXTERNAL_IF -p udp --dport $v -j ACCEPT
echo "done"
done

for v in $SERVICES_ON_LAN_TCP; do
echo -n "Accepting port $v for LAN only (tcp) ..."
$IPT -A INPUT -i $INTERNAL_IF -p tcp --dport $v -j ACCEPT
$IPT -A OUTPUT -o $INTERNAL_IF -p tcp --sport $v -j ACCEPT
echo "done"
done

for v in $SERVICES_ON_LAN_UDP; do
echo -n "Accepting port $v for LAN only (udp) ..."
$IPT -A INPUT -i $INTERNAL_IF -p udp --dport $v -j ACCEPT
$IPT -A OUTPUT -o $INTERNAL_IF -p udp --sport $v -j ACCEPT
echo "done"
done

for v in $ICMP; do
echo -n "Accepting ICMP type $v (icmp) ... "
$IPT -A INPUT -i $INTERNAL_IF -p icmp --icmp-type $v -j ACCEPT
$IPT -A OUTPUT -o $INTERNAL_IF -p icmp --icmp-type $v -j ACCEPT
$IPT -A INPUT -i $EXTERNAL_IF -p icmp --icmp-type $v -j ACCEPT
$IPT -A OUTPUT -o $EXTERNAL_IF -p icmp --icmp-type $v -j ACCEPT
echo "done"
done

for v in $FORWARDED_PORTS; do
SOURCE_PORT=`echo $v | awk -F ":" '{ print $1}'`
IP_DEST=`echo $v | awk -F ":" '{ print $2}'`
DEST_PORT=`echo $v | awk -F ":" '{ print $1}'`

echo -n "Forward port $SOURCE_PORT to $IP_DEST whith port $DEST_PORT ... "
$IPT -t nat -A PREROUTING -i $EXTERNAL_IF -p tcp --dport ${SOURCE_PORT}:${DEST_PORT} -j DNAT --to $IP_DEST
$IPT -t nat -A PREROUTING -i $EXTERNAL_IF -p udp --dport ${SOURCE_PORT}:${DEST_PORT} -j DNAT --to $IP_DEST


$IPT -A INPUT -i $INTERNAL_IF -p tcp --sport $DEST_PORT -j ACCEPT
$IPT -A OUTPUT -o $INTERNAL_IF -p tcp --dport $DEST_PORT -j ACCEPT
$IPT -A INPUT -i $INTERNAL_IF -p tcp --sport $DEST_PORT -j ACCEPT
$IPT -A OUTPUT -o $INTERNAL_IF -p tcp --dport $DEST_PORT -j ACCEPT

$IPT -A INPUT -i $EXTERNAL_IF -p tcp --dport $SOURCE_PORT -j ACCEPT
$IPT -A OUTPUT -o $EXTERNAL_IF -p tcp --sport $SOURCE_PORT -j ACCEPT
$IPT -A INPUT -i $EXTERNAL_IF -p tcp --dport $SOURCE_PORT -j ACCEPT
$IPT -A OUTPUT -o $EXTERNAL_IF -p tcp --sport $SOURCE_PORT -j ACCEPT
echo "done"
done


echo -n "accept clients connections ..."
$IPT -A INPUT -p tcp --dport 1025: -j ACCEPT
echo "done ..."

echo -n "Matching state for connections ... "
$IPT -A INPUT -i $EXTERNAL_IF -p tcp -m state --state ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -o $EXTERNAL_IF -p udp -m state --state NEW,ESTABLISHED -j ACCEPT
echo "done"

echo -n "Start Logging ... "
$IPT -A INPUT -m limit --limit ${MAX_CONNECT_PER_SECOND}/second -j LOG
$IPT -N LOGGING
$IPT -A LOGGING -j LOG --log-prefix 'Firewall DROP : '
$IPT -A INPUT -i $EXTERNAL_IF -j LOGGING
echo "done"
}



function stop(){
echo -n "Stopping firewall (flush rules) ... "
$IPT -F
$IPT -X
$IPT -X LOGGING

$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
echo "done"
}

Si qqun peut maider ce serait vraiment tres sympa car la je galere !!

Merci d'avance

Meilleures réponses pour « Problème avec mon Serveur FTP natté (iptables » dans :
Installer un serveur FTP sous Windows Voir Version rapide Version un peu moins rapide (mais plus propre) Version serveur propre Liens Pour aller plus loin : Accédez à votre serveur FTP n'importe où dans le monde Notes Version rapide VITE, JE VEUX INSTALLER UN SERVEUR FTP TOUT...
Installer un serveur FTP sous Ubuntu Voir Sommaire: 1. Installer le serveur FTP 2. Configurer le serveur FTP 2.1 Interdire le FTP anonyme 2.2 Autoriser les utilisateurs locaux à se connecter 2.3 Autoriser les utilisateurs à uploader des fichiers 2.3 Choisir l'interface 3....
Se connecter à un serveur FTP en mode Ms-Dos Voir La commande ftp permet de se connecter à un serveur FTP en ligne de commande. Certaines options de cette commande permettent d'automatiser la connexion en fournissant une liste de commandes contenues dans un fichier texte : ftp -i ...
Freebox et serveur web ou serveur FTP VoirVous souhaitez mettre en place un serveur web ou un serveur FTP (ou tout type de serveur) hébergé sur un ordinateur situé derrière une freebox. Cela est possible, mais plusieurs manipulations sont nécessaires : Configuration du pare-feu...
Accéder à un serveur FTP comme si c'était un répertoire local Voir1. Installez curlftpfs: sudo aptitude install curlftpfs 2. Créez le répertoire où apparaîtra le serveur ftp: mkdir pointdemontage 3. Ajoutez les utilisateurs autorisés à utiliser le logiciel au groupe fuse : sudo adduser username fuse 4....
Télécharger Filezilla Server VoirFileZilla Server est un serveur FTP pour Windows développé en open source. Il comporte de nombreuses fonctionnalités telles que le support de SSL, la possibilité de reprendre des téléchargements annulés, la gestion des répertoires, ... Mise à...

1

desg, le 12 avr 2004 à 14:47:42

Ba je vois pas de raison la
fait un iptable -L
pour voir se qu'il ya dedans apres

pour tester il faut que tu utilise l'ip de ppp0
sinon sa routera pas :)
$IPT -t nat -A PREROUTING -i $EXTERNAL_IF -p tcp --dport ${SOURCE_PORT}:${DEST_PORT} -j DNAT --to $IP_DEST

Répondre à desg

2

Tub, le 12 avr 2004 à 19:02:20

Merci tout dabord pour ta réponse !!
Ne crois tu pas que cela peut venir d'une source externe à IPTABLE car chez un ami cela marche trés bien !!! ???

Merci

Répondre à Tub

3

desg, le 12 avr 2004 à 19:21:50

Peut etre bin que oui
peut etre bin que non
je sais pas se qui tourne sur ta machine
je sais pas se qui pourrait poser probleme

Répondre à desg

4

Xenor, le 12 avr 2004 à 21:44:58

Bjour à tous,
C'est vraiment bizarre ce script immense chez moi mon firewall se lance en 10 lignes et remplit toutes ces fonctions mais bon...
Pour la redirection de ports je n'ai pas la même chose (et chez moi ça marche). Ainsi, bien que je sache pas exactement ce que contient "SOURCE_PORT" et "DEST_PORT" j'essayerai :

$IPT -t nat -A PREROUTING -i $EXTERNAL_IF -p tcp --dport ${SOURCE_PORT} -j DNAT --to $IP_DEST:${DEST_PORT} 

à la place de
$IPT -t nat -A PREROUTING -i $EXTERNAL_IF -p tcp --dport ${SOURCE_PORT}:${DEST_PORT} -j DNAT --to $IP_DEST 


Enfin moi c'est cette syntaxe là que j'ai.
A essayer...

___________
- X e n o r ---
Jeune & Vaillant Guerrier CCM

Répondre à Xenor

5

Xenor, le 12 avr 2004 à 21:46:38

Ps : idem pour l'udp bien entendu... :-)

___________
- X e n o r ---
Jeune & Vaillant Guerrier CCM

Répondre à Xenor

6

Poulet, le 12 avr 2004 à 21:48:35

Tiens :)

Patapi Biribibi Rabada dada 
Dada dada !!

Répondre à Poulet

7

Xenor, le 12 avr 2004 à 21:57:37

Ben voyons :)
___________
- X e n o r ---
Jeune & Vaillant Guerrier CCM

Répondre à Xenor

11

Xenor, le 13 avr 2004 à 03:58:06

Heu petite rectification c'est n'est pas "--to" que j'ai à la fin mais "--to-destination". C'est d'ailleurs étrange parce que j'ai cherché dans la manpage de iptables, et "--to" tout seul il connait pas !
Donc, une dernière fois, modifie ta ligne et remplace la par

$IPT -t nat -A PREROUTING -i $EXTERNAL_IF -p tcp --dport ${SOURCE_PORT} -j DNAT --to-destination $IP_DEST:${DEST_PORT}

au moins pour essayer... Et tiens nous au courant !

___________
- X e n o r ---
Jeune & Vaillant Guerrier CCM

Répondre à Xenor

8

desg, le 12 avr 2004 à 22:41:04

Si le meme script marche bien ailleur y a pas trop de raison
essaye de voir si ta pas des veille regle qui sont entassé
iptables -t nat -L
iptables -L
si ya du monde dedans
iptables -t nat -F
iptables -F
puis la sa devrais etre vide :)
tu peut relancer le script

Répondre à desg

9

Xenor, le 12 avr 2004 à 22:42:22

Avec mandrake y'a toujours des raisons :)

___________
- X e n o r ---
Jeune & Vaillant Guerrier CCM

Répondre à Xenor

10

desg, le 12 avr 2004 à 22:47:53

Oui sa c'est des ont dit ...
j'ai pas de pblm moi
j'ai encore jamais vu d'OS qui se maintenait et configurait tout seul

les problemes avec mandrake se trouve surtout au niveau des appli de config du cliquodrome, le reste c'est pareil qu'ailleur.

Répondre à desg

12

Xenor, le 13 avr 2004 à 04:08:15

les problemes avec mandrake se trouve surtout au niveau des appli de config du cliquodrome... --> ça fait déjà pas mal comme problèmes non ? :-D
Ensuite j'ai jamais parlé d'OS qui se maintenait tout seul ! Je donnais juste une piste de réponse vu que la syntaxe de son script me parait étrange c'est tout ! Quant aux "ondit" j'invente rien à chaque fois que j'ai eu une mdk entre les mains c t tellement la merde et ça m'a tellement soulé leurs "draketools" à allures d'assistants crosoft que ça m'a rappelé windows. On sait pas où et quoi fonctionne comment, c'est pas modulable comme install. Obligé de tt réinstaller dès qu'une nouvelle version sort cad tous les 3 mois... J'appelle pas ça un système efficace. Bien sûr c'est mon avis mais qu'on vienne pas me dire que ce que je dis c'est des "ondit", c'est pas mon genre.
Maintenant si on peut rester concentré sur le problème à résoudre ça sera profitable pour tout le monde merci...

___________
- X e n o r ---
Jeune & Vaillant Guerrier CCM

Répondre à Xenor

13

asevere, le 13 avr 2004 à 17:48:10

Salut Xenor, ça fesait longtemps!

Bon je pense qu'il y a eu assez de plainte en vers les differents outils de mandrake.
Une seule chose reste vraie dans tout les cas, on est nullement obligé d'utiliser ces outils, ou de reinstaller le systeme pour une simple mise à jour.

Il y a un paquet de monde satisfait par Mandrake, aussi bien chez les débutants que chez les utilisateurs experimentés, et a en juger par le nombre de message qui la concerne ici même, elle fait partie des quelques distribe a sortir réellement du lot, sans rien demander a personne....

Les message du genre "avec mandrake tout est possible" dans le sens ou tu l'as employé ne sont pas vraiment les bien venus, surtout de la part d'un habitué :)

Sinon quoi de nuef chez toi ? :)

"Si c'est stupide et que ça marche,
        alors ce n'est pas stupide"

Répondre à asevere

15

Poulet, le 14 avr 2004 à 07:47:08

C'était "avec mandrake y'a toujours des raisons".
Il y a des messages d'habitués bien pire que ça tu sais. Mandrake est une distribution "surement" trés intéressante et "surement" exploitable par des débutants, mais voila à force de cliquer à gauche et à droite tu ne sais pas vraiment ce que tu bidouilles. Le clic a le désagréable pouvoir de rendre les gens butés, Xénor est mon mentor des glaces, les gens devraient lui faire beaucoup confiance.

Patapi Biribibi Rabada dada 
Dada dada !!

Répondre à Poulet

17

Poulet, le 14 avr 2004 à 10:16:27

Ce que je veux dire c'est que même si Xenor a un discours qui peut prêter à trollage, il est de bon conseil (tout comme toi) :)

Patapi Biribibi Rabada dada 
Dada dada !!

Répondre à Poulet

18

asevere, le 14 avr 2004 à 12:39:25

Y'a pas de probléme,

C'est juste que, comme tu le sais, je suis un férvant défenseur de Mandrake, sans pour autant la conseiller à tout le monde, ni déconseiller les autres distrib.

Donc forcement quand je lis un truc comme ça, ça a un peu tendance à m'agacer.
Puis bon, même si l'on peut cliquer partout on est jamais obligé de le faire, j'utilise mandrake depuis assez longtemps, et je n'utilise quasiment que le mode texte quand je dois configurer quelque chose.
Rien ne t'empeche de faire sous Mandrake les mêmes choses que sous Debian.
Quand à dire que les débutants utilisent mandrake, et les utilisateurs avertis n'utilisent pas mandrake, je ne suis pas d'accord non plus, enfin je ne me considere pas comme un débutant pour ma part.
Je ne reste pas non-plus en permanence sur Mandrake, mais c'est de loin celle que j'utilise le plus.

C'est comme les trucs du genre: ...une mdk entre les mains c t tellement la ... et ça m'a tellement soulé leurs "draketools" à allures d'assistants crosoft que ça... C'est pas parce qu'on est sur un voie, prioritaire qu'il ne faut pas faire gaffe au niveau des intersections... quand a dire "c'est de la ..." ben je trouve pas ça super respectueux...

Enfin bon, je n'en veut a personne, j'ai juste eu besion de relever ça hier quand je suis tombé dessus :o)

@++

"Si c'est stupide et que ça marche,
        alors ce n'est pas stupide"

Répondre à asevere

20

Xenor, le 14 avr 2004 à 14:02:34

Désolé....
___________
- X e n o r ---
Jeune & Vaillant Guerrier CCM

Répondre à Xenor

19

Poulet, le 14 avr 2004 à 13:01:28

Et tu as bien fait :)

Patapi Biribibi Rabada dada 
Dada dada !!

Répondre à Poulet

14

Xenor, le 13 avr 2004 à 17:53:34

C'est rien je suis très fâché avec mandrake !
moi ça va bien je reviens un peu voir ccm en ce moment comme tu le vois... et ça roule :)

Pour en revenir à mdk je suis d'accord avec ce que tu dis sauf sur les utilisateurs expérimentés : j'en connais aucun qui tourne sous mdk. C'est pour les débutants, une fois qu'on maîtrise un chouille le système on a vite envie de découvrir qqchose de + sérieux quoi c'est normal.... Enfin c'est au moins valable pr les gens que je cotoie !

___________
- X e n o r ---
Jeune & Vaillant Guerrier CCM

Répondre à Xenor

16

Poulet, le 14 avr 2004 à 07:49:53

Je sais pas si sérieux est le terme exact à employer. Les pingouins expérimentés aiment réalisés leur propre système, c'est dans ce sens qu'ils choississent une Debian :)

Patapi Biribibi Rabada dada 
Dada dada !!

Répondre à Poulet

21

Xenor, le 14 avr 2004 à 14:03:28

Certes (-:
bon je ferme ma gueule :P
___________
- X e n o r ---
Jeune & Vaillant Guerrier CCM

Répondre à Xenor

22

asevere, le 14 avr 2004 à 14:07:52

NAN! Continue à contribuer! :o)

Que ce soit bien clair, ce n'est pas contre toi hein!? c'est juste sur le principe! :)

"Si c'est stupide et que ça marche,
        alors ce n'est pas stupide"

Répondre à asevere

23

Poulet, le 14 avr 2004 à 16:50:15

Vous êtes mes pingouins préférés :)

Patapi Biribibi Rabada dada 
Dada dada !!

Répondre à Poulet

24

asevere, le 14 avr 2004 à 17:02:59

Ben ça me fait une belle patte :p
Un des pingouins préféré d'un poulet :D


"Si c'est stupide et que ça marche,
        alors ce n'est pas stupide"

Répondre à asevere

25

Xenor, le 14 avr 2004 à 17:47:25

Cétingrantoneur :-)
___________
- X e n o r ---
Jeune & Vaillant Guerrier CCM

Répondre à Xenor

26

bokailaim, le 13 jun 2004 à 01:10:10

Si ca ne marche pas ca n'a rien a voir avec Mandrake, c'est par ce que ftp est un protocole pourri qui utilise 35000 ports choisis aleatoirement pour transferer les fichiers.
Avec le script que tu as copie/colle ici, le ftp en mode actif depuis l'exterieur si le client n'a pas de fw devrait marcher (en mode actif c'est le serveur qui se connecte au client pour faire les transferts). Pour le faire marcher en mode passiff il faut rediriger plus de ports, et dire au serveur ftp de n'utiliser que ces ports la.

Répondre à bokailaim

27

 bokailaim, le 13 jun 2004 à 01:14:42

Ou sinon utiliser ip_conntrack_ftp ...

Répondre à bokailaim