Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
logiciel:internet:ftp:vsftpd:exemples:start [2020/12/15 09:40] – ↷ Page déplacée de logiciel:internet:vsftpd:exemples:start à logiciel:internet:ftp:vsftpd:exemples:start adminlogiciel:internet:ftp:vsftpd:exemples:start [2022/08/13 22:27] (Version actuelle) – modification externe 127.0.0.1
Ligne 3: Ligne 3:
 ====== Vsftpd : cinq exemples de configuration ====== ====== Vsftpd : cinq exemples de configuration ======
  
-====== Une configuration classique ======+===== Une configuration classique =====
  
 Supposons que vous souhaitez mettre en place un serveur de fichiers, accessible à tous (par exemple par Internet). Votre fichier vsftpd.conf pourrait alors ressembler à ceci : Supposons que vous souhaitez mettre en place un serveur de fichiers, accessible à tous (par exemple par Internet). Votre fichier vsftpd.conf pourrait alors ressembler à ceci :
Ligne 37: Ligne 37:
 Le serveur est positionné en mode standalone, ce qui est normal puisqu’il sera a priori sollicité fréquemment. Le serveur est positionné en mode standalone, ce qui est normal puisqu’il sera a priori sollicité fréquemment.
  
-  max_clients=200+  max_clients=200
   : 200 clients simultanés sont acceptés. Les autres recevront un message d’erreur jusqu’à ce qu’une place se libère. De la sorte, le serveur ne sera pas saturé par les requêtes.   : 200 clients simultanés sont acceptés. Les autres recevront un message d’erreur jusqu’à ce qu’une place se libère. De la sorte, le serveur ne sera pas saturé par les requêtes.
-  max_per_ip=4+  max_per_ip=4
   : Chaque client ne pourra ouvrir que 4 connexions simultanées. Il n’y aura donc pas de client qui saturera la bande passante.   : Chaque client ne pourra ouvrir que 4 connexions simultanées. Il n’y aura donc pas de client qui saturera la bande passante.
-  anonymous_enable=YES+  anonymous_enable=YES
   : Nous autorisons les connexions anonymes, ce qui est normal puisque le serveur est public.   : Nous autorisons les connexions anonymes, ce qui est normal puisque le serveur est public.
-  local_enable=NO+  local_enable=NO
   : Nous refusons les connexions d’utilisateurs dotés de compte sur la machine. Seules les connexions anonymes seront donc acceptées. Soyons clair : l’idée ici n’est pas d’empêcher vos utilisateurs locaux chéris de se connecter, mais de prévenir des hacks faciles utilisant les comptes standards présents sur toute machine digne de ce nom, comme Apache, gdm ou autre lp.   : Nous refusons les connexions d’utilisateurs dotés de compte sur la machine. Seules les connexions anonymes seront donc acceptées. Soyons clair : l’idée ici n’est pas d’empêcher vos utilisateurs locaux chéris de se connecter, mais de prévenir des hacks faciles utilisant les comptes standards présents sur toute machine digne de ce nom, comme Apache, gdm ou autre lp.
-  write_enable=NO+  write_enable=NO
   : Personne ne modifie de fichier ni n’écrit sur notre serveur.   : Personne ne modifie de fichier ni n’écrit sur notre serveur.
-  anon_upload_enable=NO+  anon_upload_enable=NO
   : Les utilisateurs anonymes (donc les utilisateurs du serveur) ne peuvent pas uploader de fichier.   : Les utilisateurs anonymes (donc les utilisateurs du serveur) ne peuvent pas uploader de fichier.
-  anon_mkdir_write_enable=NO+  anon_mkdir_write_enable=NO
   : Les utilisateurs (anonymes) ne peuvent pas non plus créer de répertoire.   : Les utilisateurs (anonymes) ne peuvent pas non plus créer de répertoire.
-  anon_other_write_enable=NO+  anon_other_write_enable=NO
   : Les utilisateurs (anonymes) ne peuvent pas non plus renommer ni supprimer ni fichier ni répertoire.   : Les utilisateurs (anonymes) ne peuvent pas non plus renommer ni supprimer ni fichier ni répertoire.
-  anon_world_readable_only=YES+  anon_world_readable_only=YES
   : Les utilisateurs (anonymes) ne peuvent télécharger que les fichiers accessibles en lecture à tous.   : Les utilisateurs (anonymes) ne peuvent télécharger que les fichiers accessibles en lecture à tous.
