Postfix Dovecot インストール

procmailインストール
[root@freebsd ~]# cd /usr/ports/mail/procmail
[root@freebsd procmail]# make BATCH=yes install clean
[root@freebsd procmail]# cd
pkgtools.conf編集
[root@freebsd ~]# vi /usr/local/etc/pkgtools.conf
  MAKE_ARGS = {
	'security/cyrus-sasl2' => 'WITHOUT_OTP=yes', ←追加
	'mail/postfix' => 'WITH_SASL2=yes WITH_TLS=yes', ←追加
  }
cyrus-sasl2インストール
[root@freebsd ~]# cd /usr/ports/security/cyrus-sasl2
[root@freebsd cyrus-sasl2]# make BATCH=yes WITHOUT_OTP=yes WITH_BDB=yes WITH_BDB_VER=42 install clean
[root@freebsd cyrus-sasl2]# rehash
cyrus-sasl2-saslauthdインストール
[root@freebsd cyrus-sasl2]# cd /usr/ports/security/cyrus-sasl2-saslauthd
[root@freebsd cyrus-sasl2-saslauthd]# make BATCH=yes WITH_BDB=yes WITH_BDB_VER=42 install clean
postfixインストール
[root@freebsd cyrus-sasl2-saslauthd]# cd /usr/ports/mail/postfix
[root@freebsd postfix]# make BATCH=yes WITH_SASL2=yes WITH_TLS=yes WITH_BDB=yes WITH_BDB_VER=42 install clean
[root@freebsd postfix]# rehash
[root@freebsd postfix]# cd
main.cf編集
[root@freebsd ~]# vi /usr/local/etc/postfix/main.cf
#myhostname = host.domain.tld
↓
myhostname = mail.freebsd.orz ←コメント解除&変更(ホスト名をFQDNで指定)

#mydomain = domain.tld
↓
mydomain = freebsd.orz ←コメント解除&変更(ドメイン名を指定)

#myorigin = $myhostname
↓
myorigin = $myhostname ←コメント解除(送信元メール)

#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/ ←コメント解除(Maildir形式)

#mailbox_command = /some/where/procmail
↓
mailbox_command = /usr/local/bin/procmail ←コメント解除&変更(procmailのパスを指定)

↓最終行に下記を記入(SASLによるSMTP認証を使用)
# Cyrus-SASL configuration
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients = yes
ヒント
smtpd_sasl_auth_enable = yes ←SASLによるSMTP-Authを許可する smtpd_sasl_local_domain = $myhostname ←リレーを許可する smtpd_sasl_security_options = noanonymous ←匿名ログインを許可しない smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination ←リレー許可を設定 broken_sasl_auth_clients = yes ←AUTHコマンドを認識できないメールソフトに対応させる
saslauthd起動
[root@freebsd ~]# vi /etc/rc.conf
saslauthd_enable="YES" ←追加(saslauthd起動)
saslauthd_flags="-a sasldb" ←追加(sasldb認証)
[root@freebsd ~]# /usr/local/etc/rc.d/saslauthd start Starting saslauthd.
SMTP AUTH設定
[root@freebsd ~]# vi /usr/local/lib/sasl2/smtpd.conf
↓下記を記入
pwcheck_method: auxprop
ヒント
SMTP AUTHとは(SMTP Authentication) メール転送時にSMTPサーバに対するユーザー認証を行います。
SMTP AUTHユーザー追加
[root@freebsd ~]# saslpasswd2 -c -u mail.freebsd.orz user_name
Password: ←メールユーザーのパスワード入力
Again (for verification): ←パスワード再入力
[root@freebsd ~]# sasldblistusers2 ←メールユーザー確認
user_name@mail.freebsd.orz: userPassword
ヒント
「saslpasswd2 -c -u ドメイン名(realm) ユーザー名」でユーザーを追加します。 「-d」オプションでユーザーを削除します。(例:saslpasswd2 -d -u mail.freebsd.orz user_name) 「sasldblistusers2」でユーザーを確認します。
/usr/local/etc/sasldb2所有権変更
[root@freebsd ~]# chown cyrus:mail /usr/local/etc/sasldb2
[root@freebsd ~]# chmod 640 /usr/local/etc/sasldb2
sendmail停止
[root@freebsd ~]# /etc/rc.d/sendmail stop
[root@freebsd ~]# vi /etc/rc.conf
↓最終行に下記を記入
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
[root@freebsd ~]# 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@freebsd ~]# mv /etc/mail/mailer.conf /etc/mail/mailer.conf.org [root@freebsd ~]# 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@freebsd ~]# vi /etc/make.conf
↓最終行に下記を記入
NO_MAILWRAPPER=YES
NO_SENDMAIL=YES
postfix起動
[root@freebsd ~]# vi /etc/rc.conf
postfix_enable="YES" ←追加
[root@freebsd ~]# /usr/local/etc/rc.d/postfix start postfix/postfix-script: starting the Postfix mail system
dovecotインストール
[root@freebsd ~]# cd /usr/ports/mail/dovecot
[root@freebsd dovecot]# make BATCH=yes install clean
[root@freebsd dovecot]# cd
dovecot.conf編集
[root@freebsd ~]# chmod 640 /usr/local/etc/dovecot.conf
[root@freebsd ~]# vi /usr/local/etc/dovecot.conf
protocols = imap pop3 imaps pop3s managesieve
↓
protocols = imap pop3 ←変更(imap pop3に対応)

#ssl = yes
↓
ssl = no ←コメント解除&変更(SSLを許可しない)

