PostfixAdminでバーチャルメールの構築

postfix/dovecotのメールサーバーで、従来の方式「FTPユーザーがメール受信ユーザー」という環境からバーチャルメール環境に切り替える方法について書きます。
バーチャルメールの運用ツールは PostfixAdmin 1択です。
他によいツールを知りません。
そして、PostfixAdminを使用するにはデータベース MySql が必要です。

前提条件としてpostfix/dovecotでメールを送受信できる環境まで設定済みとします。
postfix/dovecotのインストールと設定については postfix 2.3.x の設定dovecot ver.1系と2系の違い を参照してください。

■ PostfixAdmin インストール

(0) 事前準備

mysql に postfixデータベース、専用のpostfixユーザーを作成しておく必要があります。
(データベースは空でよいです)

データベース名: postfix
ユーザー名    : postfix
パスワード    : xxxxxxxxxxxx

メールボックスにアクセスするバーチャルユーザーを作成します。
後でいくつかの設定ファイルにユーザーID、グループIDを記述するため、ここで決めておきます。
使っていない番号なら何でもよいのですが、ここでは ユーザーID = 600、 グループID = 600 とします。

# mkdir /home/vmailbox
# groupadd -g 600 vuser
# useradd -g vuser -u 600 -d /home/vmailbox -s /sbin/nologin vuser
# chown vuser:vuser /home/vmailbox
# chmod 771 /home/vmailbox

続きを読む

MySQL5.5 インストールと初期設定

CentOS/RHELに MySQL5.5 を yum でインストールする方法と、いつもやる最低限の初期設定を書きます。

■ MySQL5.5インストール (yum配布版rpm)

yum で rpmパッケージをインストールするには標準のリポジトリでなく remi を使います。
(2012/9月現在では標準のリポジトリでは配布されていません)

remi リポジトリをまだ入れていない場合は入れておきます。

# cd /etc/yum.repos.d
# wget http://rpms.famillecollet.com/enterprise/remi.repo

(1) インストール

# yum --enablerepo=remi -y install mysql-server

(2) ファイル構成

/usr/bin/mysql*         ... プログラム諸々
/etc/my.cnf             ... 設定ファイル
/usr/share/mysql        ... 設定ファイルの雛形など
/var/lib/mysql          ... データベースが配置される
/var/lib/mysql/mysql.sock ... ソケットファイル
/var/log/mysqld.log     ... ログ
/var/lock/subsys/mysqld    ... 実行中のロックファイル
/var/run/mysqld/mysqld.pid ... 実行中のPIDファイル
/etc/init.d/mysqld      ... サービス起動シェル

続きを読む

サービス化してない apache のログローテート

logrotate というツールがあります。

これはサーバーのログを定期にファイル名を変更して世代管理してくれるものです。

特に apache のログは定期的な整理、削除をしないと肥大化していってディスクを食いつぶしますのでこの手のツールは必須と言えます。

ところで、apache が yum でインストールされていれば話は簡単ですが、特定バージョンのソースを持ってきてビルドしてインストールしてある場合はちょっと困ったことになります。

普通、logrotate をインストールすると、自動的に apache のログ整理用の設定ファイルが出来ますが、apache がビルドインストールだと、それがうまくいきません。
標準の apache のインストール先にモジュールが無いのがいけないでしょうか。

そんなときの対処方法を書いておきます。

(1) logrotate ファイル構造

/etc/logrotate.conf
/etc/logrotate.d/
	acpid
	httpd
	mgetty
	munin
	・
	・
	・
	サービスやモジュール毎の設定ファイル諸々

続きを読む

postfix 2.3.x の設定

CentOS/RHELのデフォルトのMTA(Mail Transfer Agent) (またはSMTPサーバーとも呼びます)である postfix のインストールと設定について書きます。

■ postfix 2.3.x (yum配布版rpm)

CentOS6ならデフォルトで postfix 2.3 以上のバージョンです。
CentOS5ならyumだと違ったかもしれません。

postfix は、2.3 以上のバージョンを使いましょう。
理由は【mysql対応】しているからです。
mysql対応していれば後で postfixadmin (バーチャルメールボックスに対応させるツール) が使えるからです。
(postfixadminについては今回は割愛します)

(1) インストール

# yum install postfix

(2) ファイル構成

ファイルは複数ありますが、メインの設定は main.cf です。
サブミッションポートを使用可能にする場合、master.cf を修正します。

/etc/postfix/
	access
	canonical
	generic
	header_checks
	main.cf     ... メインの設定ファイル
	master.cf   ... コマンドの拡張などの設定
	relocated
	transport
	virtual     ... バーチャル配送定義

続きを読む

dovecot ver.1系と2系の違い

CentOS/RHELのデフォルトのPOP3/IMAP4メールサーバー dovecot がメジャーバージョンアップしました。
ある日 yum update でOSのモジュールアップデートをすると、dovecot がバージョン 1.xから 2.0 になりました。

