Bonjour quelqu'un aurait-il un exemple de config iptables qui accepte le ftp tls / ftpes?
Le but: synchro le dédié avec la freeboxv6.
J'ai deja un script fonctionnel, seul l'iptable me bloque
Yop,
Alors j'peux pas t'aider pour tes règles iptables, mais par contre ton script m'intéresse
Je te tiens au courant quand ca sera 100% fonctionnel.
(Mais tu peux deja regarder du côté de GitHub warezcmpt/JRabbitSync
Ya un fichier pour la Freebox. Attention je répète c'est pas terminé).
A ma connaissance faut ouvrir le port 21 pour l'authentification et le port 20 pour les données en mode actif, en mode passif un port éphémère (<1024) est négocié entre le client et le serveur, donc une solution possible c'est de définir un range de ports au niveau de la configuration du serveur FTP et d'autoriser ce range dans iptables.

Pour vsftpd :
pasv_enable=yes
pasv_max_port=xxxx
pasv_min_port=xxxx
Sans iptables tout fonctionne, avec:

J'utilise lftp
Le port de la Freebox est: 62446
Mon firewall:
# FTP Out
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
# FTP In
modprobe ip_conntrack_ftp # ligne facultative avec les serveurs OVH
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Freebox
iptables -t filter -A INPUT -p tcp --dport 62446 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 62446 -j ACCEPT
La connexion se fait, le dossier se crée sur la freebox et ça bloque la:
Récupération du contenu du répertoire (0) [Établissement de la connexion de données...]
Ouais donc le problème se situe bien au niveau du transfert des données, donc soit tu passes en mode actif (port ftp-data 20), soit tu autorises le range de ports que le serveur FTP utilise en mode passif.

Pour LFTP, essaye cette option :
set ftp:passive-mode false;
Extrait de la doc :
ftp😛assive-mode (boolean)

sets passive FTP mode. This can be useful if you are behind a firewall or a dumb mas‐
querading router. In passive mode lftp uses PASV command, not the PORT command which
is used in active mode. In passive mode lftp itself makes the data connection to the
server; in active mode the server connects to lftp for data transfer. Passive mode is
the default.
Ok sans trop comprendre je que je fais, j'ai ajouté:
set ftp:passive-mode off
au script
et dans iptables:
#Freebox
iptables -t filter -A INPUT -p tcp --dport 62446 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 62446 -j ACCEPT
#LFTP
iptables -t filter -A INPUT -p tcp --dport 1024:65000 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 1024:65000 -j ACCEPT
Et CA MARCHE Merci Hardware
Ouais mais là tu filtres aucun port entre 1024:65000, je pense que c'est pas ce que tu voulais à la base.

Essaye juste ça :
# LFTP : 20 ftp-data (active mode) / 21 ftp-auth
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT

# Freebox
iptables -t filter -A INPUT -p tcp --dport 62446 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 62446 -j ACCEPT
Puis dans ton script :

echo "set ftp:passive-mode false" > ~/.lftprc
ou directement depuis la commande lftp, exemple :
lftp -e "set ftp:passive-mode false; put mon_fichier; bye;" -u user,password -p port HOST
Nope:
Récupération du contenu du répertoire (0) [En attente de la connexion de données...]
Freebox
ftpes://freebox@ip.ip.ip.ip:62446/
Script:
lftp -u freebox,$Home_ftp_pass $Home_IP:62446 << EOF
set ftp:passive-mode false
set ftp:ssl-force true
set ssl:verify-certificate no
mirror -R $monitor_dir $Home_dir
quit
EOF
Firewall:
# FTP Out
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
# FTP In
modprobe ip_conntrack_ftp # ligne facultative avec les serveurs OVH
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Freebox
iptables -t filter -A INPUT -p tcp --dport 62446 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 62446 -j ACCEPT
#LFTP
#iptables -t filter -A INPUT -p tcp --dport 1024:65000 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 1024:65000 -j ACCEPT
Je vais essayer:
 ftp:port-range xx-xx 
Mais je met quoi comme port?
Perso jai un script qui permet de monter dans répertoire du dédié directement le disque dur de la freebox v6 en ftpes . Ça marche plutot pas mal
Si ça intéresse du monde je pourrais vous filer ca
Je veux bien jeter un oeil, ca peu m'aider
C'est derrière un firewall?

Edit:
Ah a premiere vue ca passe avec:
Firewall:
# FTP Out
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
# FTP In
modprobe ip_conntrack_ftp # ligne facultative avec les serveurs OVH
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Freebox
iptables -t filter -A INPUT -p tcp --dport 62446 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 62446 -j ACCEPT
script:
lftp -u $Home_user,$Home_ftp_pass $Home_IP:$Home_ftp_port << EOF
set ftp:port-range 62446
set ftp:passive-mode false
set ftp:ssl-force true
set ssl:verify-certificate no
mirror -R $monitor_dir $Home_dir
quit
EOF
Bon en fait ça marche pour le premier téléchargement et au second ça bloque...
impossible d'avoir accès au dossier sur la Freebox
On dirai on problème de droits...
Répondre…