OpenWRT : Tunnel SSH pour LuCI

Article publié, le
3 minute(s) de lecture

Cet article contient 507 mots.
Source brute de l'article : MD

Description

Abordons l’aspect de connexion SSH dans OpenWRT pour sécuriser l’accès à l’interface d’administration LuCI.

Info

Configuration

Tunnel SSH

Par défaut, l’interface web LuCI n’est disponible QUE sur le protocole HTTP , et en plus à l'écoute partout ET sur toutes les interfaces !!!

Une manière de protèger est de rediriger le flux web vers l’interface locale de bouclage puis dans un tunnel SSH.

Aprés s'être connecté en SSH à votre routeur OpenWRT :

  1. En premier lieu, sur OpenWRT, il nous faut reconfigurer le serveur web uhttpd, pour lui dire de n'écouter QUE localement sur le port 80. Donc, éditez le fichier de configuration du serveur web /etc/config/uhttpd pour :
    • mettre en commentaire les deux lignes : list listen_http 0.0.0.0:80 et list listen_https 0.0.0.0:443 ; ajoutez en début de ligne le symbole #.
    • puis ajoutez : list listen_http 127.0.0.1:80
      (et si vous voulez interrogez localhost sur IPv6 : list listen_http [::1]:80)
    • redémarrez le service web : /etc/init.d/uhttpd restart
    • vérifiez que le service web n'écoute bien que le port 80 sur l’interface locale :
      $ netstat -ant | grep -E ":80"
      tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN
      tcp 0 0 ::1:80 :::* LISTEN
  2. Ensuite, la commande par défaut pour encapsuler dans SSH, du côté de votre client SSH est :
    ssh -L 127.0.0.1:8080:127.0.0.1:80 -p 22 id@ip-routeur
    Où :
    • -p 22 est le numéro du port d'écoute par défaut du serveur SSH - par défaut, il n’est même pas nécessaire de l'écrire : si vous l’avez changé dans l’administration, pensez à le modifier ici, aussi !
    • id est l’identifiant de votre nouvel utilisateur.
    • ip-routeur est bien sûr l’adresse IP(v4), côté LAN, de votre routeur OpenWRT !
    • Voici un exemple de configuration de votre fichier de config SSH du côté de votre client :

      Fichier : ~/.ssh/config

      1
      2
      3
      4
      5
      6
      7
      8
      
      Host luciweb
          Ciphers aes256-ctr
          Hostname 192.168.1.1
          IdentityFile ~/.ssh/id_ed25519
          LocalForward 127.0.0.1:8080 127.0.0.1:80
          MACs hmac-sha2-256
          Port 22
          User identifiant
      

      Ainsi, vous n’aurez plus qu'à exécuter ainsi : $ ssh luciweb
    • Pour finir, dans votre navigateur web, écrivez l’URL suivante : localhost:8080

Voilà !

Shell

  • Le fichier de configuration est situé dans : /etc/config/dropbear
  • Le service de dropbear est lui accessible : /etc/init.d/dropbear.

Dépannage

Error: no matching cipher found. Their offer: aes128-ctr,aes256-ctr

Le serveur SSH dropbear n’est pas capable de gérer des chiffrements forts autres que ceux restitués dans le message d’erreur.
Ajoutez à votre configuration client SSH : Ciphers aes256-ctr

Error: no matching host key type found. Their offer: ssh-rsa

Le serveur SSH dropbear n’est pas capable de gérer des clés d’hôtes plus fortes autres que celles restituées dans le message d’erreur.
Ajoutez à votre configuration client SSH : HostKeyAlgorithms ssh-rsa

Error: no matching MAC found. Their offer: hmac-sha1,hmac-sha2-256

Le serveur SSH dropbear n’est pas capable de gérer des algorithmes forts, pour les MAC , autres que ceux restitués dans le message d’erreur.
Ajoutez à votre configuration client SSH : MACs hmac-sha2-256