Smoothwall : 15.04.2005 Phil

Site de provenance : http://www.smoothwall.org/
Doc disponible,
Forums
en anglais


Prérequis matériel :
Pas grand chose ... ça dépend du nombre de machines connectées en même temps et des services utilisés. Pour un petit réseau famillial, un Pentium 200 avec 64 Mos de Ram donne entière satisfaction et passe totalement inaperçu. Pour des machines plus petites choisissez une passerelle OpenBSD avec PF qui saura se contenter d'un 386 et de 16 Mos de Ram... donnez lui quand même des cartes PCI.


Connaissances préalables :
Pas grand chose... savoir ce qu'est une adresse ip.


Qu'est-ce qu'un Smoothwall ???

Important : le Smoothwall est une machine dédiée EXCLUSIVEMENT à votre réseau !!! l'ensemble de votre disque dur sera effacé lors de l'installation. Ne rêvez même pas d'un double boot entre Smoothwall et un autre OS, ce système n'est PAS FAIT POUR CA.

Le Smoothwall est un Système d'Exploitation permettant de transformer une machine en un routeur-firewall muni de 2 ou 3 cartes réseau.

Pourquoi 2 cartes ?
Les 2 cartes servent à connecter la machine entre votre modem et votre réseau interne.
La carte qui se connecte au modem est dite "carte rouge" , celle qui se connecte à votre réseau interne est dite "carte verte".
Le firewall dont est muni le Smoothwall permet de bloquer les connections de la carte rouge vers la carte verte, c'est à dire de bloquer les intrusions depuis internet vers votre réseau.

Pourquoi 3 cartes ?
Lorsque le Smoothwall est équipé de trois cartes, la rouge et la verte se comportent comme expliqué précédement. La troisième carte nommée "carte orange" permet de créer une DMZ (zone démilitarisée) dans la quelle vous pourrez placer des serveurs qui doivent être accessibles depuis internet à certaines conditions seulement. Par exemple pour un serveur web, le passage de la carte rouge vers la carte orange sera autorisé sur le port TCP 80 uniquement. Les machines installées sur la carte orange peuvent quand à elles "sortir" librement en direction d'internet mais ne peuvent se connecter à votre réseau, à moins que vous ne créiez une règle spéciale (déconseillé). Evidement les machines du réseau interne (zone verte) peuvent se connecter sans restriction à celles de la zone orange ou "sortir" sur internet.


Marche à suivre pour installer un Smoothwall :

Temps nécessaire (à partir du point 5) : selon habitude 20 minutes à ...

1) Se rendre sur le site de Smoothwall (www.smoothwall.org/get/) et télécharger l'image iso de la dernière version stable. Télécharger également tous les patches disponibles. Télécharger également le fichier contenant les empreintes md5 de l'iso et des patches (très important). Si vous ne possédez pas le md5summer (logiciel de calcul des empreintes), téléchargez-le également.

2) A faire absolument !!!
Utilisez md5summer (empreinte de md5 summer.exe) pour calculer l'empreinte de l'iso et des patches. Comparez ensuite ces empreintes avec celles qui sont fournies par l'équipe de développement de Smoothwall.
Si elles sont identiques vous avez des fichiers en parfait état, sinon retéléchargez les fichiers dont l'empreinte calculée ne correspond pas à l'empreinte fournie (sans quoi votre installation ne sera évidemment pas possible).

3) Gravez l'image iso sur un CD-Rom.
Attention si vous utilisez Win-ON-CD vous devez changer l'extension du fichier smoothwall.iso par smoothwall.raw sinon le CD-Rom ne sera pas bootable.

4) Passez dans le Bios de votre machine
Désactivez toutes les options nécessaires à Windows genre "plug and play". Désactivez également les réservations de mémoire pour la carte graphique genre "Memory Hole at 15M-16M" et "Video Bios Shadow". Sortez du Bios en enregistrant les nouveaux paramètres et rebootez.

5) Bootez votre machine sur le CD que vous venez de graver.

