LINUX INFOS


Parlons de Linux
Ils aiment le libre
Annuaire
Logiciels
On en rit encore!
A propos de ce site
Massage-de-relaxation



Configuration de  Shorewall

Shorewall est un firewall pour linux que j'ai connu parce qu'il est mentionné dans le panneau de contrôle de Linux mandrake 9.
Le package est sur le troisième CD de mandrake 9.
Au départ, je n'y ai rien compris et ça m'a un peu désarçonné. C'est pourquoi j'ai décidé de faire une doc simple pour le configurer et en français.
Tout d'abord, j'ai commencé par consulter chez www.linux-france.org une documentation sur la sécurité sous Mandrake disponible ICI.
Elle traite entre autres du firewall.
Je n'en suis pas l'auteur mais elle est vraiment accessible et elle mérite de ce fait d'être lue!

La section sur shorewall m'a fort intéressé, car il y a une explication qui permet d'appliquer le firewall à une connection qui ne passe pas par ethernet. Comme j'ai freeadsl, ça tombe bien.

J'ai commencé par activer shorewall dans la section pare-feu du panneau de contrôle mandrake.
Lorsqu'il demande quel ports laisser accessibles depuis internet, je n'en choisis aucun, je les déselectionne.

Ensuite, lorsqu'enfin shorewall démarre au démarrage du pc, la navigation n'est pas possible, aucun port ouvert en sortie.
Il faut ajouter des règles de filtrages dans le fichier /etc/shorewall/rules :
Par exemple, je vous copie les miennes:

#********************************************************************
# commentaires:
# Accepter le trafic DNS, cette règle peut être
# affinée

# en précisant l'adresse du DNS de votre FAI
# cela la conversion des noms de domaines en IP. ex:
# www.pcastuces.com

# 212.27.32.177  : adresse de mon dns primaire
# 212.27.32.177  : adresse de mon dns primaire 
# vous trouverez le votres dans /etc/resolv.conf
#*********************************************************************
ACCEPT    fw    net:212.27.32.177    udp    53
ACCEPT    fw    net:212.27.32.176    udp    53

#*********************************************************************
# ICMP accepte le ping sortant, et sa réponse
# et en entrée : destination unreachable et le time exceed
# on n'autorise pas le ping en entrée
#*********************************************************************
ACCEPT    fw    net    icmp    8
ACCEPT    net    fw    icmp    0,3,11

#*********************************************************************
# autorise http, https, ftp, mails, news, tous les
# ports utilisés

# habituellement... seulement en sortie
# http, https, courrier, ftp
#*********************************************************************
ACCEPT    fw    net    tcp 80,443,8080,110,25,20,21

Vous observez tous les numéros de ports qui me sont utiles en tant que client. Mais la liste peut être modifiée en fonction des logiciels qui vous sont utiles. De même si vous utilisez un logiciel travaillant sur des ports UDP il faut une ligne du type:
ACCEPT    fw    net    udp    port1,port2, etc

Liste de quelques ports utiles :

20 et 21
FTP
TCP
Pour transferer des fichiers sur un serveur FTP.
25
SMTP
TCP
Pour envoyer des mails avec un logiciel (comme K mail)
53 DNS UDP
Indispensable pour les adresses de sites dans un navigateur
80 http
TCP
Indispensable pour surfer sur le web
8080
http
TCP
aussi pour surfer sur le web
110
pop3
TCP
Pour relever vos mails avec un logiciel (comme K mail)
119
nntp
TCP
pour lire les nouvelles avec un logiciel comme K node
443
https
TCP
Pour surfer sur des sites sécurisés
1863
msn
TCP
Pour vous connecter avec k mess ou un autre client msn
6346
gnutella
TCP
Pour utiliser le reseau de partages de fichiers de gnutella
utile pour transferer des fichiers sur internet
7070
realplayer
UDP
Pour lire des videos sur le net.

Cette liste est bien sûr incomplète, il y a tant de logiciels utilisant chacun un port spécifique...

Si vous souhaitez à l'inverse, mettre en place des "service", comme un serveur ftp, par exemple, il faudra rédiger une regle de cette façon:
ACCEPT    net    fw    tcp    20,21, etc

Autre chose, dans le fichier common.def:
remplacer tous les
reject
par
drop
de cette manière, les communications sont bloquées de façon silencieuse, cela évite certaines attaques, par exemple les scanners ne détectent plus votre PC.

C'est tout pour le filtrage.
Le firewall est déjà configuré pour interdire les communications, il n'est utile que de préciser les communications qu'on veut autoriser.

Pour ma connection free, j'ai dû modifier le fichier interfaces en remplaçant :
net    eth0    detect
par:
net    ppp0    -

Si vous avez une carte ethernet, ne modifiez pas comme je l'ai fait. Pour tout modem USB, faites comme moi.
Les tests réalisés à cette adresse ont donné de bons résultats, tous les ports testés sont cachés.

Vérifiez aussi si le fichier policy contient bien ces deux lignes:
net   all   DROP    info
all   all   REJECT    info


C'est tout.
N'hésitez pas à m'envoyer un mail pour signaler toute erreur et oubli de ma part.
Merci infiniment à Xavier AUBRUN pour les précisions qu'il m'a apportées.