sockstat: Wenn der Kernel im Jail älter ist als im Host
Arbeiten mit Jails ist gut, keine Frage. Passiert da was: Löschen und neu. Bricht jemand ein, ist nur dieses Jail betroffen. Diese kleinen virtuellen Systeme sind ein Segen.
Was aber, wenn der Host ein Update bekommt, das Jail aber – warum auch immer – nicht? Dann bekommt man die Quittung in Form von Fehlermeldungen, wenn man auf Dinge zugreifen will, die eigentlich dem Host „gehören“.
sockstat
ist so ein Problemfall. In diesem Fall läuft das Jail mit FreeBSD 11.3, der Host aber mit 12.1. Will man sich nun die offenen Sockets ansehen, bekommt man statt der Liste folgendes:
root@host / % jexec jail root@jail / % sockstat sockstat: struct xinpgen size mismatch root@jail / %
Na, Ahoi. Da wir aber natürlich keine Lust haben, zu Raten, welche Sockets offen sind und wer wo lauscht, hilft ein kleiner Kniff. Man nehme einfach das sockstat
vom Host! Aber Vorsicht: Es muss eine Kopie sein, da ein Jail natürlich keinen Symlinks aus dem Host folgen darf und kann.
Also erzeugen wir erst ein Backup der Version im Jail und kopieren dann die Version aus dem Host darüber.
root@host / % jexec jail root@jail / % cp /usr/bin/sockstat /usr/bin/sockstat.bak root@jail / % exit root@host / % cp /usr/bin/sockstat /pfad/zum/jail/usr/bin |
Fertig. Startet man nun sockstat
im Jail bekommt man wieder das, was man erwartet.
root@jail / % netstat USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS www nginx 57942 6 tcp46 *:80 *:* www nginx 57942 7 tcp46 *:443 *:* … root@jail / %
Entdecke mehr von Ruhnke.Cloud
Melde dich für ein Abonnement an, um die neuesten Beiträge per E-Mail zu erhalten.