====== Mise à jour de OpenWRT RC3 vers RC4 ====== * Nous avons vu précédemment ([[start:OpenWRT on Linksys WRT54G How-to]]) comment installer la version RC3 du firmware Libre OpenWRT sur un routeur Linksys WRT54G. * Cette page décrit brièvement comment mettre à jour ce firmware en version RC4. ===== OpenWRT RC4 ===== Voici les principaux atouts et ajoûts de la version RC4 du firmware OpenWRT : * L'interface d'administration Web (webif) est désormais inclus dans le firmware ; * Le serveur ssh DropBear fourni avec le firmware supporte l'authentification par clef ; * Mises à jour de sécurité appliquées aux paquetages OpenVPN/OpenSWAN/OpenSSL ; * Réduction du délai de démarrage (boot) du routeur ; * Les paquetages netfilter/iptables sont désormais disponibles par modules. ===== Mise à jour ===== * Deux méthodes de mise à jour sont possibles : l'une en ligne de commande, l'autre via l'interface Web. * En tant que partisan du moindre effort, j'ai choisi cette dernière méthode. :-) * :!: Il est plus que raisonnable de sauvegarder la configuration de votre routeur avant la mise à jour; même si dans mon cas celle-ci s'est déroulée sans grosse perte de données. * Pour mettre à jour OpenWRT via l'interface web, il vous faut télécharger la dernière version à jour du firmware. * Puis, depuis linterface web, appelez la page suivante : {{ start:maj-openwrt-1.png }} * Utilisez la boite de dialogue "Firmware image to upload:" pour uploader l'image du firmware. * Ne cochez pas l'option 'Erase NVRAM " (unless you really really know what you do, comme diraient nos amis anglophones). * Cliquez sur le bouton Upgrade et attendez que le routeur redémarre. * You're done ! :-) {{ start:maj-openwrt-2.png }} ===== Après la mise à jour ===== * Vous constaterez après le redémarrage du routeur que l'interface graphique s'ouvre sur une page de changement / positionnement du mot de passe root, aussi bien pour l'accès via navigateur Web que par SSH. === Authentification SSH par clef === * Le serveur SSH Dropbear inclus dans l'image d'OpenWRT RC4 supporte l'authentification par clef. Il est donc très tentant et vivement conseillé de mettre en oeuvre cette fonctionnalité, ne serait-ce que parce qu'elle permet une gestion multi-utilisateurs assez souple. * Pour activer ce mode d'authentification, il suffit de créer un fichier authorized_keys dans le répertoire /etc/dropbear. Ce fichier servira de trousseau : la clef de chaque utilisateur autorisé y sera stockée. Dans l'exemple ci-dessous, la clef publique id_rsa.pub a été préalablement transférée sur le routeur dans le répertoire /tmp : root@OpenWrt:~# ls /etc/dropbear/ dropbear_dss_host_key dropbear_rsa_host_key root@OpenWrt:~# cd /etc/dropbear/ root@OpenWrt:/etc/dropbear# cat /tmp/id_rsa.pub >> authorized_keys root@OpenWrt:/etc/dropbear# chmod 0600 authorized_keys root@OpenWrt:/etc/dropbear# * L'authentification par clef est désormais activée comme mode d'authentification principal : bash-2.05a$ ssh root@192.168.1.1 Enter passphrase for key '/Users/mac/.ssh/id_rsa': * Mais le mode d'authentification par mot de passe est lui-aussi encore actif. Ainsi, en cas d'erreur ou d'absence de clef, le serveur SSH bascule dans ce mode : bash-2.05a$ ssh root@192.168.1.1 Enter passphrase for key '/Users/mac/.ssh/id_rsa': Enter passphrase for key '/Users/mac/.ssh/id_rsa': Enter passphrase for key '/Users/mac/.ssh/id_rsa': root@192.168.1.1's password: * Après nous être assuré du bon fonctionnement du mode d'authentification par clef, nous allons définitivement désactiver le mode d'authentification par mot de passe. Il faut pour cela éditer le script de lancement du serveu dropbear et ajouter l'option -s à la ligne de commande suivante : /usr/bin/dropbearkey qui devient donc : /usr/bin/dropbearkey -s * Rappel : le fichier /etc/init.d/S50dropbear est un lien symbolique vers /rom/etc/init.d/S50dropbear. Pour l'éditer, il faut donc d'abord remplacer ce lien par un "vrai" fichier. Une copie du fichier /rom/etc/init.d/S50dropbear dans /etc/init.d fera très bien l'affaire. * Après avoir relancé le serveur (ou rebooter le routeur), on peut constater que seul l'authentification par clef est désormais supportée : bash-2.05a$ ssh root@192.168.1.1 Enter passphrase for key '/Users/mac/.ssh/id_rsa': Permission denied (publickey).