6) Si tout se passe bien vous arrivez sur un écran d'accueil qui vous demande de confirmer votre volonté d'installer le Smoothwall, pressez ENTER pour continuer...

Un système Linux démarre (chargement du noyau et extraction des binaires de base) et commence l'installation.

Deux écrans d'informations s'affichent à la suite, lisez-les et continuez en pressant ENTER.
Arrive l'écran qui propose de partitionner votre disque dur :
Attention toutes les données présentes sur le disque seront effacées !!!
Le partitionnement s'effectue...

Configuration des cartes réseau :
Ceci fait l'installeur vous demande de configurer les cartes réseau :
Il s'agit de trouver les drivers correspondant à vos cartes réseau (la recherche peut être effectuée automatiquement "Probe") et de leur atribuer une adresse.
Indiquez le type de carte que vous possédez et renseignez les champs IP et masque réseau correspondants à chacune de vos cartes. Le Smoothwall commence par la carte verte (celle qui se trouve du coté de votre réseau interne).
Par exemple :
- l'installeur détecte une première et une seconde carte Realtek 8139 et vous demande ensuite l'adresse et le masque de la verte, tapez (selon votre réseau) 192.168.2.1 et 255.255.255.0
Prévoyez un sous réseau pour chacune de vos cartes : sinon le Smoothwall ne peut fonctionner. Vous pouvez vous servir du masque pour définir des sous-réseaux différents. Consultez une documentation à ce sujet si vous ne comprenez pas ce point.
Une méthode simple est de prévoir la topologie suivante :
Votre modem internet possède l'adresse 192.168.1.1 masque 255.255.255.0 (souvent le cas), le réseau rouge est donc 192.168.1.x (ou 192.168.1/24) ce qui signifie que les trois premiers paquets définissent le réseau.
Votre carte rouge (qui fait face au modem) peut donc avoir l'adresse 192.168.1.2 et le masque 255.255.255.0 (elle appartient ainsi au même réseau que votre modem ce qui est correct).
Votre carte verte pourra avoir 192.168.2.1 (masque 255.255.255.0)
et la carte orange pourra avoir 192.168.3.1 (masque 255.255.255.0)
Dans ce cas, toutes les machines connectées sur la carte orange auront une adresse genre 192.168.3.y et le masque 255.255.255.0 et celles connectées sur la carte verte auront des adresses genre 192.168.2.y avec un masque 255.255.255.0 avec x variant de 1à 255 et y variant de 2 à 254.
Si vous ne comprenez pas le pourquoi de cette explication, contentez vous de reprendre les valeurs, elles sont correctes.

Félicitations :
L'installeur vous félicite d'avoir renseigné les adresses et éjecte le CD. Sortez le CD et confirmez.

Rétablissement des paramètres préalablement sauvegardés :
Il vous est ensuite demandé si vous possédez une disquette de sauvegarde d'une précédente installation... si vous lisez tout ça, ce n'est probablement pas le cas : répondez-lui "NON".

Configuration du clavier :
L'installeur vous demande de choisir la configuration de votre clavier ... choisissez quelquechose qui corresponde à ce que vous aimez... par exemple FR ou FR_CH et validez.

Choisissez le nom de la machine : à votre convenance, en minuscules

Proxy Web :
L'installeur vous demande ensuite le nom de votre Proxy Web et le port utilisé ... ne répondez rien si vous n'avez pas de proxy (cas général).

