Postfix

update create

http://www.postfix.org/
Ubuntu18のメモです。

TYPE PORT contnet
smtp 25 基本は認証なしの仕組み
smtp 25 OP25B(Outbound Port 25 Blocking): 自分の所属しているネットワークのMTAを使用せずport 25で外部のMTA接続を拒絶する仕組み。
submission 587 SMTP認証あり
smtps 465 smtp with tsl

参考

認証確認

postconf -a

設定確認

postfix check

設定表示

postconf -n

main.cf

smtpd_banner = $myhostname ESMTP 

telnet接続時に表示されるメッセージ。
初期設定の場合

220 mail.likids.info ESMTP Postfix (Ubuntu)

となる。

設定のチェックと読み込み

sudo postfix check
sudo systemctl reload postfix

SMTP_AUTH

dovecotと連携する。

パラメータ 設定例 備考
smtpd_sasl_auth_enable yes
smtpd_sasl_local_domain $myhostname
smtpd_sasl_type dovecot
smtpd_sasl_path private/auth SASL認証デーモンのソケットファイル(/var/spool/postfix からの相対パスを指定する)
broken_sasl_auth_clients yes windows互換
smtpd_recipient_restrictions permit_sasl_authenticated reject_unauth_destination permit_mynetworksを先頭に追加すると認証不要になる

関連ファイル

  • main.cf
  • master.cf
  • 任意で作成
    • vdomain
    • vmailbox
    • vmailbox.db

Virtual Mail

パラメータ 設定例 備考
virtual_mailbox_domains /etc/postfix/vdomain
virtual_mailbox_base /var/mail/vmail
virtual_mailbox_maps hash:/etc/postfix/vmailbox
virtual_uid_maps static:[vmail uid]
virtual_gid_maps static:[vmail gid]

postmap

SMTPとIMAP(POP3)が異なるサーバーの場合

dovecotとpostfixが異なるサーバーの場合はipを指定する

postfix側

smtpd_sasl_auth = enable
smtpd_sasl_type = dovecot
smtpd_sasl_path = inet:[ip address:port12345]

dovecot側
10-master.conf

service auth {
  inet_listener {
    port = port12345
  } 
}

ClamAV連携

ウィルスチェックを行い除去する。
Amavis経由で、ClamAV+SpamAssassinなどのフィルタを実装。
https://www.amavis.org/
archlinuxを参考

sudo apt install amavisd-new

amavisインストール後、起動をすると必要なdecoderがない場合、ログに No decoder for xxx とメッセージが表示される。
それを抑止するために、下記をインストール。

apt install lrzip liblz4-tool rpm2cpio unrar-free ripole p7zip-full p7zip-rar lzop arj nomarch cabextract

zooと.FがUbuntu18のリポジトリにない模様。
Ubuntu zoo package(URL)
zoo packageは、Debianから取得してinstall. (運用で依存関連が面倒なので却下)

wget http://ftp.br.debian.org/debian/pool/main/z/zoo/zoo_2.10-28_i386.deb
clamscan ./zoo_2.10-28_i386.deb

問題は、.F。 これ、melt packageっぽいのだけれど、、怪しそうだったので保留。

初期設定(20-debian_defaults, 21-ubuntu_defaults )

$final_virus_destiny      = D_DISCARD;  # (data not lost, see virus quarantine)
$final_banned_destiny     = D_BOUNCE;   # D_REJECT when front-end MTA
$final_spam_destiny       = D_BOUNCE;
$final_bad_header_destiny = D_PASS;     # False-positive prone (for spam)
value comment
D_DISCARD 削除。配送なし、通知なし。
D_BOUNCE 受信者には配送しない。送信者にメールを作成して通知。 例外で送られないこともある(URL)
D_REJECT 受信者には配送しない。送信者に550 or 554を通知。
D_PASS 配送なし
  • Reply Codes in Numeric Order (URL)

連携に関する設定

/etc/clamav/clamd.conf

AllowSupplementaryGroups true

amavisグループclamav を追加(インストール時に設定されれたアカウントを調べること)

usermod -a -G amavis clamav

header_checks

Postfix ビルトインヘッダ(URL)。
main.cfheader_checks = regexp:/etc/postfix/header_checksを追加。
ローカルIPの情報をヘッダーに追記しない。

/^Received:.*192\.168\..*/ IGNORE
/^Received:.*127\.0\.0\.1.*/ IGNORE

テスト用Virus

wget http://www.eicar.org/download/eicar.com
clamscan --infected eicar.com

添付ファイル削除

情報のみ、未実装。
maildrop, procmail, header_checksなどを利用するっぽい。

Log

ehlo=1 auth=0/1 quit=1 commands=2/3

ehlo: 成功, auth: 失敗, quit: 成功, 合計コマンド (成功数/全体数) と言った意味合い。