- ベストアンサー
sendmail を利用できるユーザーを制限する方法
sendmail を利用できるユーザーを制限するには、どうしたらよいでしょうか。(メールソフトからの送受信) 出来れば、ユーザーグループ単位で制限したいのですが。 また、ドメイン、IPでの制限でもよいのですが。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
メールソフトの「SMTPサーバ」の所に当該サーバを指定して メールを「送信」している人がいて、それを止めさせたい ということですよね? メールソフトは当該サーバにSMTPで接続し、sendmailに メールを渡す。sendmailはそのメールを目的地へ中継する。 これを止めさせたいと。 (受信に関してはそのユーザのアカウントを 作らなければ良いわけですから) これまでsendmailの設定はどうされていたんでしょうか? デフォルトのままですか?参考URLのCFというツール を使えば、「比較的」簡単にsendmailの設定ができます。 (sendmail.cfはそのままでは殆んど解読不能ですので…) それでも設定項目がかなり多岐に亙っていて、 ちょっと失敗するとメールの送受信ができなくなったり、 近所のメールサーバに大迷惑を掛けたりするので、 注意が必要です。(CFのdocのMANUAL.jpnを良く読んで、 末尾に書いてあるテストを必ず実行するようにして下さい) SMTP接続の制限だから、 CHECK_HOST_DENYに接続を拒否したいドメイン・IPを 書けばいいと思います。[方法1] もっと複雑な制御も可能です。[方法2] 普通、組織内の端末からのメールは、 宛先が世界中のどこであれ中継が許可されるべきで、 組織外からのメールは、その宛先が組織内であるときだけ中継が 許可されるべきです。そのような制御のために、組織の内外を 定義する LOCAL_HOST_DOMAIN、CLIENT_HOST_DOMAINがあります。 (後者の方が少し厳しい制御が可能) それと、組織外からのメールの中継許可条件を指定する、 ALLOW_RECIPIENT_DOMAIN、 ALLOW_RELAY_TO、ALLOW_RELAY_FROM があります。 [ケース1] 当該サーバが外部からのメールを受け取る際に、 発信元サーバから直接SMTP接続で受け取っている場合、 (SMTPについて上位組織でファイアウォールを設けていない場合) 方法2に紹介した細かい制御が必要です。(さもないと、SPAM 業者に利用される恐れがあり、そのときは管理者の責任を問われる でしょう) [ケース2] そうでない場合、外部からのメールはより上位のメールサーバが 外部からのメールを一括して受け取って、 組織内の下位のメールサーバに配送しているはずです。その場合は、 方法2の細かい制御は特に必要ありません。 どちらのケースに該当するかは、当該サーバで外部から受信したメール のヘッダの配送記録を見れば分かると思います。ケース2なら、どのメール を見ても、当該サーバの配送記録のすぐ下の行には上位のメールサーバが 記録されているはずです。 さて、ここまでCFについて述べたんですが、 CFをいじるのはできれば避けたい仕事の一つです。 そこで、方法1と同じことが、inetdを使うことで、 sendmailの設定ファイルを書換えることなく行なえます。 デフォルトでは、sendmailはシステムブート時に起動され、常駐して いるはずです。これをブート時に起動されないように変更し、 (Linuxの場合、/etc/rc.d/rc3.d, /etc/rc.d/rc5.d の中のS??sendmailを 削除または移動)/etc/inetd.confに、以下のような行を、無ければ 挿入します。 smtp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/sendmail -bs -oq ただし、sendmailとtcpdのパスと、sendmailのオプションは自分の環境に 合わせてください。 こうすると、smtp接続要求があったときだけ、inetdデーモンがsendmailを 立ち上げてくれます。で、このinetdデーモンのアクセス制御ファイルが、 /etc/hosts.allowと/etc/hosts.denyなので、これをmanページを見て編集して ください。 今気付いたんですが、メールの受信をさせたくないというのは、 ユーザアカウントは作っておきたいけど、POPでの受信はさせたく ないということでしょうか?それなら、同様に、POPデーモンを inetd経由で立ち上がるように設定して、/etc/hosts.denyで制御可能です。
その他の回答 (1)
- NINJA104
- ベストアンサー率43% (133/306)
単純にドメインを指定するのでよければ、sendmail.cfの最初の方に以下の項目が見付かると思いますので、そこを書き換えます。 # address which should be accepted CZ XXXX.XX.jp YYYY.YY.jp ~~~~~~~~~~ ~~~~~~~~~~ ただしこれだけではSPAM中継基地に悪用される事もありますので、 ## ## upon SMTP authentication ## セクションの C{HostAllow} から F{RoamDom} までの記述を環境に合わせて便宜書き換えます。 その他にも POP before SMTP を組み合わせると、更にセキュリティが向上するかと思います。 導入について解かりやすい解説をされている個人のWebPageを紹介しておきます。
補足
inetd で、うまくいきました。 詳しい説明、非常に助かりました。 どうも、ありがとうございました。