Première connexion

Au premier démarrage le routeur aura l'adresse IP 192.168.1.1. En fonction de l'image utilisée d'OpenWRT|LEDE la méthode de connexion initiale variera entre telnet, ssh et https:

  • Dans les version précédentes d'OpenWRT (jusqu'à CC 15.05) seul le démon telnet est actif jusqu'au changement du mot de passe de root. Le démon telnet est ensuite remplacé automatique par SSH pour les connexions subséquentes (et telnet est alors désactivé automatiquement).
  • Les version plus récentes d'OpenWRT utilisent plutôt directement le démon ssh.
  • La version rc1 de LEDE ne fourni pas de démon SSH par défaut et seul l'interface Luci accessible via HTTPS est disponible.

Dans tous les cas le mot de passe de root doit être assigné lors de la première connexion que ce soit en ligne de commande ou via Luci (interface web).

Exemple d'assignation d’un mot de passe via telnet

whoami@localhost:~$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
 === IMPORTANT ============================
  Use 'passwd' to set your login password
  this will disable telnet and enable SSH
 ------------------------------------------
 CHAOS CALMER (15.05.1, r48532)
 ------------------------------------------
root@OpenWrt:/# passwd
Changing password for root
New password:
Retype password:
Password for root changed by root

Exemple d'assignation d’un mot de passe via ssh

whoami@localhost:~$ ssh root@192.168.1.1
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
RSA key fingerprint is SHA256:.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.1' (RSA) to the list of known hosts.


BusyBox v1.25.1 () built-in shell (ash)

     _________
    /        /\      _    ___ ___  ___
   /  LE    /  \    | |  | __|   \| __|
  /    DE  /    \   | |__| _|| |) | _|
 /________/  LE  \  |____|___|___/|___|                      lede-project.org
 \        \   DE /
  \    LE  \    /  -----------------------------------------------------------
   \  DE    \  /    Reboot (17.01.3, r3533-d0bf257c46)
    \________\/    -----------------------------------------------------------

root@lede:~# passwd
Changing password for root
New password: 
Retype password: 
passwd: password for root changed by root

Référence: https://wiki.openwrt.org/fr/doc/howto/firstlogin

Nom d'hôte (hostname)

La première modification que j'effectue est d'assigner un nom au périphérique:

uci set system.@system[0].hostname=th0ma7-router
uci commit system

Il est possible de forcer la prise en charge immédiate du nouveau nom d'hôte sans redémarrer:

root@OpenWrt|LEDE:~# echo $(uci get system.@system[0].hostname) > /proc/sys/kernel/hostname
root@th0ma7-router:~#

Pour les intéressés je vous suggère de jetter un coup d'oeil à l'article SSH sans mot de passe.

Fuseau horaire (timezone)

Une des premières étapes de configuration que j'effectue sur tous mes systèmes est d'ajuster la date et l'heure et de m'assurer que ceux-ci demeurent exacts. Cela permet par la suite de confirmer certains attributs via l'heure affichée dans les journaux (logs) ou encore l'heure de modification de fichiers.

Pour changer le fuseau horaire pour America/Montreal :

root@OpenWrt|LEDE:~# uci set system.@system[0].timezone='EST5EDT,M3.2.0,M11.1.0'
root@OpenWrt|LEDE:~# uci commit system

La liste des fuseaux est disponible ici: https://wiki.openwrt.org/doc/uci/system#time_zones

Synchronisation de l'heure

Par défaut LEDE est pré-configuré afin de synchroniser son heure via les serveurs:

  • 0.lede.pool.ntp.org
  • 1.lede.pool.ntp.org
  • 2.lede.pool.ntp.org
  • 3.lede.pool.ntp.org

Aucune configuration n'est nécessaire pour conserver l'heure à jour. Par contre on peut utiliser notre routeur afin de synchroniser l'heure des périphériques au sein de notre LAN. Pour se faire il ne suffit que d'activer la configuration serveur et de réinitialiser le démon ntpd:

