%
image/svg+xml

OpenWRT : Présentation du projet

Article publié, le et modifié le
7 minutes de lecture

Cet article contient 1439 mots.
Source brute de l'article :
Commit version : d52797e

Description

OpenWRT est un système d’exploitation GNU/Linux ciblant les périphériques embarqués (typiquement des routeurs sans fils).

Ce n’est pas un projet monolitique , bien au contraire, c’est plus un framework fournissant les outils logiciels nécessaires afin de fournir un système de fichiers complet, de permettre la création de micrologiciels (en anglais : firmware) selon le matériel et tout autour une distribution complète qui permet à l’administrateur/utilisateur de la configurer “aux petits oignons” permettant différents usages utiles.


  • OpenWRT : v19.07.x

  • Le shell est le ash du projet Busybox.

  • L’éditeur par défaut est vi - si vous n’aimez pas, il est possible d’en installer d’autres, tel nano.

  • Les fichiers de configuration se trouvent généralement dans /etc/config/ et portent le nom du service à configurer.

  • Les services sont fonctionnels à partir du répertoire /etc/init.d/ et portent le nom du service ; ils ont pour options les classiques :

    • disable : désactiver un service - il ne redémarrera pas lors d’un (re)démarrage du routeur,
    • enable : activer un service - permet le démarrage du service lors du (re)démarrage du routeur,
    • reload : recharge la configuration du service,
    • restart : redémarre le service,
    • start : démarre le service,
    • stop : arrête le service.

Installation

Gestionnaire de paquets

Le gestionnaire de paquets est opkg est intégré de base dans le système ; hormis la mise-à-jour 'one-shot' de plusieurs paquets , il a pour propos les différentes possibilités de gestion des paquets, à savoir installation, configuration, suppression de paquets… pour en savoir plus : $ opkg ?

Si vous avez installé l'interface d'administration **LuCI** , il est possible de gérer les paquets par le biais du menu ‘System’ > ‘Software’.

Install: LuCI

LuCI est l’interface web d’administration. Par défaut, elle n’est fonctionnelle que sur le protocole HTTP .

Installez le paquet avec le gestionnaire de paquets.

# opkg install luci

L’installation de LuCI installe plusieurs paquets, dont un serveur web minimaliste nommé uhttpd , le thème basé sur Bootstrap, et les dépendances nécessaires pour la gestion de l’administration (gestion des différents protocoles réseaux, du parefeu, etc.).

Pour installer la version supportant HTTPS - ce qui est préférable -, ce sera :

# opkg install luci-ssl

Attention

Install: Langue FR

Il est possible d’installer la langue française au besoin.

Retrouvez les différents paquets linguistiques :

  • en mode console : # opkg list | grep -E "luci-i18n-(.*)-fr"
  • à-travers l’interface d’administration : menu ‘System’ > ‘Software’ puis dans le champ ‘Filter’, écrivez “luci-i18n-”.

N’installez pas tous les paquets disponibles, mais seuls ceux qui vous sont vraiment nécessaires, tels - peut-être - :

  • luci-i18n-base-fr pour l’interface de base de LuCI.
  • luci-i18n-firewall-fr pour la partie parefeu

Configuration

root

La première ET la plus importante des premières modifications à faire est de changer le mot de passe de l’admin.

  • en mode console, grâce à la commande passwd
  • par l’interface d’administration LuCI - si elle est installée - : menu ‘System’ > ‘Administration’, onglet ‘Router Password’ - onglet par défaut.
Attention

Réseaux

  • La configuration des ports se fait, soit depuis :
    • le fichier /etc/config/network,
    • l’interface d’administration LuCI, menu ‘Network’ > ‘Interfaces’.

Par défaut sont configurées les interfaces :

  • LAN en mode bridge,
  • WAN et WAN6

De plus, il est configuré deux VLAN , à partir du menu ‘Network’ > ‘Switch’, pour séparer logiciellement le LAN du WAN.

  • Le service est accessible via : /etc/init.d/network.
Astuce

