Ubuntu Server でメールサーバを構築するページです。

Postfix

Postfixは複雑になりすぎたSendmailのかわりによく使われるSMTPサーバ用のソフトである。インストールは apt一発でOKだが、メールサーバの設定形式が聞かれるので、自分の条件に合わせる必要がある。(もちろん、後から設定ファイルを修正すれば問題ない。)

今回はメール中継用のサーバを利用するので、「サテライトシステム」を選択した。

postfix-install01.png
postfix-install02.png
postfix-install03.png
postfix-install04.png

設定

設定は基本的に main.cf を変更すればよい。

postfixを「サテライトシステム」を選択してインストールした直後の main.cf: filemain.cf.orig

設定例

# ホスト名
myhostname = mail.example.com

# aliasの設定
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

# メール送信の設定
myorigin = /etc/mailname
# メールの最終目的地とみなす範囲の指定
mydestination = mail.example.com, localhost.example.com, localhost

# ローカルメール以外は mailgw に送る
relayhost = relay.example.com
# 信頼できるクライアントのネットワークを指定
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

# メールボックスの容量制限なし
mailbox_size_limit = 0
# メールのサイズ容量制限(20MB)
message_size_limit = 20971520
recipient_delimiter = +
# 全てのアクティブなインターフェースで待ち受ける
inet_interfaces = all
# メールの格納方式を Maildir方式にする
home_mailbox = Maildir/
# ヘッダをチェックするファイルの場所を指定
header_checks = regexp:/etc/postfix/header_checks

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS の設定
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# 不明なユーザ宛のメールやホストネーム宛のメールが届いた際に
#   エラーコードを 450 ではなく 550 を返すようにする
unknown_local_recipient_reject_code = 550
unknown_address_reject_code = 550
unknown_client_reject_code = 550
unknown_hostname_reject_code = 550