# uci set system.ntp.enable_server='1'
# uci commit
# /etc/init.d/sysntpd restart

Référence: https://lede-project.org/docs/user-guide/ntp_configuration

Changer la plage IP du LAN par défaut

Il est une mauvaise habitude de conserver la plage IP par défaut. Celle-ci permet souvent de déterminer quelle distribution ou modèle de routeur il est question simplement via sa plage réseau utilisée. Par conséquent je change systématiquement la plage réseau du LAN via:

uci set network.lan.ipaddr='192.168.80.1'
uci set network.lan.broadcast='192.168.80.255'
uci changes network
uci commit

Redémarrer le réseau (si câblé) sinon reboot (si WIFI):

root@OpenWrt|LEDE:~# /etc/init.d/network restart

Ajuster le DHCP par défaut

J'utilise le démon DHCP pour la quasi totalité des périphériques sur mon réseau LAN. Cependant j'aime bien spécifier et limiter la plage IP sur laquelle les périphériques seront situés logiquement.

Je change donc la plage DHCP du réseau LAN afin qu'elle débute à 20 et se termine à 49 (limite de 30 adresses).

uci set dhcp.lan.start='20'
uci set dhcp.lan.limit='30'

J'assigne la passerelle par défaut (gateway) associée à l'adresse de mon routeur (192.168.80.1):

uci set dhcp.lan.dhcp_option='3,192.168.80.1'

J'ajoute mon routeur à titre de DNS primaire ainsi que les DNS de google à titre de résolution secondaire:

uci add_list dhcp.lan.dhcp_option='6,192.168.80.1,8.8.8.8,8.8.4.4'

J'applique les changements de configuration:

uci changes dhcp.lan
uci commit

Je redémarre ensuite le démon DHCP en réinitialisant les baux existants:

root@OpenWrt|LEDE:~# /etc/init.d/dnsmasq stop
root@OpenWrt|LEDE:~# > /tmp/dhcp.leases
root@OpenWrt|LEDE:~# /etc/init.d/dnsmasq start

Sur mon client Linux il est ensuite possible de valider le résultat:

whoami@localhost:~$ nmcli device show eth0 | grep IP4
IP4.PASSERELLE:                         192.168.80.1
IP4.DNS[1]:                             192.168.80.1
IP4.DNS[2]:                             8.8.8.8
IP4.DNS[3]:                             8.8.4.4

Référence: https://wiki.openwrt.org/doc/uci/dhcp

Ajuster le WIFI par défaut

Le réseau sans fil est désactivé par défaut. Il est donc essentiel d'ajuster certains paramètre avant de l'activer.

Afin que notre périphérique respecte les normes locales il est nécessaire d'ajuster la zone géographique par défaut (exemple: CA=Canada):

uci set wireless.radio0.country=CA
uci set wireless.radio1.country=CA

Voir la liste des codes: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Decoding_table

Changer le nom des réseaux 2.4Ghz et 5Ghz (exemple: th0ma7):

uci set wireless.@wifi-iface[0].ssid='th0ma7'
uci set wireless.@wifi-iface[1].ssid='th0ma7'

D'avis de certains il est préférable d'utiliser des noms différents afin de distinguer le 2.4Ghz du 5Ghz. Cependant les nouveaux périphériques tenteront automatiquement d'utiliser celui qui obtiendra la meilleure performance basé sur plusieurs critères dont notamment la puissance du signal.

Activer l’encryption et définir le mot de passe par défaut:

uci set wireless.@wifi-iface[0].encryption='psk2'
uci set wireless.@wifi-iface[0].key='********'
uci set wireless.@wifi-iface[1].encryption='psk2'
uci set wireless.@wifi-iface[1].key='********'

Activer les interfaces WIFI:

uci set wireless.radio0.disabled=0
uci set wireless.radio1.disabled=0

Appliquer les changements:

uci commit wireless

Démarrer les réseaux WIFI (wlan0/wlan1):