Configuration de l'ISDN :
Votre smoothwall est connecté à un modem, choisissez "Disable ISDN".
(si vous utilisez ISDN pour votre modem téléphonique, renseignez les champs selon les indications de votre fournisseur d'accès internet).

Configuration de l'ADSL :
Votre smoothwall est connecté à un modem, choisissez "Disable ADSL".
(si vous utilisez un modem ADSL sur le port USB, renseignez les champs selon les indications de votre fournisseur d'accès internet).

Configuration du réseau :
- Network configuration type : choisissez ce qui correpond à ce que vous avez chez vous.
Verte + Rouge avec ISDN / Verte + Orange + Rouge ISDN / Verte + Orange / Verte + Orange + Rouge
    - Vous voulez juste un firewall entre votre modem ISDN et votre ordinateur, choisissez la première
    - Vous avez un modem connecté sur votre carte réseau, un serveur web et un petit réseau, choisissez la dernière solution (Verte+Orange+Rouge).
- Drivers et card assignments : choisissez pour chaque carte le driver correspondant.
- Adress Settings : choisissez les adresses et les masques pour chacune de vos cartes.
(Pour la carte rouge, vous avez la possibilité de laisser votre carte obtenir une IP par DHCP).
- DNS and Gateway Settings (paramétrage du DNS et de la passerelle) :
   - pour la passerelle (gateway) : indiquez l'adresse de votre modem,
   - pour les DNS : indiquez aussi l'adresse de votre modem si vous n'avez pas vos propres serveurs,
     votre modem utilisera ainsi ceux de votre fournisseur d'accès.

Choisissez ensuite les mots de passe :
Choisissez les mots de passe pour les utilisateurs admin, root et setup.
admin se connecte au Smoothwall par l'interface graphique et gère les services.
root peut tout faire (normal pour root) mais par ssh seulement.
setup permet de revenir dans ces écrans de configuration.
Définissez des mots de passe à la hauteur de la sécurité que vous exigez de votre Smoothwall, notez les en lieu sûr car il est impossible de les récupérer en cas de perte.

L'installation est terminée, OK pour rebooter.



Branchement des câbles réseau sur les cartes (NIC = Network Interface Card) :

Il peut être difficile de savoir quel câble brancher sur quelle carte ... évidement ce n'est pas égal !!!
Connectez vous au Smoothwall comme utilisateur root et effectuez les opérations suivantes:

1) Détection de la carte rouge (externe) :
envoyez des ping à votre modem... si il ne répond pas changez le câble de carte... si le modem répond, vous avez trouvé la bonne carte.
Exemple :
# ping 192.168.1.1 doit produire un réponse genre
64 bytes from 10.10.30.10: icmp_seq=2 ttl=64 time=0.306 ms
64 bytes from 10.10.30.10: icmp_seq=2 ttl=64 time=0.306 ms
...

2) Détection de la carte orange :
envoyez des ping à votre serveur web, qui doit répondre comme ci-dessus.
64 bytes from 10.10.30.10: icmp_seq=2 ttl=64 time=0.306 ms
Sinon changez le câble de carte.

3) Détection de la carte verte :
en principe c'est celle qui reste ...

le ping sur une machine interne doit aussi fonctionner.


Post installation :

1) Au prochain démarrage de votre machine, retournez dans le Bios et modifiez la valeur "First Boot Device" : choisissez C only pour empêcher le Smoothwall de booter sur le floppy ou le lecteur CD

2) Changez de machine et connectez-vous au smoothwall avec votre navigateur internet :
utilisez l'adresse IP de la carte verte et le port 441 (exemple: https://192.168.3.1:441)
dans le menu du haut choisissez "Maintenance" ... une interface de loggin vous demande de vous identifier, indiquez admin comme utilisateur et tapez le mot de passe correspondant.

3) Vous êtes maintenant sur la page de maintenance, installez les patches en les récupérant depuis la machine que vous avez utilisée pour les télécharger.
Attention : installez-les dans l'ordre, c'est important !!!
Attention encore : le Smoothwall vérifie leur intégrité en se connectant au site de smoothwall.org ce qui implique que votre connection internet doit fonctionner et laiser passer le protocole concerné.

4) Rendez-vous sur la page "About your Smoothie" pour vérifier les services en route :
- Vérifiez que le système de détection d'intrusion est en route.
- Secure shell server (pour vous connecter par sftp, scp ou ssh - vi disponible) si vous voulez.
- Web Proxy (stocke les pages visitées pour les resservir plus vite) si vous voulez, possiblité de choisir transparent (pas de config sur les navigateurs) ou non (possibilité de forcer l'utilisation d'un mot de passe et configuration obligatoire des navigateurs qui utilisent le proxy).
- DHCP Server : permet de demander au Smoothwall d'attribuer une adresse IP aux machines du réseau interne. Si vous ne l'avez pas configuré pendant l'installation vous pouvez le faire en vous connectant localement en utilisant le compte setup
Pour activer et configurer ces services (sauf DHCP) passez sur la page "Services" et choisissez le service correspondant.

