Container Station – Ubuntu System Volume Device – Beunruhigende Erkenntnisse

Ich versuche, etwas in einem Linux-Container zu machen, aber ich habe dabei einige Schwierigkeiten und stoße auf überraschende Ergebnisse.

Ich versuche, das Gerät in /dev zu identifizieren, das das Systemvolume für die Installation ist. Wenn ich jedoch einen Befehl wie lsblk ausführe, sehe ich buchstäblich jedes Volume auf dem NAS!

Erstens dachte ich, eine Container-Installation sollte vom Rest des NAS „isoliert“ sein. Das ist sie aber nicht. Es scheint, als könne man vom NAS nicht auf den Container zugreifen, aber vom Container aus hat man definitiv Zugriff auf den Rest des NAS. Das ist ziemlich beunruhigend.

Zweitens wird nie ein Mount-Punkt angezeigt.

root@45217fe699b0:/# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
loop0         7:0    0    64M  1 loop  
sda           8:0    0   1.8T  0 disk  
|-sda1        8:1    0 517.7M  0 part  
| `-md9       9:9    0 517.6M  0 raid1 
|-sda2        8:2    0 517.7M  0 part  
|-sda3        8:3    0   1.8T  0 part  
|-sda4        8:4    0 526.6M  0 part  
| `-md13      9:13   0 448.1M  0 raid1 
`-sda5        8:5    0  31.5G  0 part  
  `-md322     9:322  0  30.4G  0 raid1 [SWAP]
sdb           8:16   0   1.8T  0 disk  
|-sdb1        8:17   0 517.7M  0 part  
| `-md9       9:9    0 517.6M  0 raid1 
|-sdb2        8:18   0 517.7M  0 part  
|-sdb3        8:19   0   1.8T  0 part  
|-sdb4        8:20   0 526.6M  0 part  
| `-md13      9:13   0 448.1M  0 raid1 
`-sdb5        8:21   0  31.5G  0 part  
  `-md322     9:322  0  30.4G  0 raid1 [SWAP]
sdc           8:32   0   9.1T  0 disk  
|-sdc1        8:33   0 517.7M  0 part  
| `-md9       9:9    0 517.6M  0 raid1 
|-sdc2        8:34   0 517.7M  0 part  
|-sdc3        8:35   0   9.1T  0 part  
|-sdc4        8:36   0 526.8M  0 part  
| `-md13      9:13   0 448.1M  0 raid1 
`-sdc5        8:37   0  31.5G  0 part  
  `-md322     9:322  0  30.4G  0 raid1 [SWAP]
sdd           8:48   0   9.1T  0 disk  
|-sdd1        8:49   0 517.7M  0 part  
| `-md9       9:9    0 517.6M  0 raid1 
|-sdd2        8:50   0 517.7M  0 part  
|-sdd3        8:51   0   9.1T  0 part  
|-sdd4        8:52   0 526.8M  0 part  
| `-md13      9:13   0 448.1M  0 raid1 
`-sdd5        8:53   0  31.5G  0 part  
  `-md322     9:322  0  30.4G  0 raid1 [SWAP]
sde           8:64   0   9.1T  0 disk  
|-sde1        8:65   0 517.7M  0 part  
| `-md9       9:9    0 517.6M  0 raid1 
|-sde2        8:66   0 517.7M  0 part  
|-sde3        8:67   0   9.1T  0 part  
|-sde4        8:68   0 526.8M  0 part  
| `-md13      9:13   0 448.1M  0 raid1 
`-sde5        8:69   0  31.5G  0 part  
  `-md322     9:322  0  30.4G  0 raid1 [SWAP]
sdf           8:80   0   9.1T  0 disk  
|-sdf1        8:81   0 517.7M  0 part  
| `-md9       9:9    0 517.6M  0 raid1 
|-sdf2        8:82   0 517.7M  0 part  
|-sdf3        8:83   0   9.1T  0 part  
|-sdf4        8:84   0 526.8M  0 part  
| `-md13      9:13   0 448.1M  0 raid1 
`-sdf5        8:85   0  31.5G  0 part  
  `-md322     9:322  0  30.4G  0 raid1 [SWAP]
sdg           8:96   1   1.8T  0 disk  
|-sdg1        8:97   1 517.7M  0 part  
| `-md9       9:9    0 517.6M  0 raid1 
|-sdg2        8:98   1 517.7M  0 part  
|-sdg3        8:99   1   1.8T  0 part  
|-sdg4        8:100  1 526.6M  0 part  
| `-md13      9:13   0 448.1M  0 raid1 
`-sdg5        8:101  1  31.5G  0 part  
  `-md322     9:322  0  30.4G  0 raid1 [SWAP]
