Pertanyaan ini mirip dengan Tidak ada perangkat tun di tamu lxc untuk openvpn . LXC telah berevolusi dan kontainer LXC yang tidak terjangkau diperkenalkan baru-baru ini yang menawarkan lapisan keamanan lain terhadap penghancuran penjara.
Saya perlu membuat server OpenVPN di dalam salah satu wadah yang tidak terjangkau. Saya tidak tahu bagaimana cara membiarkan wadah membuat perangkat jaringan tun pribadi.
Saya menambahkan lxc.cgroup.devices.allow = c 10:200 rwm
ke ~/.local/share/lxc/mylxc/config
.
Setelah memulai wadah, mknod /dev/net/tun c 10 200
kembali mknod: '/dev/net/tun': Operation not permitted
ke dalam wadah.
Saya menggunakan vanilla Ubuntu 14.04 64bit sebagai tuan rumah dan wadah dibuat dengan
lxc-create -t download -n mylxc -- -d ubuntu -r trusty -a amd64
Adakah yang berhasil /dev/tun
menjalankan perangkat di bawah LXC yang tidak terjangkau?
lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file
ke file konfigurasi wadah, seperti dijelaskan di sini: superuser.com/a/1205662/130915 Kemudian, saya menjalankan openvpn sebagai root dengan sudo di dalam wadah.Jawaban:
Anda perlu menambahkan kemampuan CAP_MKNOD ke wadah Anda secara eksplisit .
Anda juga dapat mencoba mengotomatiskan ini (jika Anda kebetulan menggunakan
systemd
di dalam wadah) menggunakan:yang dapat menunjuk ke skrip berjalan
mknod
.Menggunakan
docker
ini sangat mudah dilakukan. Secara default, kontainer tidak terjangkau .Dalam contoh ini, saya menarik
trusty
wadah dari registri:Dan saya memulainya dalam mode interaktif menginformasikan tentang kemampuan yang saya butuhkan di dalam:
Sebagai lawan:
sumber
CAP_MKNOD
setelah bekerja.lxc.cap.keep = CAP_MKNOD
ke konfigurasi membuat kesalahanSimultaneously requested dropping and keeping caps
. Aku memeriksa semua konfigurasi rekursif menambahkan (ubuntu.userns.conf
,ubuntu.common.conf
dancommon.conf
) dan menemukan hanya satu baris denganlxc.cap.drop
:lxc.cap.drop = mac_admin mac_override sys_time sys_module
. Tapi itu tidak relevan bukan?