Par Chris Stoddard cstod@vvm.com
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 16 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 :
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 :
Je ne couvrirai que les parties nécessitant une configuration autre que celles par défaut.
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 ^1
/var 40 MB 10% 75 MB
swap 64 MB 2X RAM 80 MB ^2
^1 Par souci de simplicité j'ai utilisé tout le disque SCSI.
^2 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 512MB, utilisez alors les pourcentages sans tenir compte des tailles des partitions swap et /boot. Si votre disque a moins de 512MB, 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 grande0 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.
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.
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.
copyright 2000, Chris Stoddard. Paru dans le numéro 54 de la Linux gazette de Juin 2000
Traduction française de Adélard Bimazubute