[Topic Officiel] - Huawei B593 - Firmware 4.1 Disponible

8 avril 2017
Salut tout le monde,

Je vous propose d'ouvrir un topic officiel pour le Huawei B593.
Ce sera plus simple que dans les deals et ça permettra de centraliser les informations.

Pour ma part, j'orienterai essentiellement les informations sur les B593u-12 mais j'apporterai également quelques informations pour le s-12 quand cela sera possible...

A suivre !

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Forcer la bande 4G utilisée (s'applique au U-12 et peut-être au S-12 aussi).

Pour cela, il faut disposer d'une connexion Telnet ou SSH au routeur.
- Pour le U-12, soit vous utilisez mon firmware soit vous faites en sorte de pouvoir accéder depuis votre version.
- Pour le S-12, a priori il faut exploiter la faille FTP pour récupérer le mot de passe admin de SSH.

Une fois connecté, vous obtenez la mire "ATP>" : tapez shell.
Cela vous emmène dans un terminal où vous pouvez saisir des commandes : tapez lteat

Vous vous retrouvez à présent avec une mire " AT>".
A partir de là, vous devez faire extrêmement attention aux commandes que vous passez.

La première étape consiste à vérifier/noter votre configuration actuelle : AT^SYSCFGEX?
Cela renvoie par exemple : "^SYSCFGEX:"03",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF"

A- Forcer la bande 800 Mhz : AT^SYSCFGEX="03",3FFFFFFF,2,4,80000,,

B- Forcer la bande 1800 Mhz : AT^SYSCFGEX="03",3FFFFFFF,2,4,4,,

C- Forcer la bande 2600 Mhz : AT^SYSCFGEX="03",3FFFFFFF,2,4,40,,

A noter que :
- Forcer sur une autre fréquence que celle active provoque la resynchronisation du modem : pas de redémarrage nécessaire.
- La modification est persistante (gardée au redémarrage).
- Vous pouvez vérifier la prise en compte avec la première commande : AT^SYSCFGEX?

Pour remettre toutes les bandes, utilisez par exemple : AT^SYSCFGEX="00",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,,
ATTENTION : vous devez remplacer le "00" par la valeur que vous aviez.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Installation V2.x, V3.x - Pour passer de la V1 à la V2.x.V3.x ou de la V2.x à la V3.x, il y a plusieurs possibilités.
Remarque : pour ceux qui n'ont pas encore installé mon firmware modifié, vous pouvez suivre le deuxième topic en prenant directement les fichiers dans le bon dossier.

Sinon :
- Mettre à jour par l'interface web avec le fichier .tar.bz2.
- Mettre à jour uniquement "Router" avec b593_upgrade.
- Mettre à jour l'intégralité "Modem&Router" avec b593_upgrade.

A l'issue, vous avez un firmware en V2.x/V3.x.

Pour les "utils" (binaires, scripts...), voici une méthode :
- Suivre le topic suivant pour récupérer et déposer le fichier tar des utils sur le routeur dans /upgflash.
- Sauvegarder vos répertoires "scripts" et "apps" : mv apps apps_backup ; mv scripts scripts_backup
- Extraire la nouvelle archive : tar xf b593-utils-v30.tar.
- Recopier vos fichiers modifiés dans les nouveaux répertoires.
Exemple : cp scripts_backup/iptables.sh scripts/

Les changements de la V2 :
- Suppression de Racoon (ne fonctionne pas).
- Intégration de Inadyn dans le firmware.
- Mise à jour de Zabbix en 2.4.8.
- Retour de iperf dans /bin.
- Compilation et intégration de dropbear (client / serveur SSH pour tunnel).
- Création des liens pour .ssh et /home (authentification par clef SSH).
- Création d'un script de démarrage pour Inadyn.

Les changements de la V2.1:
- Déplacement du fichier resolv.conf dans etc au lieu de dns (upgflash/apps).
- Création d'un fichier "hosts" pour la résolution de nom (upgflash/apps).
- Ajout des APN français pour pouvoir utiliser le "Auto APN" dans l'interface web.
- Remplacement de l'APN par défaut "Free" par un factice "Huawei".
- Désactivation des notifications par défaut.
- Création des scripts pour l'utilisation de Zabbix avec le B593.

Les changements de la V3 :
- Traduction en Français (merci à Backanouilles).
- Version disponible en interface noire "Dealabs" et en version blanche "Huawei".
- Retrait de la partie "pushinfo" qui indiquait à tort la présence de MAJ.
- Renommage du "setup.com" en "b593.lte" : vous pouvez accéder par ce nom dans le navigateur.
- Les ports 443 et 631 sont à présents filtrés en "reject" dans iptables : avec un nmap on ne les voit plus (ne reste que http et ssh).
- Ajout d'éléments supplémentaires à la BusyBox personnalisée (strings, tr...).
- Désactivation du démarrage auto de Zabbix (pas utile à tout le monde).
- Définition du hostname "b593" au démarrage.
- Création de terminaux supplémentaires pour SSH (via Dropbear).
- Ajout de la commande "sysctl" et d'un lien "sysctl.conf" dans /etc pour utilisation des options noyau.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Installation V4 - Pour passer d'un firmware autre ou de la V1/V2/V3 à la V4 (mais pas à la V4.1, cf ci-dessous), il faut procéder à une réinstallation complète via b593_upgrade.exe et le firmware complet au format .bz2. Il est déconseillé de ne mettre à jour que la partie routeur (modem différent).

Pour cela, s'appuyer sur le second message qui explique comment installer le firmware, faire un reset et installer les outils additionnels si souhaité.

Les changements de la V4 :
- Mêmes fonctionnalités que la V3.
- Passage sur le firmware Polkomtel (C69-103) jugé plus stable et plus sécurisé.
- Utilisation du SSL possible pour l'interface d'administration.
- Modification du temps d'inactivité de l'interface d'administration.
- Déplacement dans "iperf" et "tcpdump" dans /upgflash/apps/bin car firmware plus petit.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Installation V4.1 - Attention, la MAJ en 4.1 n'est possible qu'à partir d'une V4.x. Celle-ci est non-disruptive (pas de perte de configuration).
Cette MAJ est symbolique (1 an jour pour jour après la V4).

La mise à jour est à réaliser depuis l'interface web.
Pendant la MAJ, le routeur redémarrera 2 fois et au premier redémarrage tous les voyants clignoteront : c'est normal, il faut patienter.

Les changements de la V4.1 :

- Mêmes fonctionnalités que la V4.
- Installation depuis l'interface sans perte de configuration (uniquement à partir de la V4).
- MAJ de l'agent Zabbix de 2.4.8 à 3.0.17 LTS.
- Correction du bug de la page d'accueil (pas de texte affiché, voir ici).
- Possibilité de passer de la version blanche à la version noire et vice-versa sans perte de configuration.
- Modification du Copyright de "2017" à "2018".
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Reverse SSH Tunnel - Si vous souhaitez accéder au routeur depuis l'extérieur via un reverse tunnel SSH, voici comment faire.

A- Utilisation du serveur SSH intégré (une seule session possible avec déconnexion automatique et arrivée sur "ATP>").

Exécutez dbclient de manière à établir de manière permanente la connexion SSH vers un serveur distant.
ssh -f -N -R 1234:127.0.0.1:22 root@votreserveur

Pour vous connecter depuis le serveur "de rebond" :
ssh admin@localhost -p 1234

Le port 1234 peut bien sûr être remplacé par celui de votre choix.

B- Utilisation du serveur dropbear compilé (plusieurs sessions possibles, sans déconnexion automatique et arrivée dans BusyBox directement.

Exécutez dropbear de manière à ce qu'il écoute sur le port de votre choix. Exemple ici avec le port 2222
dropbear -K 0 -I 0 -p 2222

Exécutez dbclient de manière à établir de manière permanente la connexion SSH vers un serveur distant.
ssh -f -N -R 1234:127.0.0.1:2222 root@votreserveur

Pour vous connecter depuis le serveur "de rebond" :
ssh -t 0@localhost -p 1234 "PATH=/bin:/sbin:/usr/bin:/upgflash/apps/bin ; /bin/sh"
Le mot de passe est..... OMG..... : root

Les ports 2222 et 1234 peuvent bien entendu être personnalisés.

C- Utilisation d'une clef SSH pour la connexion au serveur distant afin d'éviter la saisie du mot de passe depuis le routeur.

Générer une clef SSH pour dropbear :
dropbearkey -t rsa -s 2048 -f /etc/dropbear/dropbear_rsa_host_key (vous pouvez utiliser DSA ou ECDSA à votre convenance).

Récupérer la clef publique :
dropbearkey -f /etc/dropbear/dropbear_rsa_host_key -y

La copier dans ~/.ssh/authorized_keys de votre serveur distant (s'assurer qu'elle soit sur une seule ligne).
Ex : ssh-rsa AAAA............................ 0@(none)

Etablir la connexion vers le serveur pour vérifier que cela fonctionne sans mot de passe (adaptez les ports) :
ssh -f -N -i /etc/dropbear/dropbear_rsa_host_key -R 1234:127.0.0.1:22 root@votreserveur

D- Utilisation d'une clef SSH pour la connexion au routeur depuis le serveur distant afin d'éviter la saisie du mot de passe.

Suivez l'étape C pour générer la clef.
Récupérez ensuite la clef publique sur votre serveur de "rebond" et la placer dans /home/.ssh/authorized_keys du routeur (une seule ligne).

Démarrez dropbear serveur avec chargement de sa clef :
dropbear -K 0 -I 0 -r /etc/dropbear/dropbear_rsa_host_key -p 2222

Etablissez la connexion vers le serveur de rebond via la clef :
ssh -f -N -i /etc/dropbear/dropbear_rsa_host_key -R 1234:127.0.0.1:2222 root@votreserveur

Connectez-vous depuis le rebond sur le routeur :
ssh -t 0@localhost -p 1234 "PATH=/usr/bin:/bin:/upgflash/apps/bin ; /bin/sh"

E- Automatisez l'ensemble par script pour éviter la saisie à chaque démarrage.

Pour cela, vous avez un scripts "dropbear.sh" dans /upgflash/scripts/dropbear.sh.
Il vous suffit de mettre dedans les commandes de dessus qui vont bien et elles seront exécutées au démarrage.

F- Interdire la connexion "root" par mot de passe depuis le rebond en raison du mot de passe foireux...
Pour cela, lancez "dropbear" avec en plus le paramètre "-g" ou "-s" qui permettent d'empêcher les connexions par mot de passe.

G - Script de connexion auto depuis le rebond pour éviter la commande compliquée.
Créez un script du nom que vous voulez dans un dossier du PATH (/bin, /sbin, /usr/local/bin...).

Mettez dedans :
#!/bin/sh
ssh -t 0@localhost -p 1234 "PATH=/usr/bin:/bin:/upgflash/apps/bin ; /bin/sh"

En adaptant les ports.
Il ne vous reste à présent plus qu'à appeler le script pour être connecté sur le routeur.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
B593S-12 : MAJ du firmware en S-22

Pour ceux qui sont en version B593S-12, il est possible via une bidouille de passer dans le dernier firmware officiel Huawei destiné au S-22.
Pour se faire il faut :
- Que vous me donniez la version exacte de votre firmware.
- Que je vous donne le firmware modifié.
- Que vous fassiez la MAJ depuis l'interface.
- Que vous fassiez un reset du routeur après l'update.

Je n'ai pas de S-12 donc aucune idée des nouveautés et apports.
Vous vous retrouverez avec le firmware : V200R001B270D10SP00C00 daté de 08/2014.

Un test reste à faire, si quelqu'un veut s'y coller : essayer de câbler le port RJ11 (emplacement disponible sur la carte mère mais pas de connecteur) pour voir si on peut téléphoner directement avec un téléphone connecté, comme avec le S-22.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Mise en oeuvre de Zabbix : installation des scripts, templates et personnalisation.

Pour pouvoir utiliser Zabbix avec toute la personnalisation, vous devez être en version 2.1 ou supérieure.
L'archive "utils" en v21 contient les scripts pour récupérer les valeurs CPU, Mémoire, Réseau...

Par défaut, le template active l'ensemble des items sauf 2 qui sont sans importance.
Attention : la supervision de la consommation LTE n'est pas active non plus car elle ne peut pas être activée automatiquement.

Pour activer le démarrage de Zabbix avec le routeur :
- Connectez-vous en SSH sur le routeur.
- Modifiez le fichier /upgflash/scripts/zabbix.sh et décommentez la ligne de démarrage.
- Démarrez l'agent manuellement : /etc/init.d/zabbix_agentd start ou redémarrez le routeur.

Pour avoir les bons compteurs CPU/Mémoire/Disque :
- Connectez-vous en SSH sur le routeur.
- Réalisez un "crontab -e"
- Ajoutez les 3 entrées suivantes et enregistrez :

* * * * * /upgflash/apps/zabbix/scripts/cpu.sh > /dev/null 2>&1
* * * * * /upgflash/apps/zabbix/scripts/memory.sh > /dev/null 2>&1
* * * * * /upgflash/apps/zabbix/scripts/agentmem.sh > /dev/null 2>&1

Pour activer la supervision de la LTE :
- Importez le template si non fait.
- Créez le host associé.
- Attendez OBLIGATOIREMENT que les interfaces réseaux aient été découvertes (toutes les 900 secondes).
- Modifiez l'item "LTE bandwidth" sur le HOST (pas sur le template !).
- Modifiez la formule par celle-ci : last("net.if.total[hed0]")
- Vérifiez dans "Latest Data" que vous avez récupéré au moins une valeur pour "LTE bandwidth".
- Quand c'est bon, modifiez à nouveau l'item "LTE bandwidth" sur le HOST.
- Remettez la formule d'origine : sum("net.if.total[hed0]",120)+last("sum.hed0")

A partir de là, vous récupérez la consommation LTE automatiquement, de manière cumulative, il n'y a plus rien à changer.
Pour la purge automatique voir ci-dessous.

Pour activer le reset automatique du compteur le premier du mois ou à une date précise (MySQL uniquement).
Je n'ai pas trouvé d'autre moyen que mettre dans la base une valeur à 0 pour la dernière itération de l'item "LTE bandwidth".
Si quelqu'un a une meilleure solution à proposer ça m'intéresse bien sûr.

A noter que ce script n'est pas parfait, loin de là. Lorsque l'on effectue la purge, on perd 2 ou 4 minutes de données (pas dramatique mais bon).

- Récupérez le script "clear-lte-bandwidth.sh".
- Placez-le où vous voulez sur votre serveur Zabbix, pas sur le routeur.
- Sécurisez-le (chmod 600).
- Modifiez le login et le mot de passe de connexion à la base MySQL.
- Attention : si vous n'utilisez pas systemd ou que le nom du service n'est pas "zabbix-server" sur votre distribution vous devez le modifier. Le script est prévu pour Zabbix 3.2 (installation via les .deb) et Debian 8.x (Jessie).
- Ajoutez dans la crontab de votre serveur l'exécution du script pour le jour de votre choix.

Exemple pour RAZ le 10 du mois à minuit :
0 0 10 * * /etc/zabbix/clear-lte-bandwidth.sh > /dev/null 2>&1

Vous pouvez le tester manuellement avant bien entendu en lançant le script "clear-lte-bandwidth.sh" !

Modifier le quota de 4G par défaut à 50 Go
- Dans Zabbix, éditez le template puis les triggers.
- Editez "High LTE bandwidth consumption on {HOST.NAME}".
- Modifiez le "50000000000" par la valeur souhaitée. Pour 100 Go par exemple vous enlevez le "5" et mettez un "10" à la place.
Si vous voulez d'autres options comme l'envoi de mail ou autre, je vous laisse faire (c'est du Zabbix pur :P ).

Modifier le scénario web (par défaut pour 192.168.1.1)
- Dans Zabbix, éditez le template puis le scénario web.
- Modifiez l'adresse IP de "192.168.1.1" à votre IP.

Modifier les intervalles de vérification pour la conso LTE (par défaut à 120 secondes)
Attention : il y a corrélation entre les compteurs "net.if.total[hed0]" et "sum.hed0" (correspondant à LTE Bandwidth).

Si vous voulez modifier le check, il faut impérativement le faire partout sous peine d'avoir des résultats complètement faux.
Dans le template :
- Network discovery : total à changer (item prototypes).
Intervalle : 120

- LTE bandwidth à changer :
Formule : sum("net.if.total[hed0]",120)+last("sum.hed0")
Intervalle : 120
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Renommage du compte "0" en "root" et changement du mot de passe pour SSH via dropbear...

Uniquement pour les versions V2.1 et supérieures !

Comme expliqué ci-dessus dans le tuto SSH, le firmware du B593 n'utilise pas le compte "root" mais "0" (ce qui est la même chose mais le nommage est important) et un mot de passe hyper trivial pour l'accès SSH par Dropbear (à savoir root).

Attention : cela impacte les crontabs. Si vous utilisez "cron" et que vous renommez en autre chose que "root", vous devez créer la crontab associée (crontab -e) et y mettre ce qui est nécessaire (notamment pour Zabbix) !

Remarque : si vous utilisez le serveur SSH embarqué vous n'êtes pas concernés sinon voici la méthodologie :
Dans le script "user.sh" ajoutez :

# Renommage du compte root
/upgflash/apps/bin/sed -e's/^0/root/g' -i /etc/passwd

# Changement du mdp root...
/bin/echo 'root:yourpassword' | /upgflash/apps/bin/chpasswd
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ajout d'entrées dans la crontab en SSH...

Cela nécessite d'avoir activé le mode "avancé" (via le SSID) et d'avoir installé les "utils"

Depuis Windows, :
- Télécharger putty.exe.
- L'exécuter et saisir l'@ IP du routeur.
- Utiliser le login "admin" (mot de passe à me demander en MP),
- Au prompt "ATP", taper "shell".
- Taper "crontab -e".
- Appuyer sur "G" (majuscule) pour aller à la dernière ligne.
- Appuyer sur "o" (minuscule) pour ajouter une ligne.
- Coller les nouvelles lignes (clic-droit).
- Quitter le mode édition en appuyant sur "Esc".
- Taper ":x" pour sauvegarder.

A noter que :
- Pour annuler, tapez ":q!" au lieu de ":x".
- Pour supprimer une ligne, appuyer sur "Esc" puis "dd" (2 fois la touche d).
- Pour sauvegarder, il faut toujours appuyer sur "Esc" avant de saisir ":x".
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Modification du TTL avec un Raspberry...

Tout est indiqué ici (merci à Maxstars) : dealabs.com/dis…553
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Informations supplémentaires
Discussions

2082 commentaires