Particularité: sécurisation de base avec compte et mot de passe
Pré-requis :
Dans le cadre de la mise en place d'un serveur de fichiers accessible via un browser comme Firefox, j'ai décidé de mettre en place un serveur FTP Open Source grâce à proftpd sur un serveur Red Hat.
Proftpd offre la possibilité d'être lancer grâce à inetd (ou xinetd selon les distributions) ou bien en mode standalone.
Nous allons ici étudier une configuration assez basique, la connection au serveur ne sera pas cryptée via du SSL par exemple.
1°) Installation :
Il faut tout d'abord télécharger l'archive sur le site officiel www.proftpd.org et éxecuter les commandes suivantes:
*Décompresser l'archive pour pouvoir l'installer
tar zxvf proftpd-1.2.8.tar.gz
*Installation de proftpd
cd proftpd-1.2.8
./configure
make
make install
Sans indication, le fichier de configuration proftpd.conf se trouve dans le repertoire /usr/local/etc.
Proftpd est maintenant installé, il ne reste plus qu'à le configurer.
On peut le configurer en mode standalone ou bien en éxecution avec inetd.
2°) Configuration en mode inetd :
Nous allons étudier la configuration de proftpd se lançant grâce à un méta-démon comme xinetd.
Pour ce faire, il faut déjà modifier le fichier proftpd.conf et particuliérement une ligne.
ServerType inetd
Il faut ensuite prévenir le méta-démon xinetd pour qu'il lance proftpd lorsqu'il démarre.
On va créer le fichier proftpd dans le repertoire /etc/xinetd.d/
service ftp
{
disable = no
flags = REUSE
socket_type = stream
instances = 10
wait = no
protocol = tcp
user = root
server = /usr/local/sbin/in.proftpd
}
Proftpd est maintenant paramétré. Il faudra relancer xinetd pour lancer proftpd grâce à la commande :
service xinetd restart
3°) Configuration en mode standalone :
Il faut modifier le fichier proftpd.conf de la maniére suivante :
ServerType standalone
On lancer alors proftpd de la maniére suivante :
/usr/local/sbin/proftpd
En faisant un ps -aux afin de lister tous les processus en service avec leur occupation mémoire, on peut voir qu'un processus proftpd est en cours d'éxecution.
4°) Configuration du serveur ftp :
Afin de garantir la sécurité des données, on va créer les comptes suivants si il n'existe pas :
=>le compte nobody qu'on utilisera pour les connections anonymes.
=>le compte admin qui servira ici d'admin du serveur FTP.
Vérifier aussi le fichier /etc/host.allow pour vous assurez que tout le monde peut accéder au serveur ou bien seulement les personnes concernées.
Voici le fichier d econfiguration commenté
#Nom du serveur
ServerName "Serveur FTP"
#Type du serveur: standalone ou bien inetd
ServerType standalone
#Directive utile pour faire des virtuals hosts
DefaultServer on
#Port TCP sur lequel le serveur écoute en mode standalone
Port 21
#Masque s'appliquant aux fichiers crées
Umask 022
#Nombre d'instances maximales de proftpd....ne pas le mettre trop élevé pour éviter le deny de service
MaxInstances 30
#Utilisateur et groupe pour les connections anonymes
User nobody
Group nogroup
#N'impose pas que l'utilisateur possede un shell associe au back end qui gere l'authentification
RequireValidShell off
#Autorise de resumer les download et upload
AllowRetrieveRestart on
AllowStoreRestart on
#Option de la commande ls
ListOptions "l"
#Désactive l'authentification via PAM (par défaut)
AuthPAM off
#Chrootage de l'utilisateur admin
DefaultRoot /home/ftpublic admin
#cache l'identite du serveur
ServerIdent off
#Fichiers de log
SystemLog /var/log/proftpd.log
TransferLog /var/log/xferlog
#configuration pour acces anonyme
<Anonymous /home/ftpublic>
User ftp
Group nogroup
UserAlias anonymous ftp
MaxClients 20
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
<Directory /admin>
<Limit READ>
DenyAll
</Limit>
</Directory>
</Anonymous>
Les derniéres directives nous permettent de chrooter tous les utilisateurs dans le repertoire /home/ftpublic/ contenant les repertoire public et admin.
Un utilisateur anonyme qui utilise un client FTP classique (comme Filezilla) peut utiliser le compte anonymous ou bien ftp cela reviendra au même et il n'aura le droit de lecture et d'éxecution que sur le repertoire public; le répertoire admin quant à lui ne sera pas du tout accessible.
Pourquoi cela ? De cette maniére, on peut accéder au repertoire public du FTP via un browser tout simplement...chose particuliérement utile pour permettre aux utilisateurs d'installer de nouveaux logiciels ou bien faire paraître un fichier d'informations quelconques. Tout cela en étant sûr que personne ne pourra modifier les fichiers.
Le repertoire admin ne sera accessible que par l'utilisateur admin. Il pourra en modifier le contenu et créer de nouveaux fichiers. Il a tous les droits de lecture/écriture sur le repertoire ftpublic.
Il ne faut surtout pas oublier de vérifier les droits Unix sur le serveur afin de garantir la sécurité des données.
Vous possédez désormais un serveur FTP avec un minimum de sécurité.