centOSのVPSサーバでメールサーバ(POSTFIXとDOVECOT)設定した。-その1-
続き。一番面倒なメールサーバの設定だぁ。。。
これも、POSTFIXとDOVECOTがインストール(yum install postfix dovecot)された後から。
長くなるので、先にPOSTFIX(SMTPサーバ)関連から。
1)設定ファイルを編集する。
[root@server]# cp /etc/postfix/main.cf /etc/postfix/main.cf.org →オリジナルの保存のおまじない。
[root@server]# nano /etc/postfix/main.cf
- #soft_bounce = no (確認:コメントアウト=無効)
queue_directory = /var/spool/postfix (確認)
command_directory = /usr/sbin (確認)
daemon_directory = /usr/libexec/postfix (確認)
mail_owner = postfix (確認)
#default_privs = nobody (確認) - myhostname = mail.○○○.com (自メールサーバ名にしてコメントを取る=有効)
- mydomain = ○○○.com (自ホスト名にしてコメントを取る=有効)
- myorigin = $myhostname (コメントを取る=有効)
- inet_interfaces = all (コメントを取る=有効)
#inet_interfaces = localhost (コメントアウト=無効) - #proxy_interfaces = (確認:コメントアウト=無効)
#proxy_interfaces = 1.2.3.4 (確認:コメントアウト=無効) - mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain (不足内容を追記またはコメントを入れ替える)
- #local_recipient_maps = unix:passwd.byname $alias_maps (確認:コメントアウト=無効)
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps (確認:コメントアウト=無効)
#local_recipient_maps = (確認:コメントアウト=無効) - unknown_local_recipient_reject_code = 550 (確認)
- #mynetworks_style = class (確認:コメントアウト=無効)
#mynetworks_style = subnet (確認※コメントアウトされててもこれがデフォルト)
#mynetworks_style = host (確認:コメントアウト=無効) - #mynetworks = 168.100.189.0/28, 127.0.0.0/8 (確認:コメントアウト=無効)
#mynetworks = $config_directory/mynetworks (確認:コメントアウト=無効)
#mynetworks = hash:/etc/postfix/network_table (確認:コメントアウト=無効) - #relay_domains = $mydestination (確認※コメントアウトされててもこれがデフォルト)
- #relayhost = $mydomain (確認:コメントアウト=無効)
#relayhost = [gateway.my.domain] (確認:コメントアウト=無効)
#relayhost = [mailserver.isp.tld] (確認:コメントアウト=無効)
#relayhost = uucphost (確認:コメントアウト=無効)
#relayhost = [an.ip.add.ress] (確認:コメントアウト=無効) - #relay_recipient_maps = hash:/etc/postfix/relay_recipients (確認:コメントアウト=無効)
- #in_flow_delay = 1s (確認:コメントアウト=無効)
- #alias_maps = dbm:/etc/aliases (確認:コメントアウト=無効)
alias_maps = hash:/etc/aliases (確認)
#alias_maps = hash:/etc/aliases, nis:mail.aliases (確認:コメントアウト=無効)
#alias_maps = netinfo:/aliases (確認:コメントアウト=無効) - #alias_database = dbm:/etc/aliases (確認:コメントアウト=無効)
#alias_database = dbm:/etc/mail/aliases (確認:コメントアウト=無効)
alias_database = hash:/etc/aliases (確認) - #recipient_delimiter = + (確認:コメントアウト=無効)
- home_mailbox = Maildir/ (コメントを取る=有効)
- #mail_spool_directory = /var/mail (確認:コメントアウト=無効)
#mail_spool_directory = /var/spool/mail (確認:コメントアウト=無効) - #mailbox_command = /some/where/procmail (確認:コメントアウト=無効)
#mailbox_command = /some/where/procmail -a “$EXTENSION” (確認:コメントアウト=無効) - #mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp (確認:コメントアウト=無効)
- #mailbox_transport = cyrus (確認:コメントアウト=無効)
- #fallback_transport = lmtp:unix:/var/lib/imap/socket/lmtp (確認:コメントアウト=無効)
#fallback_transport = (確認:コメントアウト=無効) - #luser_relay = $user@other.host (確認:コメントアウト=無効)
#luser_relay = $local@other.host (確認:コメントアウト=無効)
#luser_relay = admin+$local (確認:コメントアウト=無効) - #header_checks = regexp:/etc/postfix/header_checks (確認:コメントアウト=無効)
- #fast_flush_domains = $relay_domains (確認:コメントアウト=無効)
- #smtpd_banner = $myhostname ESMTP $mail_name (確認:コメントアウト=無効)
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (確認:コメントアウト=無効) - #local_destination_concurrency_limit = 2 (確認:コメントアウト=無効)
#default_destination_concurrency_limit = 20 (確認:コメントアウト=無効) - debug_peer_level = 2 (確認)
- #debug_peer_list = 127.0.0.1 (確認:コメントアウト=無効)
#debug_peer_list = some.domain (確認:コメントアウト=無効) - debugger_command = (確認)
- sendmail_path = /usr/sbin/sendmail.postfix (確認)
- newaliases_path = /usr/bin/newaliases.postfix (確認)
- mailq_path = /usr/bin/mailq.postfix (確認)
- setgid_group = postdrop (確認)
- html_directory = no (確認)
- manpage_directory = /usr/share/man (確認)
- sample_directory = /usr/share/doc/postfix-2.3.3/samples (確認)
- readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES (確認)
- smtpd_sasl_auth_enable = yes →sasl認証を使う。
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous, noplaintext →IDと暗号化されたPW持ってるユーザしか許可しない。
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated, reject_unauth_destination →メール転送を許可・拒否する範囲。
smtpd_client_restrictions = permit_mynetworks, reject_rhsbl_client
rhsbl.ahbl.org, reject_rbl_client spamcop.net, reject_rbl_client
dynablock.wirehub.net, reject_rbl_client sbl.spamhaus.org,
reject_unknown_client, permit →リストアップしたホストのブラックリストに乗ってるメールは受信しない。自分とブラックリスト外のメールだけ許可。
broken_sasl_auth_clients = yes
※これだけ最後に追記。
※「myorigin = $myhostname」について。これは、今回$mydomainでも基本構わない。メールが受信されたときにその受取ユーザを探しに行くホストを指定している。大規模ネットワークで複数のメールサーバが同ドメイン内にあり、それぞれを検索に行かないといけないような場合は、$mydomainにするが、メールサーバが1つのみの場合は、結果として同じ意味になる。(例:mail1.○○○.com、mail2.○○○.comと複数ある→○○○.com内のメールサーバを全部問い合わせないといけないので、$mydomain。mail.○○○.comのみ→$myhostnameでOK。)
※mynetworkの設定は、何も設定されてない場合(すべたがコメントアウトの場合)、「mynetworks_style = subnet」がデフォルトとなる。ただし、「mynetworks」がいずれかの値でONになっている場合、「mynetworks_style」の値は全て無視される。(=「mynetworks」の値のみが有効)
※「※コメントアウトされててもこれがデフォルト」と注記があるものは、コメントを取ってもコメントアウトしてて、他に設定がない限り、それがデフォルトの設定動作となる。
2)設定ファイル2を編集する。
[root@server]# cp /etc/postfix/master.cf /etc/postfix/master.cf.org →オリジナルの保存のおまじない。
[root@server]# nano /etc/postfix/master.cf
- submission inet n – n – – smtpd (コメントを外す=有効)
-o smtpd_sasl_auth_enable=yes (コメントを外す=有効)
-o smtpd_client_restrictions=permit_sasl_authenticated,reject (コメントを外す=有効)
3)ユーザのメールディレクトリを作成する。
a)新しいユーザができたときには、自動でメールディレクトリを作るように設定する。
[root@server]# mkdir -p /etc/skel/Maildir/{new,cur,tmp} →ユーザのホームディレクトリの下にメールボックスに関係するディレクトリを作成する。
[root@server]# chmod -R 700 /etc/skel/Maildir/ →メールディレクトリの権限は全てオーナーユーザのみが読み書きできる。
b)既存ユーザのホームディレクトリにもメールボックスを作成する。
・一旦既存ユーザを確認する。(既存ユーザの数と名称が分かっているなら不要)
[root@server]# cd /home/ →/home/ディレクトリへ移る。
[root@server]# ls -la →ディレクトリ内を参照して(ユーザの名前のディレクトリを)見る
ここで、先に作成していたユーザ「namae」くんが発見出来ればOK。
「namae」くんにもメールが送受信できるように、メールボックスを与えてあげましょう。
[root@server]# mkdir -p /home/namae(自分の環境のユーザ名に置き換え)/Maildir/{new,cur,tmp}
[root@server]# chmod -R 700 /home/namae(自分の環境のユーザ名に置き換え)/Maildir/
これだけでは、/Maildir/以下のディレクトリは、作成したrootユーザの所有になっているので、「namae」くんに所有者:グループ変更します。
[root@server]# chown -R namae(自分の環境のユーザ名に置き換え):namae(自分の環境のグループ名に置き換え)/home/nobita/Maildir/
最後に、「namae」くんのメールディレクトリ以下がちゃんと「namae」くん(グループも「namae」くん)の所有になっているか一覧で確認します。
[root@server]# ls -la /home/namae(自分の環境のユーザ名に置き換え)
[root@server]# ls -la /home/namae(自分の環境のユーザ名に置き換え)/Maildir
設定できたら、POSTFIXとSASLAUTHDを起動して、再起動のおまじないをしておきます。
[root@server]# /etc/rc.d/init.d/postfix start
[root@server]# /etc/rc.d/init.d/saslauthd start
※起動。
[root@server]# chkconfig postfix on
[root@server]# chkconfig –list postfix
※POSTFIXの起動レベル設定と確認。
[root@server]# chkconfig saslauthd on
[root@server]# chkconfig –list saslauthd
※SASLAUTHDの起動レベル設定と確認。
※さくらのVPSの場合、sendmailが先にインストールされていて有効になっているので、これをPOSTFIXに切り替えて、SENDMAILをOFFにします。
[root@server]# alternatives –config mta →MTA(SMTPメールサーバ)として登録されているサービス一覧を表示。
「POSTFIX」の番号を入力するか選択し、エンター
念のため上記コマンドで、再度一覧を表示して確認もしとく。
[root@server]# chkconfig sendmail off
[root@server]# chkconfig –list sendmail
SENDMAILがOFFになっていれば、次の再起動で、POSTFIXと入れ替えになります。
※サーバの再起動は、DOVECOTを入れ終わってからにします。
参考にさせていただきました。
(POSTFIXのオプションパラメータについて)
http://www.postfix-jp.info/trans-2.1/jhtml/postconf.5.html
http://www.postfix-jp.info/trans-2.3/jhtml/BASIC_CONFIGURATION_README.html
(設定について)
http://www.obenri.com/_postfix/relay_settings.html
http://kajuhome.com/postfix.shtml
http://www.obenri.com/_postfix/relay_settings.html
*********************************
3 Comments