Router Linux


Voici mon projet, la conception d'un routeur sous linux avec une carte SOEKRIS de type NET 4801.

J'ai choisi ce type de carte pour différents critères, entre autre le type de CPU et de mémoire embedded, les 3 cartes réseau, l'emplacement mini PCI et l'emplacement PCI pour rajouter un modem ou une carte Wifi, j'ai opté pour la carte Wifi.

Router based on linux voyage

Cette carte permet de démarrer sur une compact flash de 64Mo pour installer Linux, FreeBSD, NetBSD et OpenBSD.

J'ai utilisé une carte de 512Mo pour installer Linux et avoir plus de place pour rajouter d'autres logiciels (ex : Vuurmuur, Logcheck et d'autre software d'administration).

Voici la carte Wifi installée, nous avons donc une 3COM 3CRDAG675 basé sur un chipset Atheros avec un driver MADWIFI.

J'ai testé 3 systèmes :

  • M0n0Wall
  • NYCwireless
  • Voyage Linux

Mon choix a été d'utiliser Voyage Linux version 0.2 basé sur une Debian Sarge r3.1, ce système est compilé pour utiliser une faible empreinte mémoire, il est prévu pour fonctionner sur des "Platform x86-based embedded".

Ce système intègre le pilote pour les cartes réseau de la Net4801 et ma carte Wifi.

La configuration de DNSMASQ me permet d'avoir un serveur DHCP et serveur de cache DNS.

Les deux cartes ethernet (eth1 et eth2) me permettent de distribuer les adresses IP sur le réseau et de réaliser la résolution de nom.

La carte Wireless est configurée en Master avec le SSID masqué, en plus d'avoir masqué le SSID pour des mesures de sécurité je contrôle l'adresse MAC du poste client, elle doit être renseignée dans le fichier de configuration.

Voici mon fichier de configuration dnsmaq.more.conf:

domain=Domaine

# Voici la configuration des ranges d'adresses IP et le délai du bail attribué.

dhcp-range=ath0,192.168.XX.XX,192.168.XX.XX,24h
dhcp-range=eth1,192.168.XX.XX,192.168.XX.XX,24h
dhcp-range=eth2,192.168.XX.XX,192.168.XX.XX,24h

#Voici deux réservations d'adresse IP.

dhcp-host=00:XX:XX:XX:XX:XX,192.168.XX.XX #reservation adresse
dhcp-host=00:XX:XX:XX:XX:XX,192.168.XX.XX

# Voici la configuration fournie par le DHCP pour le partie DNS du serveur.

dhcp-option=ath0,3,192.168.XX.XX #default g/w for ath0 clients
dhcp-option=eth1,3,192.168.XX.XX #default g/w for eth1 clients
dhcp-option=eth2,3,192.168.XX.XX #default g/w for eth2 clients
dhcp-option=ath0,6,192.168.XX.XX #default DNS for ath0 clients
dhcp-option=eth1,6,192.168.XX.XX #default DNS for eth1 clients
dhcp-option=eth2,6,192.168.XX.XX #default DNS for eth2 clients


La configuration de ma carte Wireless en maître pour l'utiliser comme borne Wifi, fut un peu compliqué.

Voici mon fichier de configuration interfaces Wireless:

auto ath0
iface ath0 inet static
address 192.168.XX.XX
netmask 255.255.255.0
broadcast 192.168.XX.XX

Configuration du pilote MADWIFI

madwifi-base wifi0
wireless-mode Master
wireless-channel 9 # J'indique à la carte d'être sur le channel 9
up iwpriv ath0 mode 3 # Ici je stipule que la carte fonctionne en 802.1 G
up iwpriv ath0 hide_ssid 1 # Là je masque le SSID
up iwconfig ath0 txpower 3 # J'indique la puissance du signal
up iwconfig ath0 rate 54M

Mon ancienne configuration avec clé WEP

up iwpriv ath0 maccmd 1 # Ici je fais un contôle sur l'adresse MAC.
up iwpriv ath0 addmac 00:XX:XX:XX:XX:XX # Carte autorisée à se connecter.
up iwpriv ath0 addmac 00:XX:XX:XX:XX:XX # Carte autorisée à se connecter.
up iwpriv ath0 addmac 00:XX:XX:XX:XX:XX # Carte autorisée à se connecter.
up iwconfig ath0 essid domaine
up iwconfig ath0 mode master
up iwconfig ath0 channel 11
up iwconfig ath0 txpower 3mW
up iwconfig ath0 key (secret passphrase)
up iwconfig ath0 key restricted

Voici mon fichier de configuration hostapd.conf:

interface=ath0
ssid=domaine
macaddr_acl=1 # Ici je demande de contôler l'adresse MAC.
accept_mac_file=/etc/hostapd/hostapd.accept # Adresse MAC autorisées à se connecter.
deny_mac_file=/etc/hostapd/hostapd.deny # Adresse MAC non autorisées.
wpa=1
wpa_passphrase=(secret passphrase)
wpa_key_mgmt=WPA-PSK

Voici la configuration de mon Firewall:

J'utilise Vuurmuur comme firewall qui est très convivial d'utilisation, cette interface ncurses permet d'avoir un environnement graphique pour paramétrer IPTABLES facilement. Ce logiciel permet d'avoir une vue générale intuitive, les règles sont facilement réalisables, la partie log est bien conviviale. Je ne rentre pas trop dans les détails, je vous laisse découvrir le logiciel.

Voici à quoi ressemble le logiciel:

comodo firewall frdifférence entre firewall et antivirus

Voici la sécurité que j'ai mis en place:

J'ai voulu avoir une connection d'internet vers mon routeur, alors j'ai réalisé que je devais la sécuriser. J'ai recherché sur internet ce que je pouvais faire et j'ai ajouté cette configuration.

J'ai bloqué l'utilisateur root et je me connecte sur le routeur avec un utilisateur, le port SSH par défaut a été changé pour éviter les attaques et j'utilise pour l'utilisateur une clé privée et une clé publique.

Pour compléter la configuration du routeur j'ai aussi rajouté Portsentry pour avoir une protection sur les ports, Logcheck pour me transférer les logs par mail et exim4 comme relais SMTP.

J'ai passé beaucoup de temps pour réaliser ce projet, par contre j'ai énormément appris et cela me permet maintenant de configurer un petit réseau d'entreprise avec une borne Wifi et un Firewall sous Linux.

Remerciements:

Je remercie ma femme pour sa patience et pour son aide, James pour m'avoir présenté cette carte et de son aide. Je remercie la communauté Linuxienne pour l'aide apportée pendant mes phases de recherche, d'information et de configuration.