• ベストアンサー

sendmail を利用できるユーザーを制限する方法

sendmail を利用できるユーザーを制限するには、どうしたらよいでしょうか。(メールソフトからの送受信) 出来れば、ユーザーグループ単位で制限したいのですが。 また、ドメイン、IPでの制限でもよいのですが。

  • defd
  • お礼率19% (11/56)

質問者が選んだベストアンサー

  • ベストアンサー
  • Fooky
  • ベストアンサー率71% (59/82)
回答No.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で制御可能です。

参考URL:
ftp://ftp.iij.ad.jp/pub/network/CF/CF-3.7W.tar.gz
defd
質問者

補足

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

その他の回答 (1)

  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.1

単純にドメインを指定するのでよければ、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/

関連するQ&A

  • メールのユーザ制限方法は可能(?)

    Sendmailを使用して、同一ドメイン内で特定のユーザは外部にメールを送受信できなくする方法ってあるのでしょうか? つまり、ユーザAは外部も内部もメールの送受信が可能。しかし、ユーザBは内部(自ドメインユーザ)宛にだけメールを送受信可能とする設定です。当然外部からはユーザBに対してメールは受け付けません。 こんなこと可能なのでしょうか?可能な場合具体的な設定を教えてください。

  • メールが利用できないユーザーの追加方法(RedHat9+Sendmail)

    こんにちは。 RedHat9 + Sendmail + ipop3 + vsftpd の環境を構築しています。 同一ユーザーで、FTPは利用可能だけどメールは利用できないようにするには、どうしたらいいのでしょうか。 なぜこんな質問をするのかというと、例えばユーザー ABC の場合、FTP専用アカウントでメールは利用できないようにしたいのです。 ところが、useraddコマンドを利用してユーザーABCを追加すると、何もしなくてもFTPでログイン可能ですし、追加したABC(+ドメイン名)宛てにメールを送信すると、勝手にABCのメールボックスが作成されて配信されてしまい、受信できてしまうのです。 どうすればメールを利用不可能にするユーザーを作成することができるのでしょうか。 useraddで追加するOSのアカウントと、メールのアカウントを切り離すことはできないのでしょうか? ご存知の方がいらっしゃいましたら、 何とぞご回答の程よろしくお願いします。

  • SENDMAILを利用できなくするには?

    linuxのwebユーザにwebスペースを提供しようと考えているのですが、スパムの温床にならないよう、ユーザには「cgiにてsendmailを利用できない」ように設定したいのですが、sendmailへのパスを変えてしまうだけでも良いでしょうか? /usr/lib/sendmailを /usr/lib/sendmail_などにする

  • サーバ&sendmailでユーザーにアカウント設定させたい

    現在、サーバ(LAMP)にて各ドメイン毎にメールアカウントを割り振り、それらを逐次、登録修正削除しているのですが、それらをユーザー単位でできるシステムというかソフトをご存じないでしょうか。 よく見かけるレンタルサーバで自分のホスティング管理ページでメールアカウントの設定などをできるようなものがあれば(できれば無料で)助かります。 sendmail・pop3・smtp・linux(redhat)という機能でサーバを運営しています。 どうぞ宜しくお願い申し上げます。

  • sendmailで存在しないユーザへのメールを受け取りたい

    red-hat Linux 7.8でSendmail 8.11.6を使っています。 存在しないユーザへのメールを全て一つのユーザで受け取りたいのですがどのようにしたらいいのでしょうか。 googleで調べてみたのですが、バーチャルドメインでユーザテーブルを使った例しかありませんでしたのでご存知の方がおられましたらご教授お願い致します。

  • sendmailを許可するユーザーとしないユーザーの切り分け方

    sendmail と qpopper で POP before SMTP なメールサーバーを構築していますが、 ユーザーにメールを使わせたい人と、使わせたくない人がいるんですが、 どうすれば制御出来ますか?(RED HAT8.0です) 今は暫定的に、/etc/mail/access ファイルに、メールを使わせたくないユーザー をBと仮定して b@***.ne.jp REJECT と記入して使ってますが、b@***.ne.jp のアドレスでメールの送受信は出来ませんが B君はqpopperに認証出来てしまいますし、認証出来たのならSMTPも通過出来てしまうので a@***.ne.jp とか c@***.ne.jp などの他人のアドレスで詐称してメール送信出来てしまいます。 B君にメールを一切使わせない方法はどうすればよいでしょうか。 (IPで弾く方法を考えましたが、B君がネットカフェなどからアクセスされるとどうしようもないです)

  • sendmailのvirtusertableが有効になりません。

    sendmailのvirtusertableの設定で質問があります。 sendmail.cfには、 # Virtual user table (maps incoming users) Kvirtuser hash -o /etc/mail/virtusertable.db と記述があり、 /etc/mail/virtusertable に ユーザ1@ドメイン名 ユーザ2 と記述し、 # makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable を実行してsendmailを再起動したのですが、 ユーザ1にメールが届いてしまい、virtusertableの設定が有効になっていないように思います。 (# sendmail -bv ユーザ1@ドメイン名 を実行しても、ユーザ1に届いた旨が回答されます。) virtusertableの設定を有効にするにあたり、気をつける箇所などございますでしょうか。 アドバイスを頂けませんでしょうか。 よろしくお願いいたします。 OS:RedHat EL4 sendmail-8.13.1-3.2.el4 sendmail-cf-8.13.1-3.2.el4

  • sendmailが使えないサーバを利用しているのですが

    sendmailが使えないサーバを利用しているのですが、 sendmailが使用できない以外は問題がありません。 sendmailだけほかのサーバのものを使うなど、なにか対策はないでしょうか? サーバごとほかを考えるのが一番なのでしょうか・・。 独自ドメインで、freehostiaという無料海外サーバを使っています。

  • sendmailサーバを利用するための設定をお教え下さい。

    linux(redhat9)にてメールサーバ立ち上げるため、 cfにてsendmail・ipop設定までは出来ましたが、ここか ら先どうするかで詰ってしまいました。 サーバでのmailコマンドで、ユーザ間メール送受信はOK でした。 ルータ、ファイア・ウォール設定もOKです。 WAN側のメールサーバ名のDNS設定はドメイン取得した 会社側で設定してもらえるのを確認しました。 mxレコードに ○○.jp. IN MX 10 mail.○○.jp 設定を考えてます。 自サーバ側のどこでmail.○○.jpをひもづければよいの か?また他に必要な設定は? また、クライアント側の受信・送信サーバ設定も分かり ません。 先週、sendmailについてはアドバイスいただき、 「sendmailメールサーバの設定・運用・管理」を入手し 設定しました。 ですがDNSとの連携やクライアント側の設定など、メール サーバを利用するための情報が分かりません。 アドバイス、またはDNS・クライアント設定まで述べて いる良い本がありましたらそちらの紹介でもかまいませ んのでご教授の程よろしくお願いします。 【設定を行った内容】 ●cfを使用してsendmail.mcよりsendmail.cfを生成 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf ●中継許可 /etc/mail/relay-domains 192.168.1 ○○.jp ●受け取るドメイン /etc/mail/local-host-names ○○.jp service sendmail restart ●imap・ipop /etc/xined.d/ipop3 disable yes←noに変更 service xinetd restart

  • SENDMAILリレー設定

    私はRedhatlinux7.3を使ってSENDMAILでサーバを立ててみようと思っております。 SENDMAILのバージョンは8.11.6です。インストールそのままです。 POPにつきましては、POP3を起動させることができ、受信はうまくいきました。 SMTPにつきましては特にSENDMAILの設定をせずメールを送ってみると以下のようなメッセージが出てきました。 550 5.7.1 <user@domain.jp> Relaying denied. IP name lookup failed [192.168.0.11] これはIPアドレスが許可されていないのだと思z、/etc/mail/relay-domainsに192.168.0を入れて見ると送信が可能になりました。 実は私がやりたいことはまったく他のネットワークからこのSMTPを使いたいと考えております。もちろんIPは決まっておりません。 送信者のアドレスが特定ドメインのメールのみSMTPリレーをしたいと思っているのですがどのような設定をすれば良いのかをご教授していただければと思います。また、バーチャルドメイン環境も作成してみたいと思ってます。 現在のところrelay-domainsを空欄にしてaccessにリレーしたいドメイン RELAYと設定してみましたが同様のエラーがきました。