Outils pour utilisateurs

Outils du site


admin:services:ftp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
admin:services:ftp [2016/04/07 00:50] – brouillon install proftpd davidadmin:services:ftp [2020/04/25 19:02] (Version actuelle) zertrin
Ligne 1: Ligne 1:
 [[:admin|< retour à la page de l'administration technique]] [[:admin|< retour à la page de l'administration technique]]
  
-Le serveur FTP de FedeRez se trouve sur [[admin:serveurs:hexagon|hexagon]].+Le serveur FTP de FedeRez se trouve sur [[admin:serveurs:dodecagon|dodecagon]].
  
 ====== Infos de connexion ====== ====== Infos de connexion ======
Ligne 8: Ligne 8:
 | **Port**         | 21 | | **Port**         | 21 |
 | **Protocole**    | FTPES (FTP avec connexion TLS __explicite__) :!: obligatoire | | **Protocole**    | FTPES (FTP avec connexion TLS __explicite__) :!: obligatoire |
-| **Login**        | Identifiant LDAP (normalement de la forme prénom.nom). |+| **Login**        | Pseudo (tiré du LDAP). |
 | **Mot de passe** | Celui du compte LDAP. Cf https://webldap.federez.net en cas d'oubli. | | **Mot de passe** | Celui du compte LDAP. Cf https://webldap.federez.net en cas d'oubli. |
  
Ligne 37: Ligne 37:
 </code> </code>
  
 +Niveau sécurité, tous les échanges doivent se faire de façon chiffrée (aussi bien pour le canal de contrôle que pour les données) et tous les utilisateurs ont les mêmes droits sur le serveurs (uid ftp, group ftp).
 ====== Mise en place ====== ====== 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 [admin:services:ftp:vsftpd|dédiée]]. Ce qui suit concerne ''proftpd'', logiciel utilisé actuellement à FedeRez.+Pour la mise en place d'un serveur ''vsftpd'' (qui était installé auparavant à FedeRez), on pourra se référer à la page [[admin:services:ftp:vsftpd|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''.+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) : 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+  apt-get install proftpd proftpd-mod-ldap proftpd-doc
  
 On crée un utilisateur système "ftp" : On crée un utilisateur système "ftp" :
- useradd --system --home-dir /srv/ftp --no-create-home --shell /usr/sbin/nologin 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 : Si l'utilisateur existe, on s'assure que tous soit bon avec :
- grep -E  '^ftp:' /etc/passwd +  getent passwd ftp 
-qui doit renvoyer : +  getent group ftp 
- 50:ftp:x:129:999::/srv/ftp:/usr/sbin/nologin+qui doivent renvoyer : 
 +  ftp:x:129:999::/srv/ftp:/usr/sbin/nologin 
 +  ftp:x:999:
 Sinon, on adapte avec : Sinon, on adapte avec :
- groupadd --system ftp +  groupadd --system ftp 
- usermod --gid ftp --home /srv/ftp --shell /usr/sbin/nologin ftp+  usermod --gid ftp --home /srv/ftp --shell /usr/sbin/nologin ftp
  
 On note ensuite l'uid et le gid de ftp : On note ensuite l'uid et le gid de ftp :
- id 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 décommente dans ''/etc/proftpd/proftpd.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é) : 
- Include /etc/proftpd/tls.conf +<file apache "/etc/proftpd/proftpd.conf"> 
- Include /etc/proftpd/ldap.conf +### Lignes à décommenter 
-on change la ligne adapté pour avoir +Include /etc/proftpd/tls.conf 
- DisplayLogin                    /etc/proftpd/welcome.msg +Include /etc/proftpd/ldap.conf 
-et on ajoute + 
- AuthOrder mod_ldap.c +### Ligne à modifier 
- DefaultRoot /srv/ftp+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 
 +</file>
  
 On crée ''/etc/proftpd/welcome.msg'' avec par exemple : On crée ''/etc/proftpd/welcome.msg'' avec par exemple :
-<file "/etc/proftpd/welcome.msg">+<file text "/etc/proftpd/welcome.msg">
 ================================================= =================================================
 |                                               | |                                               |
Ligne 79: Ligne 90:
  
                     -------                     -------
- 
  
 En cas de questions, contacter admin@federez.net En cas de questions, contacter admin@federez.net
- 
 </file> </file>