Parefeu

  • La configuration du parefeu se fait, soit depuis :
    • le fichier /etc/config/firewall,
    • l’interface d’administration LuCI, menu ‘Network’ > ‘Firewall’.

Il est possible d’écrire directement des règles iptables à partir de l’onglet ‘Custom Rules’. Son fichier se trouve être /etc/firewall.user. C’est seulement dans celui-ci où peut s’écrire directement des règles iptables ou ip6tables.

  • Le service est accessible via : /etc/init.d/firewall.

dhcpd

Le serveur DHCP est dnsmasq, un serveur léger qui fait aussi office de résolveur DNS Relais (en anglais : DNS Forwarder) et fait partie du système de base. La pile IPv6 est assurée par le serveur odhcpd.

  • La configuration du serveur dnsmasq peut se faire, soit par:
    • le fichier /etc/config/dhcp
    • l’interface d’administration LuCI, menu ‘Network’ > ‘DHCP and DNS’.
  • Les services dnsmasq et odhcpd sont accessibles à partir du même répertoire d’initialisation /etc/init.d.
  • Les fichiers d’enregistrement des baux DHCP sont, pour :
    • dnsmasq : /tmp/dhcp.leases
    • odhcpd : /tmp/hosts/odhcpd

On ne peut fixer/enregistrer des baux DHCP au-travers de LuCI que pour IPv4.

Config: LuCI

  • Le fichier de configuration de LuCI est : /etc/config/luci - évitez d'y toucher, à moins de savoir réellement ce que vous faîtes !
Astuce

SSH

C’est le serveur dropbear - un serveur SSH, seulement v2, léger - qui fait office, par défaut dans le système de base. Il gère très bien les clés à courbes elliptiques, tel ed25519.

Astuce

  • Par le biais de l’interface web d’administration LuCI, choisissez le menu ‘System > Administration’, puis l’onglet “SSH Access”.

Puis paramétrez ainsi :

  • Interface : choisissez lan
  • Port : si vous laissez le port par défaut, pas besoin de le spécifier, sinon modifiez-le.

Par mesure de sécurité : laissez non cochées, les trois autres options que sont ‘Password Authentication’, ‘Allow root logins with password’ et ‘Gateway Ports’. Ainsi nous ne permettrons pas à l’identifiant root de se connecter, et à nul compte de pouvoir se connecter par mot-de-passe. Cela signifie qu’il faut ajouter une clé d’authentification SSH.

Astuce

Il est aussi possible de créer un nouvel utilisateur SSH, en choisissant pour interface : ‘unspecified’, qui permettrait de créer ledit utilisateur…

Astuce

uhttpd

Bien que léger, voire minimaliste uhttpd est LE serveur web, par défaut non installé sur le firmware initram, qui fait fonctionner l’interface web LuCI .

  • La configuration du serveur se fait via : /etc/config/uhttpd
  • Le service est accessible via /etc/init.d/uhttpd
Attention

Restauration

La restauration d’une configuration précédente peut se faire par :

  • l’interface d’administration, menu ‘System’ > ‘Backup / Flash Firmware’ puis dans la section Restore soit vous cliquez sur le bouton :
    • [ Perform reset ] qui aura pour propos de remettre à la configuration initiale du firmware - nécessite que celui-ci soit de type “squashfs”
    • [ Upload archive… ] pour restaurer une configuration précédemment archivée.

Sauvegarde

La sauvegarde de toutes configurations du routeur peut se faire par :

  • l’interface d’administration, menu ‘System’ > ‘Backup / Flash Firmware’ puis dans la section Backup cliquez sur le bouton [ Generate archive ].

Upgrade

La mise à jour du firmware peut se faire :

  • en mode console - ce qui semble préférable - par le biais de la commande sysupgrade après avoir téléchargé le firmware adéquat.
  • par l’interface d’administration, menu ‘System’ > ‘Backup / Flash Firmware’ puis dans la section Flash new firmware image cliquez sur le bouton [ Flash image ].
Attention

Documentation