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
(point discutable, mais proftpd répond à nos attentes, donc je ne vois pas de raison d'en changer).
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-mod-ldap proftpd-doc
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 :
getent passwd ftp getent group ftp
qui doivent renvoyer :
ftp:x:129:999::/srv/ftp:/usr/sbin/nologin ftp:x:999:
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
Dans notre cas, on a : uid=129(ftp) gid=999(ftp) groupes=999(ftp)
, valeurs utilisées dans /etc/proftpd/ldap.conf
.
On modifie le fichier /etc/proftpd/proftpd.conf
pour avoir ce qui suit (le reste de la configuration par défaut n'ayant pas besoin d'être modifié) :
- "/etc/proftpd/proftpd.conf"
### Lignes à décommenter : Include /etc/proftpd/tls.conf Include /etc/proftpd/ldap.conf ### Ligne à modifier : DisplayLogin /etc/proftpd/welcome.msg ### Lignes à ajouter : # Autoriser uniquement les connexions depuis le LDAP AuthOrder mod_ldap.c # Chroot des utilisateurs dans /srv/ftp 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
On décommente dans /etc/proftpd/modules.conf
:
- "/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>
Toutes les autres lignes devraient être commentées.
On restreint les permissions sur /etc/proftpd/ldap.conf
qui va contenir un mot de passe (pour récupérer les informations dans le LDAP) :
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>
Toutes les autres lignes devraient être commentées.
Enfin, on relance le service :
systemctl restart proftpd.service
En cas de soucis, on pourra ajouter à /etc/proftpd/proftpd.conf
les lignes suivantes pour activer le débug :
Trace ldap:20 Trace *:10