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