Modifier les règles de firewall d’un EXSi en mode rescue (ou Comment Free a changé mon IP fixe)

Cet article a été publié le 02/07/2016
Les informations ou les techniques décrites peuvent être obsolètes.

Si votre fournisseur d’accès change sans vous prévenir votre IP fixe (merci Free !), vous risquez de regretter d’avoir basé vos règles de firewall sur cette adresse.

C’est ce qui m’est arrivé cet après-midi après avoir rebooté la Freebox : … les connexions ssh vers mes serveurs partaient en timeout et j’ai pris quelques minutes à me rendre compte que Free venait de changer mon IP. Comme je n’autorise le ssh que depuis mon IP (qui était sensé être fixe je le rappelle…), je me retrouve coincé.

Qu’à cela ne tienne, mon serveur est chez Online.fr, il est facile de booter en mode rescue. Sauf que c’est un ESXi 6 et c’est là que les choses se compliquent un peu.

Une fois connecté en rescue, je lance un fdisk -l

fdisk -l
 
 Disk /dev/sda: 1000 GB, 1000202273280 bytes
 255 heads, 63 sectors/track, 121601 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
    Device Boot      Start         End      Blocks   Id  System 
 /dev/sda1   *           1           1        8001   83  Linux 
 /dev/sda5               1          33      257040   83  Linux 
 /dev/sda6              33          65      257040   83  Linux 
 /dev/sda7              65          79      112455   83  Linux 
 /dev/sda8              79         115      289170   83  Linux 
 /dev/sda9             115         442     2626627   83  Linux 
 /dev/sda2             442         964     4192965   83  Linux 
 /dev/sda3             964      121602   969024735   83  Linux

puis je commence à monter une par une chaque partition à la recherche d’un /etc

cd /mnt
mkdir sda1
mount /dev/sda1 /mnt/sda1

etc…

Peine perdue. C’est un petit peu plus compliqué.

Après quelques recherches sur Google, je comprends que la configuration de l’ESXi se trouve dans un fichier state.tgz qui contient lui-même un fichier local.tgz, qui une fois décompressé me donnera enfin accès au fichier etc/vmware/esx.conf
Pourquoi faire simple quand on peut faire compliqué (merci VMware).

Notez aussi que vous trouverez deux fichiers state.tgz sur deux partitions différentes : prenez le plus récent.

cd /
mkdir recovery
cp /mnt/sda6/state.tgz /recovery
cd recovery
tar -xvf state.tgz
tar -xvf local.tgz

Je recherche mon ancienne IP

grep -R MON.ANCIENNE.IP.FIXE *
vmware/esx.conf:/firewall/services/vSphereClient/allowedip0000/ipstr = "MON.ANCIENNE.IP.FIXE"
vmware/esx.conf:/firewall/services/sshServer/allowedip0000/ipstr = "MON.ANCIENNE.IP.FIXE"
vmware/esx.conf:/firewall/services/webAccess/allowedip0000/ipstr = "MON.ANCIENNE.IP.FIXE"

J’édite le fichier esx.conf avec ma nouvelle IP. Puis je reconstruis le fichier state.tgz et le replace où je l’avais trouvé :

tar czf local.tgz etc/
tar czf state.tgz local.tgz
cp state.tgz /mnt/sda6/
umount /dev/sda6

Je quitte le mode rescue et redémarre l’ESXi… L’accès ssh et web est à nouveau fonctionnel !

J’espère que cela pourra être utile à tous ceux qui se retrouveront dans la même situation 😉

Retour haut de page