Linux Logiciels
ProFTPd
Tutoriel de mise en oeuvre d'hôte virtuel





Nous allons voir comment créez deux hôtes virtuel par des IP différente et avec qu'une seule interface réseau.
Ps: Il est aussi possible sur le même procédé de faire des vhost avec une seul IP et plusieurs numéros de ports.

Toutes les commandes sont à éffectuer avec les droits du compte "root".
Deux hôtes virtuel vont posséder leur propre IP fixe, on va crée 2 IP virtuel:

On va regarder le nom système de l'interface réseau:

# ifconfig eth0 Link encap:Ethernet HWaddr 01:2f:b3:d9:a1:d5 inet adr:192.168.1.15 Bcast:192.168.1.255 Masque:255.255.255.0 adr inet6: fe80::20e:a6ff:fef7:e5bf/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6063 errors:0 dropped:0 overruns:0 frame:0 TX packets:6351 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:5173155 (4.9 MiB) TX bytes:1190803 (1.1 MiB) Interruption:17 lo Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 adr inet6: ::1/128 Scope:Hôte UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:65 errors:0 dropped:0 overruns:0 frame:0 TX packets:65 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:9673 (9.4 KiB) TX bytes:9673 (9.4 KiB)



Le nom de mon de ma carte réseau est "eth0".


Pour ajouter deux interfaces virtuel qui auront comme IP 192.168.1.20 et 192.168.1.50, il faut taper:

ifconfig eth0:0 192.168.1.20 ifconfig eth0:1 192.168.1.50




On vérifie l'ajout des deux nouvelles interfaces réseau:

# ifconfig eth0 Link encap:Ethernet HWaddr 01:2f:b3:d9:a1:d5 inet adr:192.168.1.15 Bcast:192.168.1.255 Masque:255.255.255.0 adr inet6: fe80::20e:a6ff:fef7:e5bf/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6175 errors:0 dropped:0 overruns:0 frame:0 TX packets:6397 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:5207139 (4.9 MiB) TX bytes:1194874 (1.1 MiB) Interruption:17 eth0:0 Link encap:Ethernet HWaddr 01:2f:b3:d9:a1:d5 inet adr:192.168.1.20 Bcast:192.168.1.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interruption:17 eth0:1 Link encap:Ethernet HWaddr 01:2f:b3:d9:a1:d5 inet adr:192.168.1.50 Bcast:192.168.1.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interruption:17 lo Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 adr inet6: ::1/128 Scope:Hôte UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:113 errors:0 dropped:0 overruns:0 frame:0 TX packets:113 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:12925 (12.6 KiB) TX bytes:12925 (12.6 KiB)




A présent nous allons crée un répertoire pour chaque vhost, ce sera la racine de connection de chaque serveur ftp virtuel:

mkdir /srv/ftp mkdir /srv/ftp/serveurFTP-01 mkdir /srv/ftp/serveurFTP-02




Maintenant il faut éditer le fichier "proftpd.conf":

nano /etc/proftpd/proftpd.conf



