postfix+Dovecot+SMTP認証

メールサーバpostfixインストール

セキュアIMAP、POP3対応のDovecotもインストール

メール自動振り分けのprocmailインストール

cd /usr/ports/mail/procmail
make BATCH=yes install clean

cd /usr/ports/security/cyrus-sasl2
make BATCH=yes WITHOUT_OTP=yes WITH_BDB=yes install clean

cd /usr/ports/security/cyrus-sasl2-saslauthd
make BATCH=yes WITH_BDB=yes install clean

cd /usr/ports/mail/postfix
make WITH_SASL2=yes WITH_TLS=yes WITH_BDB=yes WITH_MYSQL=yes install clean
Would you like to activate Postfix in /etc/mail/mailer.conf [n]?エンター
rehash

postfixのmain.cfを編集

ee /usr/local/etc/postfix/main.cf

#myhostname = host.domain.tldmyhostname = tommybsd.plala.jpコメント解除&変更(ホスト名をFQDNで指定)

#mydomain = domain.tldmyhdomain = tommybsd.plala.jpコメント解除&変更(ドメイン名を指定)

#myorigin = $mydomainmyorigin = $mydomainコメント解除(送信元メール)

#inet_interfaces = allinet_interfaces = allコメント解除(受信するネットワークアドレスを指定)

#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomainmydestination = $myhostname, localhost.$mydomain, localhost, $mydomainコメント解除(ローカル配送先)

#relay_domains = $mydestinationrelay_domains = $mydestinationコメント解除(リレーを許可するドメインを指定)

#alias_maps = hash:/etc/aliasesalias_maps = hash:/etc/aliasesコメント解除(エイリアスを設定)

#alias_database = hash:/etc/aliasesalias_database = hash:/etc/aliasesコメント解除(エイリアスを設定)

#home_mailbox = Maildir/home_mailbox = Maildir/コメント解除(Maildir形式)

#mailbox_command = /some/where/procmailmailbox_command = /usr/local/bin/procmailコメント解除&変更(procmailのパスを指定)最終行に下記を記入(SASLによるSMTP認証を使用)
# 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

saslauth起動

ee /etc/rc.conf

saslauthd_enable="YES"追加(saslauthd起動)
saslauthd_flags="-a sasldb"追加(sasldb認証)

/usr/local/etc/rc.d/saslauthd start

SMTP  AUTH設定

ee /usr/local/lib/sasl2/smtpd.conf下記を記入
pwcheck_method: auxprop

SMTP  AUTHユーザー追加

saslpasswd2 -c -u tommybsd.plala.jp user_name
Password: user_passメールユーザーのパスワード入力
Again (for verification): user_passパスワード再入力
sasldblistusers2メールユーザー確認
user_name@tommybsd.plala.jp: userPassword

/usr/local/etc/sasldb2所有権変更

chown cyrus:mail /usr/local/etc/sasldb2
chmod 640 /usr/local/etc/sasldb2

sendmail停止

/etc/rc.d/sendmail stop
ee /etc/rc.conf
最終行に下記を記入
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

ee /etc/periodic.conf下記を記入
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

mv /etc/mail/mailer.conf /etc/mail/mailer.conf.org
ee /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

ee /etc/make.conf最終行に下記を記入
NO_MAILWRAPPER=YES
NO_SENDMAIL=YES

postfix起動

ee /etc/rc.conf

postfix_enable="YES"追加

/usr/local/etc/rc.d/postfix start

dovecotインストール

cd /usr/ports/mail/dovecot
make BATCH=yes install clean

dovecot.conf編集

chmod 640 /usr/local/etc/dovecot.conf
ee /usr/local/etc/dovecot.conf

protocols = imap pop3 imaps pop3s managesieveprotocols = imap pop3変更(imap pop3に対応)

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

mail_location = mbox:~/mail/:INBOX=/var/mail/%umail_location = maildir:~/Maildir変更(Maildir形式)

dovecot起動

ee /etc/rc.conf

dovecot_enabel="YES"追加

/usr/loca/etc/rc.d/dovecot start

メールエイリアスのデータベース再構築

ee /etc/aliases

root:		user_name@tommybsd.plala.jp最終行に追加(root宛のメールを転送)

postalias /etc/aliases設定を反映

既存ユーザー用メールディレクトリ作成

mkdir -p /home/user_name/Maildir/{cur,new,tmp}
chmod -R 700 /home/user_name/Maildir
chown -R user_name:user_name /home/user_name/Maildir

新規ユーザー用メールディレクトリ作成

mkdir -p /usr/share/skel/Maildir/{cur,new,tmp}
chmod -R 700 /usr/share/skel/Maildir/

procmail設定

ee /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

POP3接続確認

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エンコードでパスワード作成

perl -MMIME::Base64 -e 'print encode_base64("user_name\0user_name\0user_pass");'
dXNlcl9uYW1lAHVzZXJfbmFtZQB1c2VyX3Bhc3M=

SMTP接続確認

telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.freebsd.orz ESMTP Postfix
EHLO localhost
250-tommybsd.plala.jp
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH SCRAM-SHA-1 GSSAPI DIGEST-MD5 CRAM-MD5 NTLM PLAIN LOGIN
250-AUTH=SCRAM-SHA-1 GSSAPI DIGEST-MD5 CRAM-MD5 NTLM PLAIN LOGIN
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.

メール送信テスト

echo test|mail user_name
ls /home/user_name/Maildir/new
1271581750.5214_0.tommybsd.plala.jpmailが送信されている事を確認
rm -f /home/user_name/Maildir/new/*削除
カテゴリー: FreeBSD パーマリンク