Labs OpenWRT
- 1. Matériel nécessaire
- 2. Remise à zéro
- 3. Mise-à-jour du système en version stable
- 4. Vérification du réseau
- 5. Fichiers de configuration
- 6. Configuration de la passerelle
- 7. Examen de l’interface graphique
- 8. Activités étendues
1. Matériel nécessaire
1.1. TL-WR841ND
Pages officielles
- http://www.tp-link.com/lk/products/details/?model=TL-WR841ND#spec
- http://openwrt.org/toh/tp-link/tl-wr841nd
- http://www.amazon.fr/dp/B0019EQ1RW/ref=wl_it_dp_o_pC_S_ttl?_encoding=UTF8&colid=3U2BD7X6Y9Y31&coliid=I2SCI8P495BZJX
Il existe plusieurs versions du matériel, ce qui implique plusieurs versions du firmware pour un même modèle. On peut encore trouver aujourd'hui des versions 8, 9, 10 et 11. Voici les caractéristiques de ce matériel :
- Processeur : AR9341 (v8), QCA9533-AL3A (v9, v10 et v11) cadencés entre 535 et 560 MHz
- Flash : 4 Mo
- RAM : 32 Mo
- Wireless 802.11bgn
- Switch Ethernet (différent v8/v9) avec 5 ports 100 Mbps
Autant de services supportés sur un système de fichiers de 4 Mo est remarquable !
On observe sur ce matériel :
- 5 ports Ethernet 10/100 Mbps
- deux antennes Wi-Fi qui étendent une interface de réseau sans fil
- un bouton On/Off
- un bouton reset
Aussi d'un point de vue logique, voici l'agencement des interfaces :
- 4 ports LAN : Switch0
eth0
- 1 port WAN
eth1
- Interface Wi-Fi
wlan0
- LAN : Pont (bridge) VLAN x + Wi-Fi
br-lan
Ce matériel vieillissant est donc limité à 4 Mo de Flash et 32 Mo de RAM. Openwrt a publié un avis sur cette situation : 4/32 warning.
On proposera des alternatives matérielles pour ce lab telles que :
- TP-Link TL-WR810N
- TP-Link TL-WDR3600
- Gl.Inet AR300M
- ou encore tout autre matériel supporté dans la liste OpenWRT Table of Hardware
TP-Link TL-WR810N
En 2016, on proposera le TL-WR810N, un modèle d'expérimentation plus compact, plus performant et bon marché.
- https://openwrt.org/toh/tp-link/tl-wr810n
- Processeur : Qualcomm Atheros QCA9531-BL3A cadencé à 650 MHz
- Flash : 8 Mo
- RAM : 364 Mo
- Wireless 802.11bgn
- Switch Ethernet avec 2 ports 100 Mbps
TP-Link TL-WDR3600
De la même époque, mis à jour en 5 GHz et en Gigabit Ethernet, avec 128 Mo de RAM et 8 Mo de Flash, le TP-Link TL-WDR3600 :
- https://openwrt.org/fr/toh/tp-link/tl-wdr3600
- Architecture: MIPS MIPS 74Kc
- Vendor: Qualcomm Atheros
- bootloader: U-Boot
- System-On-Chip: AR9344 (MIPS)
- CPU/Speed 560 MHz
- Flash-Chip: Spansion FL064KIF docs
- Flash size: 8192 KiB
- RAM: 128 MiB
- Wireless No1: Atheros AR9340 2.4GHz 802.11bgn
- Wireless No2: Atheros AR9582 5GHz 802.11an
- switch: Atheros AR8327N Gigabit Switch
- USB: Yes 2 x 2.0 (GL850G chip - 4 ports capable)
Gl.Inet AR300M
Mieux encore le mini-routeur Gl.Inet AR300M qui est une plateforme qui embarque nativement OpenWRT.
- https://www.gl-inet.com/docs/mini/ar300m/
- Atheros 9531 650Mhz CPU
- Wireless 802.11bgn
- Dual Flash: 16MB Nor + 128MB Nand
- 128MB DDR2 RAM
- UART, PCIe, USB-A Interfaces
- Alimentation USB Female Micro-B 5V 1W, 3.3V
- Dimension/poids 585825mm, 39g
- Bootloader: uBoot
- WI1 antenna connector: U.FL, RP-SMA
- ETH chip1: Qualcomm Atheros QCA9531
1.2. Logiciels Console/Telnet/SSH
- putty.exe
- pscp.exe
- plink.exe
- WinSCP
1.3. Images OpenWrt pour TL-WR841ND
- Versions Trunk ou Stable
- Images Factory ou Sysupgrade
TL-WR841N(D) v8
- version 15.05
TL-WR841N(D) v9
- Version 15.05 :
- Version Trunk : https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/openwrt-ar71xx-generic-tl-wr841-v9-squashfs-sysupgrade.bin
TL-WR841N(D) v10
- Version 15.05.1 :
- image factory : https://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/openwrt-15.05.1-ar71xx-generic-tl-wr841n-v10-squashfs-factory.bin
- image sysupgrade : https://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/openwrt-15.05.1-ar71xx-generic-tl-wr841n-v10-squashfs-sysupgrade.bin
TL-WR841N(D) v11
- Version DD trunk :
1.4. Mise-à-jour vers OpenWRT
Cette étape est nécessaire uniquement pour passer du système TP-LINK vers un système OpenWRT. L'image utilisée est l'image factory qui est une image compilée pour le flasheur de bootloader ou le logiciel de flash d'origine.
Soit le matériel est neuf, soit on a procédé à la restauration du logiciel original (https://openwrt.org/toh/tp-link/tl-wr841nd#go_back_to_original_firmware).
Objectif
Remplacer le firmware TP-Link original par celui d’OpenWRT (version Trunk ou Stable) et réaliser une configuration minimale. L’activité peut prendre 30 minutes. L’intérêt est de manipuler le matériel réseau avec un OS ouvert, évolutif, stable et facile à prendre en main.
Matériel nécessaire
- une station de travail
- une connexion Internet
- un routeur TL-841ND v9.0
- le firmware correpsondant (image Factory)
Procédure
Etape 1 : Identification de la version du matériel
Vérifier la version Hardware au verso du matériel.
- Se procurer le Firmware (Version Trunk pour TL-841ND v9.0) à l’adresse suivante : http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr841n-v9-squashfs-factory.bin
- Se procurer le Firmware (Version Trunk pour TL-841ND v8.2) : http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin
Etape 2 : Connectique et démarrage
- Connectique : connexion de la station de travail à un port LAN (jaune) et l’Internet sur le port WAN (bleu).
- Allumer le routeur.
- Le routeur offrira par défaut des adresses IP dans la plage 192.168.0.0/24 sur son interface LAN.
Etape 3 : Mise à jour
Mise à jour du firmware. Le routeur est accessible par défaut en HTTP sur l’adresse 192.168.0.1.
- Ouvrir un navigateur Web et se rendre à l’adresse http://192.168.0.1/ (admin:admin)
- Aller dans le menu System Tools/Firmware Upgrade, choisir le fichier du firmware et appuyer sur le bouton “Upgrade”.
- Patienter plusieurs minutes le temps du redémarrage.
Etape 4 : Installation de l'interface graphique
Après la mise à jour, le routeur dispose d’une nouvelle adresse IPv4 en 192.168.1.1. L’adresse de la station de travail a changé également de manière dynamique.
Pour installer l’interface graphique.
- A partir de la station de travail, se connecter avec le logiciel putty en Telnet sur l’adresse du routeur 192.168.1.1
- Mettre à jour la liste des paquetages :
opkg update
- Installer l’interface Web graphique :
opkg install luci
- Lancer le serveur Web à chaque redémarrage :
/etc/init.d/uhttpd enable
- Démarrer le serveur Web :
/etc/init.d/uhttpd start
Etape 5 : Interface Web
Accéder au routeur via l'interface désormais à l'écoute sur la nouvelle adresse http://192.168.1.1/
2. Remise à zéro
2.1. Démarrage en mode sans échec
Cette opération permet de reprendre la main sur le routeur en le démarrant en mode sans échec (Failsafe boot).
OpenWrt possède un mode de démarrage sans échec interne qui essaye de contourner tous les paramètres de configuration en faveur de quelques paramètres inscrits en dur dans le code. Une fois entré dans ce mode, le routeur devient accessible à l'adresse 192.168.1.1/24 (même si la configuration est fixée à une autre valeur) avec seulement les services essentiels qui fonctionnent. Depuis cet état (démarrage sans échec), vous pouvez vous reconnecter via telnet (à l'adresse 192.168.1.1) et régler certains problèmes.
Sources et compléments : http://openwrt.org/fr/doc/howto/generic.failsafe
- Eteindre le routeur
- Déconnecter la connexion “Wan” du routeur
- Connecter le PC à un port “Lan” du routeur
- Maintenir sont doigt sur le bouton reset pendant plus de 30 secondes en rebranchant l’alimentation, la dernière diode clignote rapidement
2.2. Remise à zéro de la configuration
En réalité, le système lui-même est présent sur une partition en lecture seule. Toute modification ou ajout au firmware original est enregistré dans une partition “rootfs_data”. “mtd” est le logiciel qui permet d’agir sur des disques Flash.
Sources et compléments : http://openwrt.org/fr/doc/techref/flash.layout
- (Fixer l’adresse IP de l’interface du PC à 192.168.1.2/24)
- Lancer un telnet 192.168.1.1 et lire le message d’accueil ? Quelle est l’information importante à retenir ?
- Effacer la configuration :
mtd -r erase rootfs_data
3. Mise-à-jour du système en version stable
La dernière version stable est déjà compilée avec l’interface graphique. On devra se passer d’une interface graphique avec la version Trunk téléchargée.
Sources et compléments :
- http://openwrt.org/fr/about/latest,
- http://openwrt.org/doc/howto/generic.sysupgrade,
- http://openwrt.org/doc/techref/sysupgrade
3.1. Placer le dernier firmware sur le routeur
Deux options sont disponibles :
- Avec une connexion Internet, à partir du routeur
- En transférant le fichier du firmware par SSH
Première Option
Directement à partir du routeur avec vérification d’intégrité (connexion WAN nécessaire), veuillez adapter les URLs :
- Lancer un telnet 192.168.1.1
- se rendre dans le dossier /tmp :
cd /tmp
- Télécharger le dernier firmware : par exemple,
wget http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/openwrt-ar71xx-generic-tl-wr841n-v9-squashfs-sysupgrade.bin
- Télécharger la somme de contrôle MD5 :
wget http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/md5sums
- Lancer la vérification :
md5sum -c md5sums 2> /dev/null | grep OK
Seconde Option
En SSH/SCP à partir d’une station de travail Windows.
- Sur le routeur, activer SSH en changeant le mot de passe (de de l’utilisateur root) :
passwd
- Sortie de la session telnet :
exit
- Installer
pscp.exe
sur son pc (Equivalent Linuxscp
) ou via WinSCP (client graphique) - placer le firmware sur le routeur en une seule ligne :
pscp -scp openwrt-*-sysupgrade.bin root@192.168.1.1:/tmp/
3.2. Mise à jour du firmware OpenWRT
Exécution de la commande :
sysupgrade -v /tmp/openwrt-*-sysupgrade.bin
4. Vérification du réseau
Sources et compléments : http://openwrt.org/doc/uci/network
4.1. Vérification des interfaces
ifconfig -a
- Quelles sont les interfaces ?
- Leur état
- Leur adresse IPv4
- Leurs adresses IPv6
- Leur usage/type
4.2. Analyse de la table de routage IPv4
route
4.3. Analyse de la table de routage IPv6
route -A inet6
4.4. Vérification du trajet à travers l'Internet
traceroute www.google.com
4.5. On peut aussi procéder à un ping stratégique
ping www.google.com
ping 8.8.8.8
ping 192.168.1.1
4.6. Vérification DNS
Résolveur de nom :
cat /etc/resolv.conf
cat /tmp/resolv.conf.auto
Résolution de nom :
nslookup www.google.com
4.7. Redémarrage du réseau
/etc/init.d/network restart
4.8. Configuration TCP/IP du noyau
cat /etc/sysctl.conf
5. Fichiers de configuration
5.1. Services
ps
top
ps | grep uhttpd
ps | grep dropbear
5.2. Liste des fichiers
ls -l /etc/config/
dhcp
: service DHCP/DHCPv6dropbear
: service SSHfirewall
: service firewall Netfilterluci
: application graphiquenetwork
: interfaces TCP/IPsystem
: système ()ubootenv
: démarrageucitrack
: correspondance entre UCI et les servicesuhttpd
: service WEBwireless
: interfaces wi-fi
5.3. Lire le contenu d’un fichier avec le programme cat
cat /etc/config/wireless
5.4. Lire le contenu d’un fichier avec le programme less
less /etc/config/network
5.5. Faire une copie d’un fichier
Copie d'un fichier texte avec cat :
cat /etc/config/network > /etc/config/network.old
ls -l /etc/config/net*
Plus simplement copier avec la commande cp :
cp /etc/config/wireless /etc/config/wireless.old
ls -l /etc/config/wi*
6. Configuration de la passerelle
Le but de l'exercice est de monter une passerelle OpenWRT selon le modèle présenté ci-dessus.
Les tâches consistent à configurer et activer différents services :
- Activer un service sécurisé d'accès distant
- Activer l'adressage IP côté LAN et côté WAN
- Vérifier le routage
- Vérifier les services IP
- DHCP
- Neighbor Discovery IPv6
- DHCPv6
- DNS
- Firewall
6.1. Activation de SSH
passwd
6.2. Configuration de l’interface br-lan en bash
cat /etc/config/network | grep '192.168.1.1'
Changement de l’adresse de 192.168.1.1 en 192.168.8.1 :
sed -i "s/1\.1/8\.1/g" /etc/config/network
Vérification
cat /etc/config/network | grep '192.168.8.1'
Prendre en compte les changements d’interface
reboot
6.3. Configuration des paramètres système
- Hostname : LAB-XXXXXX
- Timezone : Europe/Brussels
- NTP list server : 0.be.pool.ntp.org
Écrire dans un fichier avec vi
vi /etc/config/system
Installation et usage de nano
date; df -h | head -n 2
opkg update
date; df -h | head -n 2
opkg install nano
date; df -h | head -n 2
nano /etc/config/system
6.4. Modification du port HTTP d’administration (commandes UCI)
On peut aussi configurer tout le système via des commandes uci (voir https://openwrt.org/doc/uci#command_line_utility)
uci set uhttpd.main.listen_http=8080
uci commit uhttpd
/etc/init.d/uhttpd restart
netstat -antp | grep 8080
grep 8080 /etc/config/uhttpd
7. Examen de l’interface graphique
7.1. Redémarrage
Pour que tous ces paramètres soient pris en compte, il est certainement nécessaire de redémarrer le périphérique.
7.2. Accès Web
L’interface graphique est désormais accessible via un navigateur Web sur l’URL http://LAB-XXXXXX:8080/
7.3. Menu Status
- Aperçu général : Overview
- Routes
- Table ARP
- Routes IPv4
- Routes IPv6
- System logs
- Kernel logs
- Real Times Graphs
- Charge
- Trafic
- Sans-fil
- Connexions
7.4. Menu System
- System Properties
- Hostname : RXXX
- Timezone : Europe/Brussels
- NTP client
- NTP server
- 0.be.pool.ntp.org
- Logging Syslog
- Administration : régler SSH
- Password (désactiver Telnet/activer SSH)
- Software : installation de logiciels supplémentaires
- Startup : vérifier les services au démarrage
- Scheduled Tasks
- LED Configuration
- Flash operations
- Backup / Restore configuration
- Flash new firmware image en gardant ou non la configuration
- reboot
7.5. Menu Network
Interfaces
- Statut, démarrage, édition
- Intégrer une nouvelle interface
- Préfixe IPv6 ULA
Wifi
Switch
DHCP et DNS
Hostnames
Static routes
Firewall
- Vérification des paramètres de zone
Diagnostics
8. Activités étendues
- Transfert de ports TCP/UDP IPv4
- Routeur Wi-fi WAN
- Authentification 802.1X avec serveur radius + VLAN + zone VPN : https://openwrt.org/doc/howto/wireless.security.8021x, https://openwrt.org/oldwiki/wpa2enterprise, https://openwrt.org/doc/uci/wireless#wpaenterpriseaccesspoint
- Client DDNS
- Client ovpn
- Création d'un DMZ
- Routeur RIP/OSPF
- Compilation d'une image
- http://blog.flozz.fr/2013-07-14/debriquer-routeur-tp-link-tl-wr841nd/