container security
Namespace
uts
hostnameの分離
hostnameが互いに独立している
code:sh
# host
sudo unshare --uts bash
# container
hostname hoge
# host
hostname
sudo lsns | grep 'bash'
pid
プロセスの分離
code:sh
# host
sudo unshare --uts --pid --fork bash # --fork オプションは謎
# container
kill <host側のプロセス> # 失敗するので分離はできている
ps aux # しかし他のプロセスが見えてしまう
code:sh
# host
sudo unshare --uts --pid --fork --mount-proc bash # --mount-proc オプションを追加,procfsをマウントする
# container
ps aux # hostのプロセスが見えていない
mount
マウントポイントの分離
hostからコンテナのマウントポイントを隠す
よくわからん
異なるnamespaceに対するマウントの操作は影響がないとのこと
code:sh
# host
sudo unshare --uts --pid --fork --mount-proc --mount bash
user
UID, GIDの分離
code:sh
# host
sudo unshare --pid --fork --mount-proc --mount --user bash
# container
id
Capability
プロセス,実行ファイルに対してCapabilityを付与する
setcap get
Seccomp
containerに対してコマンドの実行の可否などを制限できる
AppArmor
アプリケーションごとに色々できる