Et vérifier que ces lignes existe et quel soit décommenté (pas de # en début de ligne).
Cela permet de lier le fichier où il y aura votre configuration de vhost ftp:

Include /etc/proftpd/virtuals.conf


Et chrooter les utilisateurs (chaque utilisateur sera connecté à la racine de son serveur ftp sans pouvoir accéder au autre répertoire du serveur physique et autre serveur FTP virtuel).

DefaultRoot ~



Voir le détails du fichier pour faire des réglages supplémentaire:
ProFTPd - Fichier proftpd.conf


On va éditer le fichier où vous allez ajouter la configuration de vos hôtes virtuel:

nano /etc/proftpd/virtuals.conf



Chaque hôte virtuel est encadré entre les balises, les xxx représente l'ip du serveur virtuel:
<VirtualHost xxx.xxx.xxx.xxx>
...
</VirtualHost>


On va ajouter ces lignes au fichier.
Il est possible de supprimer ou de rajouter des lignes à vos vhost pour combler des paramêtres qui nom pas put être inscription dans la configuration général de tous les serveurs FTP (proftpd.conf) comme les "IP", les "ports" ...

Détails du fichier sur ce lien pour voir les options supplémentaire:
ProFTPd - Fichier virtuals.conf


<VirtualHost 192.168.1.20>
ServerAdmin             admin@domaine.com
ServerName              "FTP 01"
User              	ftp01
Group             	ftp01
Port 			2121
# Pour autoriser que le groupe ftp01
<Limit LOGIN>
     Order Allow,Deny
     Allowgroup ftp01
     Deny from all
</Limit>
Umask 			022	# umask 022 = chmod 644 soit rw-r--r--
TransferLog             /var/log/proftpd/xfer/ftp.server.com
MaxLoginAttempts        10
DefaultRoot             /srv/ftp/serveurFTP-01 # Répertoire racine de ce serveur
AllowOverwrite          yes
</VirtualHost>

<VirtualHost 192.168.1.50>
ServerAdmin             admin@domaine.com
ServerName              "FTP 02"
User              	ftp02
Group             	ftp02
Port 			2100
# Pour autoriser que le groupe ftp02
<Limit LOGIN>
     Order Allow,Deny
     Allowgroup ftp02
     Deny from all
</Limit>
Umask 			027     # umask 002 = chmod 664 soit rw-rw-r--
TransferLog             /var/log/proftpd/xfer/ftp.server.com
MaxLoginAttempts        5
RequireValidShell       no
DefaultRoot             /srv/ftp/serveurFTP-02 # Répertoire racine de ce serveur
AllowOverwrite          yes
</VirtualHost>


Sauvegardé le fichier et redémarré le serveur FTP pour qu'il prenne en compte les changements.

/etc/init.d/proftpd restart



On va maintenant crée les utilisateurs et les groupes "ftp01" et "ftp02" des serveurs.
Pour crée les utilisateur:

useradd ftp01 useradd ftp02



Selon les systèmes, les groupes ne sont pas automatiquement crée en même temps que les utilisateurs, pour faire les groupes:

usergroup ftp01 usergroup ftp02



On va mêtre un mot de passe aux deux nouveaux utilisateurs:

sudo passwd ftp01 Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd : le mot de passe a été mis à jour avec succès



En faire de même pour "ftp02".


On donne les droits de lecture:

chmod -R 744 /srv/ftp/serveurFTP-01 chmod -R 744 /srv/ftp/serveurFTP-02



On rend propriétaire et on attribut le groupe autorisé d'accès au répertoire:

chown -R ftp01:ftp01 /srv/ftp/serveurFTP-01 chmod -R ftp02:ftp02 /srv/ftp/serveurFTP-02




A partir de là, tous les utilisateurs qui seront ajouter dans le groupe "ftp01" pourront ce connecter au serveur FTP 192.168.1.20 port 2121 avec leur nom d'utilisateur leur mot de passe.

Et tous les utilisateurs qui seront ajouter dans le groupe "ftp02" pourront ce connecter au serveur FTP 192.168.1.50 port 2100 avec leur nom d'utilisateur leur mot de passe.



Problème courant:

Tous les utilisateurs peuvent en plus ce connecter en FTP avec le port 21 sur les IP 192.168.1.20 et 192.168.1.50.

La seul solution est de desactiver dans le pare-feu le port 21 avec IPTABLE:

/sbin/iptables -A OUTPUT -p TCP --dport 21 -j DROP




PS: vhost = virtualhost = hôte virtuel



Lien pour aller sur le site de ProFTPd:
www.proftpd.org


Lien qui peuvent vous aidez:
ProFTPd - Installer et configurer un serveur FTP
ProFTPd - Fichier proftpd.conf
ProFTPd - Fichier virtuals.conf
FTP - Fichier ftpusers pour interdire la connexion à des utilisateurs


Par O.Cédric
Sur www.octetmalin.net

Article publié le:
27/06/2011 11:42






Cette page vous à plus?

Dîtes que vous l'aimez en cliquant sur le bouton Facebook.