メール設定 · 2 min read · Jan 03, 2026
Mailscanner/Exim Gateway With Communigate PRO Guide - Page 2
アンチスパム
サーバーにリバースDNSがないメッセージを拒否したい場合は、これをacl_check_rcpt:の下に追加します。例外リストがあり、そこにaclを適用しないドメインを追加できます。また、送信者が有効かどうかを確認するために、送信先アドレスにテストメッセージを配信しようとします。
drop message = REJECTED - We don't accept messages from hosts without reverse DNS
log_message = No reverse DNS
domains = ! lsearch;/etc/exim/checks_exempt_hosts
!verify = reverse_host_lookup
!verify = sender/callout=2m,defer_ok
!condition = ${if eq{$sender_verify_failure}{} }HELO/EHLOを提供しないクライアントからのメッセージを拒否するには、これをacl_check_rcptに追加します。
drop message = REFUSED - no HELO/EHLO greeting
log_message = remote host did not present greeting
condition = ${if def:sender_helo_name {false}{true}}サーバーへの接続をレート制限することもできます。これをacl_check_connectに追加します(サイトに合わせて微調整したい場合はeximのドキュメントを読んでください)。
deny ratelimit = 250 / 15m / strict
message = You can only send $sender_rate per $sender_rate_period
log_message = RATE: $sender_rate/$sender_rate_period (max $sender_rate_limit)
accept悪意のあるスパムボットがあなたのマシンを荒らすのを防ぎます。
smtp_accept_max_nonmail = 30
smtp_max_unknown_commands = 1ローカルホストからのみパイプラインを許可し、後でmailfeederを使用してメールをリリースできるようにします。
pipelining_advertise_hosts = 127.0.0.1アドレス検証
これは、メールを受け入れる前にアドレスが存在することを確認するために、ldapを介してあなたのcommunigate proシステムと通信するためにrouter check_backendを使用します。
デフォルトのldapサーバーをexim構成に追加します。
ldap_default_servers = xxx.xxx.xxx.xxxキャッチオールアカウントを持つドメインを構成します(メールを受け入れる前にアドレスが存在するかどうかの検証はありません)。
# example /etc/exim/catchall_domains
somedomain.comこれをexim構成に指定します。
domainlist domains_with_catchall = lsearch;/etc/exim/catchall_domainsldapを有効にしたCGPドメインをファイル/etc/exim/ldap-domainsに作成して追加します。最初の列はドメインエイリアスまたはドメインで、2番目はldapに存在する実際のドメインです。CGPドメインをldapに同期すると、ドメインエイリアスもコピーされません。
#example /etc/exim/ldap-domains
example.com: example.com
example.co.za: example.comcheck_backendルーターを作成します。これは構成の最初のルーターである必要があります。
check_backend:
driver = redirect
domains = ! +domains_with_catchall : +relay_to_domains
allow_fail
allow_defer
forbid_file
forbid_pipe
data = ${lookup ldap{ldap:///uid=${local_part},cn=${lookup{$domain}lsearch{/etc/exim/ldap-domains}}?mail}{$value}{:fail: Unknown user}}
#version 5.x use this instead
#data = ${lookup ldap{ldap:///cn=${lookup{$domain}lsearch{/etc/exim/ldap-domains}}?uid?sub?(uid=$local_part)}{$local_part@$domain}{:fail: User Unknown}}クリーンデリバリーExim
これは、mailscannerがすでにスキャンしたクリーンメールを配信するために使用される構成です。構成ファイルは/etc/exim/exim_out.confです。これには、すべてのチェックとaclが取り除かれたデフォルトの構成を使用できます。
クリーンメールを実際のCGPサーバーに配信するために、このルーターを追加する必要があります。クラスターを実行している場合、このルーターは/etc/exim/mail-routesに構成されたサーバーに配信を分散させることができ、完全に冗長になります。
deliver_clean:
driver = manualroute
domains = +relay_to_domains
transport = remote_smtp
hosts_randomize = true
route_data = ${lookup{$domain}lsearch{/etc/exim/mail-routes}}MySQLの構成
この設定ファイル/etc/my.cnfに追加します。
socket=/var/lib/mysql/mysql.sock
skip-networkingこれにより、mysqlはtcpではなくソケットを介してのみ通信するように構成され、セキュリティとパフォーマンスが向上します。
mysqlを起動します。これにより、デフォルトのデータベースが初期化されます。
service mysqld startrootユーザーのパスワードを設定します。
mysqladmin -u root password NEWPASSWORDmailwatchデータベースを作成し、テーブルをポピュレートします。
mysql -p < /usr/local/src/mailwatch-1.0.4/create.sqlmailwatchとmailscannerのロギング用のmysqlユーザーを作成します。
mysql
mysql> GRANT ALL ON mailscanner.* TO mailwatch@localhost IDENTIFIED BY 'password';mailwatch管理ユーザーを作成します。
mysql mailscanner -u mailwatch -p
Enter password: ******
mysql> INSERT INTO users VALUES ('',md5(' '),'','A','0','0','0','0','0'); MailScannerの構成
イントロ
Mailscannerにはいくつかの構成オプションがありますが、システムを動作させるために必要なものにのみ焦点を当てます。システムをさらにカスタマイズするには、mailscannerのドキュメントを読むか、私が提供したサンプル構成ファイルを確認してください。
基本構成
/etc/MailScanner/MailScanner.confの以下の構成変数を編集してください。
Run As User = exim
Run As Group = exim
Incoming Queue Dir = /var/spool/exim.in/input
Outgoing Queue Dir = /var/spool/exim/input
MTA = exim
Sendmail = /usr/sbin/exim -C /etc/exim/exim_out.conf
Sendmail2 = /usr/sbin/exim -C /etc/exim/exim_out.conf
Quarantine User = exim
Quarantine Group = apache
Quarantine Permissions = 0660
Quarantine Infections = yes
Quarantine Whole Message = yes
Quarantine Whole Messages As Queue Files = no
Keep Spam And MCP Archive Clean = yes
Spam Actions = store
High Scoring Spam Actions = store
Detailed Spam Report = yes
Include Scores In SpamAssassin Report = yes- パーミッションを設定
chown exim.exim -R /var/spool/MailScanner/incoming
mkdir -p /var/spool/exim.in/{input,msglog,scan,db}
chown exim.exim /var/spool/exim.in/{input,msglog,scan,db}アンチウイルス
2番目のウイルススキャナーを設定する場合
Virus Scanning = yes
Virus Scanners = "name of virus scanner"ブラックリストとホワイトリスト
SQL(mysql)ベースのホワイトリストとブラックリストを使用して、ユーザーがWebインターフェース内から送信者をホワイトリストおよびブラックリストに追加できるようにします。
mailscanner構成ファイルを編集し、以下を追加します。
Is Definitely Not Spam = &SQLWhitelist
Is Definitely Spam = &SQLBlacklist
Ignore Spam Whitelist If Recipients Exceed = 20ファイル/usr/lib/MailScanner/MailScanner/CustomFunctions/SQLBlackWhiteList.pmを編集します。
sub CreateList {
my($type, $BlackWhite) = @_;
my($dbh, $sth, $sql, $to_address, $from_address, $count);
my($db_name) = 'mailscanner';
my($db_host) = 'localhost';
my($db_user) = 'mailwatch';
my($db_pass) = 'password';Mailwatch統合
mailscanner構成ファイルを編集し、以下を追加します。
Always Looked Up Last = &MailWatchLoggingファイル/usr/lib/MailScanner/MailScanner/CustomFunctions/MailWatch.pmを編集します。
my($db_name) = 'mailscanner';
my($db_host) = 'localhost';
my($db_user) = 'mailwatch';
my($db_pass) = 'password';Spamassassinの構成
この構成では、bayes情報を保存するためにmysqlデータベースを使用します。したがって、データベースとユーザーを作成し、データベースに接続するために使用します。また、追加のルール(Daryl C. W. O’SheaによってホストされるSARE http://www.dostech.ca/)を使用するため、sa-updateを自動的にダウンロードするように構成します。
MySQLデータベースの作成
mysqladmin -p create bayesデータベースをポピュレートします。
mysql -p bayes < /usr/share/doc/spamassassin-3.2.3/sql/bayes_mysql.sqlユーザーを作成します。
mysql -p
mysql> GRANT ALL ON bayes.* TO bayes@localhost IDENTIFIED BY 'password';DBを使用するように構成
ファイル/etc/mail/spamassassin/local.cfを編集し、以下を追加します。
bayes_store_module Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn DBI:mysql:bayes:localhost
bayes_sql_override_username bayes
bayes_sql_username bayes
bayes_sql_password passwordSAREルールの更新
ルールに署名するために使用されるGPGキーをインポートします。
wget http://daryl.dostech.ca/sa-update/sare/GPG.KEY sa-update --import GPG.KEYチャネルファイル/etc/mail/spamassassin/sare-sa-update-channels.txtを作成します。
updates.spamassassin.org
72_sare_redirect_post3.0.0.cf.sare.sa-update.dostech.net
70_sare_evilnum0.cf.sare.sa-update.dostech.net
70_sare_bayes_poison_nxm.cf.sare.sa-update.dostech.net
70_sare_html0.cf.sare.sa-update.dostech.net
70_sare_html_eng.cf.sare.sa-update.dostech.net
70_sare_header0.cf.sare.sa-update.dostech.net
70_sare_header_eng.cf.sare.sa-update.dostech.net
70_sare_specific.cf.sare.sa-update.dostech.net
70_sare_adult.cf.sare.sa-update.dostech.net
72_sare_bml_post25x.cf.sare.sa-update.dostech.net
99_sare_fraud_post25x.cf.sare.sa-update.dostech.net
70_sare_spoof.cf.sare.sa-update.dostech.net
70_sare_random.cf.sare.sa-update.dostech.net
70_sare_oem.cf.sare.sa-update.dostech.net
70_sare_genlsubj0.cf.sare.sa-update.dostech.net
70_sare_genlsubj_eng.cf.sare.sa-update.dostech.net
70_sare_unsub.cf.sare.sa-update.dostech.net
70_sare_uri0.cf.sare.sa-update.dostech.net
70_sare_obfu0.cf.sare.sa-update.dostech.net
70_sare_stocks.cf.sare.sa-update.dostech.net更新スクリプト/usr/local/bin/update-saを作成します。
#!/bin/bash
#
#
sa-update -D --channelfile /etc/mail/spamassassin/sare-sa-update-channels.txt --gpgkey 856AA88A実行可能にし、cronに追加します。
chmod +x /usr/local/bin/update-sa
ln -s /usr/local/bin/update-sa /etc/cron.daily/
ln -s /usr/local/bin/update-sa /etc/cron.hourly新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。