-  connect_from_port_20=YES+  connect_from_port_20=YES
   : Nous acceptons les connexions depuis le port 20 (notre éventuel firewall laisse ce port passer).   : Nous acceptons les connexions depuis le port 20 (notre éventuel firewall laisse ce port passer).
-  hide_ids=YES+  hide_ids=YES
   : Tous les fichiers et répertoires du serveur sont montrés comme appartenant à FTP.   : Tous les fichiers et répertoires du serveur sont montrés comme appartenant à FTP.
-  pasv_min_port=50000, pasv_max_port=60000+  pasv_min_port=50000, pasv_max_port=60000
   : En mode passif, les ports acceptés sont dans la tranche 50000 à 60000. Tous les autres sont refusés sur le serveur et sans doute aussi sur le firewall. Qu’est-ce que cette chose-là ? Le mode passif est celui dans lequel le client, au lieu d’envoyer au serveur le numéro du port à partir duquel il souhaite que le serveur envoie les données, envoie PASV, laissant passivement le serveur décider quel port utiliser pour l’envoi de données, habituellement le port 20.\\ Cette directive est par défaut sur Yes, le mode passif est possible (ce qui est souvent nécessaire lorsqu’un firewall est présent avant le serveur. Le mode actif permet en revanche au client d’avoir la certitude, puisque c’est lui qui décide du port, que les données qu’il reçoit correspondent bien à sa demande initiale).   : En mode passif, les ports acceptés sont dans la tranche 50000 à 60000. Tous les autres sont refusés sur le serveur et sans doute aussi sur le firewall. Qu’est-ce que cette chose-là ? Le mode passif est celui dans lequel le client, au lieu d’envoyer au serveur le numéro du port à partir duquel il souhaite que le serveur envoie les données, envoie PASV, laissant passivement le serveur décider quel port utiliser pour l’envoi de données, habituellement le port 20.\\ Cette directive est par défaut sur Yes, le mode passif est possible (ce qui est souvent nécessaire lorsqu’un firewall est présent avant le serveur. Le mode actif permet en revanche au client d’avoir la certitude, puisque c’est lui qui décide du port, que les données qu’il reçoit correspondent bien à sa demande initiale).
-  xferlog_enable=YES+  xferlog_enable=YES
   : Nous logons les transferts.   : Nous logons les transferts.
-  ls_recurse_enable=NO+  ls_recurse_enable=NO
   : Nous interdisons l’option -R de “ls -R”, qui consomme trop de ressources machine.   : Nous interdisons l’option -R de “ls -R”, qui consomme trop de ressources machine.
-  ascii_download_enable=NO+  ascii_download_enable=NO
   : Nous n’envoyons pas les fichiers en mode ASCII.   : Nous n’envoyons pas les fichiers en mode ASCII.
-  async_abor_enable=YES+  async_abor_enable=YES
   : Nous acceptons la commande async ABOR, pour certains de nos clients qui en ont besoin (qui ? Nous ne savons pas, mais le serveur est public donc nous ne savons pas quel client FTP utilisera notre visiteur).\\ A quoi sert cette directive étrange ? Elle permet d’activer la commande FTP async ABOR, qui permet de stopper un téléchargement asynchrone en cours. Elle est considérée comme complexe et inélégante, parce qu’async ABOR produit des effets différents en fonction des clients (fermeture de session, déconnexion, etc.).\\ C’est pourquoi cette directive est par défaut sur No, désactivant le support de cette commande. Certains clients FTP ont cependant besoin d’async ABOR pour pouvoir annuler un téléchargement dans de bonnes conditions. Vous aurez donc peut-être besoin de positionner cette directive sur Yes dans certains cas, et c’est ce que nous choisissons de faire ici, puisque nous ne savons pas quel type de client est susceptible de se connecter chez nous.   : Nous acceptons la commande async ABOR, pour certains de nos clients qui en ont besoin (qui ? Nous ne savons pas, mais le serveur est public donc nous ne savons pas quel client FTP utilisera notre visiteur).\\ A quoi sert cette directive étrange ? Elle permet d’activer la commande FTP async ABOR, qui permet de stopper un téléchargement asynchrone en cours. Elle est considérée comme complexe et inélégante, parce qu’async ABOR produit des effets différents en fonction des clients (fermeture de session, déconnexion, etc.).\\ C’est pourquoi cette directive est par défaut sur No, désactivant le support de cette commande. Certains clients FTP ont cependant besoin d’async ABOR pour pouvoir annuler un téléchargement dans de bonnes conditions. Vous aurez donc peut-être besoin de positionner cette directive sur Yes dans certains cas, et c’est ce que nous choisissons de faire ici, puisque nous ne savons pas quel type de client est susceptible de se connecter chez nous.