/etc/postfix/header_checksに以下の記述をすることで、ローカルクライアントのIPアドレスなどを送信しないようにできる。(参照:Postfix (SMTPサーバー)/Ubuntu 8.04

/^Received:.*192\.168\..*/ IGNORE
/^Received:.*127\.0\.0\.1.*/ IGNORE

main.cfの内容を変更したら、postfixに設定ファイルを強制的に読み込ませる。(ただし、inet_interfacesを変更した場合にはpostfixを再起動する必要あり。参照:Postfixの基本設定 (ほげおメモ)

  • 通常のパラメータ変更
    $ sudo /etc/init.d/postfix reload
  • inet_interfacesの内容を変更した場合
    $ sudo /etc/init.d/postfix restart

Maildir形式に変更する

MailBox?形式では受信したメールがメールスプールに1つのファイルとして保存されるので、もしもメールスプールが壊れてしまうと、メール全体が読めなくなってしまう。その点、Maildir形式ならばメールは ~/Maildir 以下に1通ごと別のファイルとして保存されるので安心である。また、Quotaを使ってメール容量に制約もかけやすい。(参照:メールサーバー構築(Postfix+Dovecot) - Fedoraで自宅サーバー構築

$ mkdir -p ~/Maildir/{new, cur, tmp}
$ chown -R 700 ~/Maildir

新規ユーザを追加した際に自動的に Maildir が作成されるように /etc/skel にテンプレートを作っておくと便利。

$ sudo mkdir -p /etc/skel/Maildir/{new, cur, tmp}
$ chown -R 700 /etc/skel/Maildir

トラブル対応

File too large

/var/log/maillog に以下のようなメッセージが表示されて、メールが受信できなくなる。(情報:かっぱの金町Blog: postfixのmailboxの容量制限

cannot access mailbox /var/mail/hoge for user hoge error writing message: File too large

これは、postfixで設定したメールボックスの最大容量を越えてしまったのが原因である。一時的に最大値を大きく設定して、該当ユーザに不要なメールをメールボックスから削除してもらい、また元の最大値に戻せばよい。

  • /etc/postfix/main.cf
    mailbox_size_limit = 512000000
        ↓
    mailbox_size_limit = 1024000000

SASL

SASLを用いてSMTP-AUTH対応にする。ここが一番ハマった。ubuntuでは postfix が chroot しているので、saslauthd が postfix から見えるようにしなくてはいけない。本来ならば、セキュリティレベルを上げるためにLDAPやSASLパスワードを利用したいが、それは今後の課題ということで...

postfixのchroot対策をしても、再起動すると /var/run が tmpfs に置かれるのでシンボリックリンクがクリアされてしまう。(Bug #138931 in cyrus-sasl2 (Ubuntu): “Can't use saslauthd to authenticate both postfix and cyrus due to /var/run/saslauthd being on tmpfs”

sasl2-binのインストール

$ sudo apt-get install sasl2-bin

インストールしただけでは saslauthd は自動起動しないので、/etc/default/saslauthd を以下のように変更する。

START=no
  ↓
START=yes

saslauthd を起動して、SMTP認証のテストを行う。

$ sudo /etc/init.d/saslauthd start
$ sudo testsaslauthd -s smtp -u ユーザ名 -p [ユーザの平文パスワード]
0: OK "Success." ←このように表示されたら大丈夫

参照:Postfix (SMTPサーバー)/Ubuntu 8.04:SMTP認証の利用設定

postfix の chroot 対策

SASLの設定をしてメールソフトから送信しようとしたが、以下のエラーが発生して、メールを送れなかった。

Dec 26 14:12:19 hogehoge postfix/smtpd[27318]: connect from kerokero[xx.xx.xx.xx]
Dec 26 14:12:51 hogehoge postfix/smtpd[27318]: warning: SASL authentication failure:
 cannot connect to saslauthd server: No such file or directory
Dec 26 14:12:51 hogehoge postfix/smtpd[27318]: warning: SASL authentication failure:
 Password verification failed
Dec 26 14:12:51 hogehoge postfix/smtpd[27318]: warning: kerokero[xx.xx.xx.xx]:
 SASL PLAIN authentication failed: generic failure
Dec 26 14:12:51 hogehoge postfix/smtpd[27318]: warning: SASL authentication failure:
 cannot connect to saslauthd server: No such file or directory
Dec 26 14:12:51 hogehoge postfix/smtpd[27318]: warning: kerokero[xx.xx.xx.xx]:
 SASL LOGIN authentication failed: generic failure
Dec 26 14:13:10 hogehoge postfix/smtpd[27318]: disconnect from kerokero[xx.xx.xx.xx]

かなり悩んだが、ここに解決法が記述されていた。

$ sudo /etc/init.d/saslauthd stop
$ sudo rm -r /var/run/saslauthd/
$ sudo mkdir -p /var/spool/postfix/var/run/saslauthd
$ sudo ln -s /var/spool/postfix/var/run/saslauthd /var/run
$ sudo chgrp sasl /var/spool/postfix/var/run/saslauthd
$ sudo adduser postfix sasl
$ sudo /etc/init.d/saslauthd start

これで解決と思ったが、サーバを再起動するとまた /var/run/saslauthd が作られてしまう。ということで、Dovecot SASL を使うよう方針を変えた。

Dovecot

IMAPやPOP3サーバ用ソフト。今回は、IMAPのみ利用できるように設定した。さらに、上述のSMTP-AUTHも Dovecot SASL で対応することにした。

インストール

$ sudo apt-get install dovecot-imad

設定

/etc/dovecot/dovecot.conf

$ diff -c /etc/dovecot/dovecot.conf.orig /etc/dovecot/dovecot.conf
*** /etc/dovecot/dovecot.conf.orig	2008-12-26 18:01:48.836482142 +0900
--- /etc/dovecot/dovecot.conf		2008-12-26 12:01:05.962196601 +0900
***************
*** 214,220 ****
  #
  # <doc/wiki/MailLocation.txt>
  #
! #mail_location = 
  
  # If you need to set multiple mailbox locations or want to change default
  # namespace settings, you can do it by defining namespace sections.
--- 214,220 ----
  #
  # <doc/wiki/MailLocation.txt>
  #
! mail_location = maildir:~/Maildir
  
  # If you need to set multiple mailbox locations or want to change default
  # namespace settings, you can do it by defining namespace sections.

RoundCube? WebMail?

Ajaxを用いたWebMail?ソフト。(本家サイト) 2008年の年末に0.2-stable版が公開された。日本語対応も進んでいるらしい。2009-01-09現在、Ubuntuには古い0.1-rc2用のパッケージしかなかったので、手動でインストールしてみた。

必要なパッケージのインストール

メール本体を格納するデータベースとPHPが必要。今回はRDBMにMySQLを使ったので、以下のパッケージをインストールした。

$ sudo apt-get install php5-mcrypt php-auth php-net-smtp php-net-socket \ 
    php-mail-mime ucf tinymce mysql-server mysql-client php5-mysql php-db

MySQLをインストールする際に、rootのパスワードを作成するよう促されるので、パスワードを設定しておく。(もちろん、後で作成することも可能)

PHP Fileinfoのインストール

情報元:XooNIps - EthnaWiki しかし、php5-dev をインストールすると他の開発系のソフトも入ってしまうため、実際にインストールはしなかった。別マシンでビルドして、できたファイルだけ入れればよいのかもしれない。

fileinfo拡張のインストール手順

これもUbuntuの場合。

$ sudo aptitude install php5-dev

してあればpeclコマンドが使えた気がするので、まずfileinfo拡張が要求するlibmagic-devをインストール

$ sudo aptitude install libmagic-dev

そして次にpeclコマンド

$ sudo pecl install fileinfo
WARNING: "pear/Fileinfo" is deprecated in favor of \
"channel://php-src/ext/fileinfo/in php sources"
downloading Fileinfo-1.0.4.tgz ...
Starting to download Fileinfo-1.0.4.tgz (5,835 bytes)
.....done: 5,835 bytes
3 source files, building
running: phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
building in /var/tmp/pear-build-root/Fileinfo-1.0.4
running: /tmp/pear/cache/Fileinfo-1.0.4/configure

Build process completed successfully
Installing '/usr/lib/php5/20060613+lfs/fileinfo.so'
install ok: channel://pear.php.net/Fileinfo-1.0.4

これでインストールされるので、最後に表示されるfileinfo.soのインストール先ディレクトリを覚えておいて、これを転送先サーバの同じディレクトリにコピーする。

$ scp /usr/lib/php5/20060613+lfs/fileinfo.so user@server:/usr/lib/php5/20060613+lfs/

/etc/php5/conf.d/fileinfo.iniを作成する。

extension=fileinfo.so

その後でapacheを再起動する。

プログラムのダウンロードと展開

$ cd workdir
$ wget http://nchc.dl.sourceforge.net/sourceforge/roundcubemail/roundcubemail-0.2-stable.tar.gz
$ tar zxvf wget roundcubemail-0.2-stable.tar.gz
$ sudo mv roundcubemail-0.2-stable /var/www
$ cd /var/www
$ sudo ln -s roundcubemail-0.2-stable webmail
$ sudo chown -R www-data:www-data roundcubemail-0.2-stable

データベースの設定(MySQLの場合)

RoundCube? WebMail?で使用する空のデータベースを作成し、テーブルレイアウトと roundcube user のアクセス権を設定する。その際、roundcube user のパスワードも設定しておくとよい。なお、この時設定したパスワードは 'config/db.inc.php' に記述しなければいけない。さらに、MySQL Ver.4.1 以降では、データベースの文字コードを UTF-8 に設定する。

データベースの作成

$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.0.51a-3ubuntu5.4 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> CREATE DATABASE roundcube DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON roundcube.* TO roundcube@localhost \
 IDENTIFIED BY 'ユーザroundcubeのパスワード';
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye

作成したデータベースにテーブルを作成

$ mysql -u roundcube -p roundcube < ./SQL/mysql.initial.sql

ブラウザを用いた各種設定

0.2-stableでは直接設定ファイルを書き換えるだけでなく、ブラウザ上で各種設定が行えるようになった。

roundcubewebmail01.png

START INSTALLATIONをクリックすると、サーバにインストールされているソフトウェアのチェックをしてくれる。

roundcubewebmail02.png

なんとMySQLをインストールしたはずなのに、認識されていない。これは、php5-mysql をインストールした後に Apache2 を再起動しなかったため。ついでに php5-gd もインストールした後に Apache2 を再起動すると、以下の画面のように無事 MySQL が認識された。

roundcubewebmail03.png
roundcubewebmail04.png
roundcubewebmail05.png
roundcubewebmail06.png
roundcubewebmail07.png
roundcubewebmail08.png
roundcubewebmail09.png
roundcubewebmail10.png
roundcubewebmail11.png
roundcubewebmail12.png
roundcubewebmail13.png
roundcubewebmail14.png
roundcubewebmail15.png

#ref(): File not found: "roundcubewebmail16.png" at page "Ubuntu/Server/Mail"

IMAP

IMAPの仕組みをよく理解していないので、Dovecotと RoundCube? WebMail? の連携がうまくいかない。勉強の参考になりそうなサイトをリストアップしておく。

http → https へリダイレクトする

WebMail?のログイン画面が http を使っていると、ユーザ名とパスワードが平文で流れてしまうので、セキュリティ上問題がある。間違えて http:// 経由でアクセスした場合でも強制的に https:// にリダイレクトするようにしておけば安心である。Apache の場合、mod_write を使うと簡単に実現可能である。

Apache2でSSLを動かすには、Ubuntu/Server/Web/Apache2/SSLを有効にするを参照のこと。

  • /etc/apach2/sites-availabe/defaultの編集
    シンボリックリンクであるhttp://servername/webmail/ と 実体のhttp://servername/roundcubemail-0.2-stable/ へのアクセスを https://servername/webmail/ にリダイレクトする。
    <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{SERVER_PORT} !^443$
            RewriteRule ^/webmail/(.*)$ https://%{HTTP_HOST}/webmail/$1 [R]
            RewriteRule ^/roundcubemail-0.2-stable/(.*)$ https://%{HTTP_HOST}/webmail/$1 [R,L]
    </IfModule>
    
    実際にhttp://servername/webmail/にアクセスするとhttps://servername/webmail/ にリダイレクトされることを確認する。

リンク

Squirrelmail

少し前までフリーのWebmailソフトの定番だった。ただ、多言語対応が遅れていたため、最近のUTF-8が標準のロケールになっているLinuxディストリビューションではあまり使われなくなってきた?

Mailmanによるメーリングリスト管理

従来は直接aliasを書き換えていたが、ML管理作業の負担を軽減するために Mailman を導入してみた。

インストール

aptで入れるだけ。

$ sudo apt-get install mailman
mailman-install01.jpg

サポートする言語で日本語をしていするが、なぜかうまく反映されず、英語だけが作成されるので、インストール後に reconfigure する。

mailman-install02.jpg

newlist mailmanを実行するようメッセージが出るが、mailmanは日本語をEUC-JPで出力するので、端末の文字コードをEUC-JPに変更する必要がある。

mailman-install03.jpg

再構成して日本語用ページファイルを作成する。

$ sudo dpkg-reconfigure mailman

設定

初期設定

ターミナルの文字コードがUFT-8だと文字化けするので、端末の文字コードをEUC-JPに変更するか、環境変数LANGをCに変更する。オプションを付けずに実行するとチェックだけする。

$ export LANG=C
$ sudo check_perms
directory must be at least 02775: /var/lib/mailman/logs
/var/lib/mailman/pythonlib bad group (has: root, expected list)
/var/lib/mailman/cron bad group (has: root, expected list)
directory permissions must be 02775: /var/lib/mailman/messages
/var/lib/mailman/scripts bad group (has: root, expected list)
/var/lib/mailman/locks bad group (has: root, expected list)
/var/lib/mailman/icons bad group (has: root, expected list)
/var/lib/mailman/templates bad group (has: root, expected list)
/var/lib/mailman/bin bad group (has: root, expected list)
/var/lib/mailman/cgi-bin bad group (has: root, expected list)
/var/lib/mailman/Mailman bad group (has: root, expected list)
/var/lib/mailman/logs bad group (has: root, expected list)
/var/lib/mailman/mail bad group (has: root, expected list)
directory permissions must be 02775: /var/lib/mailman/messages/cs
directory permissions must be 02775: /var/lib/mailman/messages/hu
directory permissions must be 02775: /var/lib/mailman/messages/ja
directory permissions must be 02775: /var/lib/mailman/messages/lt
directory permissions must be 02775: /var/lib/mailman/messages/pt
directory permissions must be 02775: /var/lib/mailman/messages/hr
directory permissions must be 02775: /var/lib/mailman/messages/pl
directory permissions must be 02775: /var/lib/mailman/messages/pt_BR
directory permissions must be 02775: /var/lib/mailman/messages/fr
directory permissions must be 02775: /var/lib/mailman/messages/uk
directory permissions must be 02775: /var/lib/mailman/messages/vi
directory permissions must be 02775: /var/lib/mailman/messages/fi
directory permissions must be 02775: /var/lib/mailman/messages/ru
directory permissions must be 02775: /var/lib/mailman/messages/sr
directory permissions must be 02775: /var/lib/mailman/messages/et
directory permissions must be 02775: /var/lib/mailman/messages/es
directory permissions must be 02775: /var/lib/mailman/messages/sl
directory permissions must be 02775: /var/lib/mailman/messages/zh_CN
directory permissions must be 02775: /var/lib/mailman/messages/de
directory permissions must be 02775: /var/lib/mailman/messages/zh_TW
directory permissions must be 02775: /var/lib/mailman/messages/no
directory permissions must be 02775: /var/lib/mailman/messages/da
directory permissions must be 02775: /var/lib/mailman/messages/eu
directory permissions must be 02775: /var/lib/mailman/messages/ia
directory permissions must be 02775: /var/lib/mailman/messages/ca
directory permissions must be 02775: /var/lib/mailman/messages/nl
directory permissions must be 02775: /var/lib/mailman/messages/ko
directory permissions must be 02775: /var/lib/mailman/messages/sv
directory permissions must be 02775: /var/lib/mailman/messages/tr
directory permissions must be 02775: /var/lib/mailman/messages/ro
directory permissions must be 02775: /var/lib/mailman/messages/ar
directory permissions must be 02775: /var/lib/mailman/messages/it
directory permissions must be 02775: /var/lib/mailman/messages/cs/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/hu/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/ja/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/lt/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/pt/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/hr/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/pl/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/pt_BR/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/fr/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/uk/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/vi/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/fi/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/ru/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/sr/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/et/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/es/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/sl/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/zh_CN/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/de/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/zh_TW/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/no/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/da/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/eu/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/ia/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/ca/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/nl/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/ko/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/sv/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/tr/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/ro/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/ar/LC_MESSAGES
directory permissions must be 02775: /var/lib/mailman/messages/it/LC_MESSAGES
Problems found: 77
Re-run as list (or root) with -f flag to fix

設定を変更するには、-f オプションをつけて実行する。

$ sudo check_perms -f
directory must be at least 02775: /var/lib/mailman/logs (fixing)
/var/lib/mailman/pythonlib bad group (has: root, expected list) (fixing)
/var/lib/mailman/cron bad group (has: root, expected list) (fixing)
directory permissions must be 02775: /var/lib/mailman/messages (fixing)
/var/lib/mailman/scripts bad group (has: root, expected list) (fixing)
/var/lib/mailman/locks bad group (has: root, expected list) (fixing)
/var/lib/mailman/icons bad group (has: root, expected list) (fixing)
/var/lib/mailman/templates bad group (has: root, expected list) (fixing)
/var/lib/mailman/bin bad group (has: root, expected list) (fixing)
/var/lib/mailman/cgi-bin bad group (has: root, expected list) (fixing)
/var/lib/mailman/Mailman bad group (has: root, expected list) (fixing)
/var/lib/mailman/logs bad group (has: root, expected list) (fixing)
/var/lib/mailman/mail bad group (has: root, expected list) (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/cs (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/hu (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ja (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/lt (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/pt (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/hr (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/pl (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/pt_BR (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/fr (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/uk (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/vi (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/fi (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ru (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/sr (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/et (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/es (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/sl (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/zh_CN (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/de (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/zh_TW (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/no (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/da (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/eu (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ia (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ca (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/nl (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ko (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/sv (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/tr (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ro (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ar (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/it (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/cs/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/hu/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ja/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/lt/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/pt/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/hr/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/pl/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/pt_BR/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/fr/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/uk/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/vi/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/fi/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ru/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/sr/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/et/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/es/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/sl/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/zh_CN/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/de/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/zh_TW/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/no/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/da/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/eu/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ia/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ca/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/nl/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ko/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/sv/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/tr/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ro/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/ar/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/it/LC_MESSAGES (fixing)
Problems found: 77
Re-run as list (or root) with -f flag to fix

Mailmanの管理パスワードの設定

ターミナルの文字コードがUFT-8だと文字化けするので、環境変数LANGをCに変更してから、コマンドを実行する。

$ export LANG=C
$ sudo mmsitepass
New site password:		←Mailman管理用のパスワードを入力する
Again to confirm password:	←同じパスワードをもう一度入力する
Password changed.

/etc/mailman/mm_cfg.pyの編集

$ diff -Nur /tmp/mm_cfg.py.orig /etc/mailman/mm_cfg.py
--- /tmp/mm_cfg.py.orig 2009-01-11 16:33:21.000000000 +0900
+++ /etc/mailman/mm_cfg.py      2009-01-11 14:31:11.000000000 +0900
@@ -57,8 +57,8 @@
 #-------------------------------------------------------------
 # If you change these, you have to configure your http server
 # accordingly (Alias and ScriptAlias directives in most httpds)
-DEFAULT_URL_PATTERN = 'http://%s/cgi-bin/mailman/'
-PRIVATE_ARCHIVE_URL = '/cgi-bin/mailman/private'
+DEFAULT_URL_PATTERN = 'https://%s/mailman/'
+PRIVATE_ARCHIVE_URL = '/pipermail'
 IMAGE_LOGOS         = '/images/mailman/'

 #-------------------------------------------------------------
@@ -92,7 +92,7 @@
 #-------------------------------------------------------------
 # Uncomment if you use Postfix virtual domains, but be sure to
 # see /usr/share/doc/mailman/README.Debian first.
-# MTA='Postfix'
+MTA='Postfix'

 #-------------------------------------------------------------
 # Uncomment if you want to filter mail with SpamAssassin. For
@@ -102,3 +102,12 @@

 # Note - if you're looking for something that is imported from mm_cfg, but you
 # didn't find it above, it's probably in /usr/lib/mailman/Mailman/Defaults.py.
+
+##################################################
+# Put YOUR site-specific settings below this line.
+DEFAULT_LIST_ADVERTISED = No
+OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes
+DEFAULT_SUBJECT_PREFIX = "[%(real_name)s:%%d] "
+DEFAULT_REPLY_GOES_TO_LIST = 1
+DEFAULT_NEW_MEMBER_OPTIONS = 258
+DEFAULT_GENERIC_NONMEMBER_ACTION = 2

aliasesの設定

他のディストリビューションでは /etc/mailman ディレクトリ以下に aliasesファイルが作成されるが、Ubuntu では /var/lib/mailma//data ディレクトリ以下に作成されるので注意。

$ sudo chmod 0664 /var/lib/mailman/data/aliases.db
$ sudo /usr/lib/mailman/bin/genaliases
$ sudo chown list:list /var/lib/mailman/data/aliases*
$ ls -al /var/lib/mailman/data
total 48
drwxrwsr-x 2 root list  4096 Jan 11 14:45 .
drwxrwsr-x 9 root list  4096 Jan 10 09:00 ..
-rw-r----- 1 root list    41 Jan 11 14:13 adm.pw
-rw-rw---- 1 list list   355 Jan 11 15:18 aliases
-rw-rw-r-- 1 list list 12288 Jan 11 15:18 aliases.db
-rw-rw-r-- 1 root list    10 Jan 10 09:01 last_mailman_version
-rw-r--r-- 1 root list 14114 Mar  7  2008 sitelist.cfg

/etc/postfix/main.cfの変更

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
	↓
alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases

Postfixを再起動する。

# /etc/rc.d/init.d/postfix restart ← Postfix再起動

Apache2の設定

Mailmanで提供されている設定ファイルを一部変更して Apache2 を再起動する。

$ sudo cp /etc/mailman/apache.conf /etc/apache2/conf.d/mailman
$ sudo vi /etc/apache2/conf.d/mailman
$ sudo /etc/init.d/apache2 force-reload
  • /etc/apache2/conf.d/mailman
    $ diff -Nur /etc/mailman/apache.conf /etc/apache2/conf.d/mailman
    --- /etc/mailman/apache.conf    2008-03-07 14:21:59.000000000 +0900
    +++ /etc/apache2/conf.d/mailman 2009-01-11 16:00:45.000000000 +0900
    @@ -10,13 +10,14 @@
     # Use this if you don't want the "cgi-bin" component in your URL:
     # In case you want to access mailman through a shorter URL you should enable
     # this:
    -#ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
    +ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
     # In this case you need to set the DEFAULT_URL_PATTERN in
     # /etc/mailman/mm_cfg.py to http://%s/mailman/ for the cookie
     # authentication code to work.  Note that you need to change the base
     # URL for all the already-created lists as well.
    
     <Directory /usr/lib/cgi-bin/mailman/>
    +    SSLRequireSSL
         AllowOverride None
         Options ExecCGI
         AddHandler cgi-script .cgi
    
    管理用ページは SSL 経由でアクセスさせたいので、/mailman/ 以下も強制的に https: にリダイレクトするように設定する。
  • /etc/apache2/sites-available/default
    $ diff -Nur /tmp/default /etc/apache2/sites-available/default
    --- /tmp/default        2009-01-11 16:12:23.000000000 +0900
    +++ /etc/apache2/sites-available/default        2009-01-11 15:56:21.000000000 +0900
    @@ -11,6 +11,7 @@
     #              RewriteLogLevel 9
                    RewriteCond %{SERVER_PORT} !^443$
                    RewriteRule ^/webmail/(.*)$ https://%{HTTP_HOST}/webmail/$1 [R]
    +               RewriteRule ^/mailman/(.*)$ https://%{HTTP_HOST}/mailman/$1 [R]
                    RewriteRule ^/roundcubemail-0.2-stable/(.*)$ https://%{HTTP_HOST}/webmail/$1 [R,L]
            </IfModule>
    
    

リンク


添付ファイル: filemailman-install03.jpg 183件 [詳細] filemailman-install02.jpg 160件 [詳細] filemailman-install01.jpg 169件 [詳細] fileroundcubewebmail15.png 162件 [詳細] fileroundcubewebmail14.png 174件 [詳細] fileroundcubewebmail13.png 174件 [詳細] fileroundcubewebmail12.png 168件 [詳細] fileroundcubewebmail11.png 169件 [詳細] fileroundcubewebmail06.png 167件 [詳細] fileroundcubewebmail04.png 182件 [詳細] fileroundcubewebmail10.png 170件 [詳細] fileroundcubewebmail09.png 174件 [詳細] fileroundcubewebmail08.png 173件 [詳細] fileroundcubewebmail07.png 167件 [詳細] fileroundcubewebmail05.png 166件 [詳細] fileroundcubewebmail03.png 187件 [詳細] fileroundcubewebmail02.png 184件 [詳細] fileroundcubewebmail01.png 181件 [詳細] filemain.cf.orig 424件 [詳細] filepostfix-install04.png 213件 [詳細] filepostfix-install03.png 215件 [詳細] filepostfix-install02.png 212件 [詳細] filepostfix-install01.png 235件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-02-03 (火) 12:56:01 (576d)