Documentations - Sécurité
Copyright © 2001,2005
Ce document est publié sous la licence GNU FDL
| Historique des versions | ||
|---|---|---|
| Version 0.1 | 2005 | ES |
| Première version | ||
De nombreuses personnes préfèrent utiliser une machine sous Debian comme passerelle pour un réseau privé. Cela offre plusieurs avantages comparé à des parefeux commerciaux. Tout d'abord, cela est plus flexible et nous permet d'installer plusieurs services (web, antivirus, ftp, etc...) ce qui ne serait pas le cas avec un firewall dédié.
Avant toute chose, pour disposer d'une passerelle sous Debian, votre machine devra être équipée de deux cartes réseaux, une pour le réseau privé et l'autre pour le Net.
Généralement, j'utilise la carte réseau "eth0" pour le réseau interne, celle qui aura pour adresse IP quelque chose comme 192.168.0.1 et est utilisé comme passerelle par défaut pour les machines du réseau privé.
La carte eth1 sera quant à elle utilisée avec l'adresse IP fournie par votre fournisseur d'accès à Internet.
Afin de faire fonctionner votre machine en tant que passerelle et lui permettre d'acheminer vos paquets de données interne vers le monde extérieur, vous devez avoir "l'IP Forwarding" d'activé ainsi que certaines règles sur la façon dont les paquets doivent être routés. Ceci sera fait avec iptables.
Typiquement, nous avons besoin définir trois règles :
Connexions interdites sur la carte eth1
Autorisation de sortir pour les paquets du réseau
Permettre un retour sur les connexions déjà établies
Ceci nous permet d'avoir un script de ce type :
#!/bin/sh PATH=/usr/sbin:/sbin:/bin:/usr/bin # # On efface les règles existantes # iptables -F iptables -t nat -F iptables -t mangle -F iptables -X # On autorise toujours le loopback iptables -A INPUT -i lo -j ACCEPT # Autorise les connexions établies et ceux du réseau interne iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state NEW -i ! eth1 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT # Autorise le réseau interne à sortir sur le net iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT # Masquerade. iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # Ne route pas de l'extérieur vers le réseau interne iptables -A FORWARD -i eth1 -o eth1 -j REJECT # Activation du routage echo 1 > /proc/sys/net/ipv4/ip_forward
Si vous sauvegardez ce script sur votre système, il sera nécessaire qu'il soit lancé dès que vos cartes réseaux seront lancées. Pour cela, vous pouvez le sauvegarder dans le répertoire /etc/network/if-up.d/.. Chaque fichier dans ce répertoire est exécuté lorsqu'une carté réseau est démarrée.
Comme le contenu de ce répertoire est exécuté dans l'ordre, nous appellerons notre script 00-firewall.
Ceci vous permet d'avoir une passerelle vraiment basique. Toute machine de votre réseau internet pourra accéder à Internet et sera un minimum sécurisé.

passerelle sous debian
Il existe une manière très simple de configurer une passerelle grace au paquet "ipmasq". Il scane les interfaces réseau et détermine les règles de routage permettant aux paquets de passer d'une interface à l'autre, et de faire fonction de passerelle grace au nat. Moi je l'utilise sur des bécanes avec 2, 3, ou meme 5 interfaces, et ca marche vraiment très bien. De plus on trouve dans le répertoire /usr/share/doc/ipmasq des fichiers à copier dans le répertoire /etc/ipmasq permettant de durcir les règles (interdiction de certains ports, ip hostiles etc).
Il faut évidemement quelques notions de réseau pour tirer tous les bénéfices de ce script (ca m'a l'air d'être tout simplement du bash), mais pour configurer une passerelle toute bête, c'est simple et efficace.