ページへ戻る
印刷
SPAM対策とウィルスチェックで悩む
をテンプレートにして作成 ::
Nest Of Hawk
xpwiki
:SPAM対策とウィルスチェックで悩む をテンプレートにして作成
開始行:
[[Gentoo Linuxな生活/サーバ設定関連]]
*SPAMとウィルスメール
はっきり言って迷惑この上ないこの2つ。なんとか撃退できない...
*ウィルスチェックソフト
ウィルスチェックも結構個人利用に関しては便利なものがあり...
-[[H+BEDV:http://www.hbedv.com/download/download.htm]]
-[[Clam AntiVirus:http://sourceforge.net/projects/clamav/]]
ほかにもあるのですが、一応この2つに着目してみました。H+BE...
Clam AntiVirusはGPLライセンスなフリーのウィルススキャンソ...
**インストール
# emerge clamav
**設定
# rc-update add clamd default
意外に簡単でした♪
*SPAM対策
SPAM対策については、spamassassinという便利なツールがあり...
-SPAMパターンの登録ができること
-サーバに問い合わせ最新SPAMパターンと比較できること
-ベイズフィルタという学習フィルタを持っていて、後でSPAMと...
-様々なプラグインが用意されていること
いや、至れりつくせりですね。
また、最近は他の手段もあり、
:greylisting|whitlist(信頼できるホストの一覧)、blacklist(...
:SPF(Sender Policy Framework)|DNSのTXTフィールドに、ある...
いろいろと対抗策が増えているんですね~。ちょっと設定に凝っ...
*postfixとの連動
Postfixは、いろいろと便利な機能を持っており、content_filt...
-ウィルス対策
--content_filterに直接AntiVirusソフトを導入してやる。
--AMaViSというフロントエンドを導入してやる。
-SPAM対策
--Procmail+spamassassin
--Postfixと直接spamassasin
チョイスポイントが何かが重要です。
-ウィルス対策にAMaViSをフロントエンドで導入してあげると、...
-SPAM対策では、Procmail&spamassassinだと、各ユーザサイド...
といえます。
#ref(mail.JPG,left,around);
で、私は何を選んだか。AMaViSフロントエンド導入&Postfixと...
#img(,clear);
*AMaViS導入
AMaViSとは、ちょっと触れましたが、ウィルススキャンソフト...
:AMaViS-perl|perlフロントエンド。コマンドライン実行される
:AMaViS-new|perlフロントエンドだが、Daemon実行される。Ant...
:AMaViS-ng|AMaViS-perlの機能拡張版。
なんでこう亜流がいっぱいあるかなぁ。調べた情報がいい加減...
-Portageにあった
-上に書いた運用方針に一致した
というわけで。
**AMaViS-newインストール
emerge -b amavis-new
一発。便利なことに、これをやるとspamassassinもインストー...
**AMaViS-newの設定
/etc/amavisd.confを開きます。で、コメントを参考にせこせこ...
$mydomain = 'example.jp'; ←自分のドメインに変更
#検知されたメールの最終行き先
# D_DISCARD:メールは送信されず、送信者に通知もしない
# D_REJECT:メールは送信されず、送信者に送り返される
# D_BOUNCE;メールは送信されず、送信者に通知を入れる
# D_PASS:メールを通常に送信する
$final_virus_destiny = D_DISCARD;
$final_banned_destiny = D_DISCARD;
$final_spam_destiny = D_PASS;
$final_bad_header_destiny = D_PASS;
#ウィルススキャナーの設定。いろいろ書いてあるので、使うA...
#コメントアウトすればいい
@av_scanners = (
# ### http://www.clamav.net/
['ClamAV-clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd...
qr/\bOK$/, qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
と、こんなもん。で、AMaViSdを起動します。
/etc/init.d/amavisd start
**Postfixとの連動設定
次はPostfixとの連動です。まず、main.cfに以下の行を追加。
# Setting for Virus filter
content_filter = smtp-amavis:[127.0.0.1]:10024
さらにmaster.cfに以下の行を追加
smtp-amavis unix - - n - 2 ...
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - n - ...
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,rej...
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
で、Postfixを再起動します。
/etc/init.d/postfix reload
*では、実験!
まず、テストSPAMメールを食わせてみます。送られてきたSPAM...
Return-Path: <norply@hotmail.com>
.
.
.
X-Spam-Status: Yes, hits=15.6 tagged_above=3.0 required=...
tests=ACT_NOW_CAPS, DOMAIN_4U2, EARNINGS, FORGED_HOTM...
FORGED_MUA_OUTLOOK, FORGED_OUTLOOK_TAGS, HTML_70_80,...
HTML_FONTCOLOR_GREEN, HTML_FONTCOLOR_RED, HTML_FONTC...
HTML_FONTCOLOR_UNSAFE, HTML_FONT_BIG, HTML_FONT_INVI...
HTML_MIME_NO_HTML_TAG, HTML_TAG_BALANCE_BODY, HTML_T...
MIME_HTML_ONLY, THIS_AINT_SPAM, X_MSMAIL_PRIORITY_HI...
X-Spam-Level: ***************
X-Spam-Flag: YES
と、ヘッダにSpamチェックが入ります。これを振り分けルール...
*SpamAssassinの設定
以下は、設定変更行ったら、amavisd_newを再起動するのを忘れ...
**ベイズフィルタの学習
先ほど、SpamAssassinには自動学習機能があるといいました。...
さて、2021年に、ベイズフィルタのオプションに、berkdbが使...
なので、MySQL(MariaDB)に学習データを保存するように設定し...
***DBを作る
MariaDBが起動していると仮定して、以下を設定します。
# cp /usr/share/doc/spamassassin-3.4.5/bayes_mysql.sql.b...
# cd ~
# bunzip2 bayes_mysql.sql.bz2
# mysql -u root -p
mysql> CREATE DATABASE sa_bayes;
mysql> USE sa_bayes;
mysql> SOURCE bayes_mysql.sql;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON sa_bayes....
mysql> FLUSH PRIVILEGES;
***SpamAssassin側の設定
/etc/mail/spamassassin/local.cfを、以下の設定を変更(また...
use_bayes 1
bayes_auto_learn 1
bayes_auto_expire 1
bayes_store_module Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn DBI:mysql:sa_bayes:127.0.0.1:3306
bayes_sql_username 'DBアクセスユーザー名'
bayes_sql_password 'DBアクセスパスワード'
これで受信時の自動学習及びベイズフィルタの使用を定義。ア...
HOME=/var/amavis
find /var/spool/imap -type d -name SPAM -exec /usr/bin/s...
というわけで、imapフォルダ下にあるSPAMって名前のフォルダ...
さらに、
sa-learn - username=amavis --ham <SPAMでないメールがある...
と指定すると、SPAMでないメールも学習してくださいます。
**sa-updateの設定
もともとspamassassinは、バージョンアップ毎に更新したルー...
まず、sa-updateを使用するのに、GPGのキーファイルを作成し...
26C900A46DD40CD5AD24F6D7DEE01987265FA05B
5244EC45
こんな中身のファイルを作ってやります。テキストでそのまん...
/usr/bin/sa-update --gpgkeyfile /foo/var.keys
これで、/var/lib/spamassassin配下に、定期的にアップデート...
**DCCの設定
手元にあるSPAMだけだと、パターン数が少なすぎて、すべてを...
***DCCDのインストール
まず/etc/portage/package.keywordsに mail-filter/dcc を追...
# emerge dcc
/etc/dcc/dcc_confを編集いたします。以下に特に注意して。
DCCD_ENABLE=off
DCCIFD_ENABLE=on
さらに、/etc/init.d/dccにバグがあるので、以下を編集してや...
if [[ "${DCCIFD}" != "on" ]]
↓
if [[ "${DCCIFD_ENABLE}" != "on" ]]
で、DCCを起動してやってください。
# rc-update add dcc default
# /etc/init.d/dcc start
次に、/etc/spamassassin/v310.preを編集します。
# loadplugin Mail::SpamAssassin::Plugin::DCC
↓
loadplugin Mail::SpamAssassin::Plugin::DCC
コメントを外してやる
そして、/etc/spamassassin/local.cfに、以下を追加してやっ...
# DCC Configuration
use_dcc 1
dcc_home /var/dcc
dcc_path /usr/bin/dccproc
add_header all DCC _DCCB_: _DCCR_
以上でっす
**SPFの設定
spamassassinにSPFを設定するのは楽ちんです。/etc/spamassas...
# SPF - perform SPF verification.
#
#loadplugin Mail::SpamAssassin::Plugin::SPF
↓
loadplugin Mail::SpamAssassin::Plugin::SPF
コメントを外す
以上でっす。
* Postfix側の設定
spamassassinだけでは、受信したメールをSPAMと分類するだけ...
**Postgrey
***インストール
# emerge postgrey
***設定
/etc/conf.d/postgreyに、設定を追加いたします。重要なのは...
# 初受信のサーバを、何秒受信拒否するか。デフォルトは5分
POSTGREY_DELAY=300
# postgreyへのオプション指定。--max-ageは、受信許容した...
POSTGREY_OPTS="--max-age=30"
そしてpostgreyを起動してやります。
# rc-update add postgrey default
# /etc/init.d/postgrey start
で、最後にpostfixの設定。/etc/postfix/main.cfに以下の設定...
smtpd_recipient_restrictions = permit_mynetworks,permit_...
reject_unauth_destination,check_policy_service inet...
後ろにある、check_policy_service inet:127.0.0.1:10030が重...
# /etc/init.d/postfix reload
**バックアップサーバ側の設定
今までは、メインサーバのpostfixがダウンしてしまった場合、...
しかし、もしもメインサーバがダウンした場合、外部から送信...
メインサーバのpostfixとの設定の違いは
-受信したら、自分のドメインに該当するメールアドレスのみ、...
-上記の設定なので、amavisに転送する設定は行わない
その他の設定(SMTP-AUTH/postgrey)は有効としておきます。こ...
transport_maps = hash:/etc/postfix/transport
さらに、/etc/postfix/transportというファイルを作り、ドメ...
example.net smtp:[XXX.XXX.XXX.XXX]
.example.net smtp:mail.server
example.netは、MXレコードを引かずに([]を付けるとMXレコー...
# postmap transport
を実行して、ハッシュマップを作ります。最後に
# /etc/init.d/postfix reload
で完成。
ちなみに、このバックアップサーバは、メールを受信したらキ...
*結果
劇的にSPAMメールが減りました!それまでは1日に300~400通近...
終了行:
[[Gentoo Linuxな生活/サーバ設定関連]]
*SPAMとウィルスメール
はっきり言って迷惑この上ないこの2つ。なんとか撃退できない...
*ウィルスチェックソフト
ウィルスチェックも結構個人利用に関しては便利なものがあり...
-[[H+BEDV:http://www.hbedv.com/download/download.htm]]
-[[Clam AntiVirus:http://sourceforge.net/projects/clamav/]]
ほかにもあるのですが、一応この2つに着目してみました。H+BE...
Clam AntiVirusはGPLライセンスなフリーのウィルススキャンソ...
**インストール
# emerge clamav
**設定
# rc-update add clamd default
意外に簡単でした♪
*SPAM対策
SPAM対策については、spamassassinという便利なツールがあり...
-SPAMパターンの登録ができること
-サーバに問い合わせ最新SPAMパターンと比較できること
-ベイズフィルタという学習フィルタを持っていて、後でSPAMと...
-様々なプラグインが用意されていること
いや、至れりつくせりですね。
また、最近は他の手段もあり、
:greylisting|whitlist(信頼できるホストの一覧)、blacklist(...
:SPF(Sender Policy Framework)|DNSのTXTフィールドに、ある...
いろいろと対抗策が増えているんですね~。ちょっと設定に凝っ...
*postfixとの連動
Postfixは、いろいろと便利な機能を持っており、content_filt...
-ウィルス対策
--content_filterに直接AntiVirusソフトを導入してやる。
--AMaViSというフロントエンドを導入してやる。
-SPAM対策
--Procmail+spamassassin
--Postfixと直接spamassasin
チョイスポイントが何かが重要です。
-ウィルス対策にAMaViSをフロントエンドで導入してあげると、...
-SPAM対策では、Procmail&spamassassinだと、各ユーザサイド...
といえます。
#ref(mail.JPG,left,around);
で、私は何を選んだか。AMaViSフロントエンド導入&Postfixと...
#img(,clear);
*AMaViS導入
AMaViSとは、ちょっと触れましたが、ウィルススキャンソフト...
:AMaViS-perl|perlフロントエンド。コマンドライン実行される
:AMaViS-new|perlフロントエンドだが、Daemon実行される。Ant...
:AMaViS-ng|AMaViS-perlの機能拡張版。
なんでこう亜流がいっぱいあるかなぁ。調べた情報がいい加減...
-Portageにあった
-上に書いた運用方針に一致した
というわけで。
**AMaViS-newインストール
emerge -b amavis-new
一発。便利なことに、これをやるとspamassassinもインストー...
**AMaViS-newの設定
/etc/amavisd.confを開きます。で、コメントを参考にせこせこ...
$mydomain = 'example.jp'; ←自分のドメインに変更
#検知されたメールの最終行き先
# D_DISCARD:メールは送信されず、送信者に通知もしない
# D_REJECT:メールは送信されず、送信者に送り返される
# D_BOUNCE;メールは送信されず、送信者に通知を入れる
# D_PASS:メールを通常に送信する
$final_virus_destiny = D_DISCARD;
$final_banned_destiny = D_DISCARD;
$final_spam_destiny = D_PASS;
$final_bad_header_destiny = D_PASS;
#ウィルススキャナーの設定。いろいろ書いてあるので、使うA...
#コメントアウトすればいい
@av_scanners = (
# ### http://www.clamav.net/
['ClamAV-clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd...
qr/\bOK$/, qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
と、こんなもん。で、AMaViSdを起動します。
/etc/init.d/amavisd start
**Postfixとの連動設定
次はPostfixとの連動です。まず、main.cfに以下の行を追加。
# Setting for Virus filter
content_filter = smtp-amavis:[127.0.0.1]:10024
さらにmaster.cfに以下の行を追加
smtp-amavis unix - - n - 2 ...
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - n - ...
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,rej...
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
で、Postfixを再起動します。
/etc/init.d/postfix reload
*では、実験!
まず、テストSPAMメールを食わせてみます。送られてきたSPAM...
Return-Path: <norply@hotmail.com>
.
.
.
X-Spam-Status: Yes, hits=15.6 tagged_above=3.0 required=...
tests=ACT_NOW_CAPS, DOMAIN_4U2, EARNINGS, FORGED_HOTM...
FORGED_MUA_OUTLOOK, FORGED_OUTLOOK_TAGS, HTML_70_80,...
HTML_FONTCOLOR_GREEN, HTML_FONTCOLOR_RED, HTML_FONTC...
HTML_FONTCOLOR_UNSAFE, HTML_FONT_BIG, HTML_FONT_INVI...
HTML_MIME_NO_HTML_TAG, HTML_TAG_BALANCE_BODY, HTML_T...
MIME_HTML_ONLY, THIS_AINT_SPAM, X_MSMAIL_PRIORITY_HI...
X-Spam-Level: ***************
X-Spam-Flag: YES
と、ヘッダにSpamチェックが入ります。これを振り分けルール...
*SpamAssassinの設定
以下は、設定変更行ったら、amavisd_newを再起動するのを忘れ...
**ベイズフィルタの学習
先ほど、SpamAssassinには自動学習機能があるといいました。...
さて、2021年に、ベイズフィルタのオプションに、berkdbが使...
なので、MySQL(MariaDB)に学習データを保存するように設定し...
***DBを作る
MariaDBが起動していると仮定して、以下を設定します。
# cp /usr/share/doc/spamassassin-3.4.5/bayes_mysql.sql.b...
# cd ~
# bunzip2 bayes_mysql.sql.bz2
# mysql -u root -p
mysql> CREATE DATABASE sa_bayes;
mysql> USE sa_bayes;
mysql> SOURCE bayes_mysql.sql;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON sa_bayes....
mysql> FLUSH PRIVILEGES;
***SpamAssassin側の設定
/etc/mail/spamassassin/local.cfを、以下の設定を変更(また...
use_bayes 1
bayes_auto_learn 1
bayes_auto_expire 1
bayes_store_module Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn DBI:mysql:sa_bayes:127.0.0.1:3306
bayes_sql_username 'DBアクセスユーザー名'
bayes_sql_password 'DBアクセスパスワード'
これで受信時の自動学習及びベイズフィルタの使用を定義。ア...
HOME=/var/amavis
find /var/spool/imap -type d -name SPAM -exec /usr/bin/s...
というわけで、imapフォルダ下にあるSPAMって名前のフォルダ...
さらに、
sa-learn - username=amavis --ham <SPAMでないメールがある...
と指定すると、SPAMでないメールも学習してくださいます。
**sa-updateの設定
もともとspamassassinは、バージョンアップ毎に更新したルー...
まず、sa-updateを使用するのに、GPGのキーファイルを作成し...
26C900A46DD40CD5AD24F6D7DEE01987265FA05B
5244EC45
こんな中身のファイルを作ってやります。テキストでそのまん...
/usr/bin/sa-update --gpgkeyfile /foo/var.keys
これで、/var/lib/spamassassin配下に、定期的にアップデート...
**DCCの設定
手元にあるSPAMだけだと、パターン数が少なすぎて、すべてを...
***DCCDのインストール
まず/etc/portage/package.keywordsに mail-filter/dcc を追...
# emerge dcc
/etc/dcc/dcc_confを編集いたします。以下に特に注意して。
DCCD_ENABLE=off
DCCIFD_ENABLE=on
さらに、/etc/init.d/dccにバグがあるので、以下を編集してや...
if [[ "${DCCIFD}" != "on" ]]
↓
if [[ "${DCCIFD_ENABLE}" != "on" ]]
で、DCCを起動してやってください。
# rc-update add dcc default
# /etc/init.d/dcc start
次に、/etc/spamassassin/v310.preを編集します。
# loadplugin Mail::SpamAssassin::Plugin::DCC
↓
loadplugin Mail::SpamAssassin::Plugin::DCC
コメントを外してやる
そして、/etc/spamassassin/local.cfに、以下を追加してやっ...
# DCC Configuration
use_dcc 1
dcc_home /var/dcc
dcc_path /usr/bin/dccproc
add_header all DCC _DCCB_: _DCCR_
以上でっす
**SPFの設定
spamassassinにSPFを設定するのは楽ちんです。/etc/spamassas...
# SPF - perform SPF verification.
#
#loadplugin Mail::SpamAssassin::Plugin::SPF
↓
loadplugin Mail::SpamAssassin::Plugin::SPF
コメントを外す
以上でっす。
* Postfix側の設定
spamassassinだけでは、受信したメールをSPAMと分類するだけ...
**Postgrey
***インストール
# emerge postgrey
***設定
/etc/conf.d/postgreyに、設定を追加いたします。重要なのは...
# 初受信のサーバを、何秒受信拒否するか。デフォルトは5分
POSTGREY_DELAY=300
# postgreyへのオプション指定。--max-ageは、受信許容した...
POSTGREY_OPTS="--max-age=30"
そしてpostgreyを起動してやります。
# rc-update add postgrey default
# /etc/init.d/postgrey start
で、最後にpostfixの設定。/etc/postfix/main.cfに以下の設定...
smtpd_recipient_restrictions = permit_mynetworks,permit_...
reject_unauth_destination,check_policy_service inet...
後ろにある、check_policy_service inet:127.0.0.1:10030が重...
# /etc/init.d/postfix reload
**バックアップサーバ側の設定
今までは、メインサーバのpostfixがダウンしてしまった場合、...
しかし、もしもメインサーバがダウンした場合、外部から送信...
メインサーバのpostfixとの設定の違いは
-受信したら、自分のドメインに該当するメールアドレスのみ、...
-上記の設定なので、amavisに転送する設定は行わない
その他の設定(SMTP-AUTH/postgrey)は有効としておきます。こ...
transport_maps = hash:/etc/postfix/transport
さらに、/etc/postfix/transportというファイルを作り、ドメ...
example.net smtp:[XXX.XXX.XXX.XXX]
.example.net smtp:mail.server
example.netは、MXレコードを引かずに([]を付けるとMXレコー...
# postmap transport
を実行して、ハッシュマップを作ります。最後に
# /etc/init.d/postfix reload
で完成。
ちなみに、このバックアップサーバは、メールを受信したらキ...
*結果
劇的にSPAMメールが減りました!それまでは1日に300~400通近...
ページ名: