MISE EN PLACE DU FIREWALL SHOREWALL I INTRODUCTION Administrateur réseau dans une petite entreprise, vous devez, suite à la mise en place d une ligne ADSL, offrir l accès à l internet à tous les utilisateurs de votre réseau. Vous devez aussi pouvoir interdire certains protocoles à certains postes. Vous savez déjà que pour partager une ligne ADSL, vous pouvez utiliser un routeur disposant d une fonction NAT (network address translation). Pour filtrer le trafic en fonction du protocole, vous devez disposer d une fonction de filtrage. Linux possède cette fonction en standard, vous allez apprendre à la paramétrer via le logiciel shorewall. Voici la plateforme que vous devez mettre en place. II CONFIGURATION INITIALE Clonez une machine Linux Lubuntu via le logiciel Vmware Workstation et rajoutez lui une carte réseau (cette machine doit avoir deux cartes réseau en bridge). Démarrez votre machine et commencez par changer le nom de votre linux. Pour cela modifiez le fichier /etc/hostname et le fichier /etc/hosts. Redémarrez votre machine. Nommez votre carte eth0 Wan et votre carte eth1 Lan. Configurez la carte nommée Wan en prenant une adresse du lycée et n oubliez ni la passerelle ni les adresses de nos serveurs DNS. Coté Lan donnez à votre firewall l adresse 192.168.x.254 sur votre réseau. Installez désormais les paquets shorewall et shorewall-doc. Ensuite, copiez les fichiers du répertoire /usr/share/doc/shorewall/examples/two-interfaces dans le répertoire /etc/shorewall. Vérifiez que le firewall shorewall sort sur le WEB. Configurez correctement votre client Seven jouant le rôle du client du LAN (adresse IP, passerelle par défaut, dns). Vérifiez que votre client ne sort pas sur le WEB. 1
III LES FICHIERS DE SHOREWALL Les fichiers de configuration pour Shorewall sont maintenant dans le répertoire /etc/shorewall. Prenez le temps de les visualiser. III.1 LES FICHIERS À NE PAS MODIFIER III.1.1 LE FICHIER SHOREWALL.CONF Ce fichier permet le routage entre votre lan et le net via le paramètre : IP_FORWARDING=Keep III.1.2 LE FICHIER "ZONES" Shorewall voit le réseau où il tourne, comme un ensemble de zones. Dans une configuration avec deux interfaces, les noms des zones suivantes sont utilisés: Nom net loc Description Internet Votre réseau local Shorewall reconnaît aussi le système de firewall comme sa propre zone - par défaut, le firewall est connu comme fw. III.1.3 LE FICHIER "POLICY" Les règles, à propos de quel trafic autoriser et de quel trafic interdire, sont exprimées en termes de zones. Vous exprimez votre politique par défaut pour les connexions d'une zone vers une autre zone dans le fichier /etc/shorewall/policy. Vous définissez les exceptions à ces politiques pas défaut dans le fichier /etc/shorewall/rules. Pour chaque connexion demandant à entrer dans le firewall, la requête est en premier lieu comparée au contenu du fichier /etc/shorewall/rules. Si aucune règle dans ce fichier ne correspond à la demande de connexion alors la première politique dans le fichier /etc/shorewall/policy qui y correspond sera appliquée. Le fichier /etc/shorewall/policy actuel est le suivant : Source Destination Policy Log Level Limit:Burst loc net ACCEPT net all DROP info all all REJECT info Ces politiques vont: Permettre toutes les demandes de connexion depuis votre réseau local vers l'internet (1) ; Drop (ou ignorer) toutes les demandes de connexion depuis l'internet vers votre firewall ou votre réseau local (2) ; Reject (rejeter) toutes les autres demandes de connexion (3). III.1.4 LE FICHIER RULES Ce fichier contient les règles suivantes : 2
#ACTION SOURCE DEST # Accept DNS connections from the firewall to internet ACCEPT $FW net tcp 53 # Accept SSH connections from the local network to firewall SSH(ACCEPT) loc $FW # Allow Ping from the local network to firewall Ping(ACCEPT) loc $FW # Drop Ping from the "bad" net zone.to firewall Ping(DROP) net $FW # Allow Ping from the firewall to local network and to the net ACCEPT $FW loc icmp ACCEPT $FW net icmp Ces règles autorisent : l'accès DNS à partir de votre firewall (1). l'accès SSH à votre firewall depuis votre réseau local (2). les pings du réseau local vers le firewall (3) et les pings du firewall vers le réseau local (5) et vers internet (6) Les pings du net vers le firewall sont interdits (4). III.2 LES FICHIERS QUI SONT PEUT-ÊTRE À MODIFIER Pour passer en root en mode console : sudo -s Pour modifier un fichier, vous pouvez lancer la commande "nano" suivi du nom du fichier. III.2.1 LE FICHIER "INTERFACES" #ZONE INTERFACE BROADCAST OPTIONS net eth0 detect dhcp,tcpflags,nosmurfs,routefilter,logmartians,sourceroute=0 loc eth1 detect tcpflags,nosmurfs,routefilter,logmartians Si vos interfaces ne s'appellent pas eth0 et eth1, pensez à changer leurs noms ici. Supprimer le dhcp sur la ligne du net. III.2.2 LE FICHIER "MASQ" EST À MODIFIER Ce fichier sert à appliquer le NAT sur la carte indiquée donc celle du Wan. #INTERFACE SOURCE ADDRESS PROTO PORT(S) IPSEC MARK eth0 10.0.0.0/8,\ 169.254.0.0/16,\ 172.16.0.0/12,\ 192.168.0.0/16 Si votre interface vers le Wan ne s'appelle pas eth0, pensez à la changer ici. 3
III.3 LE FICHIER STOPPEDRULES Ce fichier autorise les communications entre le firewall et le lan lorsque Shorewall est stoppé. #ACTION SOURCE DEST PROTO DEST PORT SOURCE PORT ACCEPT eth1 ACCEPT eth1 Si votre interface vers le Lan ne s'appelle pas eth1, pensez à changer son nom ici. IV LANCER ET ARRÊTER VOTRE FIREWALL Shorewall est lancé en utilisant la commande "shorewall start" et stoppé avec "shorewall stop". Un firewall fonctionnant peut être relancé en utilisant la commande "shorewall restart". Si vous voulez enlever toutes les traces de Shorewall dans votre configuration de Netfilter, utilisez "shorewall clear". V UTILISATION DU FIREWALL SHOREWALL Vous avez maintenant vérifié voir modifié, le contenu des fichiers de configuration. Lancez shorewall par la commande Shorewall start. V.1 VÉRIFICATION DU MODE DE FONCTIONNEMENT DU FIREWALL Votre client sort-il sur le Web?. Vérifiez si la fonction NAT est activée en utilisant iptraf (mode console iptraf > iptraffic monitor > All interfaces). A quoi voyez-vous que la fonction NAT est activée? 192.168.0.1:49168 > 81 7469 -PA- eth1 173.194.66.94:443 > 126 144196 --A- eth1 172.16.4.10:49168 > 81 7297 -PA- eth0 173.194.66.94:443 > 126 144274 --A- eth0 Vous venez de mettre en place un routeur NAT du même type que celui que vous avez mis en place sous Windows 2003. Vérifiez que le service ftp fonctionne depuis le client en interrogeant le serveur ftp.aero.jussieu.fr. Activez les accès vers le web (sécurisés ou non) depuis le firewall en modifiant le fichier "rules". Redémarrez le firewall et vérifiez qu'il accède au web. Protocoles concernés? Lignes rajoutées? 4
V.2 MISE EN PLACE DE QUELQUES RÈGLES DE FILTRAGE Un serveur telnet est installé sur le poste prof à l'adresse 172.16.4. Votre client peut-il se connecter à ce serveur telnet? Si oui pourquoi? (un indice : regardez le fichier policy) Vous voulez maintenant interdire le protocole telnet depuis le réseau local vers toutes les destinations (all). Modifiez le fichier /etc/shorewall/rules en conséquence (vous écrirez votre règle de la même manière que la première règle du fichier rules). Redémarrez shorewall et testez votre modification. Ligne rajoutée : Résultat du test : Il existe deux syntaxes pour interdire un protocole DROP et REJECT. Essayez les deux. Quelles sont les différences constatées sur le client du LAN? L administrateur réseau désire faire du telnet du LAN vers le firewall. Installez le serveur telnet sur le firewall avec la commande suivante : «apt-get install telnetd». Attention vous devez rajouter une règle pour pouvoir faire du telnet vers le firewal, mais vous ne devez pas supprimer ou modifier la ligne précédemment ajoutée. Modifiez le fichier "rules" en conséquence. Redémarrez shorewall et testez la connexion telnet du LAN vers Internet et du LAN vers le firewall. Ligne rajoutée : Résultat des tests : 5