-  one_process_model=YES+  one_process_model=YES
   : Si vous disposez d’un noyau 2.4 sous Linux, vous pouvez en activant cette fonction générer un processus par connexion. Il s’agit là d’une option moins " pure " en termes de sécurité, mais qui permet une performance parfois meilleure.\\ N’activez cette fonction, par défaut sur No, que si vous savez ce que vous faites et ce que ce changement implique et par ailleurs seulement si votre site reçoit un grand nombre de connexions simultanées.\\ C’est peut-être le cas pour ce serveur, nous l’activons et monitorerons naturellement la charge qu’elle provoquera.   : Si vous disposez d’un noyau 2.4 sous Linux, vous pouvez en activant cette fonction générer un processus par connexion. Il s’agit là d’une option moins " pure " en termes de sécurité, mais qui permet une performance parfois meilleure.\\ N’activez cette fonction, par défaut sur No, que si vous savez ce que vous faites et ce que ce changement implique et par ailleurs seulement si votre site reçoit un grand nombre de connexions simultanées.\\ C’est peut-être le cas pour ce serveur, nous l’activons et monitorerons naturellement la charge qu’elle provoquera.
-  idle_session_timeout=120+  idle_session_timeout=120
   : Nous acceptons 120 secondes d’inactivité de la part du client, au-delà il est rejeté pour laisser la place à un autre.   : Nous acceptons 120 secondes d’inactivité de la part du client, au-delà il est rejeté pour laisser la place à un autre.
-  data_connection_timeout=300+  data_connection_timeout=300
   : Si un transfert est gelé pendant plus de 300 secondes, nous considérons que le client est déconnecté ou en échec et clôturons la session pour laisser la place à un autre.   : Si un transfert est gelé pendant plus de 300 secondes, nous considérons que le client est déconnecté ou en échec et clôturons la session pour laisser la place à un autre.
-  accept_timeout=60+  accept_timeout=60
   : Nous donnons 60 secondes à un client en mode passif pour établir sa connexion. Au delà, nous clôturons pour laisser la place à un autre (60 secondes est largement assez, sauf si le client rencontre un problème important, qui handicapera de toutes les façons son transfert).   : Nous donnons 60 secondes à un client en mode passif pour établir sa connexion. Au delà, nous clôturons pour laisser la place à un autre (60 secondes est largement assez, sauf si le client rencontre un problème important, qui handicapera de toutes les façons son transfert).
-  connect_timeout=60+  connect_timeout=60
   : Nous donnons le même délai au client qui se connecte en mode PORT.   : Nous donnons le même délai au client qui se connecte en mode PORT.
-  anon_max_rate=50000+  anon_max_rate=50000
   : Nous autorisons un débit maximal de 50000 octets par seconde (49 ko/s) pour les clients.   : Nous autorisons un débit maximal de 50000 octets par seconde (49 ko/s) pour les clients.
  
-====== Deuxième configuration : filtrage par adresses IP ======+===== Deuxième configuration : filtrage par adresses IP =====
  
 Dans ce scénario, votre serveur héberge des documents que vous voulez mettre à la disposition d’une partie de votre réseau (par exemple le département comptabilité), mais vous voulez que d’autres utilisateurs, pourtant eux aussi sur le LAN, ne puissent pas les lire (par exemple le département marketing). Sachant que vous avez " ces facilités avec les serveurs ". Dans ce scénario, votre serveur héberge des documents que vous voulez mettre à la disposition d’une partie de votre réseau (par exemple le département comptabilité), mais vous voulez que d’autres utilisateurs, pourtant eux aussi sur le LAN, ne puissent pas les lire (par exemple le département marketing). Sachant que vous avez " ces facilités avec les serveurs ".
