Diese Frage ähnelt No tun device in lxc guest für openvpn . Der LXC hat sich weiterentwickelt und kürzlich wurden die nicht privilegierten LXC-Container eingeführt, die eine weitere Sicherheitsebene gegen das Brechen des Gefängnisses bieten.
Ich muss einen OpenVPN-Server in einem der nicht privilegierten Container erstellen. Ich weiß nicht, wie ich den Container ein privates Tun-Netzwerkgerät erstellen lassen soll.
Ich habe lxc.cgroup.devices.allow = c 10:200 rwm
an die angehängt ~/.local/share/lxc/mylxc/config
.
Nachdem der Behälter ausgehend, mknod /dev/net/tun c 10 200
zurück mknod: '/dev/net/tun': Operation not permitted
in den Behälter.
Ich benutze ein Vanilla Ubuntu 14.04 64bit als Host und einen Container erstellt mit
lxc-create -t download -n mylxc -- -d ubuntu -r trusty -a amd64
Hat es jemand geschafft, das /dev/tun
Gerät unter nicht privilegiertem LXC zum Laufen zu bringen ?
lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file
der Containerkonfigurationsdatei Folgendes hinzufügen : superuser.com/a/1205662/130915 Dann habe ich openvpn als root mit sudo im Container ausgeführt.Antworten:
Sie müssen Ihrem Container explizit die CAP_MKNOD- Funktion hinzufügen .
Sie können auch versuchen, dies zu automatisieren (wenn Sie es zufällig
systemd
im Container verwenden), indem Sie:Dies kann auf ein laufendes Skript verweisen
mknod
.Mit
docker
dieser ist sehr einfach zu erreichen. Standardmäßig sind Container nicht privilegiert .In diesem Beispiel ziehe ich einen
trusty
Container aus der Registrierung:Und ich starte es im interaktiven Modus und informiere über die Funktionen, die ich im Inneren benötige:
Im Gegensatz zu:
quelle
CAP_MKNOD
nach der Arbeit überprüfen .lxc.cap.keep = CAP_MKNOD
zu config macht einen FehlerSimultaneously requested dropping and keeping caps
. Ich habe alle rekursiv hinzugefügten Konfigurationen (ubuntu.userns.conf
,ubuntu.common.conf
undcommon.conf
) überprüft und nur eine Zeile gefunden mitlxc.cap.drop
:lxc.cap.drop = mac_admin mac_override sys_time sys_module
. Aber das ist irrelevant, nicht wahr?