- 
-Ainsi seuls les utilisateurs ayant un compte dans le LDAP pourront utiliser le FTP. 
  
 On décommente dans ''/etc/proftpd/modules.conf'' : On décommente dans ''/etc/proftpd/modules.conf'' :
- LoadModule mod_ldap.c+<file apache "/etc/proftpd/modules.conf"> 
 +  LoadModule mod_ldap.c 
 +</file>
  
-On modifie ''/etc/proftpd/ldap.conf'' pour avoir : ( http://www.proftpd.org/docs/howto/TLS.html ) +On modifie ''/etc/proftpd/tls.conf'' pour avoir : (cf http://www.proftpd.org/docs/howto/TLS.html pour les détails
-<file "/etc/proftpd/ldap.conf">+<file apache "/etc/proftpd/tls.conf">
 <IfModule mod_tls.c> <IfModule mod_tls.c>
-TLSEngine                               on +TLSEngine                    on 
-TLSLog                                  /var/log/proftpd/tls.log +TLSLog                       /var/log/proftpd/tls.log 
-TLSProtocol                             TLSv1.2 +TLSProtocol                  TLSv1.2 
-TLSRSACertificateFile                   /etc/letsencrypt/live/federez.net/fullchain.pem +TLSRSACertificateFile        /etc/letsencrypt/live/federez.net/fullchain.pem 
-TLSRSACertificateKeyFile                /etc/letsencrypt/live/federez.net/privkey.pem +TLSRSACertificateKeyFile     /etc/letsencrypt/live/federez.net/privkey.pem 
-TLSOptions                      NoCertRequest EnableDiags  +TLSOptions                   NoCertRequest EnableDiags  
-TLSVerifyClient                         off +TLSVerifyClient              off 
-TLSRequired                             on+TLSRequired                  on
 </IfModule> </IfModule>
 </file> </file>
-chmod o-r ldap.conf vu qu'un mdp va y être stocké +Toutes les autres lignes devraient être commentées.
-Modifier /etc/proftpd/ldap.conf : ( http://www.proftpd.org/docs/contrib/mod_ldap.html ) +
- <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" "2eLyqh3Bhc11c0oh-0a3vDfNKgzzrEOb" +
- 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 : +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) 
- Trace ldap:20 +  chmod o-r /etc/proftpd/ldap.conf
- Trace *:10+
  
 +On modifie ''/etc/proftpd/ldap.conf'' : (cf http://www.proftpd.org/docs/contrib/mod_ldap.html pour les détails)
 +<file apache "/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>
 +</file>
 +Toutes les autres lignes devraient être commentées.
  
 +On configure ensuite les accès aux fichiers en créant le fichier ''/etc/proftpd/conf.d/acl.conf'' avec :
 +<file apache /etc/proftpd/conf.d/acl.conf>
 +<Directory />
 + <Limit READ WRITE DIR>
 + DenyAll
 + </Limit>
 +</Directory>
 +<Directory /srv/ftp/>
 + <Limit READ DIR>
 + AllowAll
 + </Limit>
 + <Limit WRITE>
 + AllowGroup sudoldap
 + #AllowUser
 + DenyAll
 + </Limit>
 +</Directory>
 +<Directory /srv/ftp/upload>
 + <Limit WRITE>
 + AllowAll
 + </Limit>
 +</Directory>
 +</file>
  
-On relance le service : +Enfin, on relance le service : 
-systemctl restart proftpd.service +  systemctl restart proftpd.service 
 +En cas de soucis, on pourra ajouter à ''/etc/proftpd/proftpd.conf'' les lignes suivantes pour activer le débug : 
 +<file apache> 
 +Trace ldap:10 # niveau entre 0 et 10 
 +Trace *:10 
 +</file>
  
 +On s'assurera de ne pas laisser des fichiers de log non gérés par logrotate en créant ''/etc/logrotate.d/proftpd-custom'' avec :
 +<file apache /etc/logrotate.d/proftpd-custom>
 +/var/log/proftpd/tls.log 
 +/var/log/proftpd/ldap.log 
 +{
 +        weekly
 +        missingok
 +        rotate 7
 +        compress
 +        delaycompress
 +        notifempty
 +        create 640 root adm 
 +        sharedscripts
 +        postrotate
 +                # reload could be not sufficient for all logs, a restart is safer
 +                invoke-rc.d proftpd restart 2>/dev/null >/dev/null || true
 +        endscript
 +}
 +</file>
admin/services/ftp.1459983048.txt.gz · Dernière modification : 2016/04/07 00:50 de david

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki