自宅サーバ構築MY HOME SERVER
メールサーバ(Postfix / Dovecot) Postfixのインストール・設定 Dovecotのインストール・設定 メール不正中継テスト メールクライアントの設定(1) SSL(暗号化) メールクライアントの設定(2) |
- メールサーバ(Postfix / Dovecot) -
メール送受信をするSmtpサーバにはPostfixを使います。受信したメールをユーザのメールボックス
に運ぶPop/ImapサーバはDovecotを使用します。外部ドメインからもメールクライアントで自宅サーバ
にアクセスできるように設定します。メールアカウントの追加もします。メールサーバ使用に当たって
iptables及びルータのポート(25,110,143,587,993,995)を開放する必要があります。
- 注意点 -
設定に入る前に、現在使用しているISP(インターネットサービスプロバイダ)のSmtpサーバ
のアドレスを調べてください。そのアドレスを設定内容のrelayhost = [ISP名]に記入する必要があります。
Google等で、自宅サーバ relayhost ISP名 等で検索すると情報が出てくると思います。サンプル記述例
は下記のとおりです。
例1 朝日ネット relayhost = [op25b.asahi-net.or.jp]
例2 YahoBB relayhost = [ybbsmtp.mail. yahoo.co.jp]:587
例3 so-net relayhost = [mail.xa2.so-net.ne.jp]
- Postfixのインストール・設定 -
まずは、Posftixをインストールします。
root@hoge123:~# aptitude -y install postfix postfix-tls sasl2-bin インストール途中で下記画面が出ます。→キーを押して、「OK」を選択し、Enterキーを押します。 「No Configuration」を選択して、→キーを押して、「OK」を選択後、Enterキーを押します。 root@hoge123:~# cp /usr/lib/postfix/main.cf /etc/postfix/main.cf root@hoge123:~# vi /etc/postfix/main.cf # 59行目付近、コメントを解除します。 mail_owner = postfix # 76行目付近、コメント解除しホスト名を入力します。 myhostname = hoge123.dip.jp # 83行目付近、コメント解除しドメイン名を入力します。 mydomain = hoge123.dip.jp # 104行目付近、コメント解除します。 myorigin = $mydomain # 118行目付近、コメント解除します。 inet_interfaces = all # 166行目付近、コメント解除します。 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # 209行目付近、コメントを解除します。 local_recipient_maps = unix:passwd.byname $alias_maps # 268行目付近、自分のネットワークを追記します。 mynetworks = 127.0.0.0/8, 192.168.0.0/24 # 321行目付近、契約ISPのSMTPアドレスを入力します。入力しない場合、ローカルネットワーク内でしか送信できません。 relayhost = [xxx.xxx.xx-xx.xxx.xx] # 388行目付近、コメント解除します。 alias_maps = hash:/etc/aliases # 399行目付近、コメント解除します。 alias_database = hash:/etc/aliases # 421行目付近、コメント解除します。 home_mailbox = Maildir/ # 531行目付近、コメント解除します。 header_checks = regexp:/etc/postfix/header_checks # すぐ下に追記します。 body_checks = regexp:/etc/postfix/body_checks # 557行目付近、先頭に#を付けて、その下に追記します。 #smtpd_banner = $myhostname ESMTP $mail_name (@@DISTRO@@) smtpd_banner = $myhostname ESMTP # 631行目付近、追記します。 sendmail_path = /usr/sbin/postfix # 636行目付近、追記します。 newaliases_path = /usr/bin/newaliases # 641行目付近、追記します。 mailq_path = /usr/bin/mailq # 647行目付近、追記します。 setgid_group = postdrop # 651行目付近、先頭に#をつけます。 #html_directory = # 655行目付近、先頭に#をつけます。 #manpage_directory = # 660行目付近、先頭に#をつけます。 #sample_directory = # 664行目付近、先頭に#をつけます。 #readme_directory = # 最終行へ追記します。送受信メールサイズを10Mに制限します。 message_size_limit = 10485760 # メールボックスサイズを1Gに制限に制限します。 mailbox_size_limit = 1073741824 # SMTP-Authを使うため、追記します。 smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname smtpd_client_restrictions = permit_mynetworks,reject_unknown_client,permit smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination, permit_sasl_authenticated,reject ↑ ここはpermit_auth_destination,の続きです。実際には、1行にしてください。 |
次いで、アドレスのないメールやexample.comが含まれているメール拒否の設定をします。 それと、サブミッションポート587番でもPostfixがSMTPサーバとして待ち受けをするようにします。
root@hoge123:~# root@hoge123:~# vi /etc/postfix/header_checks → 新規作成します。 /^From:.*<#.*@.*>/ REJECT /^Return-Path:.*<#.*@.*>/ REJECT root@hoge123:~# root@hoge123:~# vi /etc/postfix/body_checks → 新規作成します。 /^(|[^>].*)example.com/ REJECT root@hoge123:~# newaliases root@hoge123:~# vi /etc/postfix/master.cf root@hoge123:~# vi /etc/postfix/master.cf #submission inet n - n - - smtpd ↓ 変更後 (#を削除します。) submission inet n - n - - smtpd root@hoge123:~# service postfix restart |
ユーザーアカウントの追加方法です。例としてubuntuを追加します。追加後は、ubuntu@hoge123.dip.jp と言うメールアカウントが使用できます。(ubuntuのパスワードはメール設定で使用しますので、忘れな いでください)
root@hoge123:~# adduser ubuntu123 ← 任意のユーザ名を追加します。 Adding user `ubuntu123' ... Adding new group `ubuntu123' (1003) ... Adding new user `ubuntu123' (1002) with group `ubuntu123' ... Creating home directory `/home/ubuntu123' ... Copying files from `/etc/skel' ... Enter new UNIX password: ← 任意のパスワードを入力します。メール設定で使います。 Retype new UNIX password: ← 再入力します。 passwd: password updated successfully Changing the user information for ubuntu123 Enter the new value, or press ENTER for the default Full Name []: ← 何も入力しないで、Enterキーを押します。 Room Number []: ← 何も入力しないで、Enterキーを押します。 Work Phone []: ← 何も入力しないで、Enterキーを押します。 Home Phone []: ← 何も入力しないで、Enterキーを押します。 Other []: ← 何も入力しないで、Enterキーを押します。 Is the information correct? [Y/n] y ← yを入力します。 |
- Dovecotのインストール・設定 -
Dovecotのインストールをします。
root@hoge123:~# aptitude -y install dovecot-common dovecot-pop3d dovecot-imapd root@hoge123:~# vi /etc/dovecot/dovecot.conf # 26行目付近、先頭の#を削除して、変更します。 listen = * root@hoge123:~# vi /etc/dovecot/conf.d/10-auth.conf # 9行目付近、#を削除して変更します。 disable_plaintext_auth = no # 97行目付近、loginを追記します。 auth_mechanisms = plain login root@hoge123:~# vi /etc/dovecot/conf.d/10-mail.conf # 30行目付近、#を削除して追記します。 mail_location = maildir:~/Maildir root@hoge123:~# vi /etc/dovecot/conf.d/10-master.conf # 88-90行目付近、下記の通り#を削除して追記します。 # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix # 追記 group = postfix # 追記 } root@hoge123:~# service dovecot restart root@hoge123:~# sysv-rc-conf dovecot on ← 自動起動する設定です。 root@hoge123:~# sysv-rc-conf -list dovecot dovecot 2:on 3:on 4:on 5:on |
- メール不正中継テスト -
smtpサーバを外部に公開するときは、第3者に自宅のsmtpサーバを勝手に利用されないようにしなければなりません。 不正中継されないか、Third Party Relay Chekck を実行します。
「ホスト名」にhoge123.dip.jpといれ「check」ボタンをクリックします。1分位待つと、結果が表示されます。最終行に「全てのテストが行われました。 no relays accepted」と表示されれば、不正中継テストはパスしています。
- メールクライアントの設定(1) -
OUTLOOK EXPRESS編
一旦、Smtp-Authが動作するか、メールソフトに設定します。下記設定をします。 「このサーバーは認証が必要」にチェックを入れ、「設定」ボタンをクリックします。
「受信メールサーバーと同じ設定を使用する」を選択して、「OK」ボタンを押します。
「詳細設定」では、「送信メール」は587、「受信メール」は110とします。
POPアカウントの他に、IMAPアカウントでも使用できます。その場合も、 「受信メールサーバーと同じ設定を使用する」を選択して、「OK」ボタンを押します。
「送信メール」は587、「受信メール」は143です。
WINDOWS LIVE メール編
下記設定をします。「このサーバーは認証が必要」にチェックを入れ、「設定」ボタンをクリックします。
「次のアカウントとパスワードでログオンする」を選択して、「アカウント名」にhimitsu 、「パスワード」に himitsuのパスワードを入れて「OK」ボタンを押します。
「詳細設定」では、「送信メール」は587、「受信メール」は110とします。
- SSL(暗号化) -
YahooやGoogle、hotmailアカウントがあれば、送受信テストをします。外出先でも、この設定をパソコンにすれば 自宅サーバ経由でメールの送受信が出来ます。ただし、通信内容が暗号化されていません。平文で流れるため 暗号化(SSL)設定をします。事前にSSL証明書を作成していることが必要です。
Posftix及びDovecotの設定内容変更・保存します。
root@hoge123:~# vi /etc/postfix/main.cf - 最終行に以下内容を追加します - smtpd_use_tls = yes smtpd_tls_cert_file = /etc/ssl/private/server.crt smtpd_tls_key_file = /etc/ssl/private/server.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache root@hoge123:~# vi /etc/postfix/master.cf 22-24行目、行頭の#を削除して、有効にします。 smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes root@hoge123:~# vi /etc/dovecot/conf.d/10-ssl.conf 6行目、行頭の#を削除します。 ssl = yes 12,13行目、証明書/鍵ファイルのパスを下記の通り変更します。 ssl_cert = </etc/ssl/private/server.crt ssl_key = </etc/ssl/private/server.key root@hoge123:~# service postfix restart * Stopping Postfix Mail Transport Agent postfix [ OK ] * Starting Postfix Mail Transport Agent postfix [ OK ] root@hoge123:~# service dovecot restart dovecot stop/waiting dovecot start/running, process 23397 |
- メールクライアントの設定(2) -
Windows Live メール編
既にSmtp-Authの設定をしている事を前提に、下記の変更をメールソフトにします。 「送信メール」465、「受信メール」995(IMPAの場合993)に変更します。 両方とも「このサーバーはセキュリティで保護された接続(SSL)が必要」にチェックを 入れ、保存します。設定内容は、他のメールソフトでも同じです。
セキュリティ警告が表示されますが、「はい」を選択します。
送受信テストをします。これで暗号化された通信が可能になります。