Ligne 88: Ligne 88:
 Votre patron vous demande en plus " quelques petits ajustements ", qui consistent à lui donner, à lui tout seul, des possibilités de download spéciales et privilégiées et de réduire les possibilités des stagiaires, qui ont tendance, c’est bien connu, à abuser du système... Vsftpd sait s’appuyer sur tcp_wrappers pour autoriser ou refuser une ou plusieurs adresses IP et appliquer une configuration spécifique. Votre patron vous demande en plus " quelques petits ajustements ", qui consistent à lui donner, à lui tout seul, des possibilités de download spéciales et privilégiées et de réduire les possibilités des stagiaires, qui ont tendance, c’est bien connu, à abuser du système... Vsftpd sait s’appuyer sur tcp_wrappers pour autoriser ou refuser une ou plusieurs adresses IP et appliquer une configuration spécifique.
  
-===== Support de tcp_wrappers =====+==== Support de tcp_wrappers ====
  
 Cette opération suppose que vsftpd ait été construit avec le support de tcp_wrapper, ce qui est le cas des versions rpm et des installations standards. Si la manipulation que nous indiquons ici ne fonctionne pas dans votre configuration, alors c’est peut être que tcp_wrapper n’est pas activé dans votre version de vsftpd. Il vous suffit alors d’éditer le fichier builddefs.h et de remplacer #undef VSF_BUILD_TCPWRAPPERS par #define VSF_BUILD_TCPWRAPPERS. Recompilez alors vsftpd et le support sera activé. Cette opération suppose que vsftpd ait été construit avec le support de tcp_wrapper, ce qui est le cas des versions rpm et des installations standards. Si la manipulation que nous indiquons ici ne fonctionne pas dans votre configuration, alors c’est peut être que tcp_wrapper n’est pas activé dans votre version de vsftpd. Il vous suffit alors d’éditer le fichier builddefs.h et de remplacer #undef VSF_BUILD_TCPWRAPPERS par #define VSF_BUILD_TCPWRAPPERS. Recompilez alors vsftpd et le support sera activé.
Ligne 96: Ligne 96:
   tcp_wrappers=YES   tcp_wrappers=YES
  
-===== Définition d’une politique de filtrage =====+==== Définition d’une politique de filtrage ====
  
 Reste alors l’étape la plus importante, la création de la politique de filtrage dans tcp_wrapper. Reste alors l’étape la plus importante, la création de la politique de filtrage dans tcp_wrapper.
Ligne 145: Ligne 145:
 Bien sûr, les mauvaises langues diront qu’il serait possible de contourner cette sécurité en spoofant l’adresse ou le nom d’un hôte autorisé : c’est vrai et cette évidence est valable pour tous les filtres basés sur l’adresse ou le nom (un filtrage sur l’adresse Mac pourrait être contourné de la même façon). Ce filtrage n’empêche pas l’existence d’un mot de passe, qui pourra être très restrictif (comme nous l’avons vu plus haut avec les directives secure_email_list_enable et email_password_file=/etc/vsftpd.email_passwords). Là encore, il est possible de contourner cette protection. Mais un utilisateur non autorisé qui possède à la fois la liste des adresses autorisées et des mots de passe vous conduira sans aucun doute à vous interroger sur la fiabilité globale de votre politique de sécurité... Bien sûr, les mauvaises langues diront qu’il serait possible de contourner cette sécurité en spoofant l’adresse ou le nom d’un hôte autorisé : c’est vrai et cette évidence est valable pour tous les filtres basés sur l’adresse ou le nom (un filtrage sur l’adresse Mac pourrait être contourné de la même façon). Ce filtrage n’empêche pas l’existence d’un mot de passe, qui pourra être très restrictif (comme nous l’avons vu plus haut avec les directives secure_email_list_enable et email_password_file=/etc/vsftpd.email_passwords). Là encore, il est possible de contourner cette protection. Mais un utilisateur non autorisé qui possède à la fois la liste des adresses autorisées et des mots de passe vous conduira sans aucun doute à vous interroger sur la fiabilité globale de votre politique de sécurité...
  
-====== Troisième configuration : les utilisateurs virtuels ======+===== Troisième configuration : les utilisateurs virtuels =====
  
 Justement, les utilisateurs sont capables de tout... une protection supplémentaire de vsftpd consiste à faire en sorte que le client qui accède ainsi à votre serveur ait des pouvoirs très limités... l’idée consiste à créer un utilisateur très particulier, un utilisateur virtuel, qui n’aura donc de droits que dans le cadre de vsftpd. Justement, les utilisateurs sont capables de tout... une protection supplémentaire de vsftpd consiste à faire en sorte que le client qui accède ainsi à votre serveur ait des pouvoirs très limités... l’idée consiste à créer un utilisateur très particulier, un utilisateur virtuel, qui n’aura donc de droits que dans le cadre de vsftpd.