sdh           8:112  1 931.5G  0 disk  
|-sdh1        8:113  1 517.7M  0 part  
| `-md9       9:9    0 517.6M  0 raid1 
|-sdh2        8:114  1 517.7M  0 part  
|-sdh3        8:115  1   898G  0 part  
|-sdh4        8:116  1 526.2M  0 part  
| `-md13      9:13   0 448.1M  0 raid1 
`-sdh5        8:117  1  31.5G  0 part  
  `-md322     9:322  0  30.4G  0 raid1 [SWAP]
sdi           8:128  0 372.6G  0 disk  
|-sdi1        8:129  0   200M  0 part  
`-sdi2        8:130  0 372.3G  0 part  
sdj           8:144  1   4.6G  0 disk  
|-sdj1        8:145  1   5.1M  0 part  
|-sdj2        8:146  1 488.4M  0 part  
|-sdj3        8:147  1 488.4M  0 part  
|-sdj4        8:148  1     1K  0 part  
|-sdj5        8:149  1   8.1M  0 part  
|-sdj6        8:150  1   8.5M  0 part  
`-sdj7        8:151  1   2.7G  0 part  
sdk           8:160  0  10.9T  0 disk  
`-sdk1        8:161  0  10.9T  0 part  
sdl           8:176  0   1.8T  0 disk  
`-sdl1        8:177  0   1.8T  0 part  
nbd0         43:0    0     0B  0 disk  
nbd1         43:32   0     0B  0 disk  
nbd2         43:64   0     0B  0 disk  
nbd3         43:96   0     0B  0 disk  
nbd4         43:128  0     0B  0 disk  
nbd5         43:160  0     0B  0 disk  
nbd6         43:192  0     0B  0 disk  
nbd7         43:224  0     0B  0 disk  
fbsnap0     250:0    0     0B  0 disk  
fbsnap1     250:1    0     0B  0 disk  
fbsnap2     250:2    0     0B  0 disk  
fbsnap3     250:3    0     0B  0 disk  
fbsnap4     250:4    0     0B  0 disk  
fbsnap5     250:5    0     0B  0 disk  
fbsnap6     250:6    0     0B  0 disk  
fbsnap7     250:7    0     0B  0 disk  
fbdisk0     251:0    0     0B  0 disk  
fbdisk1     251:1    0     0B  0 disk  
fbdisk2     251:2    0     0B  0 disk  
fbdisk3     251:3    0     0B  0 disk  
fbdisk4     251:4    0     0B  0 disk  
fbdisk5     251:5    0     0B  0 disk  
fbdisk6     251:6    0     0B  0 disk  
fbdisk7     251:7    0     0B  0 disk  
nvme1n1     259:0    0   1.8T  0 disk  
|-nvme1n1p1 259:1    0 517.7M  0 part  
| `-md9       9:9    0 517.6M  0 raid1 
|-nvme1n1p2 259:2    0 517.7M  0 part  
|-nvme1n1p3 259:3    0   1.8T  0 part  
|-nvme1n1p4 259:4    0 526.6M  0 part  
| `-md13      9:13   0 448.1M  0 raid1 
`-nvme1n1p5 259:5    0  31.5G  0 part  
  `-md321     9:321  0  30.4G  0 raid1 [SWAP]
nvme0n1     259:6    0   1.8T  0 disk  
|-nvme0n1p1 259:7    0 517.7M  0 part  
| `-md9       9:9    0 517.6M  0 raid1 
|-nvme0n1p2 259:8    0 517.7M  0 part  
|-nvme0n1p3 259:9    0   1.8T  0 part  
|-nvme0n1p4 259:10   0 526.6M  0 part  
| `-md13      9:13   0 448.1M  0 raid1 
`-nvme0n1p5 259:11   0  31.5G  0 part  
  `-md321     9:321  0  30.4G  0 raid1 [SWAP]
nbd8         43:256  0     0B  0 disk  
nbd9         43:288  0     0B  0 disk  
nbd10        43:320  0     0B  0 disk  
nbd11        43:352  0     0B  0 disk  
nbd12        43:384  0     0B  0 disk  
nbd13        43:416  0     0B  0 disk  
nbd14        43:448  0     0B  0 disk  
nbd15        43:480  0     0B  0 disk  
root@45217fe699b0:/# 

Drittens, und das ist noch beunruhigender. Gestern habe ich versucht, das, was ich brauchte, in einem Alpine-Container zu machen. Ich wollte die Alpine-Instanz neu starten, also habe ich diesen Befehl eingegeben:

