sendmail を利用できるユーザーを制限するには、どうしたらよいでしょうか。(メールソフトからの送受信)

出来れば、ユーザーグループ単位で制限したいのですが。

また、ドメイン、IPでの制限でもよいのですが。

A 回答 (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で制御可能です。

この回答への補足

inetd で、うまくいきました。
詳しい説明、非常に助かりました。
どうも、ありがとうございました。

補足日時:2001/06/17 07:03
    • good
    • 0

単純にドメインを指定するのでよければ、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を紹介しておきます。

参考URL:http://www.yy.cs.keio.ac.jp/~hiroaki/
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