Copyright © 2000 Chris Stoddard
Copyright © 2000 Adélard Bimazubute
Article paru dans le n°54 de la Gazette Linux de juin 2000.
Cet article est publié selon les termes de la Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.
Table des matières
Dans le numéro 51 de Linux Gazette, l'article intitulé Private Networks and RoadRunner using IP Masquerading explique comment configurer une passerelle basée sur Linux dans un esprit de grande sécurité. Les auteurs suggèrent de commencer par une installation propre de Linux, ce qui se trouve être une excellente idée dans la mesure où toute sécurité part d'une installation sécurisée et c'est ce à quoi cet article est consacré. Cela fait, ça sera une installation très légère, pesant à peu près 130 MB en plus du swap, il n'y aura pas X WINDOWS, toutefois j'aime installer Midnight Commander pour la gestion des fichiers.
Ici je vais poser deux hypothèses : premièrement, vous savez comment installer
Linux et êtes familiarisés à son utilisation. Deuxièmement, je me dis que vous
avez à configurer un ordinateur passerelle connecté en permanence à Internet,
fut-ce par câble modem, DSL, ou autre chose, et qu'il ne servira à rien
d'autre du genre serveur ftp
, telnet
ou web.
Ma machine est une vieille Dell Optiplex 466/MXe, une 486 DX2 66 avec 16i MB de RAM, un disque dur de 512 MB, une carte son et un lecteur de CDROM 4X IDE. J'ai acquis ce dernier à 50 $ et l'ai upgradé en une 486DX4 100, 40 MB de RAM, j'ai enlevé la carte son et ajouté 2 cartes réseau, une carte SCSI et j'ai installé un disque dur de 320 MB SCSI, tout ça en pièces détachées. Le système minimal dont vous aurez besoin est un 486 (tous teints) avec 16 MB de RAM, un disque dur de 200 MB, deux cartes réseau, un CDROM ou une possibilité d'installer en réseau. Vous aurez aussi besoin d'une copie de RedHat Linux 6.x. Même si toute autre distribution conviendrait, je ne parlerai que de RedHat. Le système n'aura besoin d'un moniteur que durant l'installation, après quoi il pourra marcher sans écran et être administré à distance en utilisant Openssh.
Avant de commencer, aller à ftp://ftp.redhat.com, téléchargez et copiez sur des disquettes ce qui suit :
e2fsprogs- 1.17-1.i386.rpm
initscripts-4.63-1.i386.rpm
lynx-2.8.2-3.i386.rpm
pam-0.68-8.i386.rpm
Si vous utilisez RedHat 6.2, les fichiers précédents ne sont pas nécessaires. Allez à ftp://thermo.stat.ncsu.edu/pub/openssh-usa et encore une fois téléchargez et copiez ceci :
openshh-1.2.3-1us.i386.rpm
openssh-clients-1.2.3-1us.i386.rpm
openssh-server-1.2.3-1us.i386.rpm
openssl-0.9.5a-1us.i386.rpm
Je ne couvrirai que les parties nécessitant une configuration autre que celles par défaut.
Choisissez une installation personnalisée. Quand Disk Druid apparaît, créez les partitions suivantes.
Partition Minimum size % of total Mine / 40 MB 10% 75 MB /boot 5 MB 5 MB 5 MB /home 100 MB 25% 200 MB /tmp 40 MB 10% 75 MB /usr 220 MB 45% 320 MB ¹ /var 40 MB 10% 75 MB swap 64 MB 2X RAM 80 MB ²
Par souci de simplicité j'ai utilisé tout le disque SCSI.
En réalité vous pouvez définir une taille de la partition swap égale à la
taille de votre RAM ou même plus petite. Je suggère une plus grande, au cas ou
vous voudriez gérer un site web ou ftp
plus tard.
Ce tableau montre sommairement comment diviser votre disque dur, le minimum
étant juste que si celui-ci dispose de plus de 512 MB, utilisez alors les
pourcentages sans tenir compte des tailles des partitions swap et /boot
. Si votre disque a moins de 512 MB,
créez alors juste une partition swap et une partition root. En faisant cela, un
individu qui y fait intrusion ne sera pas capable de surcharger votre disque
dur avec de gros fichiers dans les répertoires /tmp
ou /home
. Ca vous permet aussi de faire des choses
intéressantes dans /etc/fstab
, comme activer nosuid et
nodev sur /tmp
et /home
. Certaines personnes se demanderont
pourquoi je destine une si grande partie de l'espace du disque à la partition
/home
, quand en théorie ce système
n'aura pas beaucoup d'utilisateurs de chair et d'os, sinon aucun. La réponse
est que c'est un espace destiné au transfert de fichiers vers et à partir de
lieux distants, comme le partage de fichiers MP3 ou des fichiers du travail.
En sélectionnant les composants à installer, choisissez uniquement « Networked Workstation », « Network Management Workstation », les utilitaires et « sélectionner les paquetages individuels ». Si vous utilisez RedHat 6.2 et n'avez pas téléchargé les RPM mis à jour, sélectionnez Lynx afin qu'il soit installé.
Désélectionnez les paquetages suivants : git, finger, ftp, fwhois, ncftp, rsh, rsync, talk, telnet, ghostscript, ghostscript-fonts, mpage, rhs-printfilters, arpwatch, bind-utils, knfsd-clients, procinfo, rdate, screen, ucd-snmp-utils, chkfontpath, yp-tools, Xfree86-xfs, lpr, pidentd, portmap, routed, rusers, rwho, tftp, ucd-snmp, ypbind, Xfree86-libs, libpng, Xfree86-75dpi-fonts, urw-fonts.
Après le redémarrage du système, loggez-vous en root
et tapez les lignes de
commande suivantes, pour supprimer les paquetages que le programme
d'installation ne vous a pas laissé désélectionner.
rpm -e --nodeps pump mt-st eject bc mailcap apmd kernel-pcmcia-cs getty_ps setconsole setserial raidtools rmt sendmail
Vous pouvez aussi envisager de supprimer Linuxconf, kudzu, kbdconfig, authconfig, timeconfig, mouseconfig, ntsysv et setuptool, selon votre niveau de compétence. Tous ces paquetages ci-haut cités constituent des risques pour la sécurité, comme rsh, ou sont inutiles comme Xfree86 fonts.
Copiez tous les RPM téléchargés à partir du site de RedHat sur une paire de disquettes, mettez ces dernières sur le système nouvellement installé et montez-les avec mount -t msdos /dev /fd0 /mnt/floppy, ensuite installez les fichiers en tapant rpm -Uvh /mnt/floppy/*.rpm.
Copiez tous les fichiers Openssh sur une disquette et encore une fois, mettez
cette dernière sur le système nouvellement installé et montez-la en tapant
mount -t msdos /dev/fd0/mnt/floppy et tapez rpm -ivh/mnt/floppy/open*. Allez
dans le répertoire /etc/ssh
et ouvrez sshd.config
, cherchez « PermitRootLogin
yes » et changez le yes
en no
. Cela portera le système à refuser l'accès à
quiconque essaierait de se logger en root
à partir d'un système distant. Si
vous avez besoin de vous logger en root
à partir d'une machine distante,
loggez-vous en utilisateur ordinaire puis servez-vous de la commande su pour
vous transformer en root
.
Je ne vais pas rentrer dans les détails de la configuration d'un bon coupe- feu, « Private Networks and RoadRunner using IP Masquerading » fait un excellent boulot à ce propos, toutefois j'ai deux suggestions à faire.
Je crois qu'à des fins de sécurité les services DNS
ne devraient pas être placés sur le système
coupe-feu, chaque client pouvant être configuré individuellement pour utiliser
le DNS
de votre fournisseur d'accès
Internet, ou une autre machine sur le réseau pouvant être configurée pour agir
comme serveur DNS
. De surcroît,
j'estime que les services démarrés par inetd
ne devraient pas être lancés sur une machine
coupe-feu non plus, le seul port qui devrait être ouvert est le port 22, le
port ssh
. Je l'érigerai en règle et
j'effacerai le fichier inetd.conf
pour le remplacer par un
autre, vide, en me servant de touch /etc/inetd.conf.
Si vous avez plus de deux ou trois utilisateurs sur le système, vous pourrez envisager d'utiliser Squid, qui est un programme proxy/cache web. Cela accélère les choses en gardant les copies des sites web les plus visités sur la machine locale. Il peut aussi être utilisé pour bloquer des sites web, ce qui peut être utile dans le cas où il se trouve des enfants en bas âge à la maison. Si vous décidez d'employer Squid, je recommande un disque d'au moins 1 GB, 32 MB de RAM et un processeur 486DX2/66. Squid peut être installé à partir du CD de RedHat. Une autre alternative est que vous pouvez installer Junkbuster, qui est aussi un programme proxy ; il ne cache pas de sites web et ne nécessitera donc pas de disque dur plus spacieux, plus de RAM ou un processeur plus rapide, ce qu'il fait ce sont les blocages d'affiches publicitaires, ce qui selon les sites que vous visiterez accélérera les choses et empêchera ces compagnies de recueillir des informations à votre propos.
Junkbuster peut être téléchargé à partir de http://www.waldherr.org/junkbuster.
Pour une construction facile d'un coupe-feu, vous devrez télécharger Seawall ou pmfirewall ; ce sont des programmes coupe-feu basés sur ipchains et conçus pour leur simplicité, je les ai tous les deux essayés, ils marchent comme promis et vous épargneront la peine d'apprendre ipchains. Seawall est plus dur à installer mais a plus d'options de configuration, pmfirewall est plus facile à configurer mais dispose de moins d'options.
Maintenant retournez à « Private Networks and RoadRunner using IP Masquerading » et finissez de configurer la passerelle. Je vous prie de vous rappeler que ceci n'est pas la fin du mot en matière de sécurité Linux, ça ne fait que vous donner un solide point de départ. Pour un tutorial de maître sur la sécurité Linux, téléchargez et lisez http://pages.infinit.net/lotus1/opendocs/book.htm. Ce document, massif, contient 475 pages mais seuls les deux premiers chapitres valent la peine d'être lus.
L'adaptation française de ce document a été réalisée dans le cadre du Projet de traduction de la Gazette Linux.
Vous pourrez lire d'autres articles traduits et en apprendre plus sur ce projet en visitant notre site : http://www.traduc.org/Gazette_Linux.
Si vous souhaitez apporter votre contribution, n'hésitez pas à nous rejoindre, nous serons heureux de vous accueillir.