Ligne 155: Ligne 155:
 Elle s’opère en quatre étapes : la création d’une micro base de données qui contient les utilisateurs que vous autoriserez, la liaison de PAM avec cette base, la création d’un utilisateur virtuel, vers lequel sera mappé tout utilisateur autorisé et le paramétrage de vsftpd pour lui donner les droits que vous voudrez. Elle s’opère en quatre étapes : la création d’une micro base de données qui contient les utilisateurs que vous autoriserez, la liaison de PAM avec cette base, la création d’un utilisateur virtuel, vers lequel sera mappé tout utilisateur autorisé et le paramétrage de vsftpd pour lui donner les droits que vous voudrez.
  
-===== Création de la base de données =====+==== Création de la base de données ====
  
 Il s’agit là d’une étape délicate si vous ne maîtrisez pas PAM. Pour faire simple, PAM est le module d’authentification le plus efficace et le plus développé à ce jour sur les systèmes Linux. Il s’agit là d’une étape délicate si vous ne maîtrisez pas PAM. Pour faire simple, PAM est le module d’authentification le plus efficace et le plus développé à ce jour sur les systèmes Linux.
Ligne 192: Ligne 192:
 Effacez parallèlement virtuels.txt. Si vous voulez le garder pour conserver la mémoire de ce que vous avez fait, donnez-lui les mêmes droits restrictifs que pour /etc/vsftpd_virtuels.db. Effacez parallèlement virtuels.txt. Si vous voulez le garder pour conserver la mémoire de ce que vous avez fait, donnez-lui les mêmes droits restrictifs que pour /etc/vsftpd_virtuels.db.
  
-===== Création du fichier PAM à partir de cette base de données =====+==== Création du fichier PAM à partir de cette base de données ====
  
 L’objectif de cette étape consiste à informer PAM qu’il faut utiliser notre base de données avec vsftpd... Créez un fichier vsftpd.pam, que vous positionnerez dans le répertoire /etc/pam.d. Ce fichier contiendra deux lignes, du type : L’objectif de cette étape consiste à informer PAM qu’il faut utiliser notre base de données avec vsftpd... Créez un fichier vsftpd.pam, que vous positionnerez dans le répertoire /etc/pam.d. Ce fichier contiendra deux lignes, du type :
Ligne 202: Ligne 202:
 /etc/vsftpd_virtuels (l’extension .db est donc sous-entendue). Puisque ce fichier s’appelle vsftpd.pam et qu’il est positionné dans /etc/pam.d, il sera pris en compte par PAM à chaque gestion des autorisations pour le démon vsftpd. /etc/vsftpd_virtuels (l’extension .db est donc sous-entendue). Puisque ce fichier s’appelle vsftpd.pam et qu’il est positionné dans /etc/pam.d, il sera pris en compte par PAM à chaque gestion des autorisations pour le démon vsftpd.
  
-===== Création d’un utilisateur virtuel =====+==== Création d’un utilisateur virtuel ====
  
 Jusqu’ici, pierre et toto sont deux utilisateurs réels. Mais nous ne voulons pas qu’ils aient de compte en dehors de vsftpd. Ils n’existeront donc pas sur le système et c’est pourquoi nous avons contourné le processus de création normal pour ces utilisateurs... mais ils ne peuvent pas faire grand-chose à ce stade ! Jusqu’ici, pierre et toto sont deux utilisateurs réels. Mais nous ne voulons pas qu’ils aient de compte en dehors de vsftpd. Ils n’existeront donc pas sur le système et c’est pourquoi nous avons contourné le processus de création normal pour ces utilisateurs... mais ils ne peuvent pas faire grand-chose à ce stade !
Ligne 223: Ligne 223:
   /home/siteftp, avec par exemple touch /home/siteftp/essai.txt...   /home/siteftp, avec par exemple touch /home/siteftp/essai.txt...
  
-=== Paramétrage de vsftpd ===+== Paramétrage de vsftpd ==
  
 Il ne reste plus qu’à demander à vsftpd d’utiliser tous ces paramétrages, au travers de /etc/vsftpd/vsftpd.conf. Le fichier pourrait être du type : Il ne reste plus qu’à demander à vsftpd d’utiliser tous ces paramétrages, au travers de /etc/vsftpd/vsftpd.conf. Le fichier pourrait être du type :
