| トップ | Solaris | FreeBSD | Gentoo | CentOS | Fedora | Windows | Tips | 自宅サーバの動作確認 | サイト内検索(Namazu) | サイト内検索(HE) |
ウィルス対策として、「Clam AV」を導入します。
また、「Postfix」と「Clam AV」を連携させる為に「amavisd-new」も導入します。
ただ、「Fedora Core 4」と「Fedora Core 5」では若干導入方法を変えています。
「Fedora Core 4」ではDriesから、「Fedora Core 5」ではExtrasから導入しています。
なお、ここではスパム対策も行っていますが、その場合「SpamAssassin」も導入する必要があります。
「SpamAssassin」の設定方法はこちらを参照して下さい。
上記のリンク先では「Procmail」との連携を記述していますが、「SpamAssassin」の設定のみで構いません。
[root@Fedora ~]# yum -y install clamav-server <= 「Clam AV」のインストール [root@Fedora ~]# yum clean packages <= ダウンロードしたパッケージの削除 |
「Fedora Core 4」ではウィルス定義ファイルを自動更新する「freshclam」も同時にインストールされます。
[root@Fedora ~]# vi /etc/clamd.conf <= 設定ファイルの編集 #LocalSocket /var/run/clamav/clamd.sock ↓ LocalSocket /var/run/clamav/clamd.sock <= コメント解除 TCPSocket 3310 ↓ #TCPSocket 3310 <= コメントアウト |
「Clam AV」の起動
[root@Fedora ~]# /etc/rc.d/init.d/clamd start <= 「Clam AV」の起動 |
「Clam AV」の自動起動
Fedoraを起動する際に自動的に「Clam AV」を起動するようにします。
[root@Fedora ~]# chkconfig clamd on |
「freshclam」の起動
[root@Fedora ~]# /etc/rc.d/init.d/freshclam start <= 「freshclam」の起動 |
「freshclam」の自動起動
Fedoraを起動する際に自動的に「freshclam」を起動するようにします。
[root@Fedora ~]# chkconfig freshclam on |
「Fedora Core 4」の場合
dries用リポジトリの作成
[root@Fedora ~]# vi /etc/yum.repos.d/dries.repo <= dries用リポジトリの作成 [dries] name=Extra Fedora rpms dries - $releasever - $basearch baseurl=http://ftp.belnet.be/packages/dries.ulyssis.org/fedora/linux/$releasever/$basearch/dries/RPMS/ gpgcheck=1 gpgkey=http://dries.ulyssis.org/rpm/RPM-GPG-KEY.dries.txt |
リポジトリ設定ファイルのインストール
[root@Fedora ~]# wget http://crash.fce.vutbr.cz/crash-hat.repo <= リポジトリ設定ファイルのダウンロード [root@Fedora ~]# mv crash-hat.repo /etc/yum.repos.d/ <= リポジトリ設定ファイルを所定のディレクトリへ移動 |
「amavisd-new」のインストール
[root@Fedora ~]# yum -y install amavisd-new <= 「amavisd-new」のインストール [root@Fedora ~]# yum clean packages <= ダウンロードしたパッケージの削除 |
なお、ここで
Error: Missing Dependency: /etc/clamd.d is needed by package amavisd-new
というエラーメッセージが表示された場合、Fedora ExtrasとDriesの違いにより依存関係が解決されないことが原因です。
ここでは、Driesリポジトリの「amavised-new」を使うよう、以下のようにします。
[root@Fedora ~]# vi /etc/yum.repos.d/fedora-extras.repo <= 設定ファイルの編集 exclude=amavisd-new* <= 最終行に追加 |
上記の設定後、「amavisd-new」をインストールします。
「Fedora Core 5」の場合
「Fedora Core 5」であれば、yumを利用してインストールします。
[root@Fedora ~]# yum -y install amavisd-new <= 「amavisd-new」のインストール [root@Fedora ~]# yum clean packages <= ダウンロードしたパッケージの削除 |
「amavisd-new」の設定
「Fedora Core 4」と「Fedora Core 5」では設定ファイルの変更前の内容が若干違いますが、変更後の設定にすれば構いません。
なお、sockファイルのパスの設定は「Clam AV」の設定と合わせますが、
「Fedora Core 4」では当ページの上記の設定ファイルと、
「Fedora Core 5」では /etc/clamd.d/amavisd.conf に設定ファイルがありますので、この設定ファイルと合わせます。
また、ここではスパム対策も記述していますが、その場合「SpamAssassin」も導入する必要があります。
「amavisd-new」と連携させずに「SpamAssassin」を利用する場合、あるいはスパム対策を行わない場合、以下の設定の
@bypass_spam_checks_maps = (1);
の部分のコメント解除を行って下さい。
その場合、その他のスパムのみに関連する記述は行わなくて構いません。
なお、「SpamAssassin」を「Procmail」と連携させて利用する場合はこちらを参照して下さい。
[root@Fedora ~]# vi /etc/amavisd/amavisd.conf <= 設定ファイルの編集(「Fedora Core 5」の場合)
[root@Fedora ~]# vi /etc/amavisd.conf <= 設定ファイルの編集(「Fedora Core 4」の場合)
# @bypass_spam_checks_maps = (1); # controls running of anti-spam code
↓
@bypass_spam_checks_maps = (1); # controls running of anti-spam code <= 「SpamAssassin」と連携させない場合、コメント解除
$mydomain = 'example.com'; # a convenient default for other settings
↓
$mydomain = 'crimson-snow.net'; # a convenient default for other settings <= ドメインを指定
$QUARANTINEDIR = undef; # -Q
↓
$QUARANTINEDIR = "/var/virusmails"; # -Q <= ウィルス等と判断したメールを隔離するディレクトリ
スパムメール判定の閾値を決める(詳細は後述)
$sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 6.2; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 6.9; # triggers spam evasive actions (e.g. blocks mail)
$sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent
# $sa_quarantine_cutoff_level = 25; # spam level beyond which quarantine is off
ここまで
$sa_mail_body_size_limit = 400*1024; # don't waste time on SA if mail is larger <= スパム判定をするメール本文の最大長を指定
$virus_admin = "virusalert\@$mydomain"; # notifications recip.
↓
$virus_admin = "root\@$mydomain"; # notifications recip. <= ウィルス検出時の通知先アドレスを指定
$sa_spam_subject_tag1 = '***possible SPAM*** ' <= スパムと判断したメール($sa_tag_level_deflt以上のスコア)の件名に付ける文字列
$sa_spam_subject_tag = '***SPAM*** '; <= スパムと断定したメール($sa_tag2_level_deflt以上のスコア)の件名に付ける文字列
# $myhostname = 'host.example.com'; # must be a fully-qualified domain name!
↓
$myhostname = 'Fedora.crimson-snow.net'; # must be a fully-qualified domain name! <= ホスト名を記述
$spam_admin = "root\@$mydomain"; <= 追加(スパム検出時の通知先アドレスを指定)
$hdr_encoding = 'iso-2022-jp'; <= 追加(ヘッダの文字コードをJISに指定)
$bdy_encoding = 'iso-2022-jp'; <= 追加(ボディの文字コードをJISに指定)
# $notify_method = 'smtp:[127.0.0.1]:10025';
# $forward_method = 'smtp:[127.0.0.1]:10025'; # set to undef with milter!
↓
$notify_method = 'smtp:[127.0.0.1]:10025'; <= コメント解除
$forward_method = 'smtp:[127.0.0.1]:10025'; # set to undef with milter! <= コメント解除
以下の設定を追加し、ウィルスやスパムの処理を決める(詳細は後述)
$final_virus_destiny = D_DISCARD;
$final_banned_destiny = D_BOUNCE;
$final_spam_destiny = D_PASS;
$final_bad_header_destiny = D_PASS;
$warnvirussender = 0;
$warnspamsender = 0;
$warnbannedsender = 0;
$warnbadhsender = 0;
ここまで
「Clam AV」に関する部分のコメントを解除し、sockファイルを「Clam AV」の設定と合わせる
# ### http://www.clamav.net/
# ['ClamAV-clamd',
# \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd"],
# qr/\bOK$/, qr/\bFOUND$/,
# qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
# # NOTE: the easiest is to run clamd under the same user as amavisd; match the
# # socket name (LocalSocket) in clamav.conf to the socket name in this entry
# # When running chrooted one may prefer: ["CONTSCAN {}\n","$MYHOME/clamd"],
↓
### http://www.clamav.net/
['ClamAV-clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"], <= sockファイルを指定(「Fedora Core 4」の場合)
\&ask_daemon, ["CONTSCAN {}\n", "/var/spool/amavisd/clamd.sock"], <= sockファイルを指定(「Fedora Core 5」の場合)
qr/\bOK$/, qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
# NOTE: the easiest is to run clamd under the same user as amavisd; match the
# socket name (LocalSocket) in clamav.conf to the socket name in this entry
# When running chrooted one may prefer: ["CONTSCAN {}\n","$MYHOME/clamd"],
|
ウィルス、スパムメール検出の設定
「SpamAssassin」でスパムメールと判断する閾値を以下のように設定することが出来ます。
| 設定変数 | 説明 |
|---|---|
| $sa_tag_level_deflt | スパムと判断したメールのヘッダに「X-Spam-Level」と「X-Spam-Status」ヘッダを付与する。 |
| $sa_tag2_level_deflt | スパムと断定したメールのヘッダに「X-Spam-Flag: YES」を付与する。 |
| $sa_kill_level_deflt | スパムと断定したときのアクションを実行する。 |
| $sa_dsn_cutoff_level | メールを配送しない。 その為、そのメールを確認するには隔離したディレクトリから探すことになる。 |
| $sa_quarantine_cutoff_level | 隔離すら行わず、メールを削除する。 この設定しない方が良いと思う。 |
ウィルス、スパムメールを検出した場合の通知を以下のように設定することが出来ます。
| 設定変数 | 説明 |
|---|---|
| $final_virus_destiny | ウィルスメールの最終的な処理方法。 |
| $final_banned_destiny | banned(禁止された)メールの最終的な処理方法。 |
| $final_spam_destiny | スパムメール($sa_kill_level_deflt以上のスコア)の最終的な処理方法。 |
| $final_bad_header_destiny | ヘッダにASCII以外の文字が含まれているメール(Bad Header)の最終的な処理方法。 |
上記の項目の設定値には以下のものがあります。
| 設定値 | 説明 |
|---|---|
| D_DISCARD | メールは受信者に配送せず、送信者にも通知しない。 |
| D_BOUNCE | メールは受信者には配送されないが、配送されなかったことを送信者に通知する。 ただし、例外的に送信者に通知しないものがある。 |
| D_REJECT | メールは受信者には配送されないが、配送されなかったことを送信者に通知する。 |
| D_PASS | メールは配送される。 |
設定値に D_PASS を指定した場合に、ウィルスやスパムメールを受け取った場合、警告するかどうかを以下のように設定出来ます。
なお、有効にする場合は「1」を指定し、無効にする場合は「0」を指定します。
| 設定変数 | 説明 |
|---|---|
| $warnvirussender | ウィルス送信者に通知するかどうか。 |
| $warnspamsender | スパム送信者に通知するかどうか。 |
| $warnbannedsender | 禁止メールの場合、送信者に通知するかどうか。 |
| $warnbadhsender | ヘッダにASCII文字以外のものが含まれているメールの場合、送信者に通知するかどうか。 |
「Clam AV」の設定
ウィルス等と判断したメールを隔離するディレクトリを指定しましたので、ディレクトリを作成します。
また、ディレクトリのオーナを「amavisd-new」の実行ユーザに変更します。
[root@Fedora ~]# mkdir /var/virusmails <= ディレクトリの作成 [root@Fedora ~]# chown amavis:amavis /var/virusmails <= オーナの変更 |
「Clam AV」の設定
「amavisd-new」と「Clam AV」の実行ユーザを同じにする必要がある為、再び「Clam AV」を設定し、「Clam AV」の実行ユーザを変更します。
また、ディレクトリのオーナを「amavisd-new」の実行ユーザに変更します。
[root@Fedora ~]# vi /etc/clamd.d/amavisd.conf <= 設定ファイルの編集(「Fedora Core 5」の場合) [root@Fedora ~]# vi /etc/clamd.conf <= 設定ファイルの編集(「Fedora Core 4」の場合) User clamav ↓ User amavis <= 「amavisd-new」の実行ユーザに合わせる [root@Fedora ~]# chown amavis:amavis /var/spool/amavisd <= オーナの変更(「Fedora Core 5」の場合) [root@Fedora ~]# chown amavis:amavis /var/run/clamav <= オーナの変更(「Fedora Core 4」の場合) |
「clamd.amavisd」の起動(「Fedora Core 5」の場合のみ)
「Fedora Core 5」では、ここで「clamd.amavisd」を起動します。
[root@Fedora ~]# /etc/rc.d/init.d/clamd.amavisd start <= 「clamd.amavisd」の起動 |
「clamd.amavisd」の自動起動(「Fedora Core 5」の場合のみ)
Fedoraを起動する際に自動的に「clamd.amavisd」を起動するようにします。
[root@Fedora ~]# chkconfig clamd.amavisd on |
「amavisd-new」の起動
[root@Fedora ~]# /etc/rc.d/init.d/amavisd start <= 「amavisd-new」の起動 |
「amavisd-new」の自動起動
Fedoraを起動する際に自動的に「amavisd-new」を起動するようにします。
[root@Fedora ~]# chkconfig amavisd on |
main.cfの設定
[root@Fedora ~]# vi /etc/postfix/main.cf <= 設定ファイルの編集 content_filter = smtp-amavis:[127.0.0.1]:10024 <= 追加 |
master.cfの設定
[root@Fedora ~]# vi /etc/postfix/master.cf <= 設定ファイルの編集 以下を追加( -o の前の空白はTABにする必要あり) smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o disable_dns_lookups=yes 127.0.0.1:10025 inet n - n - - smtpd -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,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes |
設定ファイルを再読み込みし、設定を反映させます。
[root@Fedora ~]# /etc/rc.d/init.d/postfix reload |