Synology [Tuto] FileZilla Client en Docker sur Synology

EVO

Administreur
Membre du personnel
25 Novembre 2019
8 351
1 610
278
/var/run/docker.sock
Bonjour,
Un nouveau petit tuto pour vous apprendre a installer FileZilla en Docker sur votre NAS Synology.

DSM comprend déja un système via FileStation pour accéder a des serveurs FTP, SFTP, .. distant mais il est a mon goût peu pratique. Impossible de se connecter directement dans un dossier spécifique sur le serveur, pas de limitation simple de la vitesse de download, pas de possibilité de mettre en pause ...

Ici, l'interface graphique de FileZilla sera dispo dans une page de navigateur, avec tous les contrôles possible dans le FileZilla que vous avez peut être l'habitude d'utiliser ! Mise en queue de transfert, sélection du nombre de transfert simultanés, limitation de la vitesse de dl, mise en pause , ... Il sera aussi possible d'y accéder a distance via un client VNC.

Vous trouverez ici un aperçu de l'interface graphique : https://i.imgur.com/6ERY6dz.png

Pré-Requis :
Avoir un NAS Synology compatible avec Docker.
[Tuto] Connaitre le PUID / PGID d'un utilisateur.

Sommaire :
1/ Télécharger le conteneur
2/ Création du dossier d'installation
3/ Récupération du PUID / PGID
4/ Paramétrage du conteneur
5/ Accès a l'interface graphique depuis un navigateur

1/ Télécharger le conteneur
Nous allons télécharger le conteneur jlesage/docker-filezilla, pour cela nous allons ouvrir docker et se rendre dans Registre et rechercher "filezilla".
2kFQUH8.png

Une fois l'image jlesage/docker-filezilla, on clique dessus, puis sur Télécharger, on sélectionnera "latest"

2/ Création du dossier d'installation
FileZilla a besoin d'un dossier sur le NAS, ou il va pouvoir s'installer, enregistrer ses configurations, ...
Dans mon cas, j'ai choisi de le mettre dans un dossier partagé "docker", j'y est donc créé un dossier "filezilla"
le chemin d’accès a ce dossier, pour ce tuto, sera donc /docker/filezilla, il sera modifier suivant vos choix.

3/ Récupération du PUID / PGID
Il va falloir associer notre conteneur a un utilisateur du NAS, pour cela il faut connaitre le PUID et le PGID de cette utilisateur, pour cela, je vous laisse utiliser ce tuto : [Tuto] Connaitre le PUID / PGID d'un utilisateur.
Bien évidement, l'utilisateur choisi devra avoir les droits de lecture/écriture sur le dossier /filezilla précédement créé !
On notera le PUID/PGID de l'utilisateur choisi, on va en avoir besoin juste après !

4/ Paramétrage du conteneur
Une fois le téléchargement terminé, on peu dans l'onglet Image retrouver l'image précédemment téléchargée, on clique dessus, puis sur "Lancer"
plkPRxw.png

Dans la 1ere page qui s'affiche, on choisi un nom, par défaut c'est "jlesage-filezilla1", moi j'ai choisi de mettre uniquement "filezilla".

Puis on clique sur "Paramètres avancés"
pGqYDyn.png


Dans l'onglet "Volume", nous allons cliquer sur "Ajouter un dossier" et choisir le dossier "filezilla" que nous avons créé précédemment pour l'installation de l'image.
Uq16cE1.png

Nous allons aussi ajouter les liens vers nos dossiers partagés auquel nous souhaiterions pouvoir accéder depuis FileZilla.
Sous la forme
dossier_partagé1 /storage/dossier_partagé1
dossier_partagé2 /storage/dossier_partagé2
...
Dans l'onglet "Réseau", nous allons laisser "bridge".
xPGMJHd.png


Dans l'onglet "Paramètres des ports", il faut enlever le "Auto" présent dans Port local par la même valeur que celle présente dans "Port du conteneur", cela donne :
bZd6gd0.png


Dans l'onglet "Environnement", nous allons changer USER_ID, et GROUP_ID, respectivement par nos PUID / PGID trouvé dans le point 3 du tuto.
gh5Tz4l.png

Plus bas, toujours dans "Environnement", vous trouverez les valeurs "DISPLAY_WIDTH" et "DISPLAY_HEIGHT"
N6uFREC.png

C'est la taille d'affichage de l'interface graphique dans le navigateur, par défaut c'est 1280x768, sur mon écran 22", il est plus agréable de mette 1767*1060, ceci peut etre sans soucis modifier par la suite en cas de besoin. je vous conseil de laisser par défaut, et de modifier en cas de besoin.

Maintenant, on clique sur "Appliquer", puis "Suivant", et on arrive a la page suivante :
11mBPgj.png

On clique sur "Appliquer" et le conteneur se créer, et démarre.
Dans l'onglet "Conteneur", on peu vérifier que notre conteneur est bien démarré !
UbCiuuE.png


5/ Accès a l'interface graphique depuis un navigateur
Dans votre navigateur, il vous suffit maintenant de taper l'adresse ip de votre NAS suivi du port 5800 pour se connecter a l'interface graphique.
Exemple : Si l'ip de votre NAS est 192.168.0.20 alors l'adresse est http://192.168.0.20:5800
Vous trouverez ici un aperçu de l'interface graphique : https://i.imgur.com/6ERY6dz.png
 
Merci pour ce tuto!

J'ai mis en place mon Reverse Proxy et j'ai eu une petite erreur (Server disconnected: error 1006).
Pour résoudre ce problème, j'ai juste rajouté deux en-tête (voir ci-dessous).
ag8b.png


