自宅サーバ構築MY HOME SERVER
メールサーバ(Postfix / Dovecot) Postfixのインストール・設定 Dovecotのインストール・設定 メール不正中継テスト メールクライアントの設定(1) SSL(暗号化) メールクライアントの設定(2) |
- メールサーバ(Postfix / Dovecot) -
メール送受信をするSmtpサーバにはPostfixを使います。受信したメールをユーザのメールボックス
に運ぶPop/ImapサーバはDovecotを使用します。外部ドメインからもメールクライアントで自宅サーバ
にアクセスできるように設定します。メールアカウントの追加もします。メールサーバ使用に当たって
IP Filter及びルータのポート(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のインストール・設定 -
まずは、Procmail(メールフィルタリングソフト)、Posftixをインストールします。
[root@hoge123 ~]# cd /usr/ports/mail/procmail [root@hoge123 /procmail]# make BATCH=yes install clean [root@hoge123 /procmail]# cd [root@hoge123 ~]# vi /usr/local/etc/pkgtools.conf MAKE_ARGS = { 'security/cyrus-sasl2' => 'WITHOUT_OTP=yes', ← 追記します。 'security/cyrus-sasl2-saslauthd' => 'WITH_BDB=yes', ← 追記します。 'mail/postfix' => 'WITH_SASL2=yes WITH_TLS=yes', ← 追記します。 } [root@hoge123 ~]# cd /usr/ports/security/cyrus-sasl2 [root@hoge123 /cyrus-sasl2]# make BATCH=yes WITHOUT_OTP=yes WITH_BDB=yes install clean [root@hoge123 /cyrus-sasl2]# rehash [root@hoge123 /cyrus-sasl2]# rehash [root@hoge123 /cyrus-sasl2]#cd /usr/ports/security/cyrus-sasl2-saslauthd [root@hoge123 /cyrus-sasl2-saslauthd]# make BATCH=yes WITH_BDB=yes install clean [root@hoge123 /cyrus-sasl2-saslauthd]# cd /usr/ports/mail/postfix [root@hoge123 /postfix]# make WITH_SASL2=yes WITH_TLS=yes WITH_BDB=yes install clean 最初にこの画面が出ます。そのまま「OK」を選択します。 Would you like to activate Postfix in /etc/mail/mailer.conf [n]? ← Enterキーを押します。 [root@hoge123 /postfix]# rehash [root@hoge123 /postfix]# cd |
Postfixの設定をします。
[root@hoge123 ~]# vi /usr/local/etc/postfix/main.cf #myhostname = host.domain.tld ↓ 先頭の#を削除して、変更します。 myhostname = hoge123.dip.jp #mydomain = domain.tld ↓ 先頭の#を削除して、変更します。 mydomain = hoge123.dip.jp #myorigin = $mydomain ↓ 先頭の#を削除します。 myorigin = $mydomain #inet_interfaces = all ↓ 先頭の#を削除します。 inet_interfaces = all #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ↓ 先頭の#を削除します。 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #relay_domains = $mydestination ↓ 先頭の#を削除します。 relay_domains = $mydestination #alias_maps = hash:/etc/aliases ↓ 先頭の#を削除します。 alias_maps = hash:/etc/aliases #alias_database = hash:/etc/aliases ↓ 先頭の#を削除します。 alias_database = hash:/etc/aliases #home_mailbox = Maildir/ ↓ 先頭の#を削除します。 home_mailbox = Maildir/ #mailbox_command = /some/where/procmail ↓ 先頭の#を削除し、変更します。 mailbox_command = /usr/local/bin/procmail ↓ 最終行に追記します。 relayhost = [xxx.xxx.xxx.xxx] ← 環境に合わせます。 # Cyrus-SASL configuration smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $mydomain smtpd_sasl_security_options = noanonymous smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination broken_sasl_auth_clients = yes |
saslauthd、SMTU AUTHの設定をします。
[root@hoge123 ~]# vi /etc/rc.conf ↓ 最終行に追記します。 saslauthd_enable="YES" saslauthd_flags="-a sasldb" [root@hoge123 ~]# /usr/local/etc/rc.d/saslauthd start Starting saslauthd. [root@hoge123 ~]# vi /usr/local/lib/sasl2/smtpd.conf 新規作成です。下記内容を記入します。 pwcheck_method: auxprop [root@hoge123 ~]# saslpasswd2 -c -u hoge123.dip.jp himitsu Password: user_pass ← himitsuのパスワードを入力します。 Again (for verification): ←パスワード再入力します。 ※SMTP-AUTH認証用のユーザー名、とパスワードです。この情報は メールクライアント設定時に必要になります。 [root@hoge123 ~]# chown cyrus:mail /usr/local/etc/sasldb2 [root@hoge123 ~]# chmod 640 /usr/local/etc/sasldb2 [root@hoge123 ~]# /etc/rc.d/sendmail stop [root@hoge123 ~]# vi /etc/rc.conf ↓ 最終行に追記します。 sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" [root@hoge123 ~]# vi /etc/periodic.conf ↓ 新規作成です。下記内容を貼り付けます。 daily_clean_hoststat_enable="NO" daily_status_mail_rejects_enable="NO" daily_status_include_submit_mailq="NO" daily_submit_queuerun="NO" [root@hoge123 ~]# mv /etc/mail/mailer.conf /etc/mail/mailer.conf.org [root@hoge123 ~]# vi /etc/mail/mailer.conf ↓ 新規作成です。下記内容を貼り付けます。 sendmail /usr/local/sbin/sendmail send-mail /usr/local/sbin/sendmail mailq /usr/local/sbin/sendmail newaliases /usr/local/sbin/sendmail [root@hoge123 ~]# vi /etc/make.conf ↓ 最終行に追記します。 NO_MAILWRAPPER=YES NO_SENDMAIL=YES [root@hoge123 ~]# vi /etc/rc.conf ↓ 最終行に追記します。 postfix_enable="YES" [root@hoge123 ~]# vi /usr/local/etc/postfix/master.cf #submission inet n - n - - smtpd ↓ 変更後 (#を削除します。) submission inet n - n - - smtpd [root@hoge123 ~]# /usr/local/etc/rc.d/postfix start |
- Dovecotのインストール・設定 -
Dovecotのインストールをします。
[root@hoge123 ~]# cd /usr/ports/mail/dovecot [root@hoge123 /dovecot]# make BATCH=yes install clean 最初にこの画面が出ます。そのまま「OK」を選択します。 [root@hoge123 /dovecot]# cd [root@hoge123 ~]# chmod 640 /usr/local/etc/dovecot.conf [root@hoge123 ~]# vi /usr/local/etc/dovecot.conf protocols = imap pop3 imaps pop3s managesieve ↓ 変更します。 protocols = imap pop3 #ssl = yes ↓ 先頭の#を削除して、変更します。 ssl = no mail_location = mbox:~/mail/:INBOX=/var/mail/%u ↓ 変更します。 mail_location = maildir:~/Maildir [root@hoge123 ~]# vi /etc/rc.conf ↓ 最終行に追記します。 dovecot_enable="YES" [root@hoge123 ~]# /usr/local/etc/rc.d/dovecot start [root@hoge123 ~]# vi /etc/aliases ↓ 最終行に追記します。 root: hogehoge@hoge123.dip.jp [root@hoge123 ~]# postalias /etc/aliases [root@hoge123 ~]# mkdir -p /home/hogehoge/Maildir/{cur,new,tmp} [root@hoge123 ~]# chmod -R 700 /home/hogehoge/Maildir [root@hoge123 ~]# chown -R hogehoge:hogehoge /home/hogehoge/Maildir [root@hoge123 ~]# mkdir -p /usr/share/skel/Maildir/{cur,new,tmp} [root@hoge123 ~]# chmod -R 700 /usr/share/skel/Maildir/ [root@hoge123 ~]# vi /usr/local/etc/procmailrc ↓ 新規作成です。下記内容を貼り付けます。 SHELL=/bin/sh PATH=/bin:/usr/bin:/usr/local/bin DROPPRIVS=yes MAILDIR=$HOME/Maildir DEFAULT=$MAILDIR/ #LOGFILE=$MAILDIR/procmail.log :0 * ^Subject:.*=\?[Ii][Ss][Oo]-2022-[Jj][Pp]\?[Bb]\?GyRCTCQ\+NUJ6OS05cCIo /dev/null [root@hoge123 ~]# vi /usr/local/etc/logrotate.d/procmail ↓ 新規作成です。下記内容を貼り付けます。 /home/*/Maildir/procmail.log { monthly rotate 4 missingok } |
- メール不正中継テスト -
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 メール編
下記設定をします。「このサーバーは認証が必要」にチェックを入れ、「設定」ボタンをクリックします。
「受信メールサーバと同じ設定をする」を選択します。「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/server.crt smtpd_tls_key_file = /etc/ssl/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 /usr/local/etc/dovecot.conf protocols = imap pop3 ↓ 変更します。 protocols = imap pop3 imaps pop3s ssl = no ↓ 変更します。 ssl = yes #ssl_cert_file = /etc/ssl/certs/dovecot.pem ↓ 先頭の#を削除して、変更します。 ssl_cert_file = /etc/ssl/server.crt #ssl_key_file = /etc/ssl/private/dovecot.pem ↓ 先頭の#を削除して、変更します。 ssl_key_file = /etc/ssl/server.key [root@hoge123 ~]# /usr/local/etc/rc.d/postfix restart [root@hoge123 ~]# /usr/local/etc/rc.d/dovecot restart |
- メールクライアントの設定(2) -
Windows Live メール編
既にSmtp-Authの設定をしている事を前提に、下記の変更をメールソフトにします。 「送信メール」465、「受信メール」995(IMPAの場合993)に変更します。 両方とも「このサーバーはセキュリティで保護された接続(SSL)が必要」にチェックを 入れ、保存します。設定内容は、他のメールソフトでも同じです。
セキュリティ警告が表示されますが、「はい」を選択します。
送受信テストをします。これで暗号化された通信が可能になります。