Description
Abordons l’aspect de connexion SSH dans OpenWRT pour sécuriser l’accès à l’interface d’administration LuCI.
Merci de vous référez à mon article à-propos d’OpenWRT
qui restitue quelques notions intéressantes à-propos du serveur SSH, de certains paramétrages clients nécessaires à faire, etc.
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 :
- 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
etlist 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
- mettre en commentaire les deux lignes :
- 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
Ainsi, vous n’aurez plus qu’à exécuter ainsi :1 2 3 4 5 6 7 8
Host luciweb Ciphers aes256-ctr Hostname 192.168.1.1 IdentityFile ~/.ssh/id_rsa LocalForward 127.0.0.1:8080 127.0.0.1:80 MACs hmac-sha2-256 Port 22 User identifiant
$ 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