-
Postfix設定(再送)
Postfixの設定内容を追加します。
再送リトライはデフォルトだと5日となっていますが、
再送出来ない場合、1回で諦めるように設定変更します。1
vi
/etc/postfix/main.cf
下記内容を追加 # 再送リトライは1回 maximal_queue_lifetime = 0 bounce_queue_lifetime = 0
設定内容を反映します。
1
/etc/rc.d/init.d/postfix restart
【メールサーバ】root宛メール
-
root宛メール削除
「/var/mail/root」と「/var/spool/mail/root」のファイルサイズが増えていたので、
mailコマンドで確認してみたところ1
sudo
-u root mail
No mail for root
メールがないと記載されたが、ファイルサイズがあって気持ち悪いので、
内容を待避し、削除することにしました。1
cat
/var/mail/root > /home/ユーザ名/mail.txt
2
cat
/dev/null > /var/mail/root
これで「/var/mail/root」と「/var/spool/mail/root」のファイルサイズが0になりました。
-
root宛メール転送
root宛のメールをPostfixを利用して
プロバイダのメールアドレスに転送します。Postfixのエイリアスの設定場所を確認し、設定値を追加します。
1
view /etc/postfix/main.cf
下記内容が設定されていることを確認する。 alias_maps = hash:/etc/aliases
1
vi
/etc/aliases
下記内容を最終行に追加 root: プロバイダのメールアドレス
設定内容を反映します。
1
postalias /etc/aliases
2
/etc/rc.d/init.d/postfix restart
-
root宛メール転送確認
1
echo
test
| mail root
「/var/mail/root」と「/var/spool/mail/root」のファイルサイズが0KBのままで
プロバイダのメールアドレスにテストメールが届きます。
【メールサーバ】PostfixとDovecotの設定値まとめ
-
Postfix設定値一覧
1
postconf
Postfixに関わる全ての設定値が出力されます。
-
Postfixデフォルト値一覧
1
postconf -d
Postfixに関わる全てのデフォルト値が出力されます。
-
Postfixデフォルトと異なる値一覧
1
postconf -n
Postfixに関わる全てのデフォルト値と異なる値が出力されます。
設定した覚えないのないキーと値も出ますが、そういうものだと思い込みました。
-
Dovecotデフォルトと異なる値一覧
1
dovecot -n
Dovecotに関わる全てのデフォルト値と異なる値が出力されます。
【メールサーバ】PostfixとDovecotのSSL導入
-
サーバー証明書作成
1
cd
/etc/pki/tls/certs/
2
make
mail.pem
下記内容を入力 ~略~ Country Name (2 letter code) [XX]:JP State or Province Name (full name) []:Tokyo Locality Name (eg, city) [Default City]:Akihabara Organization Name (eg, company) [Default Company Ltd]:OreOreCA Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:mail.z-area.net Email Address []:ユーザ名@mail.z-area.net
-
Postfix設定(SSL)
1
vi
/etc/postfix/main.cf
下記内容を最終行に追加 smtpd_use_tls = yes 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:/var/lib/postfix/smtpd_scache
1
cp
-pi /etc/postfix/master.cf /etc/postfix/master.cf.org
2
vi
/etc/postfix/master.cf
下記内容を変更(コメントアウトを外す) #smtps inet n - n - - smtpd # -o smtpd_tls_wrappermode=yes # -o smtpd_sasl_auth_enable=yes # -o smtpd_client_restrictions=permit_sasl_authenticated,reject ↓ smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject
下記内容がコメントアウトされていないことを確認 tlsmgr unix - - n 1000? 1 tlsmgr
1
/etc/rc.d/init.d/postfix restart
-
Dovecot設定(SSL)
1
cp
-pi /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.org
2
vi
/etc/dovecot/conf.d/10-ssl.conf
下記内容を変更(<が必要な点に注意) #ssl = yes ↓ ssl = yes ssl_cert = </etc/pki/dovecot/certs/dovecot.pem ssl_key = </etc/pki/dovecot/private/dovecot.pem ↓ ssl_cert = </etc/pki/tls/certs/mail.pem ssl_key = </etc/pki/tls/certs/mail.pem
1
/etc/rc.d/init.d/dovecot restart
-
ポート開放と閉鎖
SMTP(SSL)では465番ポートを利用し、
POP(SSL)では995番ポート、IMAP(SSL)では993番ポートを利用するため、
利用状況に合わせてポートを開放します。POPで利用していた110番ポートは閉じました。
SMTPで利用していた25番ポートは閉じた場合、
メール受信の制限確認等で利用しているようで、
閉じると外部からメールが届かなくなったため、開放したままにしています。
内部から内部へは閉じてても届くので、その辺は調査しないと不明です。1
iptables -I INPUT 8 -p tcp -m tcp --dport 465 -j ACCEPT
2
iptables -I INPUT 9 -p tcp -m tcp --dport 995 -j ACCEPT
3
iptables -D INPUT -p tcp -m tcp --dport 110 -j ACCEPT
4
service iptables save
1
iptables -L --line-numbers
Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED 2 ACCEPT icmp -- anywhere anywhere 3 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh 4 ACCEPT tcp -- anywhere anywhere tcp dpt:http 5 ACCEPT tcp -- anywhere anywhere tcp dpt:https 6 ACCEPT tcp -- anywhere anywhere tcp dpt:urd 7 ACCEPT tcp -- anywhere anywhere tcp dpt:pop3s 8 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
-
メーラーの設定
-
詳細設定タブ
-
詳細設定タブ
【メールサーバ】PostfixとDovecot起動
-
Postfix起動
1
/etc/rc.d/init.d/postfix restart
2
chkconfig postfix on
-
Dovecot起動
1
/etc/rc.d/init.d/dovecot start
2
chkconfig dovecot on
-
PostfixとDovecotの動作確認
動作確認にはWindowsLiveメールを利用しました。
初回起動するとアカウントの追加が立ち上がりますが、ここでは一旦適当に入力します。
次に追加されたアカウントを右クリックからプロパティを選択。
下記の通りに入力します。
特に記載のない項目はデフォルト設定としています。-
全般タブ
-
サーバータブ
注意点として受信メールサーバーのパスワードは
ユーザー名に合致するLinuxのパスワードを入力します。
(SMTP-Authは送信用のため)
-
サーバータブの送信メールサーバーの設定ボタン
注意点として送信メールサーバーのパスワードは
SMTP-Authの設定で設定したパスワードを入力します。
設定が完了したら下記内容を確認します。
ローカルLANで同一ユーザ同士でメールの送受信 ローカルLANで他ユーザ間でメールの送受信 ローカルLANで外部(プロバイダやgmail)との送受信 ローカルLANで携帯との送受信 外部LAN(会社や公衆LAN)で同一ユーザ同士でメールの送受信 外部LAN(会社や公衆LAN)で他ユーザ間でメールの送受信 外部LAN(会社や公衆LAN)で外部(プロバイダやgmail)との送受信 外部LAN(会社や公衆LAN)で携帯との送受信
外部LANでの確認は後述するOpenSSLの適用を行ってから実施します。
-
全般タブ
-
踏み台確認
自宅メールサーバーが第三者中継に利用されない設定になっているかを確認します。
下記サイト説明を読んだ上で利用します。
http://www.rbl.jp/svcheck.php19個前後のテストが実施され、下記内容が出力されれば問題ありません。
第三者中継テストの結果 全てのテストが行われました, no relays accepted.
【メールサーバ】メール利用のポート開放
-
ポート開放
ルーターの設定で25番ポート(SMTP用)と
110番ポート(POP用)または143番ポート(IMAP用)を開放し、
iptablesでも上記ポートを開放します。1
iptables -L --line-numbers
Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED 2 ACCEPT icmp -- anywhere anywhere 3 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh 4 ACCEPT tcp -- anywhere anywhere tcp dpt:http 5 ACCEPT tcp -- anywhere anywhere tcp dpt:https 6 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
5番目と6番目の間にメール用のポートを設定します。
1
iptables -I INPUT 6 -p tcp -m tcp --dport 25 -j ACCEPT
2
iptables -I INPUT 7 -p tcp -m tcp --dport 110 -j ACCEPT
3
service iptables save
1
iptables -L --line-numbers
Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED 2 ACCEPT icmp -- anywhere anywhere 3 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh 4 ACCEPT tcp -- anywhere anywhere tcp dpt:http 5 ACCEPT tcp -- anywhere anywhere tcp dpt:https 6 ACCEPT tcp -- anywhere anywhere tcp dpt:smtp 7 ACCEPT tcp -- anywhere anywhere tcp dpt:pop3 8 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
下記サイトでポートの開放を確認します。
http://www.cman.jp/network/support/port.html
【メールサーバ】メール用のFQDN追加
-
FQDN設定
メール用のFQDNとして「mail.z-area.net」を追加するため、
MyDNSに設定を行います。
MyDNSにログイン後、左メニューの「DOMAIN INFO」をクリックし、
下記に従い入力します。Domain* : (FQDN) z-area.net MX : (Hostname, Priority. FQDN) 空欄 Hostname*, Type*, Content, Delegateid or your id. (Hostname is not FQDN) mail, A, 空欄, mydnsXXXXXX www, A, 空欄, mydnsXXXXXX
CHECKボタンを押下します。
-
MXの設定について追記
MyDNSのMXの設定について他の構築サイトを確認すると
「mail」を設定している人が多かったですが、私の場合は「mail」を設定すると、
メールが「ユーザ名@mail.z-area.net」であれば外部とも送受信可能ですが、
「ユーザ名@z-area.net」では外部から受信出来ませんでした。そこでMXを空欄で設定したところ、
メールが「ユーザ名@z-area.net」でも外部から送受信することができました。
要勉強です。MXを空欄で設定した後に再度、設定画面を開くと下記の通りになっていました。
Domain* : (FQDN) z-area.net MX : (Hostname, Priority. FQDN) z-area.net Hostname*, Type*, Content, Delegateid or your id. (Hostname is not FQDN) mail, A, 空欄, mydnsXXXXXX www, A, 空欄, mydnsXXXXXX
【メールサーバ】メール利用のユーザ追加
メールを利用するユーザを追加します。
-
既存ユーザにメール利用させる場合
「【CentOS】Postfix設定その2(SMTP-Auth)」の下記どちらかの対応を行う。
Linuxのパスワードと同じパスワード利用する場合
Linuxのパスワードと異なるパスワード利用する場合
-
新規ユーザにメール利用させる場合(SSHも利用可)
1
useradd
ユーザ名
2
passwd
ユーザー名
「【CentOS】Postfix設定その2(SMTP-Auth)」の下記どちらかの対応を行う。
Linuxのパスワードと同じパスワード利用する場合
Linuxのパスワードと異なるパスワード利用する場合
-
新規ユーザにメール利用させる場合(SSHも利用不可)
1
useradd
-s /sbin/nologin ユーザ名
2
passwd
ユーザ名
「【CentOS】Postfix設定その2(SMTP-Auth)」の下記どちらかの対応を行う。
Linuxのパスワードと同じパスワード利用する場合
Linuxのパスワードと異なるパスワード利用する場合
-
Maildirディレクトリ作成
Maildirディレクトリを作成します。1
mkdir
/home/ユーザ名/Maildir
2
chmod
700 /home/ユーザ名/Maildir
3
chown
ユーザ名:ユーザ名 /home/ユーザ名/Maildir
新規ユーザ追加時に自動的にMaildirディレクトリを作成できる手順もあるようですが、
自身で作成したいので設定は行いませんでした。
【メールサーバ】Dovecot設定
-
Dovecot設定
1
vi
/etc/dovecot/dovecot.conf
下記内容を変更 #protocols = imap pop3 lmtp ↓ protocols = imap pop3
1
cp
-pi /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.org
2
vi
/etc/dovecot/conf.d/10-mail.conf
下記内容を追加 # メールボックス形式 # Postfixの設定でメールボックスの形式をMaildir形式にしているため、 # Dovecotの設定でもMaildir形式に変更します。 mail_location = maildir:~/Maildir # chroot設定 # 通常ユーザであれば「/home/ユーザ名」以下のディレクトリはアクセスできますが、 # 上位ディレクトリである「/home」ディレクトリはroot所有者であるため、 # アクセスが禁止されています。 # しかし、メールボックスは「/home/ユーザ名/Maildir」に配置しているため、 # この設定で一時的にアクセスを許可します。 valid_chroot_dirs = /home
1
cp
-pi /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.org
2
vi
/etc/dovecot/conf.d/10-auth.conf
下記内容を変更 # テキスト認証を許可 # この設定を利用する場合、後述するOpenSSLでのメールサーバー間の通信内容暗号化を行う。 disable_plaintext_auth = yes ↓ disable_plaintext_auth = no auth_mechanisms = plain ↓ auth_mechanisms = plain login
【メールサーバ】Dovecot導入
受信ではPOPまたはIMAPを利用するので、Dovecotを導入します。
-
Dovecotの導入確認
1
yum list installed |
grep
dovecot
dovecot.x86_64 1:2.0.9-8.el6_6.1 @updates
-
Dovecotの導入
インストール済ではない場合は下記コマンドでインストールします。1
yum -y
install
dovecot