Linux:Installation du Soekris net4501

Un article de Djjnet.

e but de cet article est de décrire comment installer votre propre firewall/routeur basé sur une distribution Debian. L'avantage par rapport à une solution commerciale classique est que vous disposez d'une vrai DMZ. Vous pouvez y placer vos services accessibles sur Internet comme un serveur Web, DNS ou mail. Ainsi vous protégez vos donnés locales des intrus.

Le soekris net4501 dispose donc de 3 ports Ethernet.

  • eth0 est connecté à votre modem ethernet.
  • eth1 est connecté à votre réseau local.
  • eth2 peut servir à créer une DMZ.

Il est recommandé de disposer d'une connexion Internet avec IP fixe pour héberger des services Internet, surtout pour le DNS.

Je dispose d'une Freebox qui ne nécessite pas l'utilisation de pppoe pour créer la connexion Internet. Seul un client DHCP est nécessaire. La configuration pppoe ne sera donc pas traitée.

Sommaire

Prérequis

  • un boîtier soekris net4501 disponible sur soekris.kd85.com
  • une carte compact flash d'au moins 64Mo, 128Mo étant recommandé, 256Mo l'idéal.
  • télécharger pebble sur www.nycwireless.net/pebble

Installation

Brancher la carte compact flash dans votre lecteur de cartes.

Un disque /dev/sda (sdb ou autre sdc, etc... si vous avez déjà un disque branché en sda) est ajouté.

Utiliser cfdisk /dev/sda par exemple pour créer une partition au format ext2 sur votre carte compact flash. Celle-ci est de la taille de votre carte compact flash.
Formater la carte après l'avoir débranchée puis rebranchée : mkfs.ext2 /dev/sda1 Remarques :
L'utilisation du format ext3 n'est pas nécessaire dans notre cas, il n'y a pas de risque de perte de données.
Il n'y a pas de swap car la distribution est montée en lecture seule et la mémoire disponible est suffisante.

mkdir /mnt/cf # créer le point de montage de la carte CF
mkdir /mnt/pebble # créer le dossier pour décompresser pebble
cd /mnt/pebble # aller dans le dossier pebble

Avec les droits root exécutez :

tar --numeric-owner -jxvf /cheminvers/pebble.vXX.tar.bz2

puis

./pebble.update # procédure d'installation

Quelques précisions sur les questions :

"Which device accesses the compact flash ?"

inscrire /dev/sda (ou l'unité correspondant à votre carte CF)

"Which module?"

laissez le défaut 2

Configuration du soekris

Montage de la carte CF :

mount /dev/sda1 /mnt/cf

Configuration des interfaces réseaux :
Avec un éditeur de texte modifier le fichier : /mnt/cf/etc/network/interfaces
Mettre en commentaires la configuration de wlan0 en ajoutant un caractère # Nous n'abordons pas la configuration du Wifi.
Décommenter et modifier eth1 en dhcp si vous avez un serveur dhcp ou en static en correspondance à votre réseau local :
par exemple 192.168.1.1 (une passerelle a souvent son adresse qui termine par 1) : Je vous conseille l'utilisation du mode static pour un firewall/routeur :

auto eth1
iface eth1 inet static
 address 192.168.1.1
 netmask 255.255.255.0
 broadcast 192.168.1.255

Dupliquer cette configuration pour eth2 (la DMZ), le masque réseau est légèrement différent car la DMZ représente un autre réseau de machines :

auto eth2
iface eth2 inet static
 address 192.168.2.1
 netmask 255.255.255.0
 broadcast 192.168.2.255

Enfin démontage de la carte avant de la mettre dans le soekris :

umount /mnt/cf

La carte CF est maintenant prête à être insérée dans le boîtier.
Brancher le boîtier sur votre réseau (eth1 sur le réseau où se situe votre ordinateur personnel) et l'alimenter. Pour se connecter :

ssh root@192.168.1.1

L'après installation

Pour toute modification, vous devez lancer la commande suivante pour remonter la partition avec l'écriture :

/usr/local/sbin/remountrw

Une fois terminée, remettre en lecture seule :

/usr/local/sbin/remountro
  • Changement du nom de la machine:

Editer le fichier /etc/hostname et indiquer le nom souhaité, il faut aussi le modifier dans /ro/etc/hostname.
Editer le fichier /etc/hosts ainsi :

127.0.0.1 localhost
192.168.101.1 nom.domain nom
  • Mise à jour des packages :

Mise à jour des sources :

apt-get update

Mise à jour des packages :

apt-get upgrade

Effacer les fichiers temporaires :

apt-get clean

Exporter les logs sur une autre machine

Etant donné le système de lecture seule et la place limitée sur la carte CF, il est utile de transférer les logs sur une autre machine.
Changement du système de log par défaut par syslog-ng sinon certains logs ne seront pas transférés :

apt-get remove --purge sysklogd (--purge permet de supprimer les fichiers de configuration inutiles)
apt-get install syslog-ng

Editer le fichier /etc/syslog-ng/syslog-ng.conf et modifier toutes les destinations ainsi sachant que 192.168.1.3 est l'ip de la machine qui reçoit les logs :

destination df_auth{ udp("192.168.1.3"); };

Dans ce même fichier dans la section source s_all modifier unix-stream("/dev/log"); en :

unix-stream("/rw/dev/log");


Accepter les logs du soekris sur la machine distante :
Ajouter l'option -r au daemon sysklogd, par exemple sous debian dans le fichier /etc/init.d/sysklogd :

SYSLOGD="-r".

Sécurisation de SSH

D'abord, ajouter un nouvel utilisateur : adduser administrateur

Editer le fichier /etc/ssh/sshd_config
Modifier les options suivante ainsi pour ne pas autoriser de se connecter avec l'utilisateur root :

PermitRootLogin no
PermitEmptyPasswords no
RhostsAuthentication no

Ajouter pour n'authoriser que l'utilisateur ajouté à se connecter :

AllowUsers administrateur

Vous pouvez maintenant configurer votre soekris en ajoutant votre script iptables pour le firewall.