このメジャーバージョンアップ、とんでもないことに、設定ファイルの数、構成が変わったのです。
今まで1つだった設定ファイルの数が増え、サブフォルダに用途別に配置されるようになりました。
どのファイルに何の設定を書くか仕様ががらっと変わってしまいました。
焦ります。こういうバージョンアップはできれば止めて欲しいものです。

ここに、バージョン1系と2系の設定ファイルの違いについてまとめます。

■ dovecot 1.x

(1) インストール

# yum install dovecot

(2) ファイル構成

設定ファイルは1つだけです。

/etc/dovecot.conf

続きを読む

BIND9.7設定方法の変更点

CentOS5(RHEL5)系の BIND 9.3 と CentOS6(RHEL6)系の BIND 9.7 以上ではインストールファイル構成、動作する時のディレクトリ構成から chroot の動作の仕様が全然違います。

今まで BIND 9.3 に慣れていて、同じつもりで初期設定しようとしたら戸惑います。
CentOS6系の初期状態から運用していて yum update であるとき変わってしまって動かなくなったらしばし呆然とするでしょう。
ここに違いをメモしておきます。

■ BIND 9.3.x

(1) インストール

# yum install bind bind-chroot
# yum install caching-nameserver

(2) ファイル構成の確認

こうなっています。

/etc/named.conf  <<< /var/named/chroot/etc/ からシンボリックリンク
/etc/named.caching-nameserver.conf  <<< /var/named/chroot/etc/ からシンボリックリンク
/etc/named.rfc1912.zones  <<< /var/named/chroot/etc/ からシンボリックリンク
/var/named/named.ca  <<< /var/named/chroot/var/named/ からシンボリックリンク
/var/named/xxxxxxxxx.zone  <<< /var/named/chroot/var/named/ からシンボリックリンク
/var/named/chroot/etc/named.conf (新規作成、/etc/named.conf へシンボリックリンク)
/var/named/chroot/etc/named.caching-nameserver.conf  >>> /etc/ へシンボリックリンク
/var/named/chroot/etc/named.rfc1912.zones  >>> /etc/ へシンボリックリンク
/var/named/chroot/var/named/named.ca  >>> /var/named/ へシンボリックリンク
/var/named/chroot/var/named/xxxxxxxxx.zone  >>> /var/named/ へシンボリックリンク

※BIND 9.7 はシンボリックリンクではなく、モジュール起動時にマウントする仕様に変わっています。
続きを読む

自宅サーバーOP25B対策

自宅サーバーでメールサーバーを立てる場合のOP25B対策設定(Postfix編)です。

■ OP25B対策とは?

インターネット接続プロバイダによってはOP25Bというのが施されています。

OP25B(Outbound Port 25 Blocking)とは、インターネット接続プロバイダが、自社のメールサーバー以外のポート25を使おうとするユーザーを自社の回線レベルで遮断するものです。
これによって、迷惑メール送信業者が自分を追跡されないようにプロバイダ以外のサーバーを使うという行為を規制するわけです。

ところで、これは自宅サーバーでメールサーバーを立てる場合に大きな障害となります。
ルーターでポート25を開けても、それで外側(インターネット)から内側(自宅サーバー)には繋がりますが、内側(自宅サーバー)から外側(インターネット)へは出られません。
自宅サーバーのポート25からメールが出せないのですからメールサーバーとして機能しないことになり困ります。

そこで、自宅サーバーでメールサーバーを立てる場合にOP25B対策という少々特殊な設定を行う必要が出てきます。

OP25B対策はプロバイダによって若干の設定調整が必要かもしれません。
大手プロバイダの有名どころOCNなどがその代表なのですが、OCNだと

(1)OCN以外サーバーの25ポートを使ってメール送信できない
  Connection timeout になる

(2)OCNのメールサーバーを使うときFromの判定が厳しい
  ※接続元のサーバー名が存在しない場合など
  554 5.7.1:Sender address rejected のエラーになる

この(2)は、自宅サーバーのhostnameの設定がいい加減だと駄目だということにもなりますので注意が必要です。
Postfixが@マークの後ろにデフォルトのホスト名を付ける場合に、DNSで引けないホスト名を付けるとプロバイダーのSMTPサーバーからリレー拒否されます。

■ Postfix OP25B対策設定

さて、PostfixのOP25B対策設定の方法です。
続きを読む

ごあいさつ

ブログはじめました。

管理人は、ベリーキュート技術責任者の後藤裕昭と申します。

ベリーキュートのブログは、日記のようなスタイルよりも技術情報寄りにしたいと思っています。
今までサーバー屋さんやインフラエンジニアが明かさなかった簡単な設定ファイルの書き方なども書いてしまおうか、なんて思っておりますし、サーバーとは直接関係ないですがプログラミング関係のネタなども結構ありますので。

まあ、まだわかりません。
なにせ、ブログというものを初めて書いてみるのですから。
三日坊主にならなければよいのですが。