wifi

Référence: https://wiki.openwrt.org/doc/uci/wireless

WIFI à 40MHz (300Mbps)

Il est possible sur plusieurs routeur d'optimiser la puissance du signal wifi 802.11n à 40MHz (300Mbps). Cependant par défaut OpenWRT ajuste le mode à 20MHz avec une vitesse maximale théorique de 130Mbps:

root@OpenWRT:~# ubus call network.wireless status | grep htmode
                        "htmode": "HT20",
                        "htmode": "HT20",

On valide que notre routeur permet le mode à 40MHz sur chaque bande:

root@OpenWrt|LEDE:~# iw phy phy0 info
Wiphy phy0
        Band 1:
                Capabilities: 0x11ef
                        HT20/HT40

root@th0ma7-router:~# iw phy phy1 info
Wiphy phy1
        Band 2:
                Capabilities: 0x11ef
                        HT20/HT40

On augmente cette valeur à 40MHz avec un débit théorique à 300Mbps:

uci set wireless.radio0.htmode=HT40
uci set wireless.radio1.htmode=HT40
uci commit

On redémarre:

root@OpenWrt|LEDE:~# reboot

On valide que le mode à 40MHz est bien actif suivant le redémarrage:

root@OpenWrt|LEDE:~# ubus call network.wireless status | grep htmode
                        "htmode": "HT40"
                        "htmode": "HT40"

Référence: https://wiki.openwrt.org/doc/uci/wireless#mhz_channel_width_up_to_300_mbps_for_80211n_devices_only

Surveillance de l'utilisation de la bande passante via bandwidthd

Le logiciel bandwidthd permet d'obtenir un sommaire de l'utilisation de notre bande passante telle qu'utilisée par chacun des périphérique sur notre réseau.

On installe bandwidthd:

root@OpenWrt|LEDE:~# opkg install bandwidthd

Par défaut bandwidthd fait l'analyse des paquets uniquement sur l'interface br-lan. Puisque j'utilise un adressage IP différent que celui par défaut je dois changer la plage sous-réseau à surveiller:

uci set bandwidthd.@bandwidthd[0].subnets='192.168.80.0/24'
uci commit

Puis activer par défaut bandwidthd à l'initialisation du routeur et démarrer le démon:

root@OpenWrt|LEDE:~# /etc/init.d/bandwidthd enable
root@OpenWrt|LEDE:~# /etc/init.d/bandwidthd start

Le résultat est disponible en temps réel à l'adresse de notre routeur tel que http://192.168.80.1/bandwidthd/

UPnP

L'abbréviation UPnP signifie “Universal Plug and Play”. L'utilisation de l'UPnP permet aux application d'effectuer la redirection de port via votre routeur automatiquement, vous sauvant du trouble de faire une configuration manuelle.

opkg update
opkg install miniupnpd luci-app-upnp luci-i18n-upnp-fr
/etc/init.d/miniupnpd enable
/etc/init.d/miniupnpd start
/etc/init.d/firewall restart

La configuration par défaut d'OpenWRT|LEDE active le protocole UPnP uniquement sur votre interface LAN. Ainsi si vous faites confiance à l'ensemble des périphériques de votre réseau l'utilisation de l'UPnP est en soi sécuritaire. À noter que la configuration initiale est changée avec la version LEDE 17.01.3 et le secure_mode est actif par défaut. Il est requis d'activer les services via l'interface ou en ligne de commande:

root@th0ma7-router:~# uci set upnpd.config.enabled=1
root@th0ma7-router:~# uci commit

La configuration finale par défaut:

root@th0ma7-router:~# uci show upnpd.config
upnpd.config=upnpd
upnpd.config.download='1024'
upnpd.config.upload='512'
upnpd.config.internal_iface='lan'
upnpd.config.port='5000'
upnpd.config.upnp_lease_file='/var/upnp.leases'
upnpd.config.uuid='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
upnpd.config.enabled='1'

Références: