:: News .:. Documents .:. Forum .:. Downloads .:. Bibliographie .:. Liens .:. Contact  :: 


Home
  :. News
  .: Documents
    .: Notions
    .: Protocoles
    .: Sécurité
    .: Architecture
    .: Prog
    .: Systèmes
  :. Forum
  .: Downloads
  :. Bibliographie
  .: Liens
  :. Contact

Chat

  Nickname:


irc: #guill.net

Forum



 
Mise en place d'un serveur FTP avec proftpd  
 

 

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é.

Plug'n - 03/2005
 




Sondage

Quel est votre connexion à Internet aujourd'hui ?
 
RTC 56Kbps
ADSL simple de 128 à 2048 Kbps
ADSL + Téléphonie (+TV) de 128 à 2048 Kbps
ADSL simple jusqu'à 20Mbps
ADSL + Téléphonie (+TV) jusqu'à 20Mbps
Autres (RNIS, Satellites bi-directionnel...)
Total :
3241

Recherche


Docs
   Pflogsumm (Analyseur de log mail pour Postfix)
   Proftpd (Mise en service d'un serveur FTP avec proftpd sous Linux)
   Openldap (Mise en service d'un serveur LDAP sous Linux)
   Gestion des périphériques en c++ builder (Communication RS232 en C++ Builder)
   Les sockets windows (Windows Sockets : un cours accéléré)

guill.net©1999-2024