プログラムの発信接続を制限する方法は?

プログラムの発信接続を制限する方法は?

プログラム/スクリプトをアップロードする人が自分のコンピュータにスパムを送信するのを防ぎたいと思います。

唯一の合法的なユースケースは、送信ポートを介してpostfixに接続し、認証後に電子メールを送信することです。その後、Postfixは他のメールサーバーに接続して送信します。

*:SMTPポートへの接続を許可し(この接続を開こうとするプログラムがpostfixの場合)、他の接続試行を無視するためにiptablesを使用することを検討しています。

2つの質問があります。

1)postfixプログラムが接続を開こうとしていることをiptablesでどのように識別しますか?

2)スクリプトがsendmailを呼び出し、認証なしで直接メッセージを送信するのを防ぐ方法は何ですか?おそらくcronのようないくつかのプログラムがsendmailを使ってroot@localhostに電子メールを送信しようとするので、それは簡単ではないかもしれません。これはまだ動作します。

システムは Debian を確実に実行します。

ベストアンサー1

(1)Postfixを識別する最も簡単な方法は、--owner --uid-owner postfixPostfixユーザーを指定するためにiptablesを一致させることです。次のソリューションと同様に、独自のネットワーク名前空間またはcgroupでPostfixを実行することもできます。プロセスへのネットワークアクセスをブロックしますか?(該当する名前空間またはcgroupのみがSMTPトラフィックを開始できます。)

(2)スクリプトsendmailが実行されました持つ認証:システムでユーザーとして実行されます。実際、このインターフェースを使用することがたくさんあります。 Cronはそのうちの1つですが、ランダムスクリプトも同様です。電子メールを送信するシステムのほとんどすべてがCronを使用します。インストールされているMUA(muttなど)も通常、デフォルトでそれを使用します。

おそらくファイルシステム権限を使用するか(ACLを使用して特定のグループまたは特定のユーザーにのみ実行可能にする)、Postfix設定を使用するか(私は個人的にEximを使用しているため、これを行う方法がわかりません)、特定のユーザーにのみロックできます。あります。 )。

おすすめ記事