2. Services et Serveurs Virtuels
Contenu de cette section
Si un nom d'hote appartient à une interface virtuelle, c'est
ce que l'on nomme communément un "hote virtuel".
Un démon qui exécute un service sur un hote virtuel (ou sur
une interface virtuelle) est appelé "serveur virtuel".
2.1 Serveurs WWW Virtuels
Nous avons déjà donné un exemple de 3 serveurs WWW virtuels
précédemment:
www.sharpers.com, www.usurers.com, www.swindlers.com
La configuration d'une grande partie de ces démons http que je
connaisse (c.f. l'excellente conception du "Roxen Challenger"
ou le largement répandu "Apache") pour utiliser ces serveurs
virtuels est facile, et largement documentée.
En quelques mots: attachez simplement le port www (num 80) à
l'interface réseau virtuelle avec l'adresse ip/nom désiré pour
chaque serveur WWW que vous exécutez. Il n'y a aucune astuce.
Lisez le document Linux "Virtual Web mini-HOWTO" si vous désirez
plus d'informations sur cette technique.
2.2 Addresses de courrier virtuelles
Dans le cas le plus simple, vous souhaitez recevoir chaque
courrier pour tous les hotes virtuels, et pour les domaines
concernés:
www.sharpers.com, www.usurers.com, www.swindlers.com,
sharpers.com, usurers.com, swindlers.com
Meme la configuration de "smail" ou de "sendmail" (les démons
qui se charge du traffic de courrier sur votre machine Linux)
est relativement simple: ajoutez les noms/domaines additionnels
dans "/etc/smail/config" (ajoutez 'hostnames=' et 'domains=')
respectivement "/etc/mail/sendmail.cw" (un nom de domaine
par ligne).
Pour implémenter un "réel" domaine virtuel à l'aide de smail,
regarder la FAQ sur smail (smail-FAQ), disponible sur
http://www.sbay.org/smail-faq.html
2.3 Serveurs ftp virtuels
Le concept de serveur ftp virtuel n'est pas supporté par
défaut dans les démons ftp que je connaisse.
Le très largement diffusé "wu-ftpd" dispose d'un patch
réalisé par Brian Grossman brian@SoftHome.Net pour réaliser
un service FTP distinct du serveur FTP anonyme traditionnel.
Vous trouverez des précisions pour récupérer ce patch dans le
chapitre 3.
Il semble qu'il n'y ait pas d'autres patch disponible pour
réaliser cette opération.
L'idée générale du patch multihote de Brian est de faire
opérer à wu-ftpd un "chroot()" sur
REPERTOIRE_DE_BASE_DU_COMPTE_FTP/NOM_D_HOTE_DEMANDE/
au lieu de juste faire un chroot() sur
REPERTOIRE_DE_BASE_DU_COMPTE_FTP/
Dans l'exemple présenté précedemment, l'utilisateur qui
se connecte sur "ftp.swindlers.com" par un compte ftp
anonyme est bloqué dans "/home/ano-ftp/ftp.swindlers.com/"
au lieu de "/home/ano-ftp/".
Vous pouvez imaginer que la configuration de base est simple
et ne diffère que très peu de la configuration d'un serveur
anonyme simple.
Gloire à Brian pour cette stratégie de configuration simple
et efficace.
Laissez moi m'assurer que vous disposez de cette version
spéciale de wu-ftp déjà compilée par vous meme, ou que vous
vous etes procuré le binaire, et laissez moi vous renvoyer
pour toute question à la fin de ce document.
Je vais vous donner un exemple de la vie courante, et vous
expliquer les manipulations que j'ai effectuées pour un de
mes clients (je n'ai changé que le nom de ses machines par
des noms fictifs...).
(a) Creéz un répertoire "/home/ano-ftp" pour les différents
serveurs ftp anonymes.
mkdir /home/ano-ftp && cd /home/ano-ftp
mkdir ftp.sharpers.com ftp.usurers.com ftp.swindlers.com
Vous obtenez alors comme arborescence:
/home/ano-ftp/
|-- ftp.sharpers.com
|-- ftp.swindlers.com
`-- ftp.usurers.com
(b) Copiez les fichiers nécessaires pour un service ftp anonyme
depuis le répertoire "/home/ftp" du serveur déjà configuré
dans les répertoires nouvellements créés.
cd /home/ano-ftp/ftp.sharpers.com
cp -a /home/ftp/* .
cd ../ftp.swindlers.com
cp -a /home/ftp/* .
cd ../ftp.usurers.com
cp -a /home/ftp/* .
N'oubliez pas d'effacer les fichiers superflus du répertoire
"pub/" (ou simplement, ne les copiez pas).
Par exemple, le répertoire "/home/ftp" de la distribution
Debian ressemble à ceci:
/home/ftp Permissions Propr Groupe Taille
|-- bin d--x--x--x 2 root root
| |-- gzip ---x--x--x 1 root root 45121
| |-- ls ---x--x--x 1 root root 22945
| `-- tar ---x--x--x 1 root root 77769
|
|-- etc d--x--x--x 2 root root
| |-- group -r--r--r-- 1 root root 18
| |-- passwd -r--r--r-- 1 root root 44
| `-- pathmsg -r--r--r-- 1 root root 172
|
|-- lib d--x--x--x 2 root root
| |-- ld-linux.so.1 -r-xr-xr-x 1 root root 21375
| |-- libc.so.5.2.18 -rwxr-xr-x 1 root root 536252
| `-- libc.so.5 -> libc.so.5.2.18
|
|-- pub dr-xr-xr-x 3 root root
| `-- whatever
|
`-- welcome.msg -rw-r--r-- 1 root root 323
(c) Changez le répertoire de base du compte ftp anonyme
par "/home/ano-ftp" en éditant le fichier "/etc/passwd".
ftp:*:11:11:Anonymous FTP:/home/ano-ftp:/bin/sh
^^^^^^^^^^^^^
repertoire de base
Ces trois étapes décrivent la configuration minimale, et
permettent déjà la séparation des zones ftp pour chacun des
3 hotes virtuels.
Mon travail actuel était un peu plus compliqué, puisque j'ai
du activer les quotas sur les disques (limitant l'espace
disque consommable par utilisateur/groupe) dans chacun des
répertoires incoming, donc l'histoire continue:
(d) Activez les zones de téléchargement dans le fichier de
configuration de wu-ftp "/etc/ftpd/ftpaccess"
8<----- couper ici 8<-----
upload /home/ano-ftp/www.sharpers.de * no
upload /home/ano-ftp/www.sharpers.de /incoming yes sharpers ftp 0660 nodirs
upload /home/ano-ftp/www.swindlers.de * no
upload /home/ano-ftp/www.swindlers.de /incoming yes swindler ftp 0660 nodirs
upload /home/ano-ftp/www.usurers.de * no
upload /home/ano-ftp/www.usurers.de /incoming yes usurers ftp 0660 nodirs
# | | | | |
# telechargements autorises --+ | | | |
# les fichiers telecharges appartiennent | | | |
# a cet utilisateur ---------+ | | |
# idem pour le groupe ----------------+ | |
# droits d'acces pour les fichiers telecharges ---------------------+ |
# creation de repertoires non autorisee ---------------------------+
8<----- couper ici 8<-----
Maintenant, chaque fichier téléchargé sur ce serveur ftp
appartient à un utilisateur séparé, pour qui les quotas
peuvent etre activés.
(e) Configurer les quotas sur les disques.
Je vous suggère de lire: "/usr/doc/quotas.txt" et le Linux
"Quota mini-HOWTO".
* Ajoutez "usrquota=/etc/quota/ano-ftp.users" dans les
options de montage de la partition "/home/an-ftp" qui se
trouve dans "/etc/fstab".
* Crééz "/etc/quota/ano-ftp.users" à l'aide de la commande
"touch".
* Activez les quotas par la commande "quotaon"
* Fixez les quotas avec "edquota swindlers", etc.
Quotas pour l'utilisateur swindlers:
/dev/sdb8: blocks in use: 0, limits (soft = 0, hard = 10000)
inodes in use: 1, limits (soft = 0, hard = 1000)
L'espace disque correspondant dépend de la taille en block
du système de fichier que vous avez créé (le standard est
1 block = 1 kb).
Chapitre suivant,
Chapitre Précédent
Table des matières de ce chapitre,
Table des matières générale
Début du document,
Début de ce chapitre
|