[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[postfix-jp: 3692] Re: 外からのメール受信拒否の設定
- Subject: [postfix-jp: 3692] Re: 外からのメール受信拒否の設定
- From: Mitsuru Ogino <ogino@xxxxxxxxxx>
- Date: Sat, 26 Dec 2009 00:02:03 +0900
荻野です。
相変わらずちゃんと確認せずに書いています。すみません。
nakafumi said the following on 09/12/03 13:52:
> /etc/postfix/restricted_recipient:
> -----
> root@ DISCARD
> postmaster@ OK
> -----
先にこちらに突っ込みを入れるべきだったように思えてきました。
postmaster@ OK は外部から自ドメインの postmaster 宛を受信するという意図
だと思いますが、この書き方は外部から他ドメインの postmaster@ 宛を中継し
てしまうように見えます。
自ドメイン宛のものは smtpd_recipient_restrictions の末尾の暗黙の許可に
よって受信できるので OK はそもそも不要のはずです。もし postmaster 宛を拒
否しないということを明示したいのであれば DUNNO を使用すべきかと。
または制限を加えるだけなら reject_unauth_destination の後に書くほうが安
全だと思うので、そちらの方が良いかもしれません。迷惑メール対策とかはほと
んどすべて reject_unauth_destination の後ろで良いように思います。
nakafumi said the following on 09/12/25 10:02:
> 以下の設定から更に、ローカルから外ドメイン宛は要認証としたいのですが、
> permit_mynetworks が先頭にあるため、認証無しで送信できてしまいます。
> これを外すと、ローカルからroot宛てが破棄されてしまいます。
> ローカルからローカル宛は許可、という方法はありますでしょうか。
(略)
>> smtpd_recipient_restrictions =
>> permit_mynetworks
>> check_recipient_access hash:/etc/postfix/restricted_recipient
>> permit_sasl_authenticated
>> reject_unauth_destination
まず DISCARD は脇においておいて拒否の場合を考えます。(個人的には拒否で
良い場合がほとんどだと思いますが)
要件からしてローカルを無条件で書く permit_mynetworks は外さざるを得ませ
ん。すると、hash:/etc/postfix/restricted_recipient に引っかかった場合、
ローカルからは許可したいので、この中身を
root@example.com permit_mynetworks,reject
とすれば良さそうです。ここで @example.com はご自身のドメインです。これが
無いと他のドメインの root@ に出せないからです。
しかし、permit_sasl_authenticated を先にして良いなら root@ のままで構い
ません。この場合、外部から認証済ユーザがローカルの root@ に出せるという
ように挙動が変わります。(通常は問題ないと思いますが…)
main.cf:
smtpd_recipient_restrictions =
permit_sasl_authenticated
reject_unauth_destination
check_recipient_access hash:/etc/postfix/restricted_recipient
/etc/postfix/restricted_recipient:
root@ permit_mynetworks,reject
となります。(多分…)
DISCARD など smtpd_recipient_restrictions に書けるもの以外を指定したい場
合、私の知識ではとたんに複雑になってしまいます。多分、先に main.cf で
smtpd_restriction_classes を定義して代わりに書くしかないと思います。この
場合、「外部」を hash で定義するのは難しそうなので、例えば cidr を使いま
す。(postconf -m で cidr のサポートを確認のこと)でなければ regexp と
か。(なお regexp で外部全部を指定するのは // だけで良いはず)
main.cf:
# permit_mynetworks_or_discard を宣言?しておく
smtpd_restriction_classes = permit_mynetworks_or_discard
# permit_mynetworks_or_discard とは client IP を cidr テーブルで引く
permit_mynetworks_or_discard =
check_client_access cidr:/path/to/permit_mynet_or_discard.cidr
smtpd_recipient_restrictions =
permit_sasl_authenticated # 認証済ユーザはすべて許可
reject_unauth_destination # 自ドメイン宛でなければ拒否
# 宛先で restricted_recipient をチェック
check_recipient_access hash:/path/to/restricted_recipient
# ここに暗黙の許可(自ドメイン宛で restricted_recipient に無い)
/path/to/restricted_recipient
# root@ 宛なら permit_mynetworks_or_discard に従う
root@ permit_mynetworks_or_discard
/path/to/permit_mynet_or_discard.cidr:
# client IP が mynetworks 相当に OK を出す
127.0.0.0/8 OK
192.168.0.0/16 OK
::1/128 OK (IPv6 サポートがある場合)
fe80::/10 OK (IPv6 サポートがある場合の例)
# その他のアドレスはすべて DISCARD
0.0.0.0/0 DISCARD
::/0 DISCARD (IPv6 サポートがある場合)
でいけそうに思います。
が、書いてて何度も間違いに気がついたので、ご自身でも確認の上、テストして
ください。つっこみ歓迎します。
--
荻野 充 (おぎの みつる) ... 「萩(はぎ)」にあらず
Key fingerprint = 7F26 5414 1805 F31B 1617 10B7 C117 07AE 1691 9BD1
_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxxxxxxxxxxxxxxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list
- Follow-Ups
-
- [postfix-jp: 3693] Re: 外からのメール受信拒否の設定, nakafumi
- References
-
- [postfix-jp: 3656] 外からのメール受信拒否の設定, nakafumi
- [postfix-jp: 3661] Re: 外からのメール受信拒否の設定, nakafumi
- [postfix-jp: 3691] Re: 外からのメール受信拒否の設定, nakafumi
[検索ページ]
[Postfix-JP ML Home]