spam protection
Postfix Spam Protection Improvements
Overview
Implemented multi-layer spam protection for mail server at mail.keisanki.net.
1. Fixed SpamAssassin Milter Socket
Problem: SpamAssassin milter socket path was incorrect, causing spam filtering to fail.
Solution: Created proper systemd service and fixed socket path.
File: /etc/systemd/system/spamass-milter.service
spamassassin
- ai spamassassin spamd sa-compile spamass-milter re2c pyzor libmail-spamassassin-perl libarchive-zip-perl libidn2-dev libgeo-ip-perl libgeoip-dev perl-doc cpanminus libnet-libidn2-perl libencode-detect-perl libnet-patricia-perl libio-compress-perl libmail-spf-perl libio-socket-inet6-perl libdbi-perl libdbd-sqlite3-perl libwww-perl liblwp-protocol-https-perl libbsd-resource-perl libemail-address-xs-perl libmail-dmarc-perl libdevel-cycle-perl libtext-diff-perl libnet-libidn-perl libmaxmind-db-reader-perl libmaxmind-db-reader-xs-perl libdigest-sha-perl
- usermod -a -G spamass-milter
header_checks
/^X-Spam-Level: \*{9,}/ REJECT Spam-Level over 10.
/^To: undisclosed-recipients:/ REJECT Please specify who your sending to.
/^To: Undisclosed recipients:/ REJECT Please specify who your sending to.
/^From:.*\@[^ ]*\.(cn|ru|kr|tr|ro|in|br)\b/ REJECT Sorry, your TLD is not allowed here
/^Subject:.*=\?(big5|euc-kr|gb2312|ks_c_5601-1987|Windows-1251|Windows-1256|KOI8-R)\?/ REJECT Language not accepted by this server as it is probably spam
/[^[:print:]]{8}/ REJECT Sorry, ascii chara/etc/spamassassin/custom_scores.cf
## Blocklists and DNS-Based Rules
# Rules related to blocklists, DNS checks, and relay listings.
score RCVD_IN_SBL_CSS 4.0 # Listed in Spamhaus SBL-CSS blocklist
score URIBL_DBL_PHISH 3.5 # Phishing URL in Spamhaus DBL
score RCVD_IN_VALIDITY_RPBL 2.0 # Relay in Validity RPBL
score URIBL_BLOCKED 1.5 # Blocked URI query
bayes
chown debian-spamd:debian-spamd -R /var/lib/spamassassin/bayes/
sa-learn
sa-learn --spam /home/USER/Maildir/.Spam/
sa-learn --ham /home/USER/Maildir/.Sent/
spamassassin --add-addr-to-whitelist=IPADDRESS