Postfix の EHLO で User と名乗ってくる奴をブロック
Postfix の挨拶で User と名乗ってくるスクリプトをブロックする。
テーブルを作成
データベース「mail」にテーブルを作成
CREATE TABLE `ehlo_host` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `host` varchar(255) NOT NULL, `permission` enum('ACCEPT','REJECT') NOT NULL DEFAULT 'REJECT', PRIMARY KEY (`id`), KEY `permission` (`permission`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
データを挿入(正規表現形式)
insert into ehlo_host host = '^User$';
MySQL 設定ファイル
「/etc/postfix/mysql-check_ehlo.cf」(正規表現形式でマッチング)
# # mysql config file for local(8) aliases(5) lookups # # The user name and password to log into the mysql server. hosts=unix:/var/lib/mysql/mysql.sock user=MySQLのユーザー password=MySQLのパスワード # The database name on the servers. dbname=mail # For Postfix 2.2 and later The SQL query template. # See mysql_table(5) for details. query= SELECT permission FROM ehlo_host WHERE '%s' REGEXP host
「main.cf」の編集
「/etc/postfix/main.cf」
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,
reject_invalid_hostname,
reject_unknown_hostname,
reject_non_fqdn_hostname,
check_helo_access mysql:/etc/postfix/mysql-check_ehlo.cf,
permit
再起動
# systemctl restart postfix
参考
Blocking spammers with Postfix HELO controls
mysql_table – Postfix MySQL クライアントの設定