この文書の現在のバージョンと選択したバージョンの差分を表示します。
linux:podoma [2011/08/30 09:07] miyako |
linux:podoma [2011/08/31 04:46] (現在) miyako [mailmanインストール] |
||
---|---|---|---|
ライン 26: | ライン 26: | ||
- | * Postfixをインストールする | + | ===== Postfixインストール ===== |
Scientific Linux(SL)やCentOSなどのリポジトリにあがっているPostfixではquotaを制御できない。もうね、いい加減Postfixが取り込んでくれないかと思うが、なぜか取り込まれない。む~ん、そういう需要がないのかなぁ?? | Scientific Linux(SL)やCentOSなどのリポジトリにあがっているPostfixではquotaを制御できない。もうね、いい加減Postfixが取り込んでくれないかと思うが、なぜか取り込まれない。む~ん、そういう需要がないのかなぁ?? | ||
ライン 32: | ライン 33: | ||
なので、SRPMを落としてきてPATCHをあてて[[postfix:rebuild|RPMを自作]]する。※自作方法は後で別ページに書く予定(2011年8月30日) | なので、SRPMを落としてきてPATCHをあてて[[postfix:rebuild|RPMを自作]]する。※自作方法は後で別ページに書く予定(2011年8月30日) | ||
- | + | SL 6.1やCentOS6ではデフォルトMTAがPostfixに変更されているはずなので、まずは既存のPostfixをアンインストールする | |
- | インストールはrpmコマンドで | + | 一応、確認 |
+ | rpm -qa | grep postfix | ||
+ | |||
+ | yum remove postfix* | ||
+ | |||
+ | インストールはrpmコマンドを実行 | ||
rpm -ivh postfix* | rpm -ivh postfix* | ||
- | てな感じかな | + | てな感じかな。yumでupdateされないようにPostfixをupdateから外すように設定をしておく必要あり。 |
バーチャルドメインで運用するので、バーチャル用のグループとユーザを作成する | バーチャルドメインで運用するので、バーチャル用のグループとユーザを作成する | ||
ライン 125: | ライン 131: | ||
- | さて、この状態で設定しているファイルを適切に変更していればテキストファイルでバーチャルドメインの設定が可能になる | + | 起動する前に、ドメインやメールアドレスを設定したテキストファイルを作成する |
+ | 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インストール ===== | ||
- | dovecot2系の修正点 | + | インストールはyumでOK |
+ | yum install dovecot | ||
+ | chkconfig dovecot on | ||
- | /etc/dovecot/dovecot.conf | ||
- | IPv4のみ対応 | + | エンタープライズ系LINUXではdovecotのバージョンが2にあがっている。 |
+ | 1系では/etc/dovecot.confだけで設定されていたのが、細かく分割されている。 | ||
+ | おそらく今後のバージョンアップで設定ファイルの修正をわかりやすくする為と思われる。 | ||
- | #listen = *, :: | + | もともと1系で検証してたので2系になって面倒と思ったが、基本的な書き方は同じで1ファイルか複数ファイルで管理しているかの違いと思う。 |
- | ↓ | + | |
- | listen = * | + | |
- | /etc/dovecot/conf.d/10-auth.conf | + | 今回はSL6.1ベースなので2系の設定方法を記載しているが、1系の場合は/etc/dovecot.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 | ||
+ | 1.IPv6を利用しない | ||
+ | 編集するファイル | ||
+ | /etc/dovecot/dovecot.conf | ||
- | /etc/dovecot/conf.d/10-mail.conf | + | サーバーをIPv6を利用しない設定にしてあるので、postfixやdovecotもIPv6を利用しないように |
+ | 設定してやらないとerrorやwarningとなる | ||
- | #mail_location = | + | #listen = *, :: |
- | ↓ | + | ↓ |
- | mail_location = maildir:/home/vuser/vhosts/%d/%n/Maildir | + | listen = * |
- | /etc/dovecot/conf.d/10-master.conf | + | 2.認証方法とセキュリティの設定 |
- | 81行目あたりからを以下の修正(元の状態を忘れた^^;) | + | 編集するファイル |
+ | /etc/dovecot/conf.d/10-auth.conf | ||
+ | md5とloginを追加。認証はテキストファイルで行うのでauth-passwdfile.conf.extを有効にする。 | ||
+ | デフォルトをはっきり覚えてないのだが、確かauth-system.conf.extが有効になってたので無効かする。 | ||
+ | |||
+ | 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 | ||
+ | |||
+ | |||
+ | 3.メールディレクトリの指定 | ||
+ | 編集するファイル | ||
+ | /etc/dovecot/conf.d/10-mail.conf | ||
+ | |||
+ | posutofixで指定したディレクトリを指定する。 | ||
+ | %dはドメイン名 | ||
+ | %nはユーザ名 | ||
+ | にそれぞれ置き換わる。 | ||
+ | |||
+ | #mail_location = | ||
+ | ↓ | ||
+ | mail_location = maildir:/home/vuser/vhosts/%d/%n/Maildir | ||
+ | |||
+ | |||
+ | 4.Postfixとの連携を設定する(SMTP-AUTHの認証をdovecotのユーザーで行う為) | ||
+ | 編集するファイル | ||
+ | /etc/dovecot/conf.d/10-master.conf | ||
+ | |||
+ | 81行目あたりからを以下の修正(元の状態を忘れた^^;) | ||
+ | |||
#unix_listener auth-userdb { | #unix_listener auth-userdb { | ||
#mode = 0600 | #mode = 0600 | ||
ライン 188: | ライン 287: | ||
# Auth process is run as this user. | # Auth process is run as this user. | ||
#user = $default_internal_user | #user = $default_internal_user | ||
- | } | ||
- | /etc/dovecot/conf.d/auth-passwdfile.conf.ext | + | 5.認証用ファイルを設定する |
- | 以下のように修正 | + | 編集するファイル |
+ | /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 | ||
+ | } | ||
+ | |||
+ | |||
+ | ユーザーの作成 | ||
+ | こちらもデータベースなど使わずテキストファイルで管理する。 | ||
+ | 先ほど認証用ファイルで設定した以下のファイルに1ユーザ1行で追加していく | ||
+ | この時、Postfix側のユーザー登録がされていないとユーザーディレクトリが見つからなくてエラーとなる | ||
+ | (んじゃないかな・・・試してないけど) | ||
+ | |||
+ | 編集するファイル | ||
+ | /home/vuser/dovecot-passwd | ||
+ | |||
+ | フォーマットは以下の通り | ||
+ | メールアドレス:{セキュリティ}暗号化されたパスワード:5000:5000::/home/vuser/vhosts/%d/%u/Maildir/ | ||
+ | |||
+ | 5000:5000は最初に作成したvuserのUIDとGIDを指定する | ||
+ | |||
+ | パスワードの作成 | ||
+ | 説明が後になったが、ユーザーを作成する際に指定したセキュリティで暗号化されたパスワードを | ||
+ | 生成する必要がある。 | ||
+ | 2系の場合は以下のようにして生成する事ができる | ||
+ | |||
+ | doveadm pw -s CRAM-MD5 -p パスワード | ||
+ | |||
+ | CRAM-MD5で暗号化されたパスワードが表示されるので、それをそのままユーザー設定ファイルに設定してやればOK | ||
+ | |||
+ | dovecotの1系を利用の場合はdoveadmコマンドが存在しません | ||
+ | 1系の場合はdovecotpwというコマンドを利用して同じようにパスワードを生成する事が可能 | ||
+ | |||
+ | dovecotpw -s CRAM0MD5 -p パスワード | ||
+ | |||
+ | |||
+ | dovecotを起動する | ||
+ | デフォルトの設定のままなのでPOP3とIMAPとLMTPがオープンsれます……ん?LMTPってなんぞや? | ||
+ | dovecot1系じゃなかったと思うぞ | ||
+ | |||
+ | どうやら、ESMTPの代替プロトコルでLocal Mail Transfer Protocolの頭文字を取ってLMTPのようだ | ||
+ | ローカルにメールを配送する為のプロトコルって事だろうね(読んだままやん) | ||
+ | |||
+ | ESMTPはSMTP拡張して転送を効率化するプロトコル群の総称。 | ||
+ | |||
+ | よし、とりあえずあげておこう(ぇ | ||
+ | |||
+ | 設定ファイル | ||
+ | /etc/dovecot/dovecot.conf | ||
+ | |||
+ | 変更箇所 | ||
+ | protocols = imap pop3 lmtp | ||
+ | |||
+ | |||
+ | ===== mailmanインストール ===== | ||
+ | |||
+ | Postfix+dovecotの環境でmailmanも独自ドメインで運用するには少し面倒だったりする | ||
+ | |||
+ | mailmanにPostfixからメールを渡す際にaliasesを利用する必要があるのだがPostfixとしてのaliasesではプログラムにパイプ(|)でメールを渡す事ができない。 | ||
+ | |||
+ | その為、ローカルのaliasesを利用するのだが、/etc/aliasesに書くとごちゃごちゃになるので/etc/mailman/aliasesを利用する。 | ||
+ | |||
+ | Postfixのmain.cfをその様に設定変更する必要があるのだが、上記のPostfixの設定通りに構築がされていればすでにその設定になっているw | ||
+ | |||
+ | さて、そうすると困った事がおこる。 | ||
+ | |||
+ | バーチャルドメインで運用しているのに、ml-info@ドメイン1とml-info@ドメイン2が1台のサーバー上では共存が出来ないのである。 | ||
+ | |||
+ | このサーバーで運用するドメイン全てを同じ人が管理するのであれば上記注意点を理解してメーリングリストを作成すれば良いのだけど、ドメイン毎に管理者が違う場合、メーリングリスト名が早い者勝ちとなってしまう。 | ||
+ | |||
+ | それを回避する一つの方法として、メーリングリストの実態はユニークなリスト名にして、各ドメインでそのリストに転送をする。 | ||
+ | |||
+ | インストールはyumでOK | ||
+ | yum install mailman | ||
+ | |||
+ | コンフィグファイルを修正 | ||
+ | 編集ファイル | ||
+ | /usr/lib/mailman/Mailman/mm_cfg.py | ||
+ | |||
+ | 変更箇所 | ||
+ | #DEFAULT_URL_HOST = fqdn | ||
+ | #DEFAULT_EMAIL_HOST = fqdn | ||
+ | ↓ | ||
+ | DEFAULT_URL_HOST = fqdn | ||
+ | DEFAULT_EMAIL_HOST = fqdn | ||
+ | |||
+ | #add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) | ||
+ | ↓ | ||
+ | add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) | ||
+ | |||
+ | |||
+ | 以下を追加(一部、個人的なデフォルト設定の変更ありw) | ||
+ | MTA = 'Postfix' | ||
+ | DEFAULT_SERVER_LANGUAGE = 'ja' | ||
+ | DEFAULT_REQUIRE_EXPLICIT_DESTINATION = 0 | ||
+ | DEFAULT_SUBJECT_PREFIX = "[%(real_name)s:%%d]" | ||
+ | DEFAULT_LIST_ADVERTISED = No | ||
+ | OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes | ||
+ | DEFAULT_REPLY_GOES_TO_LIST = 1 | ||
+ | ## DEFAULT_GENERIC_NONMEMBER_ACTION = 2 | ||
+ | |||
+ | |||
+ | ドメインを追加 | ||
+ | POSTFIX_STYLE_VIRTUAL_DOMAINS = [ | ||
+ | 'ドメイン1' | ||
+ | 'ドメイン2' | ||
+ | ] | ||
+ | |||
+ | |||
+ | add_virtualhost('ドメイン1','ドメイン1') | ||
+ | add_virtualhost('ドメイン2','ドメイン2') | ||
+ | |||
+ | ドメインを追加する度に設定を追加してmailmanをリロードする必要があります | ||
+ | |||
+ | |||
+ | service mailman start | ||
+ | |||
+ | chkconfig mainman on | ||
- | passdb { | + | メーリングリストの追加コマンド |
- | driver = passwd-file | + | newlist -q リスト名 管理者メールアドレス 管理パスワード |
- | # args = scheme=CRYPT username_format=%u /etc/dovecot/users | + | |
- | args = /home/vuser/dovecot-passwd | + | |
- | } | + | |
- | userdb { | + | メーリングリストの削除コマンド |
- | driver = passwd-file | + | rmlist -a リスト名 |
- | #args = username_format=%u /etc/dovecot/users | + | |
- | args = /home/vuser/dovecot-passwd | + | |
- | } | + | |
- | パスワード発行方法 | + | まぁ、aliasesファイルの編集やhashデータベース化も必要なのだが、それはわかるでしょ? |
- | dovecotpwコマンドは廃止されて、かわりにdoveadmが追加されている | + |