Ligne 277: Ligne 277:
 Si vous voulez assouplir les règles du répertoire d’accueil, vous pouvez modifier le fichier vsftpd.conf en relisant le début de cet article ou directement accroître ses droits locaux (par exemple drwx—x--x pour en autoriser le listing). Si vous voulez assouplir les règles du répertoire d’accueil, vous pouvez modifier le fichier vsftpd.conf en relisant le début de cet article ou directement accroître ses droits locaux (par exemple drwx—x--x pour en autoriser le listing).
  
-====== Quatrième configuration : utilisateurs virtuels, suite et encore plus de sécurité ======+===== Quatrième configuration : utilisateurs virtuels, suite et encore plus de sécurité =====
  
 La configuration qui précède est très sécurisée, mais elle présente évidemment une limitation : pierre et toto ont exactement les mêmes droits, ils sont rigoureusement identiques du point de vue du serveur. La configuration qui précède est très sécurisée, mais elle présente évidemment une limitation : pierre et toto ont exactement les mêmes droits, ils sont rigoureusement identiques du point de vue du serveur.
Ligne 287: Ligne 287:
 Cette troisième configuration consiste donc simplement dans un premier temps à activer cette option, puis, dans un deuxième et troisième temps, à définir les droits de pierre et de toto. Cette troisième configuration consiste donc simplement dans un premier temps à activer cette option, puis, dans un deuxième et troisième temps, à définir les droits de pierre et de toto.
  
-===== Activation de la configurabilité utilisateur par utilisateur =====+==== Activation de la configurabilité utilisateur par utilisateur ====
  
 Pour ce faire, dans le fichier /etc/vsftpd/vsftpd.conf de la configuration précédente, ajoutez la ligne : Pour ce faire, dans le fichier /etc/vsftpd/vsftpd.conf de la configuration précédente, ajoutez la ligne :
Ligne 304: Ligne 304:
 Nous utilisons ici la configuration précédente pour l’enrichir, mais il va de soi que vous pourriez utiliser cette configurabilité utilisateur par utilisateur avec des utilisateurs " normaux ", connus sur le système, comme dans nos exemples du début de l’article. Nous utilisons ici la configuration précédente pour l’enrichir, mais il va de soi que vous pourriez utiliser cette configurabilité utilisateur par utilisateur avec des utilisateurs " normaux ", connus sur le système, comme dans nos exemples du début de l’article.
  
-===== Paramétrages pour pierre =====+==== Paramétrages pour pierre ====
  
 Nous voulons que pierre ait des droits en lecture sur tous les répertoires. Dans la configuration précédente, ls produisait un échec. Nous voulons que pierre ait des droits en lecture sur tous les répertoires. Dans la configuration précédente, ls produisait un échec.
Ligne 315: Ligne 315:
 Redémarrez le serveur et connectez-vous en tant que pierre, vous verrez que ls fonctionne, tandis qu’il produit un échec à ce stade si vous êtes toto ! Redémarrez le serveur et connectez-vous en tant que pierre, vous verrez que ls fonctionne, tandis qu’il produit un échec à ce stade si vous êtes toto !
  
-===== Affinage des droits de toto =====+==== Affinage des droits de toto ====
  
 Nous voulons que toto puisse lui aussi avoir ls, mais aussi créer ou uploader, sans bien sûr toucher aux fichiers déjà existants. Créez pour ce faire un fichier /etc/vsftpd_user_conf/toto qui contiendra : Nous voulons que toto puisse lui aussi avoir ls, mais aussi créer ou uploader, sans bien sûr toucher aux fichiers déjà existants. Créez pour ce faire un fichier /etc/vsftpd_user_conf/toto qui contiendra :
Ligne 329: Ligne 329:
 Vous voyez qu’au fond, passer à ce stade ultime n’est pas beaucoup plus compliqué, puisqu’il s’agit au fond simplement, une fois la directive de configurabilité utilisateur par utilisateur activée, de créer un fichier de configuration cousu main pour chaque utilisateur particulier du système. Vous voyez qu’au fond, passer à ce stade ultime n’est pas beaucoup plus compliqué, puisqu’il s’agit au fond simplement, une fois la directive de configurabilité utilisateur par utilisateur activée, de créer un fichier de configuration cousu main pour chaque utilisateur particulier du système.
  
