Ceci est une ancienne révision du document !
Table des matières
< retour à la page de l'administration technique
Le serveur FTP de FedeRez se trouve sur hexagon.
Infos de connexion
Hôte | ftp.federez.net |
Port | 21 |
Protocole | FTPES (FTP avec connexion TLS explicite) obligatoire |
Login | Identifiant LDAP (normalement de la forme prénom.nom). |
Mot de passe | Celui du compte LDAP. Cf https://webldap.federez.net en cas d'oubli. |
Infos générales
Voici l'arborescence mise en place initialement. Sera probablement à actualiser par la suite mais ça donne déjà une idée.
/home/ftp ├── administratif │ └── statuts.pdf ├── admin_tech ├── journees │ └── 2014 │ ├── presentations │ │ ├── federez_ag_2014_aliens.pdf │ │ └── ... │ └── videos │ ├── Conférence IPv6.mp4 │ └── ... ├── README_FTP_FedeRez.txt ├── tournee ├── upload └── visuel ├── font ├── kakemono └── logo
Mise en place
Pour la mise en place d'un serveur vsftpd
(qui était installé auparavant à FedeRez), on pourra se référer à la page dédiée. Ce qui suit concerne proftpd
, logiciel utilisé actuellement à FedeRez.
Le choix de proftpd
a été fait parce que la gestion du LDAP y semblait meilleure qu'avec pure-ftpd
.
On commence par installer les paquets nécessaires (la doc à consulter dans /usr/share/doc/proftpd-doc/
n'est pas requise mais peut se révéler utile) :
apt-get install proftpd proftpd-doc proftpd-mod-ldap
On crée un utilisateur système “ftp” :
useradd --system --home-dir /srv/ftp --no-create-home --shell /usr/sbin/nologin ftp
Si l'utilisateur existe, on s'assure que tous soit bon avec :
grep -E '^ftp:' /etc/passwd
qui doit renvoyer :
50:ftp:x:129:999::/srv/ftp:/usr/sbin/nologin
Sinon, on adapte avec :
groupadd --system ftp usermod --gid ftp --home /srv/ftp --shell /usr/sbin/nologin ftp
On note ensuite l'uid et le gid de ftp :
id ftp
On décommente dans /etc/proftpd/proftpd.conf
:
Include /etc/proftpd/tls.conf Include /etc/proftpd/ldap.conf
on change la ligne adapté pour avoir :
DisplayLogin /etc/proftpd/welcome.msg
et on ajoute :
AuthOrder mod_ldap.c DefaultRoot /srv/ftp
On crée /etc/proftpd/welcome.msg
avec par exemple :
- "/etc/proftpd/welcome.msg"
================================================= | | | Bienvenue sur le serveur FTP de FedeRez ! | | | ================================================= Vous êtes identifié en tant que %U@%R ------- En cas de questions, contacter admin@federez.net
Ainsi seuls les utilisateurs ayant un compte dans le LDAP pourront utiliser le FTP.
On décommente dans /etc/proftpd/modules.conf
:
LoadModule mod_ldap.c
On modifie /etc/proftpd/tls.conf
pour avoir : (cf http://www.proftpd.org/docs/howto/TLS.html pour les détails)
- "/etc/proftpd/tls.conf"
<IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol TLSv1.2 TLSRSACertificateFile /etc/letsencrypt/live/federez.net/fullchain.pem TLSRSACertificateKeyFile /etc/letsencrypt/live/federez.net/privkey.pem TLSOptions NoCertRequest EnableDiags TLSVerifyClient off TLSRequired on </IfModule>
On restreint les permissions sur /etc/proftpd/ldap.conf
qui va contenir un mot de passe :
chmod o-r /etc/proftpd/ldap.conf
On modifie /etc/proftpd/ldap.conf
: (cf http://www.proftpd.org/docs/contrib/mod_ldap.html pour les détails)
- "/etc/proftpd/ldap.conf"
<IfModule mod_ldap.c> LDAPServer "ldaps://ldap.federez.net/??sub" "ldaps://ldap-ro.federez.net/??sub" LDAPBindDN "cn=proftpd,ou=service-users,dc=federez,dc=net" "mot_de_passe" LDAPUsers "ou=users,dc=federez,dc=net" (uid=%v) LDAPSearchScope subtree LDAPForceDefaultUID on LDAPForceDefaultGID on LDAPDefaultUID 129 LDAPDefaultGID 999 LDAPLog /var/log/proftpd/ldap.log LDAPAuthBinds on </IfModule>
Si rien ne marche, on pourra ajouter à /etc/proftpd/proftpd.conf
:
Trace ldap:20 Trace *:10
On relance le service :
systemctl restart proftpd.service