echo "b" > /proc/sysrq-trigger

DAS GESAMTE NAS HAT NEU GESTARTET!

Das ist beängstigend. Das bedeutet, wenn ein Angreifer Zugriff auf einen Linux-Container bekommt, kann er mit deinem gesamten System Schindluder treiben. So sollen Container eigentlich nicht funktionieren!


Bin ich hier komplett auf dem Holzweg?

Aber wir sprechen hier doch über LXC, nicht über Docker, oder?

Nein. LXC war der Ort, an dem ich versucht habe, CentOS zu installieren, aber ich kann mich nicht einloggen.

Sowohl Alpine als auch Ubuntu waren Docker und beide haben das gesamte NAS-Dateisystem freigelegt.

Welches Privileg hast du ihnen gegeben?

Du kannst alle möglichen Ressourcen für einen Container einbinden, wenn du sie im Compose festlegst.

Ich habe in Compose nichts eingestellt. Ich habe die „Deploy“-Funktion für diesen Container in Container Station verwendet. Den privilegierten Modus habe ich aktiviert, weil ich Root-Zugriff benötigte. Ursprünglich hatte ich das in Alpine nicht gemacht und konnte keine Root-Befehle ausführen.

Im Grunde versuche ich einen Test mit Mikrotiks RouterOS in einem Container durchzuführen. Ich muss das Linux-Betriebssystem durch RouterOS ersetzen. Das habe ich bereits auf einem entfernten VPS gemacht, möchte aber einige Dinge lokal testen.

Ich frage mich, ob dieser Container standardmäßig Bind-Mounts verwendet

So sieht es aus. Leider kann man beim Verwenden der Standardoption „Deploy“ von QNAP das YAML nicht bearbeiten oder darauf zugreifen. Darauf sollten sie die Nutzer wirklich aufmerksam machen.

Gestern hat es mich ziemlich erschreckt, als ich dachte, ich würde meine Alpine-Instanz neu starten, und stattdessen das gesamte NAS neu gestartet habe. Ich hatte Angst, dass ich dabei auch das Linux-System auf dem NAS überschrieben hätte. Zum Glück ist das nicht passiert.

Ich könnte versuchen, einen Container mit Compose einzurichten. Bei einer Linux-Installation hatte ich jedoch Bedenken, dass das zu kompliziert wäre, weshalb ich einfach „deploy“ gewählt habe.

Ich werde dieses Problem an unser internes Team zur weiteren Analyse weiterleiten. Vielen Dank für Ihre Meldung!

Kannst du das RouterOS nicht als VM in der Virtual Station installieren? Du solltest das ISO hier herunterladen können

https://download.mikrotik.com/routeros/7.20.7/mikrotik-7.20.7.iso

Es sei denn, du musst es unbedingt als Docker ausführen?

Ich habe gar nicht daran gedacht, es als eine echte VM zu installieren. Mir war nicht klar, dass das möglich ist. Ich habe versucht, etwas „Linux“ zu erstellen und dann RouterOS zu installieren. Ich habe einige Docker-Pakete gefunden, aber die verhalten sich alle irgendwie merkwürdig. Ich habe eines am Laufen, aber es fügt eine Art zusätzliches NAT hinzu, das ich nicht kontrollieren kann, und dadurch funktioniert alles seltsam.

Ich glaube, ich werde deine Idee ausprobieren…

OK. Nochmals vielen Dank! Das war perfekt. Ich konnte genau die Tests durchführen, die ich brauchte.

Super, freut mich, dass es geklappt hat.

Nach interner Überprüfung haben wir bestätigt, dass diese Situation durch das Aktivieren des Privilegierten Modus verursacht wird und daher als erwartetes Verhalten gilt.

Unser Team wird weiterhin die Beschreibungen und Anleitungen zum Privilegierten Modus verbessern, um in Zukunft mehr Klarheit zu bieten. Vielen Dank für Ihr Feedback!

Hier ist das Problem mit eurer Vorgehensweise:

1.) Man möchte eventuell Root-Zugriff auf einen Linux-Container haben, ohne dabei den gesamten QNAP-Speicher und Speicherplatz für den Container freizugeben.

2.) Der Befehl, den ich zum Neustarten des Containers gesendet habe, sollte NIEMALS das NAS neu starten.

Der ganze Zweck, etwas in einem Container auszuführen, besteht darin, es vom Hauptsystem zu isolieren. So wie es jetzt ist, stellt das ein enormes Sicherheitsrisiko dar.