mail_location = mbox:~/mail/:INBOX=/var/mail/%u
↓
mail_location = maildir:~/Maildir ←変更(Maildir形式)
dovecot起動
[root@freebsd ~]# vi /etc/rc.conf
dovecot_enable="YES" ←追加(dovecot起動)
[root@freebsd ~]# /usr/local/etc/rc.d/portsentry.sh stop ←portsentryを起動してる場合 [root@freebsd ~]# /usr/local/etc/rc.d/dovecot start ←dovecot起動 Starting dovecot. If you have trouble with authentication failures, enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork This message goes away after the first successful login. [root@freebsd ~]# /usr/local/etc/rc.d/portsentry.sh start ←portsentry起動
ヒント
Fatal: listen(0.0.0.0, 143) failed: Address already in use /usr/local/etc/rc.d/dovecot: WARNING: failed to start dovecot portsentryを起動してる場合は上記のようなエラーが出てdovecotを起動できないので一旦停止させる。
メールエイリアスのデータベース再構築
[root@freebsd ~]# vi /etc/aliases
root:		user_name@freebsd.orz ←最終行に追加(root宛のメールを転送)
[root@freebsd ~]# postalias /etc/aliases ←設定を反映
既存ユーザー用メールディレクトリ作成
[root@freebsd ~]# mkdir -p /home/user_name/Maildir/{cur,new,tmp}
[root@freebsd ~]# chmod -R 700 /home/user_name/Maildir
[root@freebsd ~]# chown -R user_name:user_name /home/user_name/Maildir
新規ユーザー用メールディレクトリ作成
[root@freebsd ~]# mkdir -p /usr/share/skel/Maildir/{cur,new,tmp}
[root@freebsd ~]# chmod -R 700 /usr/share/skel/Maildir/
Procmail設定
[root@freebsd ~]# 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
Procmailログローテーション
[root@freebsd ~]# vi /usr/local/etc/logrotate.d/procmail
/home/*/Maildir/procmail.log {
	monthly
	rotate 4
	missingok
}
POP3接続確認
[root@freebsd ~]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
USER user_name
+OK
PASS user_pass
+OK Logged in.
LIST
+OK 0 messages:
.
QUIT
+OK Logging out.
Connection closed by foreign host.
BASE64エンコードでパスワード作成
[root@freebsd ~]# perl -MMIME::Base64 -e 'print encode_base64("user_name\0user_name\0user_pass");'
dXNlcl9uYW1lAHVzZXJfbmFtZQB1c2VyX3Bhc3M=
SMTP接続確認
[root@freebsd ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.freebsd.orz ESMTP Postfix
EHLO localhost
250-mail.freebsd.orz
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-AUTH=NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN dXNlcl9uYW1lAHVzZXJfbmFtZQB1c2VyX3Bhc3M=
235 2.7.0 Authentication successful
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
ヒント
encode_base64()の書式は encode_base64("ユーザー名\0ユーザー名\0パスワード")
メール送信テスト
[root@freebsd ~]# echo test|mail user_name
[root@freebsd ~]# ls /home/user_name/Maildir/new
1271581750.5214_0.freebsd.freebsd.orz
[root@freebsd ~]# rm -f /home/user_name/Maildir/new/* ←削除
Outlook Expressの設定(POPの場合)

1.上部メニューから「ツール」>「アカウント」をクリック。

2.「追加」>「メール」をクリック。

3.「表示名」を入力して「次へ」をクリック。

4.「電子メールアドレス」を入力して「次へ」をクリック。

5.「受信メールサーバーの種類」から「POP3」を選択。
「受信メールサーバー」「送信メールサーバー」にサーバーのホスト名またはIPアドレスを入力して「次へ」をクリック。

6.アカウント名とパスワードを入力して「次へ」をクリック。

7.「完了」をクリック。

8.アカウントを選択して「プロパティ」をクリック。

9.サーバータブを開き「このサーバーは認証が必要」にチェックを入れて「OK」をクリック。
※チェックを入れないと他ドメインへ送信できない。

10.「閉じる」をクリック。
Outlook Expressの設定(IMAPの場合)

1.上部メニューから「ツール」>「アカウント」をクリック。

2.「追加」>「メール」をクリック。

3.「表示名」を入力して「次へ」をクリック。

4.「電子メールアドレス」を入力して「次へ」をクリック。

5.「受信メールサーバーの種類」から「IMAP」を選択。
「受信メールサーバー」「送信メールサーバー」にサーバーのホスト名またはIPアドレスを入力して「次へ」をクリック。

6.アカウント名とパスワードを入力して「次へ」をクリック。

7.「完了」をクリック。

8.アカウントを選択して「プロパティ」をクリック。

9.サーバータブを開き「このサーバーは認証が必要」にチェックを入れて「OK」をクリック。

10.「閉じる」をクリック。

11.「はい」をクリック。

12.「OK」をクリック。
不正中継テスト

1.第三者中継チェック RBL.JP へアクセス。
「ホスト名」にサーバーのホスト名を入力して「Check」ボタンをクリック。

2.「no relays accepted.」と表示されたら問題なし。
ヒント
有名な不正中継チェックサイト http://www.abuse.net/relay.html http://www.antispam-ufrj.pads.ufrj.br
外部に公開する場合
プロトコル(TCP)ポート25番(SMTP)を開放。 プロトコル(TCP)ポート110番(POP3)を開放。 プロトコル(TCP)ポート143番(IMAP)を開放。
Home PageTop