web-dev-qa-db-ja.com

Spamassassin:DNSBLを照会するために/etc/resolv.conf DNSをバイパスしますか?

質問
spamassassinがLinuxシステムのDNSサーバーをバイパスしてDNSBLにクエリを実行できるようにする方法はありますか?

背景情報
サーバーがメールを受信すると、spamassassinによってチェックされます。このチェックの1つは、DNSブラックリストで関連するメールサーバーを検索します。残念ながら、私のプロバイダーのDNSは、これらのBLを照会することを許可されていません。これは、私が受信するすべての電子メールのspamassassinのヘッダー情報URIBL_BLOCKEDによって示されます。私もこれを手動でテストしました:

root@net:# Dig 2.0.0.127.multi.uribl.com txt +short
"127.0.0.1 -> Query Refused. See http://uribl.com/refused.shtml for more information [Your DNS IP: 123.123.123.123]"

123.123.123.123は私の/etc/resolv.confでDNSとして構成されています。)

プロバイダーのリカーサーを使用せずに、ネームサーバーの1つを手動でクエリすると直接(@ cc.uribl.comを参照)、私は答えを得る:

root@net:# Dig 2.0.0.127.multi.uribl.com txt @cc.uribl.com. +short
permanent testpoint

(これは、この結果を与えることになっているそのBLのテストクエリであることに注意してください)

概要
では、このシステムにdns recursorをインストールする以外に、spamassassinがdnsblクエリにシステムのデフォルトのdnsを使用しないようにする方法はありますか?

[〜#〜] update [〜#〜]
わかりました。実際には、ローカルのDNSリカーサーをインストールしても問題はありません。軽量でセットアップが簡単で、BLの問題はもうありません。

4
geruetzel

Spamassassin( Mail :: SpamAssassin :: DnsResolver )は Net :: DNS :: Resolver Perlモジュールを使用します。
spamassassinが使用するネームサーバーを RES_NAMESERVERS 環境変数。

4
AnFi

古いバージョンの Spamassassinのドキュメント から「DNSBLクエリの転送を無効にする」に従って、ラップトップにBINDNamedを設定しました。 /etc/resolv.confが127.0.0.1を指す必要があります。

しかし、私はこれを置くことによってのみ機能させることができました

static domain_name_servers=127.0.0.1

/etc/dhcpcd.confの終わりに。次に、/etc/resolv.conf通常である値を/etc/named.confforwarders { 192.168.1.1; })にコピーする必要がありました。これは、ラップトップを別の場所に持っていくまではうまく機能しました。新しいDHCPサーバーに接続した後、Namedを古いローカルアドレスにポイントしていたため、DNSが機能していないことに驚かされました。

私の意見では、ローカルのNamedを使用してonlySpamassassinを使用することで、この問題を回避する方がはるかに優れています。そこで、元のdhcpcd.confを復元し、Spamassassinを127.0.0.1にポイントしました。これは、次の2つの方法のいずれかで実行できます。

AnFiの回答に従って、環境を変更できます。サービスファイル内/etc/systemd/system/spamassassin.service

[Service]
Environment="RES_NAMESERVERS=127.0.0.1"
...

ただし、上記のドキュメントによると、これはSpamassassinの構成ファイルlocal.cfで構成することもできます。これはおそらくもっとエレガントです:

dns_server 127.0.0.1
0
Metamorphic