Installer et utiliser un serveur proFTPd pureFTPd vsFTPd
Aller à la navigation
Aller à la recherche
Le wiki : Accueil - Administrateur - Bureautique - Développeur - Intégrateur - Marketing - Multimédia - Objets numériques - Jeux - We make Hack
Installer et utiliser un serveur ProFTPd pureFTPd vsFTPd
Pour un serveur modulaire et paramétrable à souhaits, installer ProFTPd. Pour un serveur avec peu d'utilisateurs, privilégier un serveur FTP simple et sécurisé, installer PureFTPd. Pour un serveur FTP avec beaucoup d’utilisateurs, installer vsFTPd.
ProFTPd
# ProFTPd est un serveur FTP très connu. # Il a pu évoluer ce qui en fait aujourd’hui un serveur complet avec une configuration facilitée et riche en plugins. # Sa popularité permet d'obtenir de nombreuses informations mais le soumet à d'avantage de tentatives de piratage. # Penser à bien conserver son serveur ProFTPd à jour.
Site officiel : http://www.proftpd.org
Installer ProFTPd
Installer le serveur ProFTPd
# Installer ProFTPd depuis les dépôts de debian : sudo apt install proftpd
# Installer ProFTPd depuis la source officielle par compilation : http://www.proftpd.org/docs/howto/Compiling.html http://www.fr.linuxfromscratch.org/view/blfs-stable/server/proftpd.html https://www.system-linux.eu/index.php?post/2008/12/28/Proftpd
Détails de l'installation du serveur ProFTPd
root@ordinateur:/home/utilisateur# apt install proftpd Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Note : sélection de « proftpd-basic » au lieu de « proftpd » The following additional packages will be installed: libmemcached11 libmemcachedutil2 Paquets suggérés : openbsd-inetd | inet-superserver proftpd-doc proftpd-mod-ldap proftpd-mod-mysql proftpd-mod-odbc proftpd-mod-pgsql proftpd-mod-sqlite proftpd-mod-geoip Les NOUVEAUX paquets suivants seront installés : libmemcached11 libmemcachedutil2 proftpd-basic 0 mis à jour, 3 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 2 593 ko dans les archives. Après cette opération, 4 841 ko d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer ? [O/n] o Réception de:1 http://cdn-fastly.deb.debian.org/debian stable/main amd64 libmemcached11 amd64 1.0.18-4.1 [93,7 kB] Réception de:2 http://cdn-fastly.deb.debian.org/debian stable/main amd64 libmemcachedutil2 amd64 1.0.18-4.1 [22,3 kB] Réception de:3 http://cdn-fastly.deb.debian.org/debian stable/main amd64 proftpd-basic amd64 1.3.5b-4 [2 477 kB] 2 593 ko réceptionnés en 5min 38s (7 668 o/s) Sélection du paquet libmemcached11:amd64 précédemment désélectionné. (Lecture de la base de données... 109841 fichiers et répertoires déjà installés.) Préparation du dépaquetage de .../libmemcached11_1.0.18-4.1_amd64.deb ... Dépaquetage de libmemcached11:amd64 (1.0.18-4.1) ... Sélection du paquet libmemcachedutil2:amd64 précédemment désélectionné. Préparation du dépaquetage de .../libmemcachedutil2_1.0.18-4.1_amd64.deb ... Dépaquetage de libmemcachedutil2:amd64 (1.0.18-4.1) ... Sélection du paquet proftpd-basic précédemment désélectionné. Préparation du dépaquetage de .../proftpd-basic_1.3.5b-4_amd64.deb ... Dépaquetage de proftpd-basic (1.3.5b-4) ... Paramétrage de libmemcached11:amd64 (1.0.18-4.1) ... Traitement des actions différées (« triggers ») pour libc-bin (2.24-11+deb9u1) ... Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u1) ... Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ... Paramétrage de libmemcachedutil2:amd64 (1.0.18-4.1) ... Paramétrage de proftpd-basic (1.3.5b-4) ... Attention ! Impossible d'accéder au répertoire personnel que vous avez indiqué (/run/proftpd) : No such file or directory. Ajout de l'utilisateur système « proftpd » (UID 115) ... Ajout du nouvel utilisateur « proftpd » (UID 115) avec pour groupe d'appartenance « nogroup » ... Le répertoire personnel « /run/proftpd » n'a pas été créé. Ajout de l'utilisateur système « ftp » (UID 116) ... Ajout du nouvel utilisateur « ftp » (UID 116) avec pour groupe d'appartenance « nogroup » ... Création du répertoire personnel « /srv/ftp »... '/usr/share/proftpd/templates/welcome.msg' -> '/srv/ftp/welcome.msg.proftpd-new' Traitement des actions différées (« triggers ») pour libc-bin (2.24-11+deb9u1) ... Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u1) ...
Connaître la version installée de ProFTPd
sudo proftpd -v ProFTPD Version 1.3.6
Installer l'interface graphique de ProFTPd
# ProFTPd possède une interface graphique, Gproftpd, le nom du paquet est gadmin-proftpd.
En savoir plus : https://doc.ubuntu-fr.org/gproftpd
Les paquets complémentaires suggérés pour ProFTPd
openbsd-inetd | inet-superserver proftpd-doc proftpd-mod-ldap proftpd-mod-mysql proftpd-mod-odbc proftpd-mod-pgsql proftpd-mod-sqlite proftpd-mod-geoip
Installer le gestionnaire phpftpwho écrit en PHP pour ProFTPd
# Permet d'afficher les utilisateurs connectés :
(2016) https://github.com/firefly2442/phpftpwho Fork -> (2020) https://github.com/ZerooCool/phpftpwho
Installer le gestionnaire ProFTPd-Admin écrit en PHP pour ProFTPd
# ProFTPd-Admin n'est plus correctement maintenu à ce jour. # Un autre dépôt existe peut être, plus récent et mieux maintenu.
(2016) https://github.com/ChristianBeer/ProFTPd-Admin/issues Fork -> (2017) https://github.com/mkkeck/ProFTPd-Admin-Secure-Version
Configurer ProFTPd
Configuration de base
La configuration
# Ouvrir le fichier de configuration de ProFTPd : sudo nano /etc/proftpd/proftpd.conf
# Nom du serveur FTP : ServerName "FTP Visionduweb" # Désactiver les traitements DNS de proftpd permet une connexion rapide au serveur. # Tester les deux et voir la différence. # UseReverseDNS off IdentLookups off
# ProFTPD effectue un chroot dans le répertoire de l'utilisateur authentifiant immédiatement après la connexion. # L'utilisateur ne peut pas "voir" les répertoires de niveau supérieur. # Bloquer chaque utilisateur dans son propre répertoire /home # Permet d'éviter qu’il n'ait accès à tout le serveur. DefaultRoot ~ # Seuls les utilisateurs qui sont membres du groupe users et non membre du groupe staff utiliseront la valeur par défaut pour le répertoire racine défini sur '~'. # DefaultRoot ~ users,!staff
# Ne pas donner d'informations précises sur le serveur. DeferWelcome off
# Les utilisateurs ont besoin d’un shell valide répertorié dans /etc/shells pour se connecter. # Décommenter l'option RequireValidShell pour pouvoir ajouter des utilisateurs sans accès ssh. RequireValidShell off
# Si vous utilisez un pare-feu sur votre serveur, décommenter la ligne PassivePorts en définissant une intervalle de ports. # Configurer le FTP et le pare-feu pour utiliser la plage de ports passifs entre 49152-65534 proposée par IANA. # Dans cet exemple, les ports 49152 à 65534 sont utilisés pour les connexions FTP passives. PassivePorts 49152 65534 # Autoriser les ports dans votre pare-feu. # Avec UFW : ufw allow 49152:65534/tcp # Avec Iptables : -A OUTPUT -p tcp --sport 49152:65534 --dport 49152:65534 -m state --state ESTABLISHED -j LOG_ACCEPT -A INPUT -p tcp --sport 49152:65534 --dport 49152:65534 -m state --state ESTABLISHED,RELATED,NEW -j LOG_ACCEPT
Configurer le message d'accueil
# Les messages seront affichés lors de la connexion entre FileZilla et le serveur # si l'option "Édition" / "Paramètres" / "Débogage" / "Afficher le contenu brut du dossier" est coché.
Méthode 1 pour afficher un message lors de la connexion
# Éditer le fichier de configuration : cd /etc/proftpd/ sudo nano proftpd.conf
# S'assurer du nom du fichier utilisé pour le message d'accueil : DisplayLogin welcome.msg
# Le répertoire suivant comprend le fichier welcome.msg qui contient le message d'accueil type : cd /usr/share/proftpd/templates
# Copier le fichier welcome.msg dans chaque répertoire de connexion FTP. # Le message sera affiché lors de la connexion au serveur FTP. sudo cp welcome.msg /var/www/ftp.visionduweb.fr/ftp/ sudo cp welcome.msg /var/www/ftp.visionduweb.fr/ftp/anonymous/
Méthode 2 pour afficher un message lors de la connexion
# Éditer le fichier de configuration : cd /etc/proftpd/ sudo nano proftpd.conf
<Global> # Franciser / personnaliser les messages. AccessGrantMsg " -- Accès autorisé pour %u --" AccessDenyMsg " !-!! ACCÈS REFUSÉ !!-! VOUS NE SEMBLEZ PAS ÊTRE AUTORISÉ !!" </Global>
Problèmes identifiés
# Problème 1 Le problème restant, avec le fichier welcome.msg : - Il peut actuellement être supprimé par un utilisateur ayant les droits en écriture. Vérifier si un droit [[1]] peut éviter ce problème. - Il est visible de tous, alors que c'est un fichier qui aurait vocation à être caché, puisqu'il s'agit d'un fichier de configuration.
# Problème 2 L'accès avec l'utilisateur pouvant écrire dans le répertoire anonymous transforme les caractères accentués.
Tester la configuration de ProFTPd
# Tester la configuration de ProFTPd : sudo proftpd --configtest
Recharger la configuration de ProFTPd
# Recharger la configuration du serveur ProFTPd pour appliquer les changements de configuration : sudo /etc/init.d/proftpd reload sudo service proftpd reload
Redémarrer le service ProFTPd
sudo /etc/init.d/proftpd restart sudo service proftpd restart
Afficher les informations de ProFTPd
sudo proftpd -V
Exemples de configurations
# A reprendre pour comparer : La configuration complète de proftpd.conf : http://www.octetmalin.net/linux/tutoriels/proftpd-fichier-proftpd.conf.php
# A reprendre pour comparer : https://github.com/proftpd/proftpd/issues/687
# A reprendre pour comparer : http://www.ccp14.ac.uk/ccp14admin/proftpd/index.html
Configuration actuellement utilisée
# LangEngine on # LangDefault fr_FR # UseEncoding on # Includes DSO modules Include /etc/proftpd/modules.conf # Set off to disable IPv6 support which is annoying on IPv4 only boxes. UseIPv6 on # If set on you can experience a longer connection delay in many cases. IdentLookups off # Use this to jail all users in their homes : DefaultRoot ~ # DefaultRoot /var/www/ftp.visionduweb.fr/ftp/anonymous anonymous ServerName "FTP Visionduweb" # Users require a valid shell listed in /etc/shells to login. RequireValidShell off # Use the IANA registered ephemeral port range : PassivePorts 49152 65534 # Set to inetd only if you would run proftpd by inetd/xinetd. ServerType standalone # Ne pas donner d'informations précises sur le serveur. DeferWelcome off MultilineRFC2228 on DefaultServer on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayChdir .message true ListOptions "-l" DenyFilter \*.*/ # The standard FTP port. Port 21 # If your host was NATted, this option is useful in order to # allow passive tranfers to work. You have to use your public # address and opening the passive ports used on your firewall as well. # MasqueradeAddress 1.2.3.4 # This is useful for masquerading address with dynamic IPs: # refresh any configured MasqueradeAddress directives every 8 hours <IfModule mod_dynmasq.c> # DynMasqRefresh 28800 </IfModule> # To prevent DoS attacks, set the maximum number of child processes to 30. # If you need to allow more than 30 concurrent connections at once, # simply increase this value. Note that this ONLY works # in standalone mode, in inetd mode you should use an inetd server # that allows you to limit maximum number of processes per service MaxInstances 30 # Set the user and group that the server normally runs at. User proftpd Group nogroup # Umask 022 is a good standard umask to prevent new files and dirs # (second parm) from being group and world writable. Umask 022 022 # Normally, we want files to be overwriteable. AllowOverwrite on # Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords: # PersistentPasswd off # This is required to use both PAM-based authentication and local passwords # AuthOrder mod_auth_pam.c* mod_auth_unix.c # Uncomment this if you like to see progress and transfer rate with ftpwho # in downloads. That is not needed for uploads rates. # UseSendFile off TransferLog /var/log/proftpd/xferlog SystemLog /var/log/proftpd/proftpd.log # Logging onto /var/log/lastlog is enabled but set to off by default #UseLastlog on # In order to keep log file dates consistent after chroot, use timezone info # from /etc/localtime. If this is not set, and proftpd is configured to # chroot (e.g. DefaultRoot or <Anonymous>), it will use the non-daylight # savings timezone regardless of whether DST is in effect. #SetEnv TZ :/etc/localtime <IfModule mod_quotatab.c> QuotaEngine off </IfModule> <IfModule mod_ratio.c> Ratios off </IfModule> # Delay engine reduces impact of the so-called Timing Attack described in # http://www.securityfocus.com/bid/11430/discuss <IfModule mod_delay.c> DelayEngine on </IfModule> <IfModule mod_ctrls.c> ControlsEngine off ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock </IfModule> <IfModule mod_ctrls_admin.c> AdminControlsEngine off </IfModule> # Alternative authentication frameworks # #Include /etc/proftpd/ldap.conf #Include /etc/proftpd/sql.conf # This is used for FTPS connections Include /etc/proftpd/tls.conf # Cette option évite d’avoir une erreur: # 425 Impossible d’établir la connexion de données : Opération non permise # The latest ProFTPd server has a configuration setting that by default requires # SSL/TLS sessions to be re-used, and this breaks *many* FTP clients, including # Chilkat. The fix to be made on the server is to add the following line to the # proftpd.conf and then restart it. TLSOptions NoSessionReuseRequired # Useful to keep VirtualHost/VirtualRoot directives separated #Include /etc/proftpd/virtuals.conf # A basic anonymous configuration, no upload directories. # <Anonymous ~ftp> # User ftp # Group nogroup # # We want clients to be able to login with "anonymous" as well as "ftp" # UserAlias anonymous ftp # # Cosmetic changes, all files belongs to ftp user # DirFakeUser on ftp # DirFakeGroup on ftp # # RequireValidShell off # # # Limit the maximum number of anonymous logins # MaxClients 10 # # # We want 'welcome.msg' displayed at login, and '.message' displayed # # in each newly chdired directory. # DisplayLogin welcome.msg # DisplayChdir .message # # # Limit WRITE everywhere in the anonymous chroot # <Directory *> # <Limit WRITE> # DenyAll # </Limit> # </Directory> # # # Uncomment this if you're brave. # # <Directory incoming> # # # Umask 022 is a good standard umask to prevent new files and dirs # # # (second parm) from being group and world writable. # # Umask 022 022 # # <Limit READ WRITE> # # DenyAll # # </Limit> # # <Limit STOR> # # AllowAll # # </Limit> # # </Directory> # # </Anonymous> # Include other custom configuration files Include /etc/proftpd/conf.d/ <Global> # Franciser les messages. # Ne s'affiche pas ! AccessGrantMsg " -- Accès autorisé pour %u --" AccessDenyMsg " !-!! ACCÈS REFUSÉ !!-! VOUS NE SEMBLEZ PAS ÊTRE AUTORISÉ !!" </Global> ####################### ### Partage anonyme ### <Anonymous /var/www/ftp.visionduweb.fr/ftp/anonymous> User anonymous Group partageproftpd UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> # Autorise le stockage de fichiers et création de répertoires mais pas l'effacement. # <Limit STOR MKD> # AllowAll # </Limit> # Désactiver les commandes de copie, pouvant engendrer un risque de sécurité. # Déplacements de fichiers sensibles, déplacements de fichiers vers le répertoire tmp pour le saturer. <Limit SITE_CPFR SITE_CPTO> DenyAll </Limit> # Limiter toutes les commandes pour l'utilisateur anonyme, hormis la commande de login. # Empêche la connexion anonyme sans mot de passe. # <Limit ALL> # DenyAll # </Limit> </Directory> </Anonymous>
Créer un groupe pour les utilisateurs du FTP
sudo addgroup partageproftpd
# Ou encore :
sudo addgroup groupeuserftpd
Créer un utilisateur pour FTP
Première méthode pour ajouter un utilisateur à ProFTPd
# Les données sont stockées dans le répertoire /var/www/ftp.visionduweb.fr/ftp/ ce qui est pratique pour une sauvegarde complète du dossier /ftp.visionduweb.fr/.
# Définir le dossier --home qui correspond au dossier du site web de l'utilisateur. # Ajouter l'utilisateur au groupe www-data pour qu’il n’y ai pas de problème au niveau des permissions. # Ajouter la directive --shell /bin/false qui interdit l'accès au shell pour le nouvel utilisateur créé. # Précédemment nous avons définit que l'utilisation du serveur FTP ne nécessitait pas d'un accès valide au shell. cd /var/www/ftp.visionduweb.fr sudo mkdir ftp sudo adduser --home /var/www/ftp.visionduweb.fr/ftp/ --shell /bin/false --ingroup partageproftpd ftpuserone
# Saisir un mot de passe et les informations demandées. # Donner les droits de propriété à l'utilisateur ftpuserone dans le groupe partageproftpd : sudo chown ftpuserone:partageproftpd ftp/
# L'utilisateur pourra ajouter ou supprimer des fichiers en se connectant via un client ftp. # Il ne pourra pas accéder à d'autres fichiers que ceux présents dans sont dossier --home et il n'aura pas accès au serveur via ssh.
Seconde méthode pour ajouter un utilisateur à ProFTPd
# Créer un utilisateur iamuserftp qui pourra se connecter via FTP à son dossier utilisateur /home/iamuserftp sudo adduser iamuserftp
# Attribuer l'utilisateur au groupe www-data sudo usermod -G www-data iamuserftp
# Définir l'utilisateur comme propriétaire des fichiers et des dossiers du site : sudo chown -Rf iamuserftp:www-data /var/www/ # Définir tous les dossiers en lecture / écriture / exécution pour le propriétaire, lecture / exécution pour le groupe : sudo find /var/www -type d -exec chmod 750 {} \; # Définir tous les fichiers avec lecture / écriture pour propriétaire, lecture pour le groupe : sudo find /var/www -type f -exec chmod 640 {} \;
Troisième méthode pour ajouter un utilisateur à ProFTPd
# Créer un utilisateur système directement placé dans un groupe pour accéder au serveur FTP : sudo addgroup nom_groupe sudo adduser --ingroup nom_groupe iamuserftp
# Lors de la création de cet utilisateur, saisir quelques renseignements, le plus important étant le mot de passe. # Le répertoire personnel de l'utilisateur sera créé par défaut dans le répertoire /home
# Noter que des données peuvent être stockées dans le répertoire /home/utilisateur/ftp/ pour éviter de donner une réponse lors d'un scann direct sur l'espace web /home/utilisateur/ftp/www.
Quatrième méthode pour ajouter un utilisateur à ProFTPd
# Définir le dossier home qui correspond au dossier du site web concerné, et, ajouter l'utilisateur au groupe www-data pour éviter des problèmes au niveau des permissions. sudo adduser --home /var/www/votredomaine.tld/ --shell /bin/false --ingroup www-data votre-utilisateur
# L'utilisation du serveur FTP ne nécessitant pas un accès valide au shell du fait de la configuration globale de ProFTPD. # La directive --shell /bin/false interdit l'accès au shell pour le nouvel utilisateur.
# Ajouter les permissions au groupe sur le répertoire du site : sudo chmod -R g+rw /var/www/votredomaine.tld/
# L'utilisateur pourra ajouter ou supprimer des fichiers en se connectant via un client FTP. # Il ne pourra pas accéder à d'autres fichiers que ceux présents dans son répertoire --home et il ne pourra pas se connecter au serveur en SSH.
Déclarer le faux shell /bin/false
# Ajouter la ligne /bin/false à la fin du fichier /etc/shells pour les utilisateurs au shell non autorisé.
# En temps normal, lors de la création d'un utilisateur, on lui associe un shell pour qu'il puisse manipuler le système. # Concernant un serveur FTP on souhaite créer des utilisateurs uniquement capables de télécharger des fichiers mais pas de pouvoir se connecter au shell. # Pour cela, on ajoute --shell /bin/false lors de la création de l'utilisateur : adduser --shell /bin/false ...
# Par défaut, sous Ubuntu notamment, le faux shell /bin/false n'est pas déclaré dans le fichier /etc/shells. # La commande suivante ajoute la ligne /bin/false à la fin de ce fichier ce qui par la mème occasion déclare le faux shell /bin/false. sudo bash echo /bin/false >> /etc/shells
Créer le répertoire www de l'utilisateur et configurer mod_userdir sur le serveur Apache2
# Une fois connecté, créer un répertoire www qui contiendra une page d’accueil index.html.
# Il faut dans un premier temps activer le module userdir dans Apache. sudo a2enmod userdir
# Redémarrer Apache2. sudo systemctl restart apache2
# Éditer la configuration : sudo nano /etc/apache2/mods-enabled/userdir.conf <IfModule mod_userdir.c> UserDir www UserDir disabled root <Directory /home/USER/www ou /var/www/ftp.visionduweb.fr/ftp/www> AllowOverride FileInfo AuthConfig Limit Options Indexes SymLinksIfOwnerMatch IncludesNoExec </Directory> </IfModule>
# Redémarrer Apache2. sudo service apache2 restart # Je ne sais pas si c'est nécessaire mais PHP FPM étant activé je redémarre aussi PHP FPM : sudo service php7.2-fpm restart
La page d'accueil depuis l'adresse http://ip_serveur/~nom_utilisateur/ devrait s'afficher.
Configurer Apache2 pour faire pointer visionduweb.user.fr vers le dossier FTP
# Dans le répertoire /etc/apache2/sites-available créer le fichier visionduweb.user.fr.conf. # Créer le fichier de configuration pour le VirtualHost : sudo touch visionduweb.user.fr.conf sudo chown root:root visionduweb.user.fr.conf sudo chmod 644 visionduweb.user.fr.conf
# Activer le site et redémarrer Apache2 pour appliquer la nouvelle configuration : sudo a2ensite visionduweb.user.fr.conf sudo apache2ctl restart
# Ajouter les instructions présentées ci-dessous : sudo nano /etc/apache2/sites-enabled/visionduweb.user.fr.conf
<VirtualHost *:80> ServerName www.visionduweb.user.fr ServerAlias visionduweb.user.fr ServerAdmin mail@visionduweb.com DocumentRoot /home/ftpuserone/www ou /var/www/html/ftp/www ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /home/USER/www ou /var/www/html/ftp/www> Options -Indexes </Directory> # php_admin_value open_basedir "/tmp:/var/lib/php:/home/nom_utilisateur/www" </VirtualHost>
# Ne pas oublier le paramètre open_basedir de PHP qui empêche les scripts PHP de lire les fichiers du serveur en cloisonnant les scripts PHP dans le répertoire www.
# Redémarrer Apache : sudo service apache2 restart
Cette configuration de VirtualHost est ajoutée au serveur : VirtualHost des domaines enregistrés sur le serveur.
Ajouter des hôtes virtuels
ProFTPd mise en oeuvre d'hôtes virtuels : http://www.octetmalin.net/linux/tutoriels/proftpd-mise-en-oeuvre-hote-virtuel.php ProFTPd fichier de configuration virtuals.conf : http://www.octetmalin.net/linux/tutoriels/proftpd-fichier-virtuals.conf.php
Accès FTP anonyme
# Créer le compte FTP pour un utilisateur nommé anonymous : sudo adduser --home /var/www/ftp.visionduweb.fr/ftp/anonymous --shell /bin/false --ingroup partageproftpd anonymous # Mot de passe : anonymous
# Ajouter les lignes dans le fichier de configuration de ProFTPD : sudo nano /etc/proftpd/proftpd.conf
### Partage anonyme ### <Anonymous /var/www/ftp.visionduweb.fr/ftp/anonymous> User anonymous Group partageproftpd UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> # Autorise le stockage de fichiers et création de répertoires mais pas l'effacement. # <Limit STOR MKD> # AllowAll # </Limit> # Désactiver les commandes de copie, pouvant engendrer un risque de sécurité. # Déplacements de fichiers sensibles, déplacements de fichiers vers le répertoire tmp pour le saturer. <Limit SITE_CPFR SITE_CPTO> DenyAll </Limit> # Limiter toutes les commandes pour l'utilisateur anonyme, hormis la commande de login. # Empêche la connexion anonyme sans mot de passe. # <Limit ALL> # DenyAll # </Limit> </Directory> </Anonymous>
# La connexion avec l'utilisateur anonymous et le mot de passe anonymous en mode normale fonctionne en lecture seule. # La connexion anonyme fonctionne en lecture seule.
Gestion des droits sur les répertoires
Le premier utilisateur arrive bien à écrire dans son répertoire une fois les droits changés pour ftpuserone:partageproftpd ### Le premier utilisateur n'arrive pas à écrire dans le répertoire anonymous qui appartient à anonymous:partageproftpd # Ajouter les permissions du groupe et la lecture / écriture sur un dossier : chmod -R g+rw /var/www/ftp.visionduweb.fr/ftp/anonymous # Le premier utilisateur peut maintenant écrire dans le dossier anonymous. # Le premier utilisateur ne peut pas supprimer le dossier anonymous car des fichiers masqués sont présents dans le répertoire.
# Par contre le premier utilisateur peut supprimer son propre répertoire www. # Je voudrais ne pas lui permettre la suppression de ce dossier. # sudo mkdir www # sudo chown ftpuserone:partageproftpd www/
Créer un utilisateur ftprw pour ajouter des données dans ce répertoire : sudo adduser --home /var/www/ftp.visionduweb.fr/ftp/anonymous --shell /bin/false --ingroup partageproftpd ftprw Mot de passe "ftprw".
Limiter les commandes autorisées
# Désactiver les commandes de copie, pouvant engendrer un risque de sécurité. # Déplacements de fichiers sensibles, déplacements de fichiers vers le répertoire tmp pour le saturer. <Limit SITE_CPFR SITE_CPTO> DenyAll </Limit>
# Tous les groupes sont refusés hormis le groupe utilisateur : <Limit ALL> DenyGroup !ftpusers </Limit>
Sécuriser le serveur ProFTPd
Utiliser FTPS avec ProFTPd
# FTPS signifie "FTP via SSL/TLS".
Créer la clé privée et publique
# Créer les clés dans le dossier /etc/ssl/private : sudo bash cd /etc/ssl/private openssl req -x509 -nodes -newkey rsa:2048 -keyout proftpdServerkey.pem -out proftpdCertificate.pem -days 365
Country Name (2 letter code) [AU]: FR State or Province Name (full name) [Some-State]: Alsace Locality Name (eg, city) []: Colmar Organization Name (eg, company) [Internet Widgits Pty Ltd]: Visionduweb Organizational Unit Name (eg, section) []: Visionduweb Common Name (e.g. server FQDN or YOUR name) []: Bernard Bass ... Email Address []: mail@visionduweb.com
# Protéger la clé : chmod 444 proftpdServerkey.pem proftpdCertificate.pem # Vérifier mais un 440 serait plus conseillé.
# La clé privée : proftpdServerkey.pem
# La clé publique : proftpdCertificate.pem
# Cette méthode de création de clé permet de ne pas rencontrer ce message d'erreur : mod_tls/2.7: error loading TLSRSACertificateFile '/etc/ssl/certs/proftpd.crt': (1) error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
# Si la clé a expirée suite à une année écoulée, relancer la commande pour générer une nouvelle clé.
Configurer le fichier tls.conf pour activer le TLS
sudo nano /etc/proftpd/tls.conf
## Décommenter les deux lignes suivantes permet de charger les certificats. TLSRSACertificateFile /etc/ssl/private/proftpdCertificate.pem TLSRSACertificateKeyFile /etc/ssl/private/proftpdServerkey.pem
# Cette configuration est fonctionnelle sous Debian Stretch 9 et Debian Buster 10 : <IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol TLSv1.2 TLSRSACertificateFile /etc/ssl/private/proftpdCertificate.pem TLSRSACertificateKeyFile /etc/ssl/private/proftpdServerkey.pem TLSVerifyClient off # Obligation pour le client d'utiliser SSL. # off permet la connexion non sécurisée. on oblige l'utilisation de TLS. TLSRequired on </IfModule>
# Si proftpd ne redémarre pas avec l'erreur suivante : unable to load 'mod_tls.c'; check to see if '/usr/lib/proftpd/mod_tls.la' exists
# Installer le module mod_tls.c : sudo apt install proftpd-mod-crypto
Ouvrir le fichier de configuration de ProFTPd
sudo nano /etc/proftpd/proftpd.conf
# Décommenter la ligne suivante pour charger le fichier de configuration de TLS. Include /etc/proftpd/tls.conf
Relancer le serveur FTP pour prendre en compte la nouvelle configuration
sudo service proftpd restart
Tester la connexion au serveur FTP en TLS avec FileZilla
Tester la connexion FTP. Chiffrement Connexion FTP explicite sur TLS si disponible. Une demande de certificat est affichée par FileZilla qui demande de faire confiance au certificat. Appuyer sur OK.
FileZilla devrait se connecter correctement au serveur FTP, en TLS.
Le serveur ne supporte pas les caractères non-ASCII
Pour ne plus afficher le message d'erreur : Le serveur ne supporte pas les caractères non-ASCII. Depuis le client FileZilla, Gestionnaire de sites, Onglet jeu de caractères, Forcer l'UTF-8 si le serveur le supporte.
Utiliser SFTP avec ProFTPd
Source : https://www-golinuxcloud-com.translate.goog/sftp-chroot-restrict-user-specific-directory/?_x_tr_sl=auto&_x_tr_tl=fr&_x_tr_hl=fr
Ne fonctionne pas : Connexion SFTP avec FileZilla
# Le "module SFTP" de Proftpd écoute sur le port 22 (Le port de SSH normal) pour desservir le sous-protocole SFTP. # Cela nécessite qu'il n'y ait pas de serveur SSH en fonctionnement, car sinon il y a un conflit de port d'écoute. # De plus, mon serveur utilisant le port Knocking, le port 22 n'est pas utilisable directement.
# J'obtiens le message d'erreur suivant quand je tente de me connecter avec FileZilla et SFTP : Erreur : Disconnected: No supported authentication methods available (server sent: publickey) Erreur : Impossible d'établir une connexion au serveur # Votre serveur ne prend en charge que l'authentification par clé publique et vous n'avez spécifié aucune clé privée à utiliser pour l'authentification. # Il faudrait ajouter sa clé directement sur la machine hôte, en local dans le dossier /.ssh/id_rsa - Dans authorized_keys ?
## Cette tentative semble m'avoir mis dehors du serveur. ## Le serveur ne redémarre pas. Utilisation du mode Rescue. Au redémarrage, tous les services sont éteints. MariaDB refuse de redémarrer.
Source : https://kgrall.wordpress.com/2017/12/06/serveur-ssh-ftp-securise-sftp/ Source : https://blog.victor-hery.com/2019/03/installer-sftp-proftpd.html Installation Serveur FTP – ProFTPD + SSL : http://web.archive.org/web/20190510101924/https://www.barrekevin.com/2018/05/23/installation-serveur-ftp-proftpd-ssl/ Comment se connecter à un serveur SFTP avec FileZilla : https://help.one.com/hc/fr/articles/115005585709-Comment-se-connecter-%E0-un-serveur-SFTP-avec-FileZilla- Source complémentaire : http://www.proftpd.org/docs/contrib/mod_sftp.html PROFTPD - SFTP CONFIGURATION : https://gist.github.com/tuxfight3r/b62dc3351732615f9e86
Une fois cette étape configurée, reporter la manipulation sur la page de SSH SFTP
Proposition de configuration SFTP par DigitalOcean
error: unable to bind to local socket: Address already in use : https://github.com/proftpd/proftpd/issues/914 How To Configure ProFTPd To Use SFTP Instead of FTP : https://www.digitalocean.com/community/tutorials/how-to-configure-proftpd-to-use-sftp-instead-of-ftp
Interdire la connexion à des utilisateurs depuis le fichier ftpusers
Le contenu du fichier ftpusers se trouve dans le répertoire /etc/. Il contient la liste de tous les utilisateurs qui n'ont pas le droit ce connecter via le démon du serveur FTP. Pour ajouter un utilisateur il suffit d'éditer le fichier avec un éditeur de texte et de rajouter le nom de l'utilisateur. Un seul nom de compte utilisateur par ligne. Les noms commençants par # seront ignorées. sudo nano /etc/ftpusers
Voir qui est connecté à votre serveur
# Fonctionne correctement depuis debian 10 : ftpwho
Consulter les statistiques de ProFTPd
# Consulter les statistiques de ProFTPd : sudo ftpstats
# Ajoute l'heure de la modification : sudo ftpstats -h
# Documentation : sudo man ftpstats
Gestion des modules de ProFTPd
# Localiser les modules de ProFTPd sur le serveur : cd /usr/lib/proftpd ls
mod_auth_otp.so mod_facl.so mod_quotatab.so mod_sftp_pam.so mod_tls_memcache.so mod_wrap2_sql.so mod_ban.so mod_ifsession.so mod_quotatab_sql.so mod_sftp.so mod_tls_redis.so mod_wrap.so mod_copy.so mod_ifversion.so mod_radius.so mod_sftp_sql.so mod_tls.so mod_ctrls_admin.so mod_load.so mod_ratio.so mod_shaper.so mod_unique_id.so mod_deflate.so mod_memcache.so mod_readme.so mod_site_misc.so mod_wrap2_file.so mod_dynmasq.so mod_quotatab_file.so mod_redis.so mod_sql_passwd.so mod_wrap2_redis.so mod_exec.so mod_quotatab_radius.so mod_rewrite.so mod_sql.so mod_wrap2.so
# Paramétrer le fichier de configuration des modules : sudo nano /etc/proftpd/modules.conf
mod_ctrls
# Ce module implémente le côté serveur d'un socket de domaine Unix, utilisé pour la communication avec un démon proftpd en cours d'exécution. # Il est possible que ce soit la cause d'au moins une, peut être deux, erreurs, que j'ai eu a rencontrer. # Dans ma liste, le mod_ctrls n'est pas présent.
# Le module mod_ctrls est contenu dans les fichiers mod_ctrls.c et mod_ctrls.h pour ProFTPD 1.2 et n'est pas compilé par défaut.
# Le module mod_ctrls n'est pas présent pour ma version actuelle de ProFTPD 1.3.6 installée sur Debian Buster 10.
# La directive par défaut : ControlsSocket var/run/proftpd.sock ControlsSocket /var/run/proftpd/proftpd.sock # Vérifier le bon chemin à donner pour le socket !
# Le module mod_ctrls est distribué avec la source officielle de ProFTPD. # Télécharger la version de ProFTPd correspondante depuis le site officiel : http://www.proftpd.org sudo wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.6.tar.gz # Il faut compiler tout le programme depuis les sources et inclure les modules souhaités ! sudo tar xzvf proftpd-1.3.6.tar.gz sudo rm proftpd-1.3.6.tar.gz cd ~/proftpd-1.3.6/
# Pour activer l'utilisation des contrôles, utiliser l'option de configuration --enable-ctrls : sudo ./configure --enable-ctrls
# Utiliser checkinstall plutôt que make pour créer un .deb permettant la désinstallation simplifiée : sudo checkinstall sudo dpkg -i $PACKAGE_NAME_YOU_ENTERED sudo dpkg -r $PACKAGE_NAME_YOU_ENTERED # make # make install
# Dans le module mod_ctrls il y a l'option controlsocket. http://www.proftpd.org/docs/modules/mod_ctrls.html
# Comment ajouter ce module avec une installation existante de proftpd-basic sous debian ?
mod_core - Les directives du module
Source : http://www.proftpd.org/docs/modules/mod_core.html
mod_copy - Désactiver le module
# Paramétrer le fichier de configuration des modules pour désactiver mod_copy : sudo nano /etc/proftpd/modules.conf
# Limite un risque de sécurité, notamment pour l'utilisateur anonyme. # Permet de ne pas déplacer des fichiers sensibles. # Permet de ne pas saturer un dossier tmp. # LoadModule mod_copy.c
mod_wrap.c
Installer le module mod_wrap.c : https://packages-picconi.debian.org/bullseye/proftpd-mod-wrap sudo apt install proftpd-mod-wrap
Quelques erreurs rencontrées et résolues
ProFTPd ne démarre pas
# Consulter le mode verbose : sudo proftpd -td10
# Affiche : fatal: unknown configuration directive 'Default' on line 39 of '/etc/proftpd/proftpd.conf' Ici, la directive Default Root n'est pas reconnue. Le mot clé à utiliser est DefaultRoot tout attaché.
Memcache support not enabled
Si en redémarrant le demon, vous avez un message d’erreur du style : mod_tls_memcache/0.1: notice: unable to register 'memcache' SSL session cache: Memcache support not enabled
# Éditer le fichier /etc/proftpd/modules.conf et commenter la ligne: LoadModule mod_tls_memcache.c
ProFTPd ne redémarre pas
/etc/init.d/proftpd restart [....] Restarting proftpd (via systemctl): proftpd.serviceFailed to restart proftpd.service: The name org.freedesktop.PolicyKit1 was not provided by any .service files See system logs and 'systemctl status proftpd.service' for details.
Résolu : Avec sudo, ça fonctionne mieux. sudo /etc/init.d/proftpd restart [ ok ] Restarting proftpd (via systemctl): proftpd.service.
Error in protocol version (70)
Depuis Filezilla : Erreur : Réception d'une alerte TLS à partir du serveur : Error in protocol version (70) Erreur : Impossible d'établir une connexion au serveur
Depuis le fichier /var/log/proftpd/tls.log mod_tls/2.7[12334]: error initializing OpenSSL context for this session mod_tls/2.7[12334]: TLS/TLS-C requested, starting TLS handshake mod_tls/2.7[12334]: unable to accept TLS connection: protocol error: (1) error:14209102:SSL routines:tls_early_post_process_client_hello:unsupported protocol mod_tls/2.7[12334]: TLS/TLS-C negotiation failed on control channel
Depuis le fichier /var/log/proftpd/proftpd.log mod_tls/2.7: error loading TLSRSACertificateFile '/etc/ssl/certs/proftpd.crt': (1) error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small ... fatal: TLSRSACertificateFile: '/etc/ssl/certs/proftpd.crt' does not exist or does not contain a certificate on line 27 of '/etc/proftpd/tls.conf'
Résolu : Enlever la ligne TLS depuis le fichier de configuration. Sinon, il faut configurer correctement TLS pour ProFTPd.
Quelques erreurs rencontrées et non résolues
Unable to bind to local socket: Address already in use
# Erreur connue sur la version de proftpd 1.3.6-6 :
Depuis syslog : mod_ctrls/0.9.5: error: unable to bind to local socket: Address already in use
Ou encore avec : sudo proftpd --configtest Checking syntax of configuration file mod_ctrls/0.9.5: error: unable to bind to local socket: Address already in use processing configuration directory '/etc/proftpd/conf.d/' Syntax check complete.
Cela signifie généralement qu'un autre processus, soit inetd, xinetd ou un autre serveur ftp autonome, utilise déjà le port ftp.
Impossible de lire depuis le socket : ECONNRESET
# Erreur connue sur la version de proftpd 1.3.6-6 :
# Cette erreur est rencontrée lorsque je tente de me connecter depuis la connexion internet de mon téléphone portable.
# Erreur rencontrée depuis FileZilla : Statut : Connexion à 139.99.173.195:21... Statut : Connexion établie, attente du message d'accueil... Réponse : 220 ProFTPD Server (Debian) [::ffff:139.99.173.195] Commande : AUTH TLS Réponse : 502 AUTH TLS exécuté avec succès Commande : AUTH SSL Erreur : Impossible de lire depuis le socket : ECONNRESET - Connexion réinitialisée par un pair Erreur : Impossible d'établir une connexion au serveur
# Erreur rencontrée depuis les logs : 2020-02-26 16:18:10,383 mod_tls/2.7[6537]: TLS/TLS-C requested, starting TLS handshake 2020-02-26 16:18:10,753 mod_tls/2.7[6537]: unable to accept TLS connection: system call error: [104] Connexion ré-initialisée par le correspondant 2020-02-26 16:18:10,753 mod_tls/2.7[6537]: TLS/TLS-C negotiation failed on control channel
# Cette erreur m'a relancé sur l'erreur précédente : sudo proftpd --configtest Checking syntax of configuration file proftpd[16691]: mod_ctrls/0.9.5: error: unable to bind to local socket: Address already in use
# Le dossier suivant est censé contenir le fichier proftpd.sock d'après la configuration de ProFTPd depuis le fichier de conf : /var/run/proftpd/ # Il est vide actuellement lorsque je le consulte. # Un fichier proftpd.sock est déjà existant dans le répertoire /run/ #Un fichier proftpd.sock est déjà existant dans le répertoire /run/proftpd/
# Je tente d'afficher la liste des modules de ProFTPd : sudo ftpdctl lsmod ftpdctl: error contacting server using '/run/proftpd.sock': Connection refused
# Je tente de tracer la commande pour avoir plus de renseignements. sudo apt install strace strace -e open,unlink,bind,close /usr/sbin/proftpd --configtest
# Retour de la commande : close(1022) = -1 EBADF (Mauvais descripteur de fichier) close(1023) = -1 EBADF (Mauvais descripteur de fichier) close(-1) = -1 EBADF (Mauvais descripteur de fichier) Checking syntax of configuration file close(-1) = -1 EBADF (Mauvais descripteur de fichier) close(3) = 0 ... close(4) = 0 bind(4, {sa_family=AF_UNIX, sun_path="/run/test.sock"}, 110) = -1 EACCES (Permission non accordée) close(4) = 0 unlink("/run/test.sock") = -1 ENOENT (Aucun fichier ou dossier de ce type) bind(4, {sa_family=AF_UNIX, sun_path="/run/proftpd.sock"}, 110) = -1 EADDRINUSE (Adresse déjà utilisée) close(4) = 0 2020-02-26 22:51:48,094 vps178370 proftpd[22647]: mod_ctrls/0.9.5: error: unable to bind to local socket: Address already in use close(4) = 0 close(6) = 0 ... close(5) = 0 2020-02-26 22:51:48,231 vps178370 proftpd[22647]: mod_ctrls/0.9.5: unable to open ControlsLog '/var/log/proftpd/controls.log': Permission non accordée 2020-02-26 22:51:48,231 vps178370 proftpd[22647]: fatal: ControlsLog: unable to open '/var/log/proftpd/controls.log': Aucun fichier ou dossier de ce type on line 126 of '/etc/proftpd/proftpd.conf' +++ exited with 1 +++
Issue ouverte sur Github : https://github.com/proftpd/proftpd/issues/914
Tentative de résolution
# Changer les droits d'accès sur les fichiers de logs et le / les sockets, en utilisant l'utilisateur et le groupe mentionné dans la configuration de ProFTPd : cd /var/log/ sudo chown -R proftpd:nogroup proftpd/
# Même chose pour le dossier proftpd dans /var/run cd /var/run/ sudo chown -R proftpd:nogroup proftpd/ # Le fichier socket n'existe pas dans ce dossier.
# Redémarrer : sudo service proftpd restart
# Plutôt que d'utiliser le groupe nogroup, utiliser ou créer un groupe ftp serait plus adapté.
Source : https://www.vivaolinux.com.br/topico/ProFTPd/AJuda-pra-inciante
# Inclure les modules DSO ? Include /etc/proftpd/modules.conf
# Créer soit même le socket manquant avec socat ??? socat proftpd.socket ??? Source : https://manpages.debian.org/stretch/socat/socat.1.en.html
### I faced the same issue when I closed the server program with client program still running. ### This put the socket into TIME_WAIT state. ### Here's an elaborate discussion of the problem : How to forcibly close a socket in TIME_WAIT ? Source : http://serverfault.com/questions/329845/how-to-forcibly-close-a-socket-in-time-wait
+ Try using netstat to see which ports are open and then use an available port. + Also check if you are binding to the right ip address (I am assuming it would be localhost)
# Le groupe ( et le fichier .sock ) pourraient ne pas avoir les bons droits. ( Le fichier .sock n'existe tout de même pas et n'est pas recréé. ) cd /var/run sudo chmod -R ug+rw proftpd/
https://forums.unraid.net/topic/24356-proftpd-plugin-for-unraid-v670/page/15/ https://talk.plesk.com/threads/latest-update-broke-ftp.355093/ https://sysadmins.ru/topic497783.html https://web.nettworks.org/repo/browse/~raw,r=67890/eisfair/trunk/netservices/proftpd/bin_doc/usr/share/doc/proftpd/changes.txt
https://www.google.com/search?q=proftpd+mod_ctrls+error:+unable+to+bind+to+local+socket:+Address+already+in+use&ei=QARXXqT6HKmGjLsPhp-0-AU&start=40&sa=N&filter=0&ved=2ahUKEwikmoOltPDnAhUpA2MBHYYPDV84HhDy0wN6BAgLED0&biw=1920&bih=930
Vérifier le nombre de services sur le port 21
sudo netstat -ntpl | grep 21 tcp6 0 0 :::21 :::* LISTEN
sudo netstat -tulpn Connexions Internet actives (seulement serveurs) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 11324/mysqld tcp 0 0 127.0.0.1:46671 0.0.0.0:* LISTEN 6535/Passenger AppP tcp 0 0 127.0.0.1:42129 0.0.0.0:* LISTEN 9247/Passenger AppP tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 436/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1111/exim4 tcp 0 0 127.0.0.1:39645 0.0.0.0:* LISTEN 14590/Passenger App tcp 0 0 127.0.0.1:37599 0.0.0.0:* LISTEN 28745/Passenger App tcp6 0 0 :::80 :::* LISTEN 6359/apache2 tcp6 0 0 :::21 :::* LISTEN 28501/proftpd: (acc tcp6 0 0 :::22 :::* LISTEN 436/sshd tcp6 0 0 ::1:25 :::* LISTEN 1111/exim4 tcp6 0 0 :::443 :::* LISTEN 6359/apache2 udp 0 0 0.0.0.0:68 0.0.0.0:* 367/dhclient
Installer une version plus récente de ProFTPD
# Ce problème de socket est un bogue connu de la version 1.3.6. # Installer la version 1.3.6b ou supérieure pour résoudre ce problème.
wget -c -O ~/proftpd-basic_1.3.6-4+deb10u5_amd64.deb http://ftp.fr.debian.org/debian/pool/main/p/proftpd-dfsg/proftpd-basic_1.3.6-4+deb10u5_amd64.deb sudo dpkg -i proftpd-basic_1.3.6-4+deb10u5_amd64.deb
# L'installation via le paquet .deb ne sera pas possible, du fait d'un problème de dépendances : Le paquet libcrypt1 n'est pas installé.
sudo apt install libcrypt1 Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Aucune version du paquet libcrypt1 n'est disponible, mais il existe dans la base de données. Cela signifie en général que le paquet est manquant, qu'il est devenu obsolète ou qu'il n'est disponible que sur une autre source E: Le paquet « libcrypt1 » n'a pas de version susceptible d'être installée
Politique de sécurité pour minimiser les attaques contre proFTPd
Changer le port par défaut du serveur FTP. Configurer les jails de Fail2ban.
Des options complémentaires sont proposées avec des plugins
A suivre.
PureFTPd
PureFTPd se veut être sécurisé avant tout. Il est simple à configurer et même si il est moins connu, on trouve pas mal de ressources le concernant depuis un moteur de recherche.
Le tutoriel Debian :https:// coagul. org/drupal/publication/installation-et-configuration-serveur-ftp-pure-ftpd-sous-debianLe tutoriel Debian : https://diypiandco.com/2015/05/18/installer-un-serveur-ftp-sur-debian/ Le tutoriel Fedora : https://doc.fedora-fr.org/wiki/PureFTPD_:_Installation_et_configuration Le tutoriel Ubuntu : https://doc.ubuntu-fr.org/pure-ftp
vsFTPd
vsftpd signifie : Very Security FTP Daemon. Il est utilisé par de gros sites tel que ftp.debian.org. Comme son nom l’indique, c’est un serveur très sécurisé mais également très léger.
VsFTPd installation et configuration : https://jeanphi.net/blog/2014/08/vsftpd-installation-et-configuration https://wiki.debian.org/fr/vsftpd
vsftpd - Se protéger des attaques Brute Force avec TCP Wrapper
www.dsfc.net/infrastructure/securite/vsftpd-se-proteger-des-attaques-en-force-brute-avec-tcp-wrapper/
Installer un client FTP
Installer un client FTP.
Utiliser un serveur FTP en ligne de commande
Comment utiliser le FTP en ligne de commande : https://quick-tutoriel.com/comment-utiliser-le-ftp-en-ligne-de-commande/
Bibliographie
Code alertes SSL/TLS sur le protocole : https://blogs.msdn.microsoft.com/kaushal/2012/10/05/ssltls-alert-protocol-the-alert-codes/
ProFTPd
Installer un serveur FTP pour plusieurs utilisateurs avec proftpd : https://jesuisadmin.fr/installer-serveur-ftp-plusieurs-utilisateurs-proftpd/ Faille de sécurité dans ProFTPd : https://www.infobidouille.com/faille-de-securite-dans-proftpd/#comment-4585
Comment installer un serveur ftp sécurisé sous debian squeeze : https://memo-linux.com/comment-installer-un-serveur-ftp-securise-sous-debian-squeeze/ Installer et configurer un serveur ProFTPd pour Calculate Linux ou CentOS : https://www.linuxtricks.fr/wiki/ftp-installer-et-configurer-un-serveur-proftpd How To Configure ProFTPd To Use SFTP Instead of FTP : https://www.digitalocean.com/community/tutorials/how-to-configure-proftpd-to-use-sftp-instead-of-ftp How to install ProFTPd with TLS support on Ubuntu 16.04 : https://www.howtoforge.com/tutorial/install-proftpd-with-tls-on-ubuntu-16-04/ https://www.ionos.fr/digitalguide/serveur/configuration/configurer-un-serveur-ftp-sous-debian-avec-proftpd/ https://www.informatiweb-pro.net/admin-systeme/linux/6--debian-ubuntu-installer-un-serveur-ftp.html https://websiteforstudents.com/configure-proftpd-use-ssltls-certificates-ubuntu-17-04-17-10/ ProFTPD: Logins and Authentication : http://www.proftpd.org/docs/howto/Authentication.html Exemple de configuration ProFTPd : http://www.proftpd.org/docs/example-conf.html https://fr.wikibooks.org/wiki/Administration_r%C3%A9seau_sous_Linux/ProFTPD https://www.alsacreations.com/tuto/lire/617-Serveur-FTP-Proftpd.html https://linoxide.com/debian/install-setup-proftpd-debian-9-stretch/ Serveur FTP : PROFTPD : https://doc.ubuntu-fr.org/proftpd Documentation ProFTPd : http://www.proftpd.org/docs/ http://www.proftpd.org/docs/howto/Limit.html http://www.linuxpedia.fr/doku.php/proftpd
https://wiki.csnu.org/index.php/Installation_de_configuration_de_ProFTPd#G.C3.A9n.C3.A9ration_du_certificat_ssl https://www.noobunbox.net/serveur/auto-hebergement/configurer-et-securiser-un-serveur-ftp Créer un certificat SSL : http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/index.html https://dev.pierre-galvez.fr/installer-un-serveur-ftp-proftpd-securise-sur-debian/ https://www.barrekevin.com/2018/05/23/installation-serveur-ftp-proftpd-ssl/ https://www.malekal.com/proftpd-configurer-un-serveur-ftp-sur-debian-10/ https://lea-linux.org/documentations/Reseau-partfic-proftpd http://www.proftpd.org/docs/howto/TLS.html https://en.wikipedia.org/wiki/ProFTPD
Veille
Source : https://www.google.fr/search?client=opera&q=monter+un+ftp+dans+le+fstab&sourceid=opera&ie=UTF-8&oe=UTF-8 Monter du FTP dans le système de fichier : https://www.freenux.fr/monter-du-ftp-dans-le-systeme-de-fichier/ Source : http://chrtophe.developpez.com/tutoriels/acces-serveur-distant/
NAVIGATION
PARTICIPER ET PARTAGERBienvenue sur le wiki de Amis SH. De nombreuses pages sont partagées sur ce wiki. Créer un compte utilisateur pour participer sur le wiki. Les pages présentées sur le wiki évoluent tous les jours. Certaines recherches sont peu abouties et incluent des erreurs. Utiliser la recherche interne du wiki pour trouver votre contenu. La page de discussion de Amis SH vous permet de poser vos questions. Consulter le site amis-sh.fr pour installer votre propre serveur web. Améliorer le contenu des pages avec vos retours depuis l'onglet discussion. Ce contenu ne doit pas servir à nuire à autrui ou à un système informatique. Protéger votre système Linux ou Windows avec cette page dédiée à la sécurité. |
SOUTENIR CE WIKISoutenir le wiki avec un don en monnaie numérique : AEON - Bitcoins - Bitcoins Cash - Bitcoins Gold - Bitcore - Blackcoins - Basic Attention Token - Bytecoins - Clams - Dash - Monero - Dogecoins - Ğ1 - Ethereum - Ethereum Classique - Litecoins - Potcoins - Solarcoins - Zcash OBTENIR DE LA MONNAIE NUMERIQUEObtenir gratuitement de la monnaie numérique : Miner de la cryptomonnaie. |