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

参考

HELO (EHLO) コマンドの要求

HELO (EHLO) ホスト名制限

Blocking spammers with Postfix HELO controls

mysql_table - Postfix MySQL クライアントの設定

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です