-====== Cinquième configuration : les IP virtuelles ======+===== Cinquième configuration : les IP virtuelles =====
  
 Mais bon, vous n’êtes peut-être pas paranoïaque à ce point et votre souci est peut-être plus de disposer d’un serveur à tout faire à peu près bien rangé, qui sépare bien le LAN de l’Internet par exemple, que de faire du tuning utilisateur par utilisateur. Imaginons donc un dernier cas. Mais bon, vous n’êtes peut-être pas paranoïaque à ce point et votre souci est peut-être plus de disposer d’un serveur à tout faire à peu près bien rangé, qui sépare bien le LAN de l’Internet par exemple, que de faire du tuning utilisateur par utilisateur. Imaginons donc un dernier cas.
Ligne 346: Ligne 346:
 Vsftpd offre une solution pour vous : les IP virtuelles. L’idée de ce mécanisme consiste à attribuer plusieurs adresses IP à votre carte réseau (des alias) et de consacrer chaque IP à l’un des trois sites FTP que vous voulez maintenir. Vsftpd offre une solution pour vous : les IP virtuelles. L’idée de ce mécanisme consiste à attribuer plusieurs adresses IP à votre carte réseau (des alias) et de consacrer chaque IP à l’un des trois sites FTP que vous voulez maintenir.
  
-===== Création d’alias réseau =====+==== Création d’alias réseau ====
  
 Pour quoi faire ? Vous allez voir. Supposons que votre carte physique ait pour adresse 10.0.0.10 et qu’il s’agisse de la carte eth0. Pour quoi faire ? Vous allez voir. Supposons que votre carte physique ait pour adresse 10.0.0.10 et qu’il s’agisse de la carte eth0.
Ligne 384: Ligne 384:
 De la même façon, nous créons un deuxième alias eth0:2, qui aura l’adresse 10.0.0.12. Notre carte réseau a désormais trois adresses. De la même façon, nous créons un deuxième alias eth0:2, qui aura l’adresse 10.0.0.12. Notre carte réseau a désormais trois adresses.
  
-===== Écoute d’une adresse particulière =====+==== Écoute d’une adresse particulière ====
  
 Occupons-nous à présent du serveur vsftpd et voyons ce que ce merveilleux outil permet de faire avec cette manipulation. Occupons-nous à présent du serveur vsftpd et voyons ce que ce merveilleux outil permet de faire avec cette manipulation.
Ligne 424: Ligne 424:
 Bien sûr, vous aurez intérêt à positionner ces différents utilisateurs dans des répertoires différents, avec les directives local_root et anon_root que nous avons évoquées au début de l’article.  Par ailleurs, cette répartition par adresse IP virtuelle peut se combiner avec les autres configurations vues dans ces exemples. Ce dernier scénario est loin des exemples extrêmes qui précèdent, puisqu’il donne l’impression d’être facile à contourner. Un utilisateur disposant de la bonne adresse (10.0.0.12 par exemple) pourra tenter une connexion vers le répertoire du groupe... encore faut-il qu’il ait le bon login et mot de passe... comme plus haut, s’il a toutes les informations et qu’il n’est pas supposé les avoir, il faudrait sans doute remettre à plat la politique globale de sécurité. Bien sûr, vous aurez intérêt à positionner ces différents utilisateurs dans des répertoires différents, avec les directives local_root et anon_root que nous avons évoquées au début de l’article.  Par ailleurs, cette répartition par adresse IP virtuelle peut se combiner avec les autres configurations vues dans ces exemples. Ce dernier scénario est loin des exemples extrêmes qui précèdent, puisqu’il donne l’impression d’être facile à contourner. Un utilisateur disposant de la bonne adresse (10.0.0.12 par exemple) pourra tenter une connexion vers le répertoire du groupe... encore faut-il qu’il ait le bon login et mot de passe... comme plus haut, s’il a toutes les informations et qu’il n’est pas supposé les avoir, il faudrait sans doute remettre à plat la politique globale de sécurité.
  
-====== Conclusion ======+===== Conclusion =====
  
 Nous avons essayé dans cet article de vous proposer plusieurs configurations qui vous permettront, en les combinant, de créer votre propre serveur.  Un bon moyen de les combiner consiste à les essayer sur un serveur de test. Nous avons essayé dans cet article de vous proposer plusieurs configurations qui vous permettront, en les combinant, de créer votre propre serveur.  Un bon moyen de les combiner consiste à les essayer sur un serveur de test.