以前のリビジョンの文書です
Postfix + Dovecot + Mailmanで構築したメールサーバー環境を勝手にPODOMAと呼んでいるだけなのだが(笑)
このページ(いや、このページだけではないけど)は編集中です 中途半端な情報の場合がありますので注意願います < だったらUPするなって言わないでね
さて、いつものように環境はCentOSと言いたい所ではあるが…実際のところCentOS内部がゴタゴタしててCentOS6.1など出てこない(2011年8月30日)
そこで、今回はScientific Linux 6.1(さいえんてぃふぃっく りなっくす でいいのかな?)に構築してみる事にする。
環境は以下のような感じ
OS : Scientific Linux 6.1 Postfix : 2.6.6-2.2.el6.i686(自前でReBUILDしたの。理由は本文で) Dovecot : 2.0.9-2.el6.i686 Mailman : 2.1.12-14.el6_0.2.i686
構築条件
データベースは使いたくない!(テキストファイルでの管理) バーチャルドメインで運用がしたい 各バーチャルドメインでメーリングリストを運用したい 容量制限がしたい
Scientific Linux(SL)やCentOSなどのリポジトリにあがっているPostfixではquotaを制御できない。もうね、いい加減Postfixが取り込んでくれないかと思うが、なぜか取り込まれない。む~ん、そういう需要がないのかなぁ??
なので、SRPMを落としてきてPATCHをあててRPMを自作する。※自作方法は後で別ページに書く予定(2011年8月30日)
SL 6.1やCentOS6ではデフォルトMTAがPostfixに変更されているはずなので、まずは既存のPostfixをアンインストールする
一応、確認 rpm -qa | grep postfix yum remove postfix*
インストールはrpmコマンドを実行
rpm -ivh postfix*
てな感じかな。yumでupdateされないようにPostfixをupdateから外すように設定をしておく必要あり。
バーチャルドメインで運用するので、バーチャル用のグループとユーザを作成する
groupadd -g 5000 vuser useradd -g vuser -u 5000 vuser
UIDとGIDは5000以外でも構わないが他で使われていない事を確認が必要
作成したvuserのホームディレクトリのオーナー権限とパーミッションを設定
chown -R vuser:vuser /home/vuser chmod -R 771 /home/vuser/
useraddコマンドでディレクトリを作ってるのでオーナー権限は大丈夫かもしれないが、パーミッションは700なので必須
main.cfを編集(オリジナルはもしもの場合の為、コピーして保存しておく)
cd /etc/postfix cp -p main.cf main.cf.org vi main.cf
編集は以下の所
myhostname = サーバーホスト名
#inet_interfaces = localhost inet_interfaces = all #inet_protocols = all inet_protocols = ipv4
#mydestination = $myhostname, localhost.$mydomain, localhost mydestination = $myhostname #alias_maps = hash:/etc/aliases alias_maps = hash:/etc/aliases, hash:/etc/mailman/aliases home_mailbox = Maildir/ smtpd_banner = $myhostname ESMTP unknown
最低限これくらい修正をしておけば問題ないと思う
さらにSMTP-AUTHやバーチャルドメインの設定をmain.cfに追加(最後に追加すればOK)
# SMTP-AUTHの設定 # smtpd_sasl_security_options = noanonymous smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = hash:/etc/postfix/virtual_domains smtpd_sasl_authenticated_header = yes broken_sasl_auth_clients = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
# バーチャルドメインの設定 virtual_mailbox_domains = hash:/etc/postfix/virtual_domains virtual_mailbox_base = /home/vuser/vhosts virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_minimum_uid = 100 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_alias_maps = hash:/etc/postfix/virtual, hash:/etc/mailman/virtual-mailman
# QUOTA
virtual_create_maildirsize = yes virtual_maildir_extended = yes virtual_mailbox_limit_maps = hash:/etc/postfix/vquota virtual_mailbox_limit_override = yes virtual_overquota_bounce = no
# SMTPSの設定 デフォルトはNO
# smtpd_use_tls = no smtpd_tls_cert_file = /etc/pki/tls/certs/mail.pem smtpd_tls_key_file = /etc/pki/tls/certs/mail.pem smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
SMTPSの設定はとりあえず入れてるけど、有効化してない
master.cfを修正してSUBMISSIONを有効にする
vi master.cf submission inet n - n - - smtpd submissionの#を外して有効化します
起動する前に、ドメインやメールアドレスを設定したテキストファイルを作成する
1.バーチャルドメインの設定ファイル /etc/postfix/virtual_domains フォーマットは以下の通り ドメイン名 required to prevent relay access denied errors 2.メールアドレスの設定ファイル /etc/postfix/vmailbox フォーマットは以下の通り メールアドレス ドメイン名/アカウント名/Maildir/ 3.転送アドレスの設定ファイル /etc/postfix/virtual フォーマットは以下の通り メールアドレス 転送先1,転送先2 この時、 メールアドレス 転送先1,&メールアドレス(左辺の転送元と同じアドレス) と書く事で転送元にもメールを残すように設定が可能(実メールアカウントがある場合) 4.容量制限の設定ファイル /etc/postfix/vquota フォーマットは以下の通り メールアドレス 制限値(単位はバイト10GB=10240000000とするとだいたいあってる) この時 @ドメイン名 制限値 と書く事でドメイン単位での容量制限値となる
mailmanのaliasファイルも指定してるので必要ではあるが、それはmailmanの項目を参照
作成したテキストファイルのままではPostfixは読込めないのでhashデータベースに変換をする
postmap 変換したい設定ファイル
全ての設定ファイルをhashデータベース化したらPostfixの設定は完了なはず・・・
ちなみに… 設定するファイルが多くいちいちviで編集するのが面倒なのでオリジナルのコマンドを作成 するのが管理には楽かもしれない。 以下は実際に作成したオリジナルコマンドの為の設定なので、テキストファイルを直接書換えて 管理する場合は不要です cd /etc/postfix mkdir vhosts mkdir aliases mkdir quota cd /home/vuser mkdir bin cd bin オリジナルコマンドをダウンロード chmod 775*
デフォルトmtaにSendmailがインストールされている場合は以下の手順でデフォルトmtaをpostfizに変更する
service sendmail stop chkconfig sendmail off alternatives --config mta
2をインプットしてください
* 以下は参考。後でかく
dovecot2系の修正点
/etc/dovecot/dovecot.conf
IPv4のみ対応
#listen = *, ::
↓
listen = *
/etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain
↓
auth_mechanisms = digest-md5 cram-md5 plain login
#!include auth-passwdfile.conf.ext
↓
!include auth-passwdfile.conf.ext
!include auth-system.conf.ext
↓
#!include auth-system.conf.ext
/etc/dovecot/conf.d/10-mail.conf
#mail_location =
↓
mail_location = maildir:/home/vuser/vhosts/%d/%n/Maildir
/etc/dovecot/conf.d/10-master.conf 81行目あたりからを以下の修正(元の状態を忘れた^^;)
#unix_listener auth-userdb { #mode = 0600 #user = #group = #}
# Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix }
# Auth process is run as this user. #user = $default_internal_user
}
/etc/dovecot/conf.d/auth-passwdfile.conf.ext 以下のように修正
passdb {
driver = passwd-file # args = scheme=CRYPT username_format=%u /etc/dovecot/users args = /home/vuser/dovecot-passwd
}
userdb {
driver = passwd-file #args = username_format=%u /etc/dovecot/users args = /home/vuser/dovecot-passwd
}
パスワード発行方法 dovecotpwコマンドは廃止されて、かわりにdoveadmが追加されている