メールサーバ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.tld
↓
myhostname = tommybsd.plala.jp ←コメント解除&変更(ホスト名をFQDNで指定)
#mydomain = domain.tld
↓
myhdomain = tommybsd.plala.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/ ←コメント解除(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 = $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 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起動
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.jp ←mailが送信されている事を確認
rm -f /home/user_name/Maildir/new/* ←削除