特定のユーザーグループのネットワークアクセスを無効にして、SMTPのみを許可する

特定のユーザーグループのネットワークアクセスを無効にして、SMTPのみを許可する

ユーザーがシステムに ssh で接続し、シェルが $HOME/Maildir で Mutt を起動するように設定されている環境があります。ユーザーがメールの送受信のみを実行できるように制限したいと考えています。シェル プロンプトがないため、任意のコマンドを実行できないことは理解していますが、一部のユーザーは信頼できない可能性があり、コード実行によって Mutt から抜け出してシェル アクセスを取得する方法を見つける可能性があります。基本的に、最悪のシナリオを考えています。SELinux と guest_u アカウントについては認識していますが、よりよい解決策を見つけました。ユーザーはすべて 1 つのグループ (たとえば「ユーザー」) に属しているため、次の iptables ルールを使用して送信パケットを無効にすることができます。ping、dig、wget などは機能しませんが、送信メールは機能します。これはまさに私たちが望んでいることですが、dig、host、ping などの他のツールの使用が禁止されているのに、Mutt 経由の送信アクセスがユーザーに許可されるのはなぜでしょうか。

追加したルールは次のとおりです。

$IPT -A OUTPUT -p all -m owner --gid-owner users -j DROP

答え1

ユーザーが Mutt を使用してローカルの Maildir フォルダーにアクセスし、メールサーバーを使用してメールを送信するだけであれば、外部と通信することはありません。

しかし、Mutt ではシェルコマンドの実行は許可されています。デフォルトのシェルを rbash などに変更したり、chroot 環境を使用して、ユーザーが実行できる操作をさらに制限することもできます。デフォルトのシェルを変更するには、

shell /local/bin/rbash

/etc/Muttrc

関連情報