5) Networking permet de paramétrer les règles de filtrage :
- "Port forwarding" autorise des connections depuis internet sur le smoothwall lui-même (déconseillé sauf SSH si vous voulez administrer votre Smoothwall depuis l'extérieur).
- "External service access" permet d'ouvrir un port pour des connections depuis internet vers la DMZ (orange). par exemple : vous voulez rendre votre serveur web accessible de l'extérieur, ouvrez le port 80.
- "DMZ pinholes" permet d'ouvrir des ports pour des connections de la DMZ vers la zone interne (verte). Déconseillé !!! Sauf peut-être si votre serveur syslog est en zone verte et que vous voulez que les serveurs de la zone orange puissent l'atteindre.
- "ppp settings" permet de configurer le modem de secours que vous branchez sur le port série
- "ip block" vous permet de définir les adresses ip que vous bloquez et la manière de le faire : drop log !
- "advanced" permet d'affiner le comportement du firewall par rapport à certains événements enable UPnP pas conseillé car dangereux ... mais peut poser problème à MSN (bof...)

6) Mise à l'heure de votre Smoothwall : Rendez-vous sur la page Service/Time :
- ajustez la Time zone avec une région correspondant à la votre
- vous pouvez choisir de brutalement corriger l'heure en utilisant la fonction Set
- Activez le "Network Time Retrieval" en cochant la case "Enable"
- Choisissez un délai de une heure pour les mises à jour de l'heure
- Si vous connaissez un serveur de temps qui vous donne votre heure locale, activez "User Defined Public or local Server" et renseignez son IP dans le champ correspondant.

7) Notes concernant les logs :
- Si vous voulez que votre firewall cesse de logger certains événements ... attaques sur port 443, paquets RIP... Voyez le chapitre ci-dessous ou rendez-vous sur le site smootwall.org et visitez le forum : en particulier le topic mod (modifications). Vous y trouverez les explications permettant la modification du fichier de config d'iptables.
- Si vous voulez pouvoir choisir l'ordre dans lequel vos logs sont affichés faites pareil ... Attention toutefois, ces deux mods sont innocentes, mais ce n'est pas le cas de toutes, même si elles peuvent paraître sympas certaines d'entre elles sont incompatibles avec d'autres et leur installation peut perturber le fonctionnement de votre Smoothwall. Méfiez vous un peu, d'autant plus qu'elles n'ont pas été autant auditées que le reste de votre système.

8) Ajouts intéressants :
- Integrit : (recommandé) permet de calculer une empreinte SHA1 de tous vos fichiers, et de la comparer régulièrement (crontab) avec la première que vous avez prise et gravée sur un CD-Rom que vous laissez dans le lecteur.


Modifications pratiques :

Ces deux petites modifications, simples à réaliser (arrangez vous toutefois pour avoir la paix) sont faciles et ne devraient pas perturber le fonctionnement du Smoothwall. En revanche elles risquent d'être effacées par une mise à jour : il se peut que les fichiers modifiés soient concernés par la mise à jour et votre modif n'apparaîtrait bien sûr pas si les fichiers concernés sont remplacés.

Ne pas logger les blocages du port 520 :
Modif de Marty Pot http://martybugs.net/smoothwall/iptables.cgi
Utile si votre modem utilise RIP et que les paquets envoyés sont bloqués par le firewall. Comme votre modem peut envoyer de tels paquets très fréquemment, vos logs deviennent immenses très rapidement et vous auriez beaucoup de peine à retrouver les "vraies" attaques. La solution consiste à créer une règle dans iptables pour que ces paquets soient droppés (laissés tomber) sans être loggés.
Vous pourriez aussi vouloir bloquer des paquets NetBios (ports 137-139) ou des attaques du ver Blaster (443), adaptez votre modif à vos intentions en insérant le port et le protocole adéquats.

