• 締切済み

特定のホストのみSMTP許可したい

メール踏み台対策を考えています。 iptablesやhosts.deny、その他の方法があれば教えていただきたいのですが、いまの所iptablesが有力候補なのかなと思っています。 sendmailの25番ポートを特定IPのみ許可する設定はできるのですが、そうすると、特定IPからしかメールが受信できなくなってしまいます。 やりたい事は特定のIPからのみ送信許可させたいのです。ID,PWが盗まれても、許可したIPではないためにメールの踏み台にはできない設定にしたいです。 ・外部からのメール受信=全て許可 ・外部等へのメール送信=特定IPのみ許可 という設定ができますでしょうか。

みんなの回答

  • pc_net_sp
  • ベストアンサー率46% (468/1003)
回答No.5

なんとなくやりたい事は分かるのですが、仕様OSは何ですか?? Linuxにもいろんな種類があり、各々設定ファイルの保存場所が異なります。 またWindowsにLinux系モドキアプリを使っているなら、アプリ名や構成情報を教えて下さい。 手始めに、WWW(Apache・HTTPD)で各種のアクセス許可・アクセス拒否のコントロール設定が出来るか練習して下さい。 (考えられるアクセスコントロール全て。) 最後にLinux系OSの場合は、拒否IPを設定してから許可IPを設定しても全て拒否されます。 許可IPを設定してから、考えられる拒否IPを全て入れる方式を取らないといけません。 sendmailですが、SMTPとPOP3個別に設定すれば、思い通りに設定できると思います。 sendmail全体で設定するから、SMTP・POP3両方に反映されている物と考えられます。       

LINUX-man
質問者

補足

ありがとうございます。 LINUX4で古いです。25番のsendmailがメールを受信するので「特定IPのみ」 と指定できても送信と受信の両方の動作がそれぞれのIPアドレスで影響を受けてしまいます。 なので、特定のIPからのみ、送信を許可してるつもりが、受信もその特定のIPからしか受付できなくなってしまうのです。 許可・拒否するものがsendmail(25番)で送信も受信も担っているという点が 一番のネックですね。送受信ポートが別になっていれば簡単なんですけど。 今のところ、考えられた方法は以下の5つです。 1.iptables (一度接続を許可してしまう) 2./etc/mail/access(送信と受信を分けて指定できない) 3.hosts.deny(/etc/mail/access同様) 4.saslauthd(IP制限設定がなさそう) 5.sendmail.def? notnotさんの情報から得られたsendmail.defを見てみるしかなさそうです。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.4

No3です。 SMTP接続されたときのメールの宛先が、 ・ 自ホスト宛である場合は、どこのIPアドレスからでも受け入れる ・ 他ホスト宛である場合は、特定のIPアドレスからしか受け入れない ということであれば、iptablesでできないことは自明です。いったんつながないと宛先がわかりませんので。 上記は sendmailでも設定でIPアドレス限定はできるはずです。「sendmail IP 限定」などで検索してみてください。

LINUX-man
質問者

補足

ご理解ありがとうございます!! たしかに、iptablesでは一度受け入れてしまうので、送信を拒否できても、mailqにエラーメールが残ってしまうようでしたので別の方法を探してました。 sendmail.def?というもので理解できなくて、困惑してますが、 希望する形にできそうですね。。。ちょーっと、むずかしいので。。もうちょっと別の方法を探してみたいです。。すいません。。 /etc/mail/accessが使えれば簡単そうなのですが、接続元に対して受信と送信に対する切り分けはできないようです。 あとは、SMTP AUTH適応されてるので、saslauthdのカスタマイズを探したのですが、IP制限はできなさそうで、hosts.denyでも機能しなそうなので。。。 sendmail.def?のあたりをもう少し調べてみます。。 ありがとうございます。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.3

質問文が矛盾してますが、やりたいことは何でしょうか? >特定IPからしかメールが受信できなくなってしまいます。 >特定のIPからのみ送信許可させたいのです 特定のIPからだけメール受信する=特定のIPからのみ送信許可 ですが。 自分から見ると受信ですが、相手から見ると送信。 >・外部からのメール受信=全て許可 >・外部等へのメール送信=特定IPのみ許可 外部から自分への25番ポート接続を許可 自分から外部一般への25番ポート接続を非許可にして、特定IPへのみ25番ポートの接続を許可 ということであれば、iptablesでできますが、質問の前半で書いていることと矛盾してるような気がします。

LINUX-man
質問者

補足