Cependant j'ai trois problèmes.

  • Problème n°1 :
Lorsque j'essaye de me connecter en FTP ou FTPS j'ai cette erreur qui apparaît.
5r8q.png


  • Problème n°2 :
Lorsque j'essaye de me connecter en SFTP j'ai cette erreur qui apparaît.
dgq1.png


  • Problème n°3 :
Un problème qui a eu lieu lors d'une résolutaion de nom de domaine.
2s1l.png


J'ai effectué tous ces tests d'un côté avec l'instance docker de Filezilla et de l'autre côté avec un "vrai" Filezilla.
L'utilisateur que j'utilise (défini par le USER_ID et le GROUP_ID) est administrateur.

De plus, je n'ai trouvé aucune Issue correspondantes sur le dépôt Github de l'image docker (https://github.com/jlesage/docker-filezilla/issues).

Si quelqu'un a eu des problèmes similaires ... :(
 
Salut,
Si tu as mi en place un reverse proxy, je suppose que c'est pour un accès externe ?

As tu déja essayé en local pour valider le fonctionnement ?
 
Salut,

Oui c'est pour un accès externe.

J'ai les mêmes soucis que ce soit en local ou en passant par mon sous-domaine (je fais tous mes tests en local et via le sous-domaine).

J'ai fais des redirections de port (en l'occurence 5800 docker vers 50800 nas et 5900 docker vers 50900 nas).
J'ai essayé avec les ports par défauts et j'ai le même soucis.

J'ai testé avec l'option "Exécuter le conteneur à l'aide de privilèges élevés" et même soucis.

Je ne sais pas trop d'où peut venir le soucis.
 
Salut
Je pense que tu es bon pour ouvrir une Issue sur le GitHub, je ne voit pas du tout d’où cela peut venir !
 
Salut,
1 chose me gène dans tes règles,
3 réglés locale devrait être en 1ere ! Donc au début de la liste :
x6fudMg.png


Elles sont bien configuré comme sous reseau ?
SyoQvHC.png


Tu peut les attraper sur le coté gauche pour les "remonter"
 
J'ai vu que le Mode Actif de FileZilla permet de "modifier les rôles" lors de l'établissement de la connexion FTP (le client donne au serveur un port et c'est le serveur qui initialise la connexion TCP).
En activant le Mode Actif, on peut sélectionner une place de port utilisé par le client pour indiquer au serveur le port à contacter (mais si je ne dis pas de bêtise, puisque c'est le serveur qui contacte le client, il faut faire les redirections pour chacun des ports non ?).


J'ai bien re-paramétré Filezilla :
capture1.JPG
capture2.JPG


Lorsque j'ouvre toutes mes connexions sortantes, forcément ça fonctionne (mais je préférerai comprendre quel port, Filezilla utilise).
capture3.JPG

En utilisant les ports configuré dans Filezilla + les ports FTP et SSH (par défaut) celà ne fonctionne toujours pas ...
capture4.JPG
 
Salut,
Sauf erreur de ma part, le pare-feu de Synology ne filtre que le trafic entrant.

Par contre, j'ai vu une erreur dans le réglage, en 2eme règle tu devrai avoir tes autorisation pour les dockers.

Tu as indiqué 172.15.0.0/250.240.0.0, tu devrait avoir : 172.16.0.0/250.240.0.0
Tmabrtb.png


Pour info, Voici a quoi ressemble mon pare-feu :
mMwLa47.png
 
En effet c'était ça mon erreur ... :rolleyes: :rolleyes:

Un grand merci à toi!

Donc Docker utilise le sous-réseau 172.16.0.0/12 pour communiquer, c'est ça ?

J'ai une autre petite question/remarque.
Puisque je ne veux pas que n'importe qui aille sur mon instance Filezilla, se connecte sur un serveur FTP et remplisse mon NAS j'ai mis en place un Profil de Contrôle d'accés.

CaptureFilezilla.JPG

Avec mon adresse IP fixe et mes adresses IP locales.
Il n'y a pas d'autres moyens plus élégant de le faire ? (je pense par exemple, à une page d'authentification comme pour toutes les autres applications en Reverse Proxy)
 
Salut,
Désolé, j'ai clairement oublier de ta répondre ! :?

Oui, Docker est sous 172.16.0.0/12
Pour l’accès a distance, j'utilise VPN Serveur, une fois connecté à mon serveur depuis ma machine j’accède en local. Je ne serait t'aider sur la paramétrage d'une identification, ou autre ... :(
 
Pas de soucis ! ;)

Ah d'accord, j'ai fais un Reverse Proxy avec un profil spécial qui me permet d'y accéder en local et du coup ça fonctionne nickel de chez moi.
Mais ça change rien, je dois être chez moi (donc en VPN Server) ^^'.
 
bonjour
merci pour le tuto.
je cherchais justement une solution filezilla sur le NAS (DS916+)
j'ai suivis les différents step, mais une fois lancé le conteneur s'arrête au bout de qqs secondes "erreur inatendue" : Le conteneur Docker filezilla s'est arrêté de manière inattendue.
une idée ?
cordialement
fred
 
j'ai relancé la configuration en changeant le repertoire partagé et ca fonctionne. je peux me connecter en ftp à un serveur.
par contre je en comprends pas comment naviguer dans le repertoire local ?
 
Dans paramètres Avancé, Volume, il faut que tu "monte" tes dossiers locaux du NAS dans le conteneur

Par exemple :
Pour un dossier_partagé1 présent sur le NAS


Code:
dossier_partagé1                             /storage/dossier_partagé1

dossier_partagé1 se retrouvera donc dans le dossier /storage du conteneur