Objectif
L'objectif est de configurer d'abord un serveur ProFTPD de base sur CentOS 7. Une fois que nous aurons une configuration de serveur FTP de base, nous ajouterons ensuite le mode passif FTP et augmenterons la sécurité en ajoutant Transport Layer Security (TLS).
Enfin, nous ajoutons une configuration anonyme facultative pour permettre à l'utilisateur anonyme de se connecter au serveur FTP sans nom d'utilisateur ni mot de passe.
Versions du système d'exploitation et du logiciel
- Système d'exploitation : – CentOS Linux version 7.5.1804
- Logiciel : – ProFTPD Version 1.3.5e
Exigences
Accès privilégié à votre système Ubuntu en tant que root ou via sudo
commande est requise.
Difficulté
MOYEN
Congrès
- # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant
sudo
commande - $ – commandes linux données à exécuter en tant qu'utilisateur normal non privilégié
Instructions
Configuration FTP de base
Commençons par l'installation et la configuration de base du serveur ProFTP. Cela inclut l'installation, la définition des règles de pare-feu et les tests du client.
Configuration du serveur
Le serveur FTP ProFTPD fait partie d'un référentiel EPEL. Par conséquent, la première étape consiste à activer le référentiel EPEL, puis à installer le serveur ProFTPD :
# yum install epel-release # yum install proftpd
Ensuite, démarrez le serveur ProFTPD et confirmez son démarrage correct en recherchant un port ouvert 21
# service proftpd start # ss -nlt
Ensuite, nous devons mettre un tout dans le pare-feu du serveur pour autoriser le trafic entrant sur le port 21
# firewall-cmd --add-port=21/tcp --permanent # firewall-cmd --reload
Pour confirmer un port entrant ouvert 21
exécuter :
# firewall-cmd --list-ports

À ce stade, tout utilisateur système existant peut se connecter via FTP au serveur ProFTPD nouvellement configuré. En option, nous pouvons créer un nouvel utilisateur, par ex. lubos
avec un accès au répertoire /var/ftp-share
:
# useradd lubos -s /sbin/nologin -d /var/ftp-share # passwd lubos # chmod -R 750 /var/ftp-share # setsebool -P allow_ftpd_full_access=1
Connexion client
À ce stade, nous devrions être en mesure d'établir une connexion FTP à partir d'un ordinateur client distant. Le test le plus simple est d'utiliser le ftp
commande.
Étant donné que notre serveur ProFTPD peut être résolu via ftp.linuxconfig.org
nom d'hôte et utilisateur lubos
existe déjà exécuter :
$ ftp ftp.linuxconfig.org Connected to ftp.linuxconfig.org. 220 FTP Server ready. Name (ftp.linuxconfig.org:lubos): lubos 331 Password required for lubos Password: 230 User lubos logged in Remote system type is UNIX. Using binary mode to transfer files. ftp>REMARQUE :Veuillez noter qu'à ce stade, nous ne pouvons établir que des "connexions FTP actives" ! Toute tentative de création d'une "connexion FTP passive" échouera.
Configuration FTP en mode passif
Configuration du serveur
Pour permettre à notre serveur FTP d'accepter également les connexions FTP passives, exécutez les commandes suivantes pour activer les connexions passives sur la plage de ports éphémères enregistrée par l'IANA :
echo "PassivePorts 49152 65534" >> /etc/proftpd.conf
Redémarrez le serveur ProFTPD :
# service proftpd restart
Ouvrez le pare-feu pour les ports dans la plage 49152-65534
:
# firewall-cmd --add-port=49152-65534/tcp --permanent # firewall-cmd --reload
Confirmez que les ports ont été ouverts correctement :
# firewall-cmd --list-ports

Connexion client FTP
Comme auparavant, nous pouvons maintenant tester la connexion passive FTP en utilisant le ftp
commande. Assurez-vous que cette fois vous utilisez le -p
comme indiqué ci-dessous :
$ ftp -p ftp.linuxconfig.org Connected to ftp.linuxconfig.org. 220 FTP Server ready. Name (ftp.linuxconfig.org:lubos): lubos 331 Password required for lubos Password: 230 User lubos logged in Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (192,168,1,111,209,252). 150 Opening ASCII mode data connection for file list 226 Transfer complete ftp>
Tout fonctionne comme prévu !
Serveur FTP sécurisé avec TLS
Configuration du serveur
Si vous envisagez d'utiliser votre serveur FTP en dehors de votre réseau local, il est recommandé d'utiliser une sorte de cryptage. Heureusement, la configuration de ProFTPD avec TLS est extrêmement simple. Tout d'abord, s'il n'est pas déjà disponible, installez le openssl
paquet :
# yum install openssl
Ensuite, créez un certificat à l'aide de la commande suivante. La seule valeur requise est Common Name
qui est le nom d'hôte de votre serveur FTP :
# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem Generating a 1024 bit RSA private key ...++++++ .......++++++ writing new private key to '/etc/pki/tls/certs/proftpd.pem' ----- 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) [XX]: State or Province Name (full name) []: Locality Name (eg, city) [Default City]: Organization Name (eg, company) [Default Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:ftp.linuxconfig.org Email Address []:
Ensuite, en tant qu'utilisateur root, ouvrez /etc/sysconfig/proftpd
à l'aide de votre éditeur de texte préféré et modifiez :
FROM: PROFTPD_OPTIONS="" TO: PROFTPD_OPTIONS="-DTLS"
Une fois prêt, redémarrez le serveur ProFTPD :
# service proftpd restart
Connexion client
Cette fois, nous utilisons FileZilla comme client de test FTP :

Encryption
correct et Logon Type
. 
Unknown Certificate
. Cochez Always Trust
et appuyez sur OK
. 
Configurer un utilisateur FTP anonyme
Configuration du serveur
Pour autoriser l'utilisateur anonyme à se connecter au serveur FTP, ouvrez /etc/sysconfig/proftpd
à l'aide de votre éditeur de texte préféré et modifiez :
FROM: PROFTPD_OPTIONS="-DTLS" TO: PROFTPD_OPTIONS="-DTLS -DANONYMOUS_FTP"
Ci-dessus, nous supposons que vous avez déjà activé TLS auparavant. Lorsque vous êtes prêt, redémarrez le serveur FTP :
# service proftpd restart
Connexion client
Utilisation de FileZilla comme client de test FTP :

Logon Type
sélectionnez Anonymous

Annexe
Bloquer/Refuser l'accès FTP de l'utilisateur
Au cas où vous auriez besoin de bloquer/refuser l'accès au serveur FTP d'un utilisateur du système, ajoutez son nom d'utilisateur dans /etc/ftpusers
. Un nom d'utilisateur par ligne. Ainsi, toute tentative de connexion de l'utilisateur échouera avec 530
erreur de connexion :
$ ftp ftp.linuxconfig.org Connected to ftp.linuxconfig.org. 220 FTP Server ready. Name (ftp.linuxconfig.org:lubos): lubos 331 Password required for lubos Password: 530 Login incorrect. Login failed. Remote system type is UNIX. Using binary mode to transfer files. ftp>