すいませんでした!ご指摘のとおり、前半は言葉が足りていませんでした。 踏み台にされて外部サーバーへ大量メール配信などされないように、外部へメールを送信する際の接続元IPアドレスを特定しておきたいのです。 iptablesでおそらくできるのだろうと思い、サンプルなど調べてみたのですが、25番(smtp)に対しての設定が難しく。。 全部拒否なら良いのですが。。 中に入ろうとする場合はどこのIPからも受け付けて、 外へ出そうとする場合は特定のIPからの命令しか受けないようなiptables設定はどうしたらよいでしょうか。。 恐れ入りますが、ご教示ください。

  • moochi99
  • ベストアンサー率25% (101/403)
回答No.2

#1です。 連続で済みません。 MTAの設定で特定ホストからのみの中継を許可する設定が出来ると思います。 (Postfixなど)

LINUX-man
質問者

補足

早急なお返事ありがとうございます! sendmailで稼働しているのでsendmailの設定方法なども探してみたのですが、、自分のレベルでは理解できず、簡単な方法がないか探していました。。。 sendmail8.14.5なのですが、特定ホストからのみの中継を許可する設定方法がわかりそうなサイトなどはありますでしょうか。。 ご教示いただけましたら幸いですm(_ _)m

  • moochi99
  • ベストアンサー率25% (101/403)
回答No.1

OP25Bでポート587を使ったらいかがですか?

