CONTENTS
Lastmodified 2023-10-17 (火) 15:31:56
【参考URL】FreeBSD 12 で自宅サーバ作成 メールサーバ編
【参考URL】Postfixのセキュリティ対策
【参考URL】FreeBSD、Apacheでサーバを構築して公開する
SMTP認証にsasl認証を使用する。
# portinstall security/cyrus-sasl2 # portinstall security/cyrus-sasl2-saslauthd
/etc/rc.conf
saslauthd_enable="YES" saslauthd_flags="-a sasldb"
/usr/local/etc/rc.d/saslauthd start
/usr/local/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
元記事はこうなっているが、現状、/usr/local/lib/sasl2/Sendmail.conf というファイルがあって、中身は
pwcheck_method: auxprop
となってて、同じ内様。両方設置しておくことにした。
# saslpasswd2 -c -u Host_name user_name Password: Again (for verification): sasldblistusers2 user_name@hobbit.ddo.jp: userPassword
この操作で /usr/local/etc/sasldb2.db が生成されるが、Host_name は、# postconf -h myhostname の値を用いると、エラーせず認証されるようである。
/>chown cyrus:mail /usr/local/etc/sasldb2.db />chmod 640 /usr/local/etc/sasldb2.db
BDB BLACKLISTD と SASL にチェック追加
# portupgrade -rf --batch postfix
【付記】BDBオプションを追加した場合、Postfixの最初のnewaliasesコマンドでDBの作成時に
# newaliases BDB0210 /etc/mail/aliases.db: metadata page checksum error BDB1581 File handles still open at environment close BDB1582 Open file handle: /etc/mail/aliases.db BDB1582 Open file handle: /etc/mail/aliases.db BDB1582 Open file handle: /etc/mail/aliases.db BDB1582 Open file handle: /etc/mail/aliases.db : : : BDB1582 Open file handle: /etc/mail/aliases.db BDB0210 /usr/local/mailman/data/aliases.db: metadata page checksum error BDB1581 File handles still open at environment close BDB1582 Open file handle: /usr/local/mailman/data/aliases.db BDB1582 Open file handle: /usr/local/mailman/data/aliases.db BDB1582 Open file handle: /usr/local/mailman/data/aliases.db : : : BDB1582 Open file handle: /usr/local/mailman/data/aliases.db BDB1582 Open file handle: /usr/local/mailman/data/aliases.db BDB1582 Open file handle: /usr/local/mailman/data/aliases.db #
のような出力があった。postfix reload して再度 newaliases したら、すぐにプロンプトが戻って来た。 多分、正常な動作だったのだろうけど、ちと焦った。(^_^;
myhostname = mail.smb.net # コメント解除でホスト名指定 mydomain = smb.net # コメント解除でドメイン名指定 myorigin = $myhostname # コメント解除(送信元メール) inet_interfaces = all # コメント解除(受信するネットワークアドレスを指定) mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # コメント解除(ローカル配送先) mynetworks = 192.168.1.0/24, 127.0.0.0/8 # リレーを許可するIPアドレス relay_domains = $mydestination # コメント解除(リレーを許可するドメインを指定) alias_maps = hash:/etc/aliases # コメント解除(エイリアスを設定) alias_database = hash:/etc/aliases # コメント解除(エイリアスを設定) # Cyrus-SASL configuration # 下記を追加(SASLによるSMTP認証を使用) 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
# service saslauthd start Starting saslauthd. # service postfix start postfix/postfix-script: starting the Postfix mail system
【参考URL】Postfix で SMTP-AUTH を実現 SMTP-AUTH が正常に動作しているかを確認します。 具体的には Telnet で 25 番ポートにアクセスして確認します。
$ telnet localhost 25 <-- 入力し、エンター Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 www.miloweb.net ESMTP Postfix EHLO localhost <-- EHLO localhostと入力 250-zdnet.hoge.org 250-PIPELINING 250-SIZE 10240000 250-ETRN 250-AUTH SCRAM-SHA-512 SCRAM-SHA-384 SCRAM-SHA-256 SCRAM-SHA-224 SCRAM-SHA-1 DIGEST-MD5 CRAM-MD5 NTLM LOGIN PLAIN 250-AUTH=SCRAM-SHA-512 SCRAM-SHA-384 SCRAM-SHA-256 SCRAM-SHA-224 SCRAM-SHA-1 DIGEST-MD5 CRAM-MD5 NTLM LOGIN PLAIN <-- この行があればオッケーです 250 8BITMIME QUIT <-- 確認できたので、QUITコマンドで切断します
もし「 250-AUTH PLAIN LOGIN 」と表示されていれば、SMTP-AUTH が上手く行っていないので、 Postfix のインストール手順を見直して、やり直さなければならない。
http://linux.kororo.jp/cont/server/smtp_auth.php
# printf 'ユーザー名\0ユーザー名\0パスワード' | mmencode
で得られるBase64を用いてAUTH PLAIN (平文認証)認証出来るか確認する。
予め main.cf で
#smtp_sasl_security_options = noplaintext
とコメントアウトしておく。
$ telnet localhost 25 <-- 入力し、エンター Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 www.miloweb.net ESMTP Postfix EHLO localhost <-- EHLO localhostと入力 250-zdnet.hoge.org 250-PIPELINING 250-SIZE 10240000 250-ETRN 250-AUTH SCRAM-SHA-512 SCRAM-SHA-384 SCRAM-SHA-256 SCRAM-SHA-224 SCRAM-SHA-1 DIGEST-MD5 CRAM-MD5 NTLM LOGIN PLAIN 250-AUTH=SCRAM-SHA-512 SCRAM-SHA-384 SCRAM-SHA-256 SCRAM-SHA-224 SCRAM-SHA-1 DIGEST-MD5 CRAM-MD5 NTLM LOGIN PLAIN <-- この行があればオッケーです 250 8BITMIME AUTH PLAIN a29yb3JvAGtvcm9ybwBrb3JvMTgxNQ== <-- # printf 'ユーザー名\0ユーザー名\0パスワード' | mmencode の結果を入力 235 Authentication successful QUIT 221 Bye Connection closed by foreign host.
postfix/smtpd[66015]: E4D824E6061: client=gw.kuji-clinic.net[210.255.122.209], sasl_method=CRAM-MD5, sasl_username=hoge@FQDN
Total access 616:本日 1:昨日 1