Quatre serveurs FTP hyper s\303\251curis\303\251s avec

Transcription

Quatre serveurs FTP hyper s\303\251curis\303\251s avec
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
Accu eil
A propos
Nu age de T ags
Contribu er
Who’s who
Récoltez l’actu UNIX et cu ltivez vos connaissances de l’Open Sou rce
Anno nce s Go o gle
Shell U nix
Serveur Gratuit
Filez illa FTP Server
Serveur Apache
Serveurs Echanblard
28 aoû t 2008
Quatre serveurs FTP hyper sécurisés avec vsftpd
Catégorie : Sécu rité
T ags : lmhs
Retrou vez cet article dans : Linu x Magazine Hors série 21
Vou s u tilisez u n serveu r FT P et craignez au tant les failles des démons classiqu es qu e les abu s des
u tilisateu rs ? Décou vrez vsftpd, u n serveu r dont la devise « beat me, break me » vou s permettra
enfin de dormir tranqu ille...
Introduction
vsftpd signifie Very Secu re File T ransfert Protocol Daemon. Il s’agit d’u n serveu r FT P, dont l’objectif
est d’être à la fois simple et très sécu risé. Sans entrer dans les détails, sa stru ctu re même le rend
très robu ste, et peu vu lnérable à la plu part des failles de configu ration standards qu i existent su r les
serveu rs dont l’écritu re est plu s « classiqu e ».
Pou rqu oi ? Parce qu e son code limite considérablement tou s les paramètres possibles, qu ’il vou s
appartiendra d’ou vrir en fonction de vos besoins.
Il dispose par ailleu rs d’u ne grande qu antité d’options permettant u n paramétrage très fin de ce qu e
vou s vou lez au toriser et refu ser su r votre serveu r, ju squ ’à u n filtrage u tilisateu r par u tilisateu r si
nécessaire.
Dans cet article, nou s vou s proposons, après avoir passé en revu e les principes d’u tilisation de ce
programme, d’examiner qu atre scénarii extrêmes qu i vou s permettront de comprendre ju squ ’à qu el
point cet ou til est capable de pou sser la sécu risation des accès su r votre machine : ju squ ’au point où
les droits sont tellement contrôlés qu e c’est à peine si les u tilisateu rs existent encore...
Installation standalone ou xinetd
L’installation du programme ne pose pas de problème, elle se fait via rpm, tar.gz ou au tre, en
téléchargeant le programme depu is le site vsftpd lu i-même (http://vsftpd.beasts.org), avec votre
commande favorite de décompression/installation, comme tar -zxvf, ./configu re, make & make install.
À ce stade, le serveu r est installé et prêt à fonctionner. Vou s pou rriez vou s contenter de cette
étape, mais u n fonctionnement optimal su ppose la compréhension de « ce » qu i est installé et la mise
en place de vos propres paramètres, c’est pou rqu oi cet article comporte encore qu elqu es
paragraphes !
Comme vou s le savez peu t-être, sou s Linu x, les services réseau standards peu vent soit être
installés individu ellement, c’est le mode « standalone », soit être regrou pés sou s u n seu l démon,
xinetd. T raditionnellement, l’administrateu r installe u n serveu r en mode standalone qu and il s’agit
1 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
d’u n service à part entière (c’est le cas si, par exemple pou r FT P, vou s sou haitez mettre en place u n
serveu r qu i sera destiné à assu rer la fonction de partage de fichiers de façon permanente ou
fréqu ente : c’est-à-dire dans la plu part des cas) et ne positionne sou s le contrôle de xinetd qu e les
services dont l’u tilisation est très occasionnelle (c’est le cas si votre serveu r FT P n’est appelé à
fonctionner qu e très occasionnellement et si vou s ne vou lez pas avoir à penser à le démarrer dans
ces cas-là).
Dans tou s les cas, le fichier de configu ration du serveu r est /etc/vsftpd/vsftpd.conf.
Dans u n premier temps, positionnons-le en mode standalone. Pou r ce faire, vérifiez qu e dans
vsftpd.conf la directive listen est su r :
listen = YES
Démarrez alors simplement le serveu r avec :
/usr/sbin/vsftpd &
ou , sou s Redhat/Fedora :
service vsftpd start
Pou r le tester, connectez-vou s en ligne de commande su r votre serveu r, selon u ne procédu re du
type :
[root@localhost]ftp localhost
Connected to localhost.localdomain.
220 (vsFTPd 1.2.1)
Name (localhost:root): Test (évidemment, vous utiliserez ici un nom d’utilisateur disposant réellement d’un compte sur votre serveur)
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
150 Here comes the directory listing.
-rw-r--r-- 1 1001 1001 17421 Dec 19 14:02 fichier1.txt
drwx------ 2 1001 1001 4096 Dec 24 15:54 repertoire
226 Directory send OK.
ftp> quit
221 Goodbye.
[root@localhost]
Si le résu ltat est proche de celu i qu i est décrit ici, alors votre serveu r fonctionne ! Si ce n’est pas le
cas, lisez la su ite de l’article pou r comprendre où votre configu ration pêche. Vou s pou vez au ssi
recharger le programme avec u n fichier vsftpd.conf par défau t, et recommencer la manipu lation.
Si vou s sou haitez u tiliser xinetd, il fau dra alors, dans le répertoire /etc/xinetd.d/, qu ’u n fichier vsftpd
existe, qu i permettra à xinetd de gérer le lancement de vsftpd si des requ êtes FT P se présentent.
Ce fichier devra contenir des lignes du type :
default: off
service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
nice = 10
}
Les paramètres importants ici sont defau lt (su r off, le serveu r sera la plu part du temps arrêté, et ne
sera lancé qu ’en cas de besoin, su r on il sera lancé systématiqu ement, mais dans ce cas pou rqu oi ne
pas u tiliser le mode standalone ? Gardez defau lt su r off en général et lancez manu ellement le
service) et disable (positionnez à no, signifiant qu e le serveu r peu t fonctionner ; en mettant yes, vou s
désactiveriez la fonction ftpd de xinetd).
Éditez ensu ite le fichier /etc/vsftpd/vsftpd.conf et passez la directive listen su r :
listen = NO
2 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
Redémarrez alors xinetd :
service xinetd restart
Le serveu r est normalement prêt à fonctionner. T estez ensu ite en ligne de commande votre
connexion serveu r afin de vérifier son bon fonctionnement, comme décrit au paragraphe précédent.
Les paramètres les plus fréquents
Le fichier /etc/vsftpd/vsftpd.conf contient u ne liste de paramètres, qu i vont modifier le
comportement par défau t du serveu r. T ou t est là. En activant ou modifiant u n paramètre de ce
fichier, vou s configu rez vsftpd pou r u n comportement particu lier. Après chaqu e modification, pensez
à redémarrer le serveu r, en tapant :
service vsftpd restart
ou
/usr/sbin/vsftpd &
Pu is testez le bon fonctionnement du paramètre qu e vou s avez modifié.
Commençons par examiner les plu s fréqu ents d’entre eu x, c’est-à-dire ceu x qu e vou s au rez sans
au cu n dou te envie d’adapter à la configu ration particu lière de votre réseau :
anonymous_enable=NO/YES
Comme son nom le laisse entendre, cette fonction permet d’activer ou de désactiver le mode
anonyme. S’il est activé (YES), les connexions anonymes su r le serveu r sont au torisées. S’il est
désactivé (NO), seu ls les u tilisateu rs connu s, c’est-à-dire disposant d’u n compte u tilisateu r su r la
machine, seront au torisés à accéder au serveu r.
local_enable=NO/YES
Cette directive interdit ou au torise l’accès au serveu r au x u tilisateu rs connu s de la machine (c’està-dire disposant d’u n compte, login/password). Dans la plu part des configu rations, cette ligne sera
su r YES, sau f si votre serveu r est pu blic et qu e vou s ne vou lez pas accepter les connexions
d’u tilisateu rs dotés de compte.
write_enable=NO/YES
Permet d’écrire su r le serveu r (u pload). Il est là encore fréqu ent de mettre YES, mais en vérifiant
bien sû r qu e les fichiers téléchargés vers votre serveu r ne soient pas à terme trop volu mineu x et
qu ’ils correspondent à ce qu i est su pposé pou voir s’y trou ver.
Vou s mettrez NO si vou s ne vou lez pas qu ’u n au tre qu e vou s-même dépose des fichiers su r le
serveu r.
local_umask=022
Il s’agit du masqu e par défau t lors du positionnement de fichiers su r le serveu r, dans le cas où vou s
au riez mis la directive précédente su r YES. Rappelons qu e le masqu e est l’inverse des droits. Ainsi,
u n masqu e 022 condu ira à écrire des fichiers avec u n droit 755. Si vou s ne précisez pas ce masqu e,
celu i de vsftpd sera u tilisé par défau t, qu i est 077, laissant donc u n droit 700 au x fichiers écrits.
xferlog_enable=NO/YES
Cette option permet de logu er les u ploads et downloads.
ftpd_banner=Bienvenue sur mon serveur
Cette directive est loin d’être essentielle, mais elle est confortable. Elle permet de générer u n
message d’accu eil pou r les clients qu i se connectent su r votre serveu r.
chroot_list_enable=NO/YES
chroot_list_file=/etc/vsftpd.chroot_list
3 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
Ces deu x directives ne sont pas indispensables, mais elles sont très u tiles. La première permet de
demander au serveu r de rechercher u n fichier vsftpd.chroot_list dont le chemin est indiqu é à la
seconde ligne. Dans ce cas, tou s les u tilisateu rs présents dans la liste qu e représente le fichier
vsftpd.chroot_list seront au tomatiqu ement chrootés, c’est-à-dire cantonnés dans leu r répertoire
personnel. C’est u ne procédu re très u tile pou r empêcher vos u tilisateu rs fou ineu rs de sortir de leu r
répertoire. Si la première ligne est su r NO, cherchez si le fichier contient chroot_local_u ser (voir
ci-dessou s), au qu el cas le sens donné à la combinaison est différent. Si la première ligne est su r No et
qu e vsftpd.conf ne contient pas de directive chroot_local_u ser (ou si elle est su r No), alors
chroot_file_list ne sert à rien.
chroot_local_user=NO/YES
En activant cette directive, les u tilisateu rs qu i possèdent u n compte local seront cantonnés dans
leu r répertoire personnel après connexion. En revanche, combinée au x deu x lignes chroot_list_enable
et chroot_list_file, cette directive en modifie le sens. Avec chroot_list_enable=YES,
chroot_list_file=/etc/vfstpd.chroot_list, chroot_local_u ser=NO, le fichier vsftpd.chroot_list contient la
liste des u tilisateu rs qu i seront cantonnés dans leu r répertoire personnel.
Mais avec chroot_list_enable=YES, chroot_list_file=/etc/vfstpd.chroot_list, chroot_local_u ser=YES, le
fichier vsftpd.chroot_list contient alors la liste des u tilisateu rs qu i ne seront pas cantonnés à leu r
répertoire personnel, c’est-à-dire qu i pou rront aller dans d’au tres répertoires, tandis qu e tou s les
au tres u tilisateu rs (ceu x qu i ne sont pas cités dans la liste) seront à ce moment, eu x, cantonnés à
leu r répertoire personnel.
userlist_enable=NO/YES
userlist_deny=NO/YES
Là encore, les deu x directives ne sont pas indispensables, mais très u tiles. En positionnant la
première su r YES, vsftpd cherchera u n fichier nommé vsftpd.ftpu sers ou vsftpd.u ser_list (vou s
pou vez donner l’u n des deu x noms au choix),et trou vera dans ce fichier la liste des u tilisateu rs qu i
sont au torisés su r le serveu r.
En revanche, si à la première directive vou s ajou tez la seconde (u serlist_deny=YES), alors la liste
citée ci-dessu s devient celle des u tilisateu rs qu i, au contraire, ne sont pas au torisés su r le serveu r.
T ypiqu ement, ces deu x directives sont cou ramment u tilisées pou r interdire les tentatives de
connexions avec les comptes u tilisateu rs système de votre machine (ainsi, personne ne pou rra se
connecter en tant qu ’u tilisateu r root, Apache, etc., si vou s combinez les deu x directives).
Il y a bien d’au tres directives, mais notre objectif n’est pas de les examiner tou tes.
Nou s vou lons vou s donner les principales à titre d’ou til pou r vou s permettre de comprendre le
fonctionnement de l’ensemble.
Vou s trou verez en référence u n pointeu r vers la liste de tou tes les options possibles.
Une configuration classique de vsftpd
Voyons à présent ce qu i fait le sel de cet ou til, c’est-à-dire comment il est possible de combiner les
directives et même les fichiers de configu ration, au travers de qu elqu es exemples de configu ration
simples ou avancés.
Su pposons dans u n premier temps qu e vou s sou haitiez simplement mettre en place u n serveu r de
fichiers, accessible à tou s (par exemple à l’Internet).
Vou s sou haiterez sans dou te privilégier l’efficacité des transactions et la sécu rité. Votre fichier
vsftpd.conf pou rrait alors ressembler à celu i-ci :
listen=YES
max_clients=200
max_per_ip=4
anonymous_enable=YES
local_enable=NO
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_world_readable_only=YES
connect_from_port_20=YES
hide_ids=YES
4 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
pasv_min_port=50000
pasv_max_port=60000
xferlog_enable=YES
ls_recurse_enable=NO
ascii_download_enable=NO
async_abor_enable=YES
one_process_model=YES
idle_session_timeout=120
data_connection_timeout=300
accept_timeout=60
connect_timeout=60anon_max_rate=50000
Examinons-le en détail :
listen=YES
Le serveu r est positionné en mode standalone, ce qu i est normal pu isqu ’il sera a priori sollicité
fréqu emment.
max_clients=200
200 clients simu ltanés sont acceptés. Les au tres recevront u n message d’erreu r ju squ ’à ce qu ’u ne
place se libère. De la sorte, le serveu r ne sera pas satu ré par les requ êtes.
max_per_ip=4
Chaqu e client ne pou rra ou vrir qu e 4 connexions simu ltanées (c’est le cas par exemple lors de
l’u tilisation d’u n download accelerator). Il n’y au ra donc pas de client qu i satu rera la bande passante.
anonymous_enable=YES
Nou s au torisons les connexions anonymes, ce qu i est normal pu isqu e le serveu r est pu blic.
local_enable=NO
Nou s refu sons les connexions d’u tilisateu rs dotés de compte su r la machine. Seu les les connexions
anonymes seront donc acceptées. Soyons clair : l’idée ici n’est pas d’empêcher vos u tilisateu rs locau x
chéris de se connecter, mais de prévenir des hacks faciles u tilisant les comptes standards présents
su r tou te machine digne de ce nom, comme Apache, gdm ou au tre lp.
write_enable=NO
Personne ne modifie de fichier ni n’écrit su r notre serveu r.
anon_upload_enable=NO
Les u tilisateu rs anonymes (donc les u tilisateu rs du serveu r) ne peu vent pas u ploader de fichier.
anon_mkdir_write_enable=NO
Les u tilisateu rs (anonymes) ne peu vent pas non plu s créer de répertoire.
anon_other_write_enable=NO
Les u tilisateu rs (anonymes) ne peu vent pas non plu s renommer ni su pprimer ni fichier ni répertoire.
anon_world_readable_only=YES
Les u tilisateu rs (anonymes) ne peu vent télécharger qu e les fichiers accessibles en lectu re à tou s.
connect_from_port_20=YES
Nou s acceptons les connexions depu is le port 20 (notre éventu el firewall laisse ce port passer).
hide_ids=YES
T ou s les fichiers et répertoires du serveu r sont montrés comme appartenant à FT P.
pasv_min_port=50000, pasv_max_port=60000
En mode passif, les ports acceptés sont dans la tranche 50000 à 60000. Tou s les au tres sont refu sés
5 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
su r le serveu r et sans dou te au ssi su r le firewall. Qu ’est-ce qu e cette chose-là ? Le mode passif est
celu i dans lequ el le client, au lieu d’envoyer au serveu r le nu méro du port à partir du qu el il sou haite
qu e le serveu r envoie les données, envoie PASV, laissant passivement le serveu r décider qu el port
u tiliser pou r l’envoi de données, habitu ellement le port 20.
Cette directive est par défau t su r Yes, le mode passif est possible (ce qu i est sou vent nécessaire
lorsqu ’u n firewall est présent avant le serveu r. Le mode actif permet en revanche au client d’avoir la
certitu de, pu isqu e c’est lu i qu i décide du port, qu e les données qu ’il reçoit correspondent bien à sa
demande initiale).
xferlog_enable=YES
Nou s logons les transferts.
ls_recurse_enable=NO
Nou s interdisons l’option -R de “ls -R”, qu i consomme trop de ressou rces machine.
ascii_download_enable=NO
Nou s n’envoyons pas les fichiers en mode ASCII.
async_abor_enable=YES
Nou s acceptons la commande async ABOR, pou r certains de nos clients qu i en ont besoin (qu i ? Nou s
ne savons pas, mais le serveu r est pu blic donc nou s ne savons pas qu el client FT P u tilisera notre
visiteu r).
A qu oi sert cette directive étrange ? Elle permet d’activer la commande FT P async ABOR, qu i permet
de stopper u n téléchargement asynchrone en cou rs. Elle est considérée comme complexe et
inélégante, parce qu ’async ABOR produ it des effets différents en fonction des clients (fermetu re de
session, déconnexion, etc.).
C’est pou rqu oi cette directive est par défau t su r No, désactivant le su pport de cette commande.
Certains clients FT P ont cependant besoin d’async ABOR pou r pou voir annu ler u n téléchargement
dans de bonnes conditions. Vou s au rez donc peu t-être besoin de positionner cette directive su r Yes
dans certains cas, et c’est ce qu e nou s choisissons de faire ici, pu isqu e nou s ne savons pas qu el type
de client est su sceptible de se connecter chez nou s.
one_process_model=YES
Si vou s disposez d’u n noyau 2.4 sou s Linu x, vou s pou vez en activant cette fonction générer u n
processu s par connexion. Il s’agit là d’u ne option moins « pu re » en termes de sécu rité, mais qu i
permet u ne performance parfois meilleu re.
N’activez cette fonction, par défau t su r No, qu e si vou s savez ce qu e vou s faites et ce qu e ce
changement impliqu e et par ailleu rs seu lement si votre site reçoit u n grand nombre de connexions
simu ltanées.
C’est peu t-être le cas pou r ce serveu r, nou s l’activons et monitorerons natu rellement la charge
qu ’elle provoqu era.
idle_session_timeout=120
Nou s acceptons 120 secondes d’inactivité de la part du client, au -delà il est rejeté pou r laisser la
place à u n au tre.
data_connection_timeout=300
Si u n transfert est gelé pendant plu s de 300 secondes, nou s considérons qu e le client est
déconnecté ou en échec et clôtu rons la session pou r laisser la place à u n au tre.
accept_timeout=60
Nou s donnons 60 secondes à u n client en mode passif pou r établir sa connexion. Au delà, nou s
clôtu rons pou r laisser la place à u n au tre (60 secondes est largement assez, sau f si le client
rencontre u n problème important, qu i handicapera de tou tes les façons son transfert).
connect_timeout=60
6 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
Nou s donnons le même délai au client qu i se connecte en mode PORT .
anon_max_rate=50000
Nou s au torisons u n débit maximal de 50000 octets par seconde (49 ko/s) pou r les clients.
Sécurité affinée, quatre scenarii
L’exemple qu i précède donne u ne configu ration fonctionnelle, même si bien d’au tres paramètres
pou rraient être ajou tés afin d’accroître le confort qu e vou s pou vez vou loir donner à votre serveu r.
Vsftpd est particu lièrement constru it pou r permettre u ne grande finesse dans le filtrage des
au torisations d’accès.
Donnons-lu i sa pleine mesu re au travers de trois scenarii imaginés par l’équ ipe de développement et
de sécu risation de vsftpd, qu i, s’ils ne collent pas forcément précisément à votre besoin, vou s
donneront assez d’éléments pou r vou s permettre de bâtir la configu ration qu i vou s correspondra le
mieu x, et qu i donnera exactement les droits qu e vou s vou lez au x u tilisateu rs qu e vou s vou lez, avec
u n raffinement dans la précision de la gestion qu i, nu l dou te, vou s ravira !
Première configuration : filtrage par adresses IP
Dans ce scénario, votre serveu r héberge des docu ments qu e vou s vou lez mettre à la disposition
d’u ne partie de votre réseau (par exemple le département comptabilité), mais vou s vou lez qu e
d’au tres u tilisateu rs, pou rtant eu x au ssi su r le LAN, ne pu issent pas les lire (par exemple le
département marketing). Sachant qu e vou s avez « ces facilités avec les serveu rs ».
Votre patron vou s demande en plu s « qu elqu es petits aju stements », qu i consistent à lu i donner, à
lu i tou t seu l, des possibilités de download spéciales et privilégiées et de rédu ire les possibilités des
stagiaires, qu i ont tendance, c’est bien connu , à abu ser du système... Vsftpd sait s’appu yer su r
tcp_wrappers pou r au toriser ou refu ser u ne ou plu sieu rs adresses IP et appliqu er u ne configu ration
spécifiqu e.
1. Support de tcp_wrappers
Cette opération su ppose qu e vsftpd ait été constru it avec le su pport de tcp_wrapper, ce qu i est le
cas des versions rpm et des installations standards. Si la manipu lation qu e nou s indiqu ons ici ne
fonctionne pas dans votre configu ration, alors c’est peu t être qu e tcp_wrapper n’est pas activé dans
votre version de vsftpd. Il vou s su ffit alors d’éditer le fichier bu ilddefs.h et de remplacer #u ndef
VSF_BUILD_T CPWRAPPERS par #define VSF_BUILD_T CPWRAPPERS. Recompilez alors vsftpd et le
su pport sera activé.
T cp_wrapper étant activé, il fau t indiqu er à vsftpd qu e nou s sou haitons nou s appu yer su r lu i pou r le
filtrage. Ceci se fait en ajou tant dans /etc/vsftpd/vsftpd.conf la ligne :
tcp_wrappers=YES
2. Définition d’une politique de filtrage
Reste alors l’étape la plu s importante, la création de la politiqu e de filtrage dans tcp_wrapper.
Elle se fait au travers de deu x fichiers /etc/hosts.allow et /etc/hosts.deny, mais u n seu l fichier est
su ffisant la plu part du temps (pu isqu ’il est possible de préciser deny dans hosts.allow).
Éditons donc /etc/hosts.allow et modifions-le pou r nos paramètres en profitant de l’occasion pou r
7 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
examiner les possibilités de ce filtre :
cat /etc/hosts.allow
vsftpd: 10.0.0.99: setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd_patron.conf
vsftpd: 10.0.1.: DENY
vsftpd: 10.0.72.0/255.255.255.0: setenv VSFTPD_LOAD8CONF /etc/vsftpd/vsftpd_marketing.conf
vsftpd: .compta.maboite.com: setenv VSFTPD_LOAD8CONF /etc/vsftpd/vsftpd_compta.conf
Vou s voyez d’u n cou p d’œil le principe. Chaqu e ligne définit u ne règle, qu i précise u ne cible (u ne
adresse, u n domaine), pou r laqu elle on u tilisera u n fichier de configu ration spécifiqu e. Brillant de
simplicité, non ?
Ainsi, la première ligne décide qu e, pou r l’adresse IP 10.0.0.99 (celle du patron), nou s u tiliserons
pou r vsftpd le fichier de configu ration /etc/vsftpd/vsftpd_patron.conf. Ce fichier de configu ration sera
spécifiqu e, et pou rra contenir tou tes les fleu rs qu e vou s vou drez faire, comme :
max_clients= 0 (le patron ou vre au tant de connexions simu ltanées qu ’il veu t) ;
max_per_ip= 0 (dans ce cas, pu isqu ’il n’y a qu ’u ne IP, c’est la même chose) ;
local_enable=Yes (le patron se connectera avec son compte local) ;
chroot_local_u ser= No (le patron n’est pas chrooté, c’est le comportement par défau t de cette
directive, mais pou rqu oi ne pas le rappeler) ;
write_enable=Yes (le patron peu t écrire) ;
local_max_rate=0 (débit illimité pou r le patron) ;
ftpd_banner=Prenez tou t ce qu ’il vou s fau t et n’ou bliez pas mon au gmentation.
D’au tres aménagements sont bien sû r possibles, relisez la liste des options étendu es qu e nou s
citons en référence et l’inspiration viendra sû rement.
La première ligne indiqu ait u ne adresse IP entière, le filtrage s’appliqu ait donc à elle et elle seu le. La
seconde ligne indiqu e 10.0.1. (notez le point), les trois premiers octets. Dans ce cas, le filtrage
s’appliqu era à l’ensemble du réseau 10.0.1.0 (donc de 10.0.1.1 à 10.0.1.255).
T cp_wrappers su ppose qu e la partie manqu ante prenne tou tes les valeu rs possibles (ainsi, 10.5.
comprendrait les adresses commençant par 10.5, soit de 10.5.0.0 à 10.5.255.255). Ce mode de filtrage
est très pu issant. Dans cet exemple, nou s su pposons qu ’il s’agit des adresses des stagiaires. Ils sont
tou t simplement refu sés su r le serveu r (DENY), bien qu e nou s soyons dans hosts.allow...
La troisième ligne offre u ne logiqu e similaire, mais avec u n adressage classiqu e :
10.0.72.0/255.255.255.0 pou rrait être écrit 10.0.72. dans le paragraphe précédent. L’intérêt de cette
façon de faire est de filtrer des adresses pou r lesqu elles le masqu e est non standard (par exemple
10.0.72.0/255.255.252.0 ou 192.168.0.0/255.255.255.192) : dans ces cas en effet, le filtrage précédent est
inadapté. Nou s u tilisons alors u n au tre fichier de configu ration, vsftpd_marketing.conf, qu i pou rra
être très restrictif, ju squ ’à :
anonymous_enable=No
local_enable=No
Ni les u tilisateu rs dotés de compte ni les anonymes ne peu vent se connecter, bref, c’est l’équ ivalent
d’u n deny... Ce serait peu t-être u n peu excessif dans la réalité...
La qu atrième ligne fonctionne su r u ne logiqu e différente. Il est en effet possible, et même fréqu ent,
qu e les machines de votre réseau soient en DHCP, au qu el cas le filtrage par IP n’est pas idéal.
T cp_wrapper offre au ssi la possibilité de filtrer par le nom. Ainsi, .compta.maboite.com désigne tou s
les noms finissant par .compta.maboite.com, c’est à dire ordi1.compta.maboite.com,
serveu r2.compta.maboite.com, etc.
Nou s pou rrions là au ssi indiqu er u ne machine précise (expert.compta.maboite.com), mais nou s
choisissons de prendre en compte tou t le segment (notez le point en débu t de nom dans
.compta.maboite.com).
Pou r tou s les ordinateu rs du département comptabilité, nou s u tilisons u n fichier de configu ration
nommé vsftpd_compta.conf, et qu i contiendra bien sû r les paramètres qu e vou s vou lez.
Et les au tres ? Ceu x qu i ne sont pas cités dans hosts.allow se verront appliqu er le fichier de
configu ration standard, /etc/vsftpd/vsftpd.conf, qu i pou rra à votre choix être très ou vert ou très
restrictif.
Il ne vou s reste plu s qu ’à redémarrer les services réseau et vsftpd et l’ensemble est fonctionnel.
Bien sû r, les mau vaises langu es diront qu ’il serait possible de contou rner cette sécu rité en spoofant
l’adresse ou le nom d’u n hôte au torisé : c’est vrai et cette évidence est valable pou r tou s les filtres
8 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
basés su r l’adresse ou le nom (u n filtrage su r l’adresse Mac pou rrait être contou rné de la même
façon). Ce filtrage n’empêche pas l’existence d’u n mot de passe, qu i pou rra être très restrictif
(comme nou s l’avons vu plu s hau t avec les directives secu re_email_list_enable et
email_password_file=/etc/vsftpd.email_passwords). Là encore, il est possible de contou rner cette
protection. Mais u n u tilisateu r non au torisé qu i possède à la fois la liste des adresses au torisées et
des mots de passe vou s condu ira sans au cu n dou te à vou s interroger su r la fiabilité globale de votre
politiqu e de sécu rité...
Deuxième configuration : les utilisateurs virtuels
Ju stement, les u tilisateu rs sont capables de tou t... u ne protection su pplémentaire de vsftpd consiste
à faire en sorte qu e le client qu i accède ainsi à votre serveu r ait des pou voirs très limités... l’idée
consiste à créer u n u tilisateu r très particu lier, u n u tilisateu r virtu el, qu i n’au ra donc de droits qu e
dans le cadre de vsftpd.
Pu isqu ’il n’existe pas vraiment su r le système (il n’a pas de mot de passe su r la machine elle-même),
il ne pou rra faire au tre chose qu e... ce qu e vou s vou drez bien qu ’il fasse en tant qu ’u tilisateu r de
votre serveu r FT P : lire, bien sû r, mais pou rqu oi pas au ssi écrire ou créer des fichiers... dès qu ’il
sortira des répertoires qu e vou s au rez au torisés pou r lu i (en tentant par exemple d’écrire ailleu rs,
d’installer u n programme ou de lire au tre chose), donc dès qu ’il tentera d’échapper au cadre du
serveu r vsftpd, le système le rejettera en tant qu ’u tilisateu r inconnu !
Il s’agit là d’u ne protection encore plu s efficace...
Elle s’opère en qu atre étapes : la création d’u ne micro base de données qu i contient les u tilisateu rs
qu e vou s au toriserez, la liaison de PAM avec cette base, la création d’u n u tilisateu r virtu el, vers
lequ el sera mappé tou t u tilisateu r au torisé et le paramétrage de vsftpd pou r lu i donner les droits
qu e vou s vou drez.
1. Création de la base de données
Il s’agit là d’u ne étape délicate si vou s ne maîtrisez pas PAM. Pou r faire simple, PAM est le modu le
d’au thentification le plu s efficace et le plu s développé à ce jou r su r les systèmes Linu x.
Il u tilise u ne base de données qu i contient la liste des u tilisateu rs. Bien sû r, nou s pou rrions créer u n
u tilisateu r et PAM l’intégrerait directement dans sa base de données. Mais ju stement, nou s ne
vou lons pas qu e l’u tilisateu r existe vraiment su r le système !
Nou s ne le créons donc qu e pou r PAM et en dehors de la machine elle-même et de ses commandes
u seradd et au tres...
Pou r ce faire, créons u n fichier, qu i contiendra la liste des u tilisateu rs virtu els qu e nou s vou lons
ajou ter. La règle est : su r la première ligne u n login, su r la seconde le mot de passe correspondant,
su r la troisième u n au tre login, su r la qu atrième son mot de passe, etc. au tant de fois qu e vou s
vou drez ajou ter d’u tilisateu rs. Par exemple, créons le fichier virtu els.txt, qu i contiendra :
Pierre
Password
Toto
1234
Le premier u tilisateu r est pierre, son mot de passe password. Le second toto, son mot de passe 1234
(je sais, c’est u ne idée exécrable d’u tiliser toto et 1234 : c’est ju stement pou r vou s décou rager
d’u tiliser ce fichier tel qu el !).
Créons à partir de ce fichier u n morceau de base de données u tilisable par PAM :
db_load -T -t hash -f virtuels.txt /etc/vsftpd_virtuels.db
9 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
Cette commande doit être lancée en tant qu e root, depu is le répertoire dans lequ el se trou ve votre
fichier virtu els.txt. Elle su ppose qu e vou s ayez le programme Berkeley db installé.
Su r certains systèmes, comme Debian, il arrive qu e cette commande échou e, parce qu e plu sieu rs
versions de Berkeley db sont installées (ne me demandez pas pou rqu oi... peu t-être avez-vou s
recompilé plu sieu rs fois et les différentes éditions de ce programme, sans lequ el au cu ne
au thentification n’est raisonnablement possible, se sont ajou tées sans s’écraser). Il fau t lancer la
version du programme qu ’u tilise le PAM installé, en remplaçant db_load par db3_load ou db4_load...
Pou r plu s d’informations su r ce programme, allez su r : http://www.sleepycat.com/docs/u tility
/index.html.
Dans tou s les cas, cette commande crée le fichier /etc/vsftpd_virtu els.db, qu i contient la même chose
qu e notre fichier virtu els.txt, mais formaté d’u ne façon u tilisable par PAM.
Une bonne idée est de rendre ce fichier accessible par root et lu i seu l :
chmod 600 /etc/vsftpd_virtuels.db
Effacez parallèlement virtu els.txt. Si vou s vou lez le garder pou r conserver la mémoire de ce qu e
vou s avez fait, donnez-lu i les mêmes droits restrictifs qu e pou r /etc/vsftpd_virtu els.db.
2.Création du fichier PAM à partir de cette base de données
L’objectif de cette étape consiste à informer PAM qu ’il fau t u tiliser notre base de données avec
vsftpd... Créez u n fichier vsftpd.pam, qu e vou s positionnerez dans le répertoire
/etc/pam.d. Ce fichier contiendra deu x lignes, du type :
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_virtuels
account required /lib/security/pam_userdb.so db=/etc/vsftpd_virtuels
Elles précisent qu e tant le mot de passe qu e le nom d’u tilisateu r doivent être recherchés par PAM
dans le fichier, de type base de données,
/etc/vsftpd_virtu els (l’extension .db est donc sou s-entendu e). Pu isqu e ce fichier s’appelle vsftpd.pam
et qu ’il est positionné dans /etc/pam.d, il sera pris en compte par PAM à chaqu e gestion des
au torisations pou r le démon vsftpd.
3. Création d’un utilisateur virtuel
Ju squ ’ici, pierre et toto sont deu x u tilisateu rs réels. Mais nou s ne vou lons pas qu ’ils aient de compte
en dehors de vsftpd. Ils n’existeront donc pas su r le système et c’est pou rqu oi nou s avons
contou rné le processu s de création normal pou r ces u tilisateu rs... mais ils ne peu vent pas faire
grand-chose à ce stade !
PAM les reconnaît dans vsftp, mais ils n’ont au cu n droit su r au cu n fichier ni répertoire et ne peu vent
même pas interagir avec le système ! Ils pou rront cependant se connecter et rien d’au tre.
A qu oi servent-ils ? En fait, nou s allons faire en sorte qu ’ils pu issent faire qu elqu e chose, parce qu e
nou s allons les mapper avec u n u tilisateu r du système créé spécialement pou r l’occasion.
Nommons-le virtu elftp.
Ce dernier n’au ra, lu i, au cu n mot de passe su r le système et dépendra donc complètement de
vsftpd... Vou s voyez la bou cle ? pierre et toto ont u n mot de passe mais n’existent pas su r le
système ; virtu elftp existe su r le système, mais, n’ayant pas de mot de passe, ne peu t pas se
connecter...
De la sorte, pierre et Toto peu vent se connecter, mais dès qu ’ils dépassent le cadre limité de ce qu e
vou s au torisez pou r eu x en les sou dant à virtu elftp, ils se retrou vent soit pierre ou Toto, donc
n’existant pas su r le système, soit virtu elftp, donc n’ayant pas de droit de connexion non plu s... Un
peu compliqu é mais diablement sécu risé, n’est-ce pas ?
Créons donc cet u tilisateu r virtu elftp et précisons qu e les fichiers du serveu r FT P seront dans son
répertoire personnel, qu e nou s nommerons siteftp :
useradd -d /home/siteftp virtuelftp
ls -ld /home/siteftp
drwx-----3 virtuelftp virtuelftp
4096 Feb 29 10:34 /home/siteftp
Vou s pou vez à présent positionner des fichiers dans ce répertoire
/home/siteftp, avec par exemple tou ch /home/siteftp/essai.txt...
10 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
4. Paramétrage de vsftpd
Il ne reste plu s qu ’à demander à vsftpd d’u tiliser tou s ces paramétrages, au travers de /etc/vsftpd
/vsftpd.conf. Le fichier pou rrait être du type :
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtuelftp
listen=YES
listen_port=10021
pasv_min_port=30000
pasv_max_port=30999
Dans ce fichier, nou s interdisons natu rellement les u tilisateu rs anonymes et tou s les droits qu ’ils
pou rraient avoir (nou s ne vou lons qu e pierre ou toto) et au torisons les u tilisateu rs locau x (parmi
lesqu els virtu elftp).
Nou s les enfermons dans u ne prison chroot (dans notre cas, /home/siteftp sera vu comme /) et
au torisons les invités, ce qu i est fondamental, parce qu e cette option permet d’activer les
u tilisateu rs virtu els ! Le nom de cet u tilisateu r, qu i figu re ligne su ivante, sera donc bien virtu elftp.
Par ailleu rs, mais ce n’est pas obligatoire, nou s positionnons notre serveu r en mode standalone
(Listen=Yes), en écou te su r u n port particu lier, 10021, au lieu de 21. Il fau dra en plu s qu e nos
u tilisateu rs appellent le bon port pou r pou voir se connecter. Enfin, les ports ou verts seront dans la
tranche 30000 à 30999, ce qu i est u tile si vou s paramétrez u n firewall.
Notre configu ration est prête ! Redémarrez le serveu r vsftpd et essayez u ne connexion ! Vou s allez
voir comment tou t ceci fonctionne :
ftp localhost 10021
Connected to
localhost (127.0.0.1).
220 ready, dude (vsFTPd 1.1.0: beat me, break me)
Name (localhost:loulou): toto
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 „/“
ftp> ls
227 Entering Passive Mode (127,0,0,1,117,135)
150 Here comes the directory listing.
226 Transfer done (but failed to open directory).
ftp> size essai.txt
9 12
ftp>
Dans cet exemple, nou s nou s connectons avec l’u tilisateu r toto et son mot de passe, le serveu r nou s
dit bien qu e nou s sommes à la racine, alors qu e l’emplacement véritable est /home/siteftp.
Observez les commandes et le retou r du serveu r. Le message d’erreu r lors du ls est bien normal
(T ransfer done bu t failed to open directory), pu isqu e le répertoire n’est pas lisible par tou s, ce qu i
est mieu x pou r la sécu rité (vou s pou rriez changer cet état de chose, par exemple en ajou tant
anon_world_readable_only=NO, mais il n’est pas sû r qu e ce confort su pplémentaire soit vraiment
indispensable.
Si vos u tilisateu rs savent ce qu ’ils cherchent, pas besoin de leu r en donner plu s...). En revanche, la
commande size nou s montre qu e nou s avons bien accès à essai.txt.
Par la su ite, chaqu e fois qu e vou s vou drez rajou ter u n u tilisateu r comme pierre ou toto, il vou s
su ffira de refaire les étapes 1 et 2.
Si vou s vou lez assou plir les règles du répertoire d’accu eil, vou s pou vez modifier le fichier vsftpd.conf
en relisant le débu t de cet article ou directement accroître ses droits locau x (par exemple drwx—x--x
pou r en au toriser le listing).
11 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
Troisième configuration, utilisateurs virtuels, suite et encore
plus de sécurité
La configu ration qu i précède est très sécu risée, mais elle présente évidemment u ne limitation :
pierre et toto ont exactement les mêmes droits, ils sont rigou reu sement identiqu es du point de vu e
du serveu r.
Il est possible d’améliorer les choses pou r rendre notre configu ration u ltime, en créant plu sieu rs
niveau x de droits, avec par exemple u n u tilisateu r pierre qu i pou rra lire le contenu d’u n répertoire et
en télécharger qu elqu es fichiers, et u n au tre, toto, qu i lu i au ra plu s de pou voir, avec par exemple le
droit d’u pload en plu s...
Ces configu rations différentes sont possibles parce qu e vsftpd dispose d’u ne option nommée
« configu rabilité u tilisateu r par u tilisateu r » (hou ! l’affreu x barbarisme).
Cette troisième configu ration consiste donc simplement dans u n premier temps à activer cette
option, pu is, dans u n deu xième et troisième temps, à définir les droits de pierre et de toto.
1. Activation de la configurabilité utilisateur par utilisateur
Pou r ce faire, dans le fichier /etc/vsftpd/vsftpd.conf de la configu ration précédente, ajou tez la ligne :
user_config_dir=/etc/vsftpd_user_conf
De la sorte, vou s indiqu ez à vsftpd qu ’il existe u n répertoire (u n répertoire, hein, pas u n fichier)
/etc/vsftpd_u ser_conf (vou s pou vez le nommer différemment si vou s le sou haitez), qu i contiendra les
fichiers de configu ration pou r vsftpd de chaqu e u tilisateu r. Chaqu e fichier portera le nom de
l’u tilisateu r, et contiendra ses paramètres particu liers, qu i seront prioritaires su r les paramètres du
fichier de configu ration général /etc/vsftpd/vsftpd.conf.
S’il n’existe pas de fichier spécifiqu e à l’u tilisateu r, seu l le fichier général sera u tilisé.
Créez le répertoire en qu estion :
mkdir /etc/vsftpd_user_conf
Nou s u tilisons ici la configu ration précédente pou r l’enrichir, mais il va de soi qu e vou s pou rriez
u tiliser cette configu rabilité u tilisateu r par u tilisateu r avec des u tilisateu rs « normau x », connu s su r
le système, comme dans nos exemples du débu t de l’article.
2. Paramétrages pour pierre
Nou s vou lons qu e pierre ait des droits en lectu re su r tou s les répertoires. Dans la configu ration
précédente, ls produ isait u n échec.
Corrigeons ce problème pou r pierre. Créons donc u n fichier /etc/vsftpd_u ser_conf/pierre, qu i
contiendra :
anon_world_readable_only=NO
12 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
De la sorte, nou s au torisons le ls même si le répertoire n’est pas ‘r’ pou r les au tres (il ne contient
pas r dans la position ------r--).
Redémarrez le serveu r et connectez-vou s en tant qu e pierre, vou s verrez qu e ls fonctionne, tandis
qu ’il produ it u n échec à ce stade si vou s êtes toto !
3. Affinage des droits de toto
Nou s vou lons qu e toto pu isse lu i au ssi avoir ls, mais au ssi créer ou u ploader, sans bien sû r tou cher
au x fichiers déjà existants. Créez pou r ce faire u n fichier /etc/vsftpd_u ser_conf/toto qu i contiendra :
anon_world_readable_only=NO
anon_upload_enable=YES
write_enable=YES
La première directive lu i permet le ls, la deu xième et le troisième l’u pload vers le serveu r. toto ne
peu t en revanche pas su pprimer de fichier ni créer de répertoire.
T estez ces configu rations, vou s verrez combien elles sont efficaces !
Vou s voyez qu ’au fond, passer à ce stade u ltime n’est pas beau cou p plu s compliqu é, pu isqu ’il s’agit
au fond simplement, u ne fois la directive de configu rabilité u tilisateu r par u tilisateu r activée, de créer
u n fichier de configu ration cou su main pou r chaqu e u tilisateu r particu lier du système.
Quatrième configuration : les IP virtuelles
Mais bon, vou s n’êtes peu t-être pas paranoïaqu e à ce point et votre sou ci est peu t-être plu s de
disposer d’u n serveu r à tou t faire à peu près bien rangé, qu i sépare bien le LAN de l’Internet par
exemple, qu e de faire du tu ning u tilisateu r par u tilisateu r. Imaginons donc u n dernier cas.
Dans ce scénario, il ne s’agit donc plu s de répondre à u n besoin de filtrage serré, mais d’u ne
configu ration qu i pose des problèmes différents.
Votre serveu r FT P doit répondre à des demandes mu ltiples : il sert de sou rce pou r les drivers qu e
vou s mettez à disposition du grand pu blic, mais au ssi de serveu r pou r qu e les employés pu issent
récu pérer les formu laires commu ns à l’entreprise (demandes de congés et au tres docu ments
préformatés). Il sert enfin à abriter les fichiers d’u n projet de développement pou r la cellu le de
veille...
Vou s n’avez bien sû r pas envie qu e tou t ce petit monde se mélange, qu e le grand pu blic récu père
vos formu laires ou qu e qu iconqu e ait accès au x fichiers stratégiqu es de votre cellu le de veille.
Votre consu ltant en sécu rité vou s dit qu e vou s feriez mieu x d’installer des serveu rs différents et IL
A RAISON.
Mais vou s n’avez pas le bu dget, pas l’organisation qu ’il fau t, etc., bref, vou s êtes cantonné à u ne
seu le machine.
Ce n’est pas grave (en fait si, mais disons plu tôt qu e, dans cette situ ation désagréable, voyons
comment faire en sorte de limiter les cau chemars de vos nu its trop cou rtes) !
Vsftpd offre u ne solu tion pou r vou s : les IP virtu elles. L’idée de ce mécanisme consiste à attribu er
13 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
plu sieu rs adresses IP à votre carte réseau (des alias) et de consacrer chaqu e IP à l’u n des trois sites
FT P qu e vou s vou lez maintenir.
1. Création d’alias réseau
Pou r qu oi faire ? Vou s allez voir. Su pposons qu e votre carte physiqu e ait pou r adresse 10.0.0.10 et
qu ’il s’agisse de la carte eth0.
La façon la plu s simple de créer u ne adresse IP virtu elle consiste à copier le fichier /etc/sysconfig
/network-scripts/ifcfg-eth0, qu i est votre fichier de configu ration de la carte eth0, vers /etc/sysconfig
/network-scripts/ifcfg-eth0:1 (cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/networkscripts/ifcfg-eth0:1). Éditez ensu ite ifcfg-eth0:1.
Il devrait contenir des lignes du type :
DEVICE=eth0
BOOTPROTO=none
BROADCAST=10.255.255.255
IPADDR=10.0.0.10
NETMASK=255.0.0.0
NETWORK=10.0.0.0
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=yes
GATEWAY=10.199.0.254
IPV6INIT=no
Les adresses ne seront sans dou te pas les mêmes, laissez-les telles qu ’elles se présentent dans
votre fichier.
L’opération ne consiste qu ’à modifier les lignes DEVICE et IPADDR, qu i deviendront :
DEVICE=eth0:1
et
IPADDR=10.0.0.11
Enregistrez vos modifications et redémarrez le réseau (service network restart).
Votre carte réseau dispose désormais de deu x adresses, 10.0.0.10 et 10.0.0.11, ce qu e vou s pou vez
vérifier avec la commande ifconfig (si les deu x cartes réseau n’apparaissent pas, vérifiez vos fichiers,
u ne erreu r s’est sû rement glissée lors de votre modification).
De la même façon, nou s créons u n deu xième alias eth0:2, qu i au ra l’adresse 10.0.0.12. Notre carte
réseau a désormais trois adresses.
2. Écoute d’une adresse particulière
Occu pons-nou s à présent du serveu r vsftpd et voyons ce qu e ce merveilleu x ou til permet de faire
avec cette manipu lation.
Il s’agit pou r lu i de créer trois fichiers de configu ration différents, u n pou r chaqu e u tilisation, et de
lancer trois instances de vsftpd ! Lou rd ?
Mais non... certes trois démons écou tent, mais la charge totale des u tilisateu rs reste la même qu ’il y
ait u n processu s ou trois et le su rplu s est faible en termes d’u tilisation de la RAM et du processeu r...
essayez u n top et vou s verrez les démons alterner et u n ps -au x vou s montrera combien la
différence est faible avec u n seu l démon gérant tou s les u tilisateu rs.
En ce qu i concerne les trois configu rations, nou s vou s laissons décider, en fonction des paramètres
qu i précèdent, qu els paramètres vou s vou drez positionner dans chacu n des fichiers.
Nou s nommerons le fichier de configu ration tou t venant, à destination des u tilisateu rs qu i
téléchargent des drivers, /etc/vsftpd/vsftpd.conf.
De la sorte, en l’absence de directive précise, l’u tilisateu r lambda u tilisera ce fichier. Il devra contenir
en revanche obligatoirement les lignes su ivantes :
listen_address = 10.0.0.10
De cette façon, les connexions su r cette IP (l’IP vers laqu elle vou s renvoyez les u tilisateu rs du grand
14 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
pu blic) u tiliseront ce fichier.
Les employés, eu x, connaissent l’IP 10.0.0.11 et vou s pou vez même prendre la précau tion de leu r
dire qu e le port n’est pas 21, mais par exemple 10021...
Créez alors u n second fichier, par exemple /etc/vsftpd/employes.conf, qu i contiendra les paramètres
qu e vou s sou haitez pou r eu x, mais au ssi les lignes :
listen_address = 10.0.0.11
listen_port = 10021
Enfin, le grou pe d’étu de qu i partage des fichiers accèdera à la machine par l’adresse 10.0.0.12, su r le
port qu e vou s vou lez, par exemple 10021 également (mais tou t au tre port est possible).
Créez alors u n fichier /etc/vsftpd/grou pe.conf, qu i contiendra les paramètres qu e vou s sou haitez,
mais également :
listen_address = 10.0.0.12
listen_port = 10021
Il ne reste plu s qu ’à lancer trois instances de vsftpd, qu i chacu ne écou tera u ne des adresses !
Encore u ne fois, ce processu s alou rdit u n peu le serveu r, mais pas d’u ne façon énorme, pu isqu e
chaqu e instance occu pera su rtou t les ressou rces requ ises par chaqu e u tilisateu r connecté...
vsftpd /etc/vsftpd/vsftpd.conf &
vsftpd /etc/vsftpd/employes.conf &
vsftpd /etc/vsftpd/groupe.conf &
Bien sû r, vou s au rez intérêt à positionner ces différents u tilisateu rs dans des répertoires différents,
avec les directives local_root et anon_root qu e nou s avons évoqu ées au débu t de l’article. Par
ailleu rs, cette répartition par adresse IP virtu elle peu t se combiner avec les au tres configu rations
vu es dans ces exemples. Ce dernier scénario est loin des exemples extrêmes qu i précèdent, pu isqu ’il
donne l’impression d’être facile à contou rner. Un u tilisateu r disposant de la bonne adresse (10.0.0.12
par exemple) pou rra tenter u ne connexion vers le répertoire du grou pe... encore fau t-il qu ’il ait le
bon login et mot de passe... comme plu s hau t, s’il a tou tes les informations et qu ’il n’est pas su pposé
les avoir, il fau drait sans dou te remettre à plat la politiqu e globale de sécu rité.
Conclusion
Nou s avons essayé dans cet article de vou s proposer plu sieu rs configu rations qu i vou s permettront,
en les combinant, de créer votre propre serveu r. Un bon moyen de les combiner consiste à les
essayer su r u n serveu r de test.
Pendant qu elqu es temps, chaqu e fois qu ’u n droit particu lier doit être donné, cependant qu e vou s
agirez su r le vrai serveu r au niveau u tilisateu r et répertoire, demandez-vou s comment il serait
possible, su r le serveu r de test, d’abou tir au même résu ltat en modifiant le fichier de configu ration
ou en créant u ne configu ration spécifiqu e. Vou s constaterez rapidement qu e la forêt d’options
disponibles pou r vsftpd et sa capacité à accepter plu sieu rs fichiers de configu ration différents lu i
donnent u ne pu issance et u ne sou plesse qu i lu i font mériter sa place en tête du hit parade des
serveu rs dou ble S (simple mais sû r)...
Références
Le site de référence : http://vsftpd.beasts.org/
Un site d’astu ces : http://www.vsftpdrocks.org/faq/
T ou tes les directives tradu ites en français : http://www.walkonthegrass.net/tu toriels/Linu x/vsftpd
Les mêmes dans la langu e de Shakespeare : http://vsftpd.beasts.org/vsftpd_conf.html
Retrou vez cet article dans : Linu x Magazine Hors série 21
Posté par (La rédaction) | Signatu re : Jérôme Henry | Article paru dans
Laissez une réponse
15 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
Vou s devez avoir ou vert u ne session pou r écrire u n commentaire.
« Précédent Aller au contenu »
Identifiez-vou s
Inscription
S'abonner à UNIX Garden
Exp ert en
Virtualisatio n
VMware, Hyper-V,
Citrix XenServer Audit,
Déploiement et Support
www.a rumte c.ne t/virtua lis a tion
Virtualisez vo s
serveurs
Virtualis ez Linux,
Windows et Netware
s ur une plate forme
commune
Nove ll.com/s e rve urvirtua lis a tion
Serveur SIP g ratuit 3CX
Ins tallation/configuration
faciles Obtenez un 3CX
VOIP PABX Windows
www.3CX.f r
Rép arer le Reg istre
d u PC
Réparer la Bas e de
Regis tre.
Téléchargement & Scan
Gratuit !
Qua d-Cle a ne r.com/Cle a nRe gis tryErr
Maig rir : 16 kg / mo is
Mincir rapide s ans effet
yoyo ! Brûlez la
grais s e. 100%
rembours é.
ma igrir.e la n-s il.f r
Articles de 1ère page
Introdu ction à Ru by on Rails
Linu x Pratiqu e HS N°17 - Mars/Avril 2009 - Chez votre marchand de jou rnau x
88 miles à l’heu re !
Développement et mise en place d’u n démon Unix
Calcu ler ses rendu s Blender en clu ster ou comment faire sa propre « render farm » avec
DrQu eu e
T echnologie rootkit sou s Linu x/Unix
CMake : la relève dans la constru ction de projets
Des petits sondages pou r améliorer nos magazines
Linu x Embarqu é pou r tou s !
Problématiqu e de consolidation et atteinte des objectifs de niveau de service (SLO) avec Xen
16 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
Op T eams.co m
Intégrateur VMware
Cons olidation - PRA Haute Dis po
www.opte a ms .com
Sécurité d es Pme/Pmi
Protégez le coeur de
votre s ociété Serveurs
back-up Blindés ,
ignifugés
www.db6.f r
Pro tég er serveur
virtuel
Haute Dis ponibilité et
PRA pour les
environnements virtuels
f r.double ta ke .com
Serveur Virtuel 19,90€
HT
Trafic illimité, CPU
burs table Equipé des
logiciels n° 1 au monde
!
www.nuxit.com
Serveurs Lo ad
b alancing
s olutions mutualis és
ou dédiés s upport 24/7 haute dis ponibilité
www.e la s s a r.com
Actu ellement en kiosqu e :
17 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
Catégories
Administration réseau
Administration système
Agenda-Interview
Au dio-vidéo
Bu reau tiqu e
Comprendre
Distribu tion
Embarqu é
Environnement de bu reau
Graphisme
Jeu x
Matériel
News
Programmation
Réfléchir
Sécu rité
Utilitaires
Web
Articles secondaires
30/10/2008
Google Gears : les services de Google offline
Lancé à l’occasion du Google Developer Day 2007 (le 31 mai dernier), Google Gears est u ne
extension open sou rce pou r Firefox et Internet Explorer permettant de continu er à accéder à
des services et applications Google, même si l’on est déconnecté....
Voir l'article...
7/8/2008
T rois qu estions à...
Alexis Nikichine, développeu r chez IDM, la société qu i a conçu l’interface et le moteu r de
recherche de l’EHM....
Voir l'article...
11/7/2008
Protéger u ne page avec u n mot de passe
En général, le problème n’est pas de protéger u ne page, mais de protéger le répertoire qu i la
contient. Avec Apache, vou s pou vez mettre u n fichier .htaccess dans le répertoire à protéger....
Voir l'article...
6/7/2008
hypermail : Conversion mbox vers HT ML
Comment conserver tou s vos échanges de mails, ou du moins, tou s vos mails reçu s depu is des
années ? mbox, maildir, texte… les formats ne manqu ent pas. ...
Voir l'article...
6/7/2008
iozone3 : Benchmark de disqu e
En fonction de l’u tilisation de votre système, et dans bien des cas, les performances des disqu es
et des systèmes de fichiers sont très importantes....
Voir l'article...
1/7/2008
18 sur 19
13.02.2009 20:25
Quatre serveurs FT P hyper sécurisés avec vsftpd...
http://www.unixgarden.com/index.php/securite/qu...
Au gmentez le trafic su r votre blog !
Google Blog Search (http://blogsearch.google.fr/) est u n moteu r de recherche consacré au x
blogs, l’u n des nombreu x services proposés par la célèbre firme californienne....
Voir l'article...
GNU/Linux Magazine
GNU/Linu x Magazine N°113 - Février 2009 - Chez votre marchand de jou rnau x
Édito : GNU/Linu x Magazine 113
Un petit sondage pou r améliorer nos magazines
GNU/Linu x Magazine HS N°40 - Janvier/Février 2009 - Chez votre marchand de jou rnau x
Edito : GNU/Linu x Magazine HS 40
GNU/Linux Pratique
Linu x Pratiqu e HS N°17 - Mars/Avril 2009 - Chez votre marchand de jou rnau x
Édito : Linu x Pratiqu e HS N°17
Linu x Pratiqu e HS 17 - Commu niqu é de presse
Linu x Pratiqu e Essentiel N°6 - Février/Mars 2009 - Chez votre marchand de jou rnau x
Édito : Linu x Pratiqu e Essentiel N°6
MISC Magazine
Un petit sondage pou r améliorer nos magazines
MISC N°41 : La cybercriminalité …ou qu and le net se met au crime organisé - Janvier/Février
2009 - Chez votre marchand de jou rnau x
Édito : Misc 41
MISC 41 - Commu niqu é de presse
Les Éditions Diamond adhèrent à l’APRIL !
© 2007 - 2009 UNIX Garden. T ou s droits réservés .
19 sur 19
13.02.2009 20:25

Documents pareils