関連するQ&A

  • ファイアウォールは必要?hosts.allow と hosts.deny だけではダメ?

    ネットで調べたところ、次のことが分かりました。 ●TCP Wrappers (/etc/hosts.{allow,deny} で設定)は inetd または xinetdで制御されていないプロセスへのアクセスをブロックできない。 ●とはいえ、sshd, sendmail は inetd/xinetdで制御されていないものの、/etc/hosts.{allow,deny}を自ら読みに行って、ここで許可されてないアクセスは拒否することができる。 sshd や sendmail も hosts.allow と hosts.deny で守ることができるとすると、Firewall(iptables)は、なぜ必要なのでしょうか?hosts.allow と hosts.deny で守ることができないデーモンがあるのでしょうか?

  • .htaccess 特定IPのみアクセス許可

    .htaccess 特定IPのみアクセス許可↓ order deny,allow deny from all allow from 特定IP 上記設定がされているサイトに、特定IP以外の他人がアクセスする方法はありますでしょうか?(ハッカーなど) 現在、私のサイトで外部に洩れてはならない情報を取り扱っており、 .htaccessでアクセス制限は行っているのですが、 少々心細いので質問させていただきました。

  • SMTPポート

    メール受信ができないサーバについて教えていただきたいのですが、 sendmailも立ち上がっておりメール受信できるはずが、できません。 サーバのSMTPポートが開放されているかWEB上のサービス(http://www.cman.jp/network/support/port.html)から確認したところ、到達できませんでしたに なってしまいます。 SMTPのポートの開放、ファイアウォールの設定が考えられると思うのですが、 こちら、具体的にどのように確認し、そのように開放、ファイアウォールの設定を 行えばよいのでしょうか。 具体的な方法等が書かれているページや方法など教えていただけないでしょうか。

  • VMwareのCentOSに外部から接続したい

    Windows10にVMware Player 12.5をインストールしてCentOS6を作りました。 外部のLINUXからCentOSに22番でSSH接続したいのですがうまくいきません。 おそらくルーター(MN8300)の設定が問題ではないかと思っていますが、 原因が特定できずかれこれ、、1か月ほど悩んでおります。 自宅のIPはルーターの再起動などするとかわりますが、以下のサイトで都度、確認はできます。 https://www.cman.jp/network/support/go_access.cgi ■実施済みのこと ・Win10のファイアーウォールで22番の受信規則を許可 ・CentOSのネットワークはNATで設定 ・CentOSのローカルIPは「IPADDR=192.168.211.132」で固定済み  ※毎回ホストのWin側から上記IPでSSH接続できてます ■ルーターで設定済みの状態 ◇UPnP設定 接続したい外部のIPを許可済み ◇GapNAT通過・NATアドレス変換設定 LAN側IPアドレス:192.168.211.132 ポート番号:22 ◇NATアドレス・ポート変換設定 LAN側IPアドレス:192.168.211.132 LAN側ポート番号:22 WAN側ポート番号:19727 ※適当です ◇IPフィルタ設定 インタフェース:LAN側から受信(または接続元1から受信も試しました) 送信元IPアドレス/マスク長:xxx.xxx.xxx.0/24 送信先IPアドレス/マスク長:192.168.211.0/24 プロトコル:* 送信元ポート番号:* 送信先ポート番号:* IPフィルタアクション:通過 ※上記設定のまま何度もルーター再起動もしてます。 ■CentOS側の状態 (どこからでも許可な状態) [root@localhost ~]# service iptables status iptables: Firewall is not running. [root@localhost ~]# netstat -ant|grep :::22 tcp 0 0 :::22 :::* LISTEN [root@localhost ~]# cat /etc/hosts.deny |grep -vc "#" 0 ◇接続元LINUXからのtraceroute ※初めのほうは省略します 12 111.168.0.25 (111.168.0.25) 1.756 ms 111.168.0.77 (111.168.0.77) 1.981 ms 111.168.0.241 (111.168.0.241) 1.593 ms 13 122.135.0.41 (122.135.0.41) 1.865 ms 122.135.0.121 (122.135.0.121) 15.809 ms 122.135.0.105 (122.135.0.105) 1.737 ms 14 * * * 15 221.171.0.249 (221.171.0.249) 2.430 ms 2.653 ms * 16 * * * ビッグローブのプロバイダを利用してるのですが、途中までは来てます。 ◇CentOSから外部LINUXへのtraceroute 1 192.168.211.2 (192.168.211.2) 0.096 ms 0.040 ms 0.044 ms 2 * * * 上記の通りCentOSからだとtracerouteはすぐ途切れるようですが、 CentOSから外部LINUXへSSH接続はできます。 CentOSへ外部LINUXからSSH接続はできません。 ◇外部LINUXからのSSH接続時のエラー [root@xxxxxxxx ~]# ssh xxx@210.151.xxx.xxx ssh: connect to host 210.151.xxx.xxx port 22: Network is unreachable grep -r でログを探しても外部LINUX側へ接続したログが外部LINUX側に残るだけで 手がかりはありませんでした。 ルーター側に「IPスタティックルート設定」という項目がありますが、 どう設定するのかわかりません。。 どうしたらよいかご教示お願いします。

  • 特定ホストにホスト名でアクセスできない

    今日突然あるマシンで特定のマシン(メールサーバーとしている)に ネットワーク接続できなくなりました。(メールの受信ができない) 厳密にはpingでホスト名を指定すると、 ping machineA ↓ Ping request could not find host machineA. Please check the name and try again. のメッセージでエラーとなるのですが、IPアドレスを指定すると問題なくかえってきます。 また、ホスト名でもIPでも問題なく接続できるマシンもあります。 (エクスプローラなんかでも問題なく参照できる) 接続できるマシンと接続できないマシンの違いが現状考えられません。 このLAN環境ではhostsを使用していて、DNSサーバの指定は行っていません。 同じhostsファイルを使っているマシンでは問題なく接続できるので、 そのマシンのみの問題だと思うのですが、この現象についてなにか分かる、 解決できますでしょうか?(ウイルス?)

  • Sambaセキュリティについて

    smb.confに設定されるhosts allow、hosts denyについての質問です。 手元の資料に、設定においてはhosts allowが優先されるので、hosts denyで拒否が設定されているホストであってもhosts allowで許可されていれば、接続が許可されるとあります。 以下の場合は、グループkeiriにホストsoumuが含まれている場合、soumuからのアクセスは許可されるのでしょうか? hosts allow = @keiri hosts deny = soumu

  • hosts.allowのIPアドレスの記述ついて

    Red Hat Linux9を使用して勉強しています。 SSHを動かしていて、hosts.deny と hosts.allowを使い IPアドレスの接続制限をかけようと思っています。 hosts.denyはALL:ALLにしてあるのでhosts.allowに 接続を許可するIPを記述するのですが、例えば許可する範囲を 「192.168.1.90~192.168.1.99」とする場合は、どうやって 記述すればいいのでしょうか。 まさか1個ずつカンマで区切って記述するということではないですよね。 宜しくお願いします。

  • SSHのアクセス制限が上手くいきません

    一通り試して上手くいかず・・、ぜひ教えてください。 <(_ _)> いろんな所に書いてあるSSHのアクセス制限が、なぜか上手くいきません。 特定の固定IPにのみ接続を許可するため、以下の設定をしています。 ●hosts.deny  sshd : ALL ●hosts.allow ALL : XX.XX.XX.XXX(固定IPアドレス) 設定後、service sshd reloadをしましたが、 外部のダイヤルアップでつないだPCからアッサリアクセスできています。 参考にしたのは以下のページです。 http://memo.blogdns.net/hostsaccess.html OSは、Red Hat Linux release 9です。 何卒アドバイスよろしくお願いいたします。

  • 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と設定してみましたが同様のエラーがきました。

  • smtpについて

    qmail、checkpassword、tcpserver、qmail-vidaを用いてメールサーバを構築したのですが、外部ネットワークから自ホスト宛のメールは送信できてしまうのですが、どこに送信する場合にもSMTP-AUTHで認証したユーザーのみに許可したいのですが、その場合の設定方法がわかりません。 tcp.smtp.cdbは下記のようにしました。 192.16.:allow,RELAYCLIENT="" 127.:allow,RELAYCLIENT="" :allow