: O. Yuanying

Postfixでアカウントを制限する

ようするに「qmail でメールアカウントだけを削除する方法」のPostfix版。

メールサーバが、Webサーバやファイルサーバなどを兼ねている場合、サーバへのログインはできるけど、メールは利用できない特殊なユーザが必要になることがある。というか、今そういう状況になったんです。ハイ。

サーバにアカウントはあるけどメールアカウントだけは制限したい、って場合。

main.cfのlocal_recipient_mapsの設定

Postfixにはlocal_recipient_mapsという設定がある。これは知らないローカルユーザを拒否するという設定で、デフォルトではUNIXアカウント、もしくはエイリアスに登録されているユーザ以外の宛先のメールはすべて拒否するようになっている。

/etc/postfix/main.cf:
    local_recipient_maps = unix:passwd.byname $alias_maps

つまりサーバにアカウントがある場合、その人宛にメールが届いてしまう。

そこで、すべてのUNIXアカウントではなく、許可したアカウントのみにメールを制限したければ、unix:passwd.bynameを削除して、メールアカウントを許可したい宛先のみlocal_recipientsにに登録してやればいい。

たとえばyuanyingというユーザとkojiroというユーザのみにメールを届けさせたい場合は、

/etc/postfix/main.cf:
    local_recipient_maps = $alias_maps btree:/etc/postfix/local_recipients
/etc/postfix/local_recipients:
    yuanying@fraction.jp OK
    kojiro@fraction.jp OK

でおk。

あとはエイリアスを反映させてやる。

[root@Uzume ~]# sudo postmap btree:/etc/postfix/local_recipients

余談

なんかもっといい方法、ってか普通の設定方法がある気がするけど、ぐぐる先生に聞いてみても見つかりません…orz