Archives pour la catégorie Système

ProxyJump: rebond automatique vers une machine non routée

Toto travaille sur sa machine pc-perso, il besoin de se connecter à une machine S2 située sur un autre LAN. Manque de pot,  S2 a une adresse IP privée et n’est donc pas accessible depuis Internet.

Toto ne veut pas utiliser le VPN propriétaire du LAN distant soumis au CloudAct et au PatriotAct … Pour ne rien arranger, ce VPN qui coûte un bras est aussi lent et instable que sa grand-mère en rollers !

Mais Toto a la chance d’avoir un accès SSH direct à la machine S1 qui a une patte sur le LAN distant (elle est joignable par une adresse IP publique).

Toto fait donc toutes ses opérations (SSH, scp, rsync, …) par rebonds: il se connecte d’abord à S1 puis  à S2 à partir de S1:

  • La clé publique de toto@pc-perso DOIT être installé sur le compte toto@s1
  • La clé publique toto@s1 DOIT être installés sur le compte toto@s2

Ce n’est pas très pratique pour Toto, surtout pour transférer des fichiers …

toto@pc-perso:~# ssh s1
Welcome to Ubuntu
You have new mail.
Last login: Sat Nov 26 17:05:22 2022 from xxxxxxxxxxxxx
toto@s1:~# ssh s2
Welcome to Debian
No mail.
toto@s2:~#

Un jour, Toto a ouvert la porte de son frigo et a vu la lumière: il a découvert la fonction ProxyJump d’OpenSSH !

Il s’agit d’une option qui permet de spécifier comment accéder à une machine en rebondissant par une autre:

  • Toto DOIT disposer d’un compte sur les deux machines (S1 et S2),
  • Toto DOIT disposer d’une clé SSH sur pc-perso,
  • La clé SSH publique toto@pc-perso DOIT être installée sur les machines (S1 et S2): Toto n’a plus besoin d’une clé publique toto@s1 pour accéder à toto@s2
toto@pc-perso:~# ssh -J s1 s2
Welcome to Debian
No mail.
Last login: Sat Nov 26 17:05:26 2022 from xxxxxxxx
toto@s2:~#

Il est possible de graver ce comportement dans le marbre pour se simplifier la vie: il ne sera plus nécessaire de préciser explicitement l’option de rebond, toutes les opérations (SSH, scp, rsync, …) se feront de façon transparentes entre pc-perso et S2. Il suffit de créer/éditer le fichier ~.ssh/config:

Host s2
 Hostname s2
 ProxyJump s1

Toto est content: il peut travailler sur S2 directement depuis pc-perso !

toto@pc-perso:~# ssh s2
Welcome to Debian
No mail.
Last login: Sat Nov 26 17:05:26 2022 from xxxxxxxx
toto@s2:~#

 

Redémarrer une machine quand “reboot” ou “shutdown -r now” ne veulent rien savoir !

Mésaventure arrivée grâce à un fichu disque USB défectueux: les commandes “reboot” et “shutdown -r now” ne voulaient rien savoir, et impossible de tuer le processus de copie bloqué. Il existe une alternative moins risquée que le redémarrage “électrique violent”:

echo s > /proc/sysrq-trigger # Flusher les buffers d'IO pour ne pas perdre de données
echo u > /proc/sysrq-trigger # Démonter puis Remonter toutes les partitions en Read-Only
echo b > /proc/sysrq-trigger # Forcer le reboot de la machine

Avec Let’s Encrypt, vous n’avez plus d’excuses pour ne pas utiliser HTTPS !

Let’s Encrypt est un service qui permet d’obtenir des certificats TLS gratuitement. Bien évidemment, l’intérêt d’un tel service est que l’autorité qui signe les certificats est pré-enregistrée, donc connue des navigateurs et des systèmes d’exploitation.

Les certificats Let’s Encrypt sont donc:

  • reconnus par les systèmes d’exploitation,
  • reconnus par les navigateurs Web,
  • et reconnus par la plupart des logiciels.

Ce service est gratuit pour deux raisons:

  • il est porté par un consortium qui a compris que la généralisation de TLS permet d’apporter un peu plus de sécurité sur la toile,
  • la validation des certificats est entièrement automatique.

Les certificats ont une durée volontairement limitée (3 mois) pour inciter (disons plutôt obliger) les administrateurs à les renouveler régulièrement.