Environnement du TP 8 : OpenWrt

Hyperviseur recommandé : VirtualBox (fonctionne également avec VMware Workstation ou Hyper-V)

1. Prérequis matériels

  • 512 Mo de RAM, 1 vCPU, 200 Mo de disque suffisent,
  • une interface réseau virtuelle en mode host-only pour l’accès API depuis le poste hôte.

2. Téléchargement de l’image

  1. Rendez-vous sur https://downloads.openwrt.org/releases/ et choisissez la dernière version stable.
  2. Naviguez vers targets/x86/64/.
  3. Téléchargez le fichier generic-ext4-combined.img.gz (image disque prête à démarrer, adaptée aux machines virtuelles x86_64).
  4. Décompressez l’archive pour obtenir openwrt-x86-64-generic-ext4-combined.img.

3. Conversion du disque (VirtualBox)

VBoxManage convertfromraw openwrt-x86-64-generic-ext4-combined.img openwrt.vdi --format VDI

Note VMware Workstation : qemu-img convert -f raw openwrt-x86-64-generic-ext4-combined.img -O vmdk openwrt.vmdk. Note Hyper-V : convertissez en VHDX avec qemu-img convert -f raw openwrt-....img -O vhdx openwrt.vhdx, puis attachez ce disque à une VM Génération 1.

4. Création de la VM (VirtualBox)

  1. Nouvelle machine → Type Other Linux (64-bit).
  2. RAM : 512 Mo, pas de disque à créer (on attache le VDI existant).
  3. Dans Stockage, attachez openwrt.vdi comme disque dur SATA/IDE.
  4. Dans Réseau :
    • Adaptateur 1 : Réseau privé hôte (Host-only Adapter) — OpenWrt configure par défaut 192.168.1.1/24 sur sa première interface (lan),
    • Adaptateur 2 (optionnel) : NAT, si vous voulez que la VM ait accès à Internet (pour installer des paquets opkg).

5. Premier démarrage et réseau

  1. Démarrez la VM : la console affiche l’invite root@OpenWrt.
  2. Depuis le poste hôte, configurez une adresse IP statique dans le sous-réseau 192.168.1.0/24 (ex. 192.168.1.10/24) sur l’adaptateur réseau host-only.
  3. Vérifiez la connectivité :
ping 192.168.1.1

6. Activation de l’accès distant à ubus (JSON-RPC via HTTP)

Par défaut, uhttpd sert déjà l’interface LuCI et le point d’entrée /ubus. Vérifiez/complétez la configuration :

uci show uhttpd | grep ubus

Si nécessaire, activez le module RPC :

opkg update
opkg install rpcd-mod-file uhttpd-mod-ubus
/etc/init.d/uhttpd restart

Définissez un mot de passe root (obligatoire pour l’authentification ubus) :

passwd

7. Test depuis le poste hôte

curl -s http://192.168.1.1/ubus \
  -d '{"jsonrpc":"2.0","id":1,"method":"call","params":["00000000000000000000000000000000","session","login",{"username":"root","password":"VotreMotDePasse"}]}'

Une réponse JSON contenant ubus_rpc_session confirme que l’environnement est opérationnel.

Vérification finale

  • La VM répond au ping depuis le poste hôte.
  • Le mot de passe root est défini.
  • L’appel session.login en JSON-RPC renvoie un ubus_rpc_session valide.