2011年8月9日火曜日

Amazon EC2 (Amazon Linux) での Postfix インストールと設定

Postfix(バージョン2.6.6)のインストールと設定をしていきます。

Amazon EC2 (Amazon Linux) での PostfixAdmin インストールと設定

が設定されているうえでの設定になります。

管理者になる

インストールと設定は管理者権限で行いますので権限を取ります。
$sudo su -

Postfixのインストール

Postfixをインストールします。
#yum -y install postfix

MTAの切り替え

デフォルトでは sendmail が稼動していますが Postfix に切り替えるので停止します。
#service sendmail stop
#chkconfig sendmail off

MTA を切り替えます。2 の sendmail.postfix を選択します。
#alternatives --config mta

There are 2 programs which provide 'mta'.
  Selection    Command
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number:2

Postfixの設定

設定の前に事前準備をしておきます。Postfix をバーチャルドメインで稼動させるためのユーザーの作成とメールボックス用のディレクトリの作成です。その後、main.cf を編集します。
#groupadd -g 10000 virtualmail
#useradd -g virtualmail -u 10000 virtualmail
#mkdir /home/virtualmail/
#chown virtualmail:virtualmail /home/virtualmail
#chmod 771 /home/virtualmail
#cd /etc/postfix
#vi main.cf
任意
inet_protocols = ipv4
デフォルトのAllでIPv6関連のエラーが出る場合は、ipv4のみにする。
修正
inet_interfaces = all
外部からのメールを受信できるようにする。
修正
mydestination =
このサーバーで処理するドメインの指定。virtual_mailbox_domainsに記載するので、ここでは未指定。
追加
virtual_transport = virtual
PostfixAdminで設定されたドメインの場合に使用される配送エージェント。
追加
virtual_gid_maps = static:10000
グループID
追加
virtual_uid_maps =  static:10000
ユーザーID
追加
virtual_minimum_uid = 10000
ユーザーIDの最小値。これより小さなIDへの配送は拒否される。
追加
virtual_mailbox_base =  /home/virtualmail/
メールボックスが作成されるディレクトリ。
追加
virtual_mailbox_limit =  51200000
メールボックス容量(50M)。
追加
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domain_maps.cf
処理対象になるドメイン(MySQLへの接続方法とデータ取得方法が記載されている)。
追加
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
アカウント別のメールボックス情報(MySQLへの接続方法とデータ取得方法が記載されている)。
追加
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
メール転送設定(MySQLへの接続方法とデータ取得方法が記載されている)。
追加
smtpd_sasl_auth_enable = yes
SMTP認証をSASLで行う。
追加
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
SMTP(RCPT TO)を受け付ける条件を指定。
追加
smtpd_sasl_authenticated_header = yes
Received ヘッダに認証されたユーザー名を表示する。
追加
broken_sasl_auth_clients = yes
(古いバージョンのOutlook等)規格外のAUTHコマンドに対応させる。
追加
smtpd_sasl_type = dovecot
dovecotのSASLを使用。
追加
smtpd_sasl_path = private/auth
dovecotの認証デーモンソケットの場所を指定。
MySQLへの接続のための設定ファイルを作成します。********にはMySQLのユーザーpostfixのパスワードを設定します。
#vi mysql_virtual_domain_maps.cf
user = postfix
password = ********
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain = '%s' AND backupmx = '0' AND active = '1'

#vi mysql_virtual_mailbox_maps.cf
user = postfix
password = ********
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username = '%s' AND active = '1'

#vi mysql_virtual_alias_maps.cf
user = postfix
password = ********
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address = '%s' AND active = '1' 
master.cf を編集してサブミッションポートを有効にします。デフォルトでは次の行がコメントアウトになっているので外します。
#vi master.cf
修正
submission inet n       -       n       -       -       smtpd
サブミッションポートを有効にする。

続いてAmazon EC2 (Amazon Linux) での dovecot インストールと設定を行ってください。

Related Posts Plugin for WordPress, Blogger...