====== Installer proFTPd ====== {{:proftpd.png?110 |}} ProFTPd est un serveur FTP libre. Ses auteurs l'annoncent comme puissant et parfaitement sécurisé sur le [[http://www.proftpd.org/|site web dédié au logiciel]]. Son architecture est modulaire, ce qui a permis d'écrire des extensions pour le support de la cryptographie SSL/TLS (protocole FTPS) et l'extension de l'authentification via des bases RADIUS, LDAP ou SQL. ===== Installation ===== Pour l'installation, exécuter la commande : sudo apt-get install proftpd L’installation propose 2 méthodes : * inetd : quand il y a peu de monde, consomme moins de ressources * indépendant : quand le nombre de connexion doit être plus important Sauf si vous prévoyez d'utiliser massivement le FTP, sélectionnez **inetd** ===== Configuration ===== Rien de plus simple, on édite le fichier de configuration : sudo vi /etc/proftpd/proftpd.conf On désactive l'utilisation d'IPv6 : UseIPv6 off On va également cacher l'identification du serveur pour que les petits malins ne voient pas qu'il s'agit d'un serveur proFTPd en ajoutant la ligne suivante : ServerIdent off Puis on va configurer le serveur pour que les utilisateurs du système accèdent à leur home uniquement, on décommente les lignes suivantes : #DefaultRoot ~ #RequireValidShell off Puis on relance le service : sudo service proftpd restart {{:warning.png |}} Dans ce cas, la configuration utilise des utilisateurs réels du système pouvant se connecter au serveur via ssh si on leur laisse le droit, il est fortement recommandé d'utiliser alors la directive AllowUsers dans le fichier /etc/ssh/sshd_config pour autoriser ou non cet accès. ===== Configuration FTPES (SSL/TLS) ===== {{:linux:lock.png?32 |}} Il est possible d'utiliser une connexion cryptée avec proFTPd utilisant un certificat. Cela amène une sécurité beaucoup plus importante de vos connexions et transferts vers votre serveur. Attention cependant, certains clients FTP ne sont pas compatible avec ce protocole. ==== Génération de la clé privée ==== Pour générer la clé privée auto signée on utilise la commande suivante : sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt On répond alors à la série de question posée par le générateur, soyez précis si vous voulez donner plus de crédibilité à votre certificat mais vous pouvez laisser les champs vides : Generating a 1024 bit RSA private key ...++++++ ....++++++ writing new private key to '/etc/ssl/private/ssl-cert-snakeoil.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []: Email Address []: Puis on protège la clé en changeant les droits : sudo chmod 0600 /etc/ssl/private/proftpd.key sudo chmod 0640 /etc/ssl/certs/proftpd.crt ==== Configuration ==== On édite le fichier de configuration du serveur : sudo vi /etc/proftpd/proftpd.conf Puis on décommente la ligne suivante : #Include /etc/proftpd/tls.conf Si vous êtes derrière une box, décommenter et mettre votre ip publique : #MasqueradeAddress 1.2.3.4 Puis décommenter et définissez les ports passifs, ne pas oublier d'ouvrir les ports sur votre box (TCP) : #PassivePorts 49152 65534 Sortir et éditer le fichier de configuration tls : sudo vi /etc/proftpd/tls.conf Décommenter les lignes suivantes : #TLSEngine on #TLSLog /var/log/proftpd/tls.log #TLSProtocol SSLv23 #TLSRSACertificateFile /etc/proftpd/ssl/proftpd.crt #TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key #TLSOptions NoCertRequest Puis vous pouvez définir si les connexions doivent obligatoirement passer par le protocole FTPES ou si vous autorisez quand même les connexions par FTP classique, mettre à off si vous autorisez les deux : #TLSRequired on Pour finir on redémarre proftpd : sudo /etc/init.d/proftpd restart Pour se connecter avec Filezilla utiliser FTPES - FTP plus explicite (TLS/SSL)