自宅サーバ構築MY HOME SERVER
|
- メールサーバ(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」を選択します。
|
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」を選択します。 |
- メール不正中継テスト -
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)が必要」にチェックを 入れ、保存します。設定内容は、他のメールソフトでも同じです。

セキュリティ警告が表示されますが、「はい」を選択します。

送受信テストをします。これで暗号化された通信が可能になります。


Would you like to activate Postfix in /etc/mail/mailer.conf [n]? ← Enterキーを押します。
[root@hoge123 /postfix]# rehash
[root@hoge123 /postfix]# cd
[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
}

