メールサーバ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/* ←削除