systemdを使用したサンドボックスユーザーセッション

systemdを使用したサンドボックスユーザーセッション

systemdサービスをサンドボックスするのと同じように、リモートLinux VMでユーザーセッションをサンドボックスしたいと思います。たとえば、サービスファイルで[Service]次のように部分行に追加できます。

NoNewPrivileges=yes
PrivateDevices=yes
PrivateTmp=yes
ProtectKernelTunables=yes
ProtectSystem=strict
SystemCallFilter=...

特定のユーザーのすべてのユーザープロセスに対して同じことをしたいと思います。これを行う簡単な方法はありますか?

systemd --userを実行する上記の行を使用してsystemdデバイスを作成してこれを実行しようとしました。その後、sshd_configに次の行を追加しました。

Match User UserNameToRestrict
  ForceCommand env XDG_RUNTIME_DIR=/run/user/UserIdToRestrict systemd-run --user --pipe --pty /bin/bash -l

これで仕事がうまくいくようです。たとえば、SSHを介してボックスに接続すると、次のような結果が発生します。

$ ssh UserNameToRestrict@my-host
Running as unit: run-u2.service
Press ^] three times within 1s to disconnect TTY.
UserNameToRestrict@my-host:~$ ping 1.1.1.
ping: socket: Operation not permitted

NoNewPrivilegespingが実行中であるため、rawソケットを開く権限が拒否されましたsystemd --user

しかし、全体の設定がかなり複雑に見え、これを反転できるかどうかはわかりません。それでは、もっと直接的な方法がありますか?

ベストアンサー1

おすすめ記事