Attention : cette modif ne fonctionne telle quelle que si vous utilisez une carte réseau (rouge) pour vous connecter à votre modem. Si vous utilisez ISDN, PPPoE ou PPPoA vous devrez la modifier et spécifier le nom de l'interface utilisée, par exemple ppp0.

1) Connectez-vous au firewall en tant que root (en local ou avec Putty par exemple).

2) Editez le fichier /etc/rc.d/rc.firewall.up
# vi /etc/rc.d/rc.firewall.up

3) Immédiatement après la ligne
/sbin/iptables -P OUTPUT ACCEPT
ajoutez les deux lignes suivantes :
# drop RIP traffic
/sbin/iptables -A INPUT -p UDP -i $RED_DEV --dport 520 -s 0/0 -j DROP

4) appliquez les changements en tapant les commandes suivantes :
# /etc/rc.d/rc.netaddress.down && /etc/rc.d/rc.netaddress.up && /usr/local/bin/restartsquid
ou en rebootant le smoothwall :
shutdown -r now

Si, après avoir appliqué les changements, vous avez une erreur après la ligne "Setting up firewall", vous avez sûrement fait une faute de frappe ou une autre erreur dans le script du firewall et vous devrez y apporter les corrections requises.
N:B: SIOCDELRT: No such process n'est pas une erreur, vous l'avez aussi sans la modif.

Vous pouvez vous servir de cette règle pour toutes sortes de choses dont, par exemple, bloquer tout envoi de mail vers un autre serveur que celui spécifié (celui de votre provider). Pour plus de détails allez visiter le site de Marty Pot, l'auteur de cette modif, c'est un crack et il propose d'autres modifs intéressantes et très bien acceptées par le Smoothwall.


Possibilité d'inverser les logs :
Un des rares défauts du Smoothwall est le fait que les logs sont (à mon avis) à l'envers, à savoir le plus vieux d'abord et le plus récent à la fin ... question de goût direz-vous avec raison.
Toutefois voici une modification permettant d'inverser à volonté les fichiers de log. Les auteurs sont entre autres Marty Pots et Andreas Lindemark.

1) Téléchargez ici l'archive contenant les fichiers modifiés.

logs_2.01p1_1.0_Phil.tgz
: md5 = 83c16398317e32e3621a7477b70cab79

Je me suis permis d'y ajouter le fichier lang.pl avec les modifications que l'auteur suggère d'effectuer manuellement.

2) Installation :
- Connectez-vous à votre smoothwall par SCP ou SFTP
- Uploadez le fichier logs_2.0p1_1.0.tgz dans le répertoire /tmp
- Connectez-vous par ssh à votre smoothwall
- Tapez la commande tar -zxvf /tmp/logs_2.0p1_1.0.tgz -C /
- Quittez, c'est terminé.

N.B. : Pour ceux qui tiendraient absolument à effectuer la modif eux-mêmes, téléchargez la modif sur le site de l'auteur et suivez les instructions fournies.


Astuces :

Comme les commandes locate et whereis ne font pas partie de la distrib Smoothwall, il peut être difficile de trouver un fichier donnée dans l'arborescence de disque...
Utilisez donc la commande find :
find / -name nom_du_fichier_cherché -print


Postface :

J'utilise des smoothwalls depuis plusieurs années, toutes ces machines donnent entière satisfaction, font leur boulot de superbe manière et savent se faire oublier. Ne passez pas votre temps à essayer de les bidouiller, elles ne s'en porteront que mieux et remplaceront avantageusement des solutions commerciales beaucoup plus chères mais pas forcément meilleures.
Il existe une version commerciale de Smoothwall qui n'est que très peu différente : elle contient seulement quelques fonctions supplémentaires, mais les fonctions disponibles dans l'installation de base sont les mêmes que dans la version payante.
En principe Smoothwall est gratuit pour une utilisation personelle... pour votre petite entreprise personelle ? peut-être, lisez-bien la license !


Bien du plaisir.