[[
PODOMA
]]
Fool For the City
現在位置:
なみかわみやこの技術メモwikiです。
»
linux
»
PODOMA
文書の表示
以前のリビジョン
最近の変更
索引
ログイン
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== PODOMA ====== Postfix + Dovecot + Mailmanで構築したメールサーバー環境を勝手にPODOMAと呼んでいるだけなのだが(笑) <code> このページ(いや、このページだけではないけど)は編集中です 中途半端な情報の場合がありますので注意願います < だったらUPするなって言わないでね </code> さて、いつものように環境は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 構築条件 データベースは使いたくない!(テキストファイルでの管理) バーチャルドメインで運用がしたい 各バーチャルドメインでメーリングリストを運用したい 容量制限がしたい ===== Postfixインストール ===== Scientific Linux(SL)やCentOSなどのリポジトリにあがっているPostfixではquotaを制御できない。もうね、いい加減Postfixが取り込んでくれないかと思うが、なぜか取り込まれない。む~ん、そういう需要がないのかなぁ?? なので、SRPMを落としてきてPATCHをあてて[[postfix:rebuild|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をインプットしてください chkconfig postfix on service postfix start ===== Dovecotインストール ===== インストールはyumでOK yum install dovecot chkconfig dovecot on エンタープライズ系LINUXではdovecotのバージョンが2にあがっている。 1系では/etc/dovecot.confだけで設定されていたのが、細かく分割されている。 おそらく今後のバージョンアップで設定ファイルの修正をわかりやすくする為と思われる もともと1系で検証してたので2系になって面倒と思ったが、基本的な書き方は同じで1ファイルか複数ファイルで管理しているかの違いと思う。 今回はSL6.1ベースなので2系の設定方法を記載しているが、1系の場合は/etc/dovecot.confで該当する部分を見つけて修正してやれば問題ないかと思う・・・。たぶんね 1.IPv6を利用しない 編集するファイル /etc/dovecot/dovecot.conf サーバーをIPv6を利用しない設定にしてあるので、postfixやdovecotもIPv6を利用しないように設定してやらないとerrorやwarningとなる #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が追加されている
linux/podoma.1314755104.txt.gz · 最終更新: 2011/08/31 01:45 by miyako
文書の表示
以前のリビジョン
文書の先頭へ