Sommaire Sommaire Intro Configuration d'un FTP avec ProFTPD Configuration d'un SFTP avec ProFTPD (auth par mot de passe) Configuration d'un SFTP avec ProFTPD (auth par clés publique/privée) Intro ProFTPd? est un démon capable d'héberger un service FTP (cela va de soit), mais permet aussi le SFTP. Le SFTP possède ses avantages par rapport à FTP : il chiffrer les flux d'authentification et les flux de données il n'y a pas de soucis d'ouverture de ports avec des modes actif/passif à gérer Le SFTP devrait donc être favorisé autant que possible, par rapport au FTP. Le SFTP avec ProFTPd? apporte aussi plusieurs avantages par rapport à OpenSSH? : on a pas besoin d'exposer OpenSSH? port 22 sur le web on conserve une conf claire qui reste dédié aux partages SFTP on ne bricole pas le sshd_config peut au choix autoriser une authentification par mot de passe ou clés on gère des utilisateurs virtuels (si on utilise l'auth par mot de passe uniquement) c'est plus souple : on peut chrooter n'importe quel répertoire, le répertoire parent n'appartient pas nécessairement à root Notez que les accès FTP et SFTP peuvent être utilisés en parallèle, et qu'on peut aussi mixer les authentifications par mot de passe / clé pour le SFTP. Configuration d'un FTP avec ProFTPD Étapes IP en entrée Détails techniques Demander au projet/client quelles IPs autoriser dans le firewall Installation aptitude install proftpd # choisir le mode standalone rm -rf /home/ftp/ Config
vi /etc/proftpd/proftpd.conf DefaultRoot ~ AuthPAM off AuthUserFile /etc/proftpd/ftp.passwd AuthGroupFile /etc/proftpd/ftp.group RequireValidShell off touch /etc/proftpd/ftp.passwd echo "www-data:x:33:" > /etc/proftpd/ftp.group chown proftpd /etc/proftpd/ftp.passwd chmod go-rwx /etc/proftpd/ftp.passwd d'utilisateur pwgen mkpasswd --hash=md5 er l'utilisateur et le mot de passe au fichier CLIENT/pass.gpg vi /etc/proftpd/ftp.passwd test:hassssshhhh:33:33::/home/test:/bin/false (Il n'est pas nécessaire de relancer proftpd.) firewall iptables Prérequis : le module ip_conntrack_ftp. voir Systeme/Virtualisation/FirewallDansVZServeur#FTP_passif_dans_un_enfant_firewa vi /etc/smile/firewall.conf 21:tcp:IPS_DES_PROXYS_FTP_DE_LA_PLAGE,IPS_DES_CLIENTS Regarder AdressageIELO ou AdressageILIAD pour obtenir les ips des firewalls. firewall fw1 ou fw3 d'une règle PF du genre : pass in quick on $ext_if proto tcp from { IP1 IP2 } to $SERVEUR port 21 rdr-to 127.0.0.1 port 8021 Test Mode passif (95% des users l'utilisent) : ftp -p MONSERVEURFTP mkdir test rmdir test Test plus avancé si le client a des problèmes de connexion : depuis une machine
externe sans proxy FTP pour aider, actif puis passif. Configuration d'un SFTP avec ProFTPD (auth par mot de passe) La configuration est presque identique à FTP, sauf qu'on déclare le protocole SFTP, et que l'on place la configuration dans un virtualhost. Ce VirtualHost? est nécessaire dans le cas où vous voulez faire cohabiter FTP et SFTP. Étapes Si FTP est inutile, il est possible de désactiver l'écoute du port 21 : Détails techniques vi /etc/proftpd/proftpd.conf # Port 21 is the standard FTP port. Port 0 Config vi /etc/proftpd/proftpd.conf <VirtualHost xxx.xxx.xxx.xxx> SFTPEngine on Port 2200 SFTPEngine SFTPLog TransferLog on /var/log/proftpd/sftp.log /var/log/proftpd/sftp-xferlog # Host Keys /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_dsa_key # Auth methods AuthPAM SFTPAuthMethods AuthUserFile off password /etc/proftpd/sftp.passwd # SFTP specific configuration DefaultRoot ~ </VirtualHost> touch /etc/proftpd/sftp.passwd
chown proftpd /etc/proftpd/sftp.passwd chmod go-rwx /etc/proftpd/sftp.passwd d'utilisateur pwgen mkpasswd --hash=md5 er l'utilisateur et le mot de passe au fichier CLIENT/pass.gpg vi /etc/proftpd/sftp.passwd test:hassssshhhh:33:33::/home/test:/bin/false firewall iptables vi /etc/smile/firewall.conf 2200:tcp:IPS_DES_CLIENTS firewall fw1, fw3 ou fw5 d'une règle PF du genre : pass in quick on $ext_if proto tcp from { IP1 IP2 } to $SERVEUR port 2200 Test sftp -p 2200 login@monserveursftp mkdir test rmdir test Configuration d'un SFTP avec ProFTPD (auth par clés publique/privée) L'authentification par clés ne permet pas d'utiliser des comptes virtuels. Il est nécessaire d'avoir un utilisateur système qui sera utilisé par proftpd. Cet utilisateur va servir à définir un shell (indipensable), et un répertoire $HOME dans lesquel proftpd va chrooter l'utilisateur. Étapes Si FTP est inutile, il vi /etc/proftpd/proftpd.conf Détails techniques
est possible de désactiver l'écoute du port 21 : Config # Port 21 is the standard FTP port. Port 0 <VirtualHost xxx.xxx.xxx.xxx> SFTPEngine on Port 2200 SFTPEngine on SFTPLog /var/log/proftpd/sftp.log TransferLog /var/log/proftpd/sftp-xferlog # Host Keys /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_dsa_key # Auth methods AuthPAM off SFTPAuthMethods publickey SFTPAuthorizedUserKeys file:/etc/proftpd/sftp.passwd.keys/%u # SFTP specific configuration DefaultRoot ~ </VirtualHost> mkdir /etc/proftpd/sftp.passwd.keys chown proftpd /etc/proftpd/sftp.passwd.keys chmod go-rwx /etc/proftpd/sftp.passwd.keys d'utilisateur Pour un utilisateur "bobafett", on va déjà créer un utilisateur système. Celui ci va avant permettre de définir son $HOME, qui servira de chroot: adduser --home /home/pouet bobafett Pour faire la correspondance avec l'utilisateur système, proftpd va lire la liste des fichiers de la directive SFTPAuthorizedUserKeys?. Chaque nom de fichier doit correspondre à un utilisateur système existant. Ensuite, il suffit d'ajouter la ou les clés SSH authorisée, dans ce fichier. Il faudra
penser à formater l'affichage de la clé pour proftpd. Ex : ssh-keygen -e -f id_rsa.pub > /etc/proftpd/sftp.passwd.keys/bobafett Enfin, penser à ajouter l'utilisateur au fichier CLIENT/pass.gpg firewall iptables vi /etc/smile/firewall.conf 2200:tcp:IPS_DES_CLIENTS firewall fw1, fw3 ou fw5 d'une règle PF du genre : pass in quick on $ext_if proto tcp from { IP1 IP2 } to $SERVEUR port 2200 Test sftp -p 2200 login@monserveursftp mkdir test rmdir test Voir aussi : http://www.proftpd.org/docs/ Main.mamau 19 Sep 2011 This topic: Hosting > WebHome > ProFTPD Topic revision: 31 Jul 2012, maoli Copyright by the contributing authors. All material on this collaboration platform is the property of the contributing authors. Ideas, requests, problems regarding Foswiki? Send feedback