我們有一個環境,使用者透過 ssh 進入系統,並且他們的 shell 設定為在 $HOME/Maildir 上簡單地啟動 Mutt。我們希望限制我們的用戶只能發送/接收郵件。我們意識到他們不能執行任意命令,因為他們沒有 shell 提示符,但某些用戶可能不受信任,並且可能會找到某種方法來突破 Mutt 並透過程式碼執行獲得 shell 存取權。我們基本上正在考慮最壞的情況。我們知道 SELinux 和 guest_u 帳戶,但我們找到了更好的解決方案。由於我們的使用者都屬於一個群組(例如「使用者」),因此我們可以使用以下 iptables 規則來停用出站資料包。 ping、dig、wget 等不起作用,但出站郵件可以。這正是我們想要的,但是如果使用者被禁止使用其他工具(例如 dig、host、ping 等),為什麼他們也允許透過 Mutt 進行任何出站存取呢?
這是我們新增的規則:
$IPT -A OUTPUT -p all -m owner --gid-owner users -j DROP
答案1
只要使用者只使用 Mutt 存取本地 Maildir 資料夾並使用郵件伺服器發送郵件,那麼他們就無法與外界通訊。
然而,Mutt 確實允許運行 shell 命令。您可能想要將預設 shell 變更為 rbash,或使用 chroot 環境,以進一步限制使用者可以嘗試執行的操作。更改預設 shell 是透過以下命令完成的
shell /local/bin/rbash
在/etc/Muttrc
。