Spam管理 · 8 min read · Dec 25, 2025
完璧なSpamSnake - Ubuntu Jeos 10.10 Maverick Meerkat - ページ 3
8. Baruwa
カスタムbaruwa debパッケージをダウンロード:
cd /usr/src
wget baruwa_1.0.1-2sn_all.deb 更新 021811
wget baruwa-doc_1.0.1-2_all.deb
gdebi baruwa*.debBaruwaスクリプトで使用されるアクセスユーザー名とパスワードを含む、ログ用のbaruwa dbのセットアップを促されます。また、Baruwaフロントエンドの管理ユーザー情報のセットアップも促されます。
vi /usr/share/pyshared/baruwa/settings.pyクアランティンのhosturlを好みに合わせて変更:
QUARANTINE_REPORT_HOSTURL = 'http://baruwa-alpha.local'vi /opt/MailScanner/etc/MailScanner.conf次のオプションが設定されていることを確認する必要があります:
Always Looked Up Last = &BaruwaSQL
Is Definitely Not Spam = &BaruwaWhitelist
Is Definitely Spam = &BaruwaBlacklist
Required SpamAssassin Score = &BaruwaLowScore
High SpamAssassin Score = &BaruwaHighScore Baruwaのアップグレード
*注: このセクションは、古いバージョンのBaruwaを実行している人のためのものです。新規インストールを行っている場合はスキップしてください。
最新のbaruwa debパッケージをダウンロード:
cd /usr/src
wget baruwa_1.0.2-4sn_all.deb 更新 052011
wget baruwa-doc_1.0.2-4_all.deb
gdebi baruwa*.debmysql dbのセットアップを促された場合は、いいえを選択します。現在のdbと設定を再利用します。
接続する前に、/usr/share/pyshared/baruwa/settings.pyが正しいデータベース情報で設定されていることを確認してください。そうしないと、接続が失敗します。
vi /usr/share/pyshared/baruwa/settings.pyDATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' または 'oracle'.
DATABASE_NAME = 'baruwa' # sqlite3を使用している場合はデータベースファイルへのパス.
DATABASE_USER = 'baruwa' # sqlite3では使用されません.
DATABASE_PASSWORD = 'password' # sqlite3では使用されません.
DATABASE_HOST = '' # localhostの場合は空の文字列に設定します. sqlite3では使用されません.
DATABASE_PORT = '' # デフォルトの場合は空の文字列に設定します. sqlite3では使用されません.*注: いくつかの小さなアップグレードの競合のため、これらの手順を実行してbaruwaを正しくアップグレードする必要があるかもしれません。
/opt/MailScannerが削除された場合:
ln -s /opt/MailScanner-version /opt/MailScanner
rm -r /etc/MailScanner
ln -s /opt/MailScanner/etc /etc/MailScanner
ln -s /opt/MailScanner/lib/MailScanner/CustomFunctions /etc/MailScanner/etc/MailScanner/CustomFunctions/*.pmファイル内のデータベース接続文字列を更新することを確認してください。
最後に、実行
manage.py syncdbUwsgiとNginxを再起動
/etc/init.d/uwsgi-python2.6 restart && /etc/init.d/nginx restartBaruwaは102-4snにアップグレードされるはずです。
Baruwa 102-4から111-3snへのアップグレード
Rabbitmq-Server 2.2.0をインストールし、db/user/passwordをセットアップ:
cd /usr/src
wget http://ppa.launchpad.net/drizzle-developers/ppa/ubuntu/pool/main/r/rabbitmq-server/rabbitmq-server_2.2.0-1~maverick0_all.deb
gdebi rabbit*localhostにバインドするためにvi /etc/rabbitmq/rabbitmq.conf:
export RABBITMQ_NODENAME=rabbit@localhost
export RABBITMQ_NODE_IP_ADDRESS=127.0.0.1
export ERL_EPMD_ADDRESS=127.0.0.1データベースの資格情報を追加:
rabbitmqctl add_user baruwa password
rabbitmqctl add_vhost baruwa
rabbitmqctl set_permissions -p baruwa baruwa ".*" ".*" ".*"rabbitmq-serverを再起動:
/etc/init.d/rabbitmq-server restartBaruwa 1.1.1-3のソースを追加し、依存関係をインストール:
wget -O - http://apt.baruwa.org/baruwa-apt-keys.gpg | apt-key add -vi /etc/apt/sources.list
#baruwa
deb http://apt.baruwa.org/ubuntu maverick main依存関係をインストール:
apt-get update
apt-get install python-django-celery python-importlib*注: 上記のコマンドはBaruwaのすべての依存関係をインストールするはずです。
Baruwa1.1.1-3snをダウンロードしてインストール:
mkdir /usr/src/baruwa1113 && cd /usr/src/baruwa1113
wget https://docs.google.com/open?id=0B9cN15Q3pKnwY2YyMmMwOTQtNGJkMi00ZDc2LWFjMjMtY2UxMzFlYWY5Mzk2
mv open* baruwa_1.1.1-3sn_all.deb
wget https://docs.google.com/open?id=0B9cN15Q3pKnwODk2OGViYmMtMGZmYS00NmJjLTkwZWUtNTJjYTQ1YzAzOTg1
mv open* baruwa-doc_1.1.1-3sn_all.deb
gdebi baruwa_1.1.1-3sn_all.deb
gdebi baruwa-doc_1.1.1-3sn_all.deb*注: インストールパッケージのメンテナのバージョンのファイルを尋ねられた場合は、それを選択してください。mysqlのセットアップはスキップしてください。以前のバージョンからのアップグレードです。
settings.pyのシンボリックリンクを修正:
rm –r /usr/share/pyshared/baruwa/settings.py && ln –s /etc/baruwa/settings.py /usr/share/pyshared/baruwa/vi /etc/baruwa/settings.pyを開き、baruwaデータベースの設定を修正:
DATABASES = {
'default': {
# 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' または 'oracle'.
'ENGINE': 'django.db.backends.mysql',
# sqlite3を使用している場合はデータベースファイルへのパス.
'NAME': 'baruwa',
# sqlite3では使用されません.
'USER': 'baruwa',
# sqlite3では使用されません.
'PASSWORD': 'password',
# localhostの場合は空の文字列に設定します. sqlite3では使用されません.
'HOST': '',
# デフォルトの場合は空の文字列に設定します. sqlite3では使用されません.
'PORT': '',
}
}Baruwaデータベース構造を更新:
baruwa-admin syncdb --noinputアップグレードを開始するためにフェイクマイグレーションを実行:
for name in $(echo "accounts messages lists reports status config"); do
baruwa-admin migrate $name 0001 --fake;
done通常のマイグレーションを実行:
for name in $(echo "accounts messages lists reports status fixups config"); do
baruwa-admin migrate $name;
donevi /etc/MailScanner/MailScanner.confを開き、次のように変更:
Run As Group = celeryd
Quarantine User = celeryd
Quarantine Group = celerydvi /etc/MailScanner/conf.d/baruwa.conf:
Quarantine User = postfix #(またはあなたの `Run As User` が設定されているもの)
DB DSN = DBI:mysql:database=baruwa;host=localhost;port=3306 #有効なDSNに設定
DB Username = baruwa # あなたのDBユーザー名
DB Password = password # あなたのDBパスワードvi /etc/init.d/mailscannerを開き、グループのエントリをwww-dataからcelerydに変更:
check_dir /var/spool/MailScanner ${user:-postfix} ${group:-celeryd}
check_dir /var/lib/MailScanner ${user:-postfix} ${group:-celeryd}
check_dir /var/run/MailScanner ${user:-postfix} ${group:-celeryd}
check_dir /var/lock/subsys ${user:-root} ${group:-root} #フォルダを作成するために必要
check_dir /var/lock/subsys/MailScanner ${user:-postfix} ${group:-celeryd}
start-stop-daemon --start --quiet --nicelevel $run_nice --chuid postfix:celeryd --exec $DAEMON --name $NAME -- $DAEMON_ARGS \celerydユーザーをclamavグループに追加:
usermod -a -G celeryd clamavクアランティンフォルダとその内容のグループ所有権を変更:
chgrp -R celeryd /var/spool/MailScanner/quarantine署名を使用する場合は、次のように初期化:
baruwa-admin initconfigそうでない場合は、/etc/MailScanner/conf.d/baruwa.confでオプションを無効に:
#Inline HTML Signature = htmlsigs.customize
#Inline Text Signature = textsigs.customize
#Signature Image Filename = sigimgfiles.customize
#Signature Image  Filename = sigimgs.customizeシステムを再起動し、Baruwa 111-3snを楽しんでください。
9. Uwsgiを使用したNginx
Chris LeaのLaunchpadからNginxとUwsgiの両方をダウンロードしてインストール:
wget https://launchpad.net/~chris-lea/+archive/nginx-devel/+files/nginx_1.0.0-1chl1%7Emaverick1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb
wget https://launchpad.net/~chris-lea/+archive/uwsgi/+files/uwsgi-common_0.9.6.6-1chl1%7Emaverick1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb
wget https://launchpad.net/~chris-lea/+archive/uwsgi/+files/uwsgi-extra_0.9.6.6-1chl1%7Emaverick1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb
wget https://launchpad.net/~chris-lea/+archive/uwsgi/+files/uwsgi-python2.6_0.9.6.6-1chl1%7Emaverick1_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/i686/i386/').deb
wget https://launchpad.net/~chris-lea/+archive/uwsgi/+files/uwsgi_0.9.6.6-1chl1%7Emaverick1_all.deb
apt-get install libsctp1
dpkg -i nginx*
dpkg -i uwsgi*次の設定ファイルをuwsgiとnginxに使用:
vi /etc/uwsgi/uwsgi-python2.6/baruwa.ini[uwsgi]
socket = /var/run/uwsgi/uwsgi-python2.6/baruwa/baruwa.sock
pythonpath = /usr/share/pyshared/baruwa/
master = true
processes = 2
env = DJANGO_SETTINGS_MODULE=baruwa.settings
module = django.core.handlers.wsgi:WSGIHandler()vi /etc/nginx/sites-available/baruwa.conf server {
listen 80;
server_name example.com;
root /usr/share/pyshared/baruwa;
#メインアクセスログ
access_log /var/log/nginx/access.log;
#メインエラーログ
error_log /var/log/nginx/error.log;
location /static {
root /usr/share/pyshared/baruwa/static/;
}
# 静的リソース
location ~* ^.+\.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
{
expires 30d;
break;
}
location / {
uwsgi_pass unix:///var/run/uwsgi/uwsgi-python2.6/baruwa/baruwa.sock;
include uwsgi_params;
}
}*注: example.comをあなたのセットアップに合ったFQDNに変更してください。
デフォルトの仮想ホストを削除し、uwsgi_paramsをコピー:
rm -r /etc/nginx/sites-enabled/default
cp /usr/share/doc/uwsgi-extra/nginx/uwsgi_params /etc/nginx/uwsgi_params
ln -s /etc/nginx/sites-available/baruwa.conf /etc/nginx/sites-enabled/baruwa.confサービスを再起動:
/etc/init.d/uwsgi-python2.6 restart && /etc/init.d/nginx restartすべての準備が整いました。
Cronジョブを設定
manage.pyへのシンボリックリンクを作成:
ln -s /usr/share/pyshared/baruwa/manage.py /usr/bin/manage.py
chmod +x /usr/bin/manage.pyCronジョブを追加:
@daily manage.py cleanquarantine &> /dev/null #クアランティンをクリーン
@daily manage.py sendquarantinereports &> /dev/null #クアランティンレポートを送信
@monthly manage.py dbclean &> /dev/null #maillogをクリーン
@weekly manage.py updatesarules &> /dev/null #spamassassinルールを更新
@daily manage.py sendpdfreports &> /dev/null #PDFレポートを送信MailScannerを起動:
/etc/init.d/mailscanner startブラウザをhttp://hostname_usedに向け、管理ユーザーとパスワードでログインし、作業を開始します。インターフェースを使用してユーザーを追加し、メッセージを処理することができます。
Baruwaのセットアップ手順
Baruwaに管理者としてログイン –> 設定 –> アカウント –> アカウントを作成
ユーザーアカウントを作成すると、そのページに2つの新しいタブ、プロファイル設定と関連アドレスが表示されます。
プロファイル設定を記入し、ドメイン管理者を選択し、低スコアを6、高スコアを9に設定し、メールをスキャンするチェックを入れます。
関連アドレスの下にある+記号をクリックし、ユーザーが管理者であるドメイン(例: domain.com)を入力します。domain.comは関連アドレスの下に表示されます。
domain.comをクリックすると、ドメイン情報に移動し、SMTP配信情報を設定できます。受信SMTPサーバーまたは受信SMTPサーバーのIPを追加してください。有効に選択し、非標準ポートを使用する場合は設定し、そうでない場合は25を使用します。それが完了したら、鉛筆の隣にあるテストボタンをクリックして、受信サーバーが接続を受け入れるかどうかを確認できます。
これで、管理者としてログアウトし、設定したばかりのユーザーとしてログインすると、メールが流れ始めます。
/etc/postfix/main.cfのrelay_recipients、relay_domains、transports設定は、Baruwaで提供したエントリを使用します。したがって、ハッシュファイルは必要ありません。 関連するmysql cfファイルのクエリは、適切な形式で結果を取得し、postfixで使用するために供給します。
ただし、構成ファイルのいずれかにハッシュを使用したい場合は、/etc/postfix/main.cfの設定例を使用してください:
relay_recipient_maps = hash:/etc/postfix/relay_recipientsもちろん、ハッシュファイルを作成し、それを埋めてpostmapしてpostfixで使用できるようにする必要があります。
*注: 特定のドメインのrelay_recipientsにハッシュを使用する場合は、そのドメインを/etc/postfix/accessから削除する必要があります。他のすべてのドメインユーザーは、look_aheadを使用して引き続き検証できます。
また、mxルックアップを行う必要がある場合は、/etc/postfix/mysql-transports.cfクエリを次のように編集する必要があります:
concat('smtp:', mail_hosts.address, ':', port) 'transport'[と]はMXルックアップを許可するために削除されました。
Baruwaを楽しんでください!
10. SPFのインストールと設定
postfix-policyd-spf-perlパッケージは、Mail::SPFおよびNetAddr::IP Perlモジュールに依存しています。
次のように、/usr/src/ディレクトリにpostfix-policyd-spf-perlをダウンロードし、/usr/lib/postfix/ディレクトリにインストールする必要があります:
cd /usr/src
wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.007.tar.gz
tar xvfz postfix-policyd-spf-perl-2.007.tar.gz
cd postfix-policyd-spf-perl-2.007
cp postfix-policyd-spf-perl /usr/lib/postfix/policyd-spf-perl次に、/etc/postfix/master.cfを編集し、最後に次のスタンザを追加:
vi /etc/postfix/master.cfpolicy unix - n n - - spawn
user=nobody argv=/usr/bin/perl /usr/lib/postfix/policyd-spf-perl(leading spaces before user=nobodyは、Postfixがこの行が前の行に属することを知るために重要です!)
*注: main.cfのエントリは、postfixセットアップスクリプトを使用してすでに追加されています。
次に、Postfixを再起動:
/etc/init.d/postfix restartそれで終わりです。
11. FuzzyOcrのインストールと設定
FuzzyOCRには、ocradやgocrなどのいくつかの前提条件があります。次のようにインストールできます:
apt-get install fuzzyocr netpbm gifsicle libungif-bin gocr ocrad libstring-approx-perl libmldbm-sync-perl libdigest-md5-perl libdbd-mysql-perl imagemagick tesseract-ocr
wget http://users.own-hero.net/~decoder/fuzzyocr/fuzzyocr-3.6.0.tar.gz
tar xvfz fuzzyocr-3.6.0.tar.gz
cd FuzzyOcr-3.6.0/FuzzyOCRがインストールされたので、次に設定を行う必要があります。FuzzyOCRの設定ファイルは/etc/spamassassin/FuzzyOcr.cfです。そのファイルのほとんどはコメントアウトされています。今、そのファイルを開いていくつかの変更を加えます:
vi /etc/spamassassin/FuzzyOcr.cf次の行のコメントを外します:
focr_global_wordlist /etc/spamassassin/FuzzyOcr.words
focr_preprocessor_file /etc/spamassassin/FuzzyOcr.preps
focr_scanset_file /etc/spamassassin/FuzzyOcr.scansets<
focr_enable_image_hashing 3
focr_digest_db /etc/spamassassin/FuzzyOcr.hashdb
focr_db_hash /etc/spamassassin/FuzzyOcr.db
focr_db_safe /etc/spamassassin/FuzzyOcr.safe.db
focr_bin_helper convert, tesseractパスをコメントアウト:
#focr_path_bin /usr/local/netpbm/bin:/usr/local/bin:/usr/bin画像ハッシュをmysqlデータベースに保存してパフォーマンスを向上させ、すでにスキャンした画像が再度スキャンされないようにします。
MySQLデータベースを作成:
SQLスクリプトはfuzzyocr用のデータベースを作成します:
mysql -p < FuzzyOcr.mysql権限を付与:
mysql –u root –p
GRANT ALL ON FuzzyOcr.* TO fuzzyocr@localhost IDENTIFIED BY ‘password’;FuzzyOcr.cfを更新:
vi /etc/spamassassin/FuzzyOcr.cf次の行を有効に:
focr_mysql_db FuzzyOcr
focr_mysql_hash Hash
focr_mysql_safe Safe
focr_mysql_user fuzzyocr
focr_mysql_pass fuzzyocr
focr_mysql_host localhost
focr_mysql_port 3306
focr_mysql_socket /var/run/mysqld/mysqld.sock*注: 赤い行を変更してください。
FuzzyOcrデータベースクリーナーを設定:
vi /usr/sbin/fuzzy-cleanmysql#!/usr/bin/perl
#MySQLテーブルのデータをクリーンアップするスクリプト。デフォルトは、Safeに1日、Hashに10日間データを残します。
#Fuzzyocr-cleanmysql
use Getopt::Long;
use DBI;
use MLDBM qw(DB_File Storable);
my %Files = (
db_hash => '/var/lib/fuzzyocr/FuzzyOcr.db',
db_safe => '/var/lib/fuzzyocr/FuzzyOcr.safe.db',
);
use DBI;
$database = "FuzzyOcr";
$hostname = "localhost";
$socket = "/var/run/mysqld/mysqld.sock";
$port = "3306";
$username = "fuzzyocr";
$password = 'password';
# defaults
my $cfgfile = "/etc/spamassassin/FuzzyOcr.cf";
my %App;
my %age;
$age{'age'} = 10*24; # 10日
$age{'hash'} = $age{'age'};
$age{'safe'} = 0;
my $help = 0;
my $verbose = 0;
GetOptions( \%age,
'age=i',
'config=s' => \$cfgfile,
'hash=i',
'help' => \$help,
'safe=i',
'verbose' => \$verbose,
);
if ($help) {
print "Usage: fuzzy-cleanmysql [Options]\n";
print "\n";
print "Available options:\n";
print "--age=i Global age in hours to keep in db\n";
print "--config=s Specify location of FuzzyOcr.cf\n";
print " Default: /etc/spamassassin/FuzzyOcr.cf\n";
print "--hash=i Number of hours old to keep in Hash db\n";
print "--safe=i Number of hours old to keep in Safe db\n";
print "--verbose Show more informations\n";
print "\n";
exit 1;
}
# 時間を秒に変換
$age{'age'} *= 60 * 60;
$age{'hash'} *= 60 * 60;
$age{'safe'} *= 60 * 60;
$age{'safe'} = $age{'safe'} ? $age{'safe'} : $age{'age'};
# FuzzyOcr.cfからカスタムパスを読み取る
my $app_path = q(/usr/local/netpbm/bin:/usr/local/bin:/usr/bin);
open CONFIG, "< $cfgfile" or warn "Can't read configuration file, using defaults...\n";
while () {
chomp;
if ($_ =~ m/^focr_bin_(\w+) (.+)/) {
$App{$1} = $2;
printf "Found custom path \"$2\" for application \"$1\"\n" if $verbose;
}
if ($_ =~ m/^focr_path_bin (.+)/) {
$app_path = $1;
printf "Found new path: \"$1\"\n" if $verbose;
}
if ($_ =~ m/^focr_enable_image_hashing (\d)/) {
$App{hashing_type} = $1;
printf "Found DB Hashing\n" if ($verbose and $1 == 2);
printf "Found MySQL Hashing\n" if ($verbose and $1 == 3);
}
if ($_ =~ m/^focr_mysql_(\w+) (.+)/) {
$MySQL{$1} = $2;
printf "Found MySQL option $1 => '$2'\n" if $verbose;
}
if ($_ =~ m/^focr_threshold_max_hash (.+)/) {
$App{max_hash} = $1;
printf "Updated Thresold{max_hash} = $1\n" if $verbose;
}
}
close CONFIG;
# このしきい値が設定されていることを確認
$App{max_hash} = 5 unless defined $App{max_hash};
# すでに設定されている場合は、bin_utilの検索パス
foreach my $app (@bin_utils) {
next if defined $App{$app};
foreach my $d (split(':',$app_path)) {
if (-x "$d/$app") {
$App{$app} = "$d/$app";
last;
}
}
}
sub get_ddb {
my %dopts = ( AutoCommit => 1 );
my $dsn = "DBI:mysql:database=$database";
if (defined $socket) {
$dsn .= ";mysql_socket=$socket";
} else {
$dsn .= ";host=$hostname";
$dns .= ";port=$port" unless $port == 3306;
}
printf "Connecting to: $dsn\n" if $verbose;
return DBI->connect($dsn, $username, $password,\%dopts) or die("Could not connect!");
}
if ($App{hashing_type} == 3) {
my $ddb = get_ddb();
if ($ddb) {
my $sql;
foreach my $ff (sort keys %Files) {
$ff =~ s/db_//;
$sqlbase = "FROM $MySQL{$ff} WHERE $MySQL{$ff}.\`check\` < ?";
my $timestamp = time;
$timestamp = $timestamp - $age{$ff};
$sql = "DELETE $sqlbase";
if ( $verbose ) {
printf "Delete from Table $MySQL{$ff}\n";
print "$sql, $timestamp\n";
print "Timestamp is ", scalar(localtime($timestamp)), "\n";
print "That's $age{$ff} seconds earlier than now.\n";
print "\n";
}
$ddb->do($sql,undef,$timestamp);
}
$ddb->disconnect;
}
}chmod +x /usr/sbin/fuzzy-cleanmysqlCronに追加
crontab -e@weekly /usr/sbin/fuzzy-cleanmysql &> /dev/null #FuzzyOcr DBクリーナーこれでFuzzyOCRの設定は完了です。期待通りに動作するか確認しましょう。
これらのメールをSpamAssassinにフィードして、FuzzyOCRがSpamAssassinに正しくリンクされているか確認できます。
spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.6.0/samples/ocr-gif.eml > /dev/null多くの出力が表示されるはずで、最後は次のようになります:
[...]
[10025] dbg: FuzzyOcr:
[10025] dbg: FuzzyOcr: Friday Augurt 4, 4:01 pm ET
[10025] dbg: FuzzyOcr: LAS VEGAS, NEVADA--(MARKET WIRE)--Aug 4, 2006 -- auantum Energy, lnc. (OTC
[10025] dbg: FuzzyOcr: BB:aEGY.oB-_-
[10025] dbg: FuzzyOcr: auantum Energy, lnc. is pleased to announce that it has applied to have its shares listed for
[10025] dbg: FuzzyOcr: trading on the Frankfurt Stock Exchange. The company has retained the services ofBaltic
[10025] dbg: FuzzyOcr: lnvestment Group of Hamburg, Germany to assist with the application.
[10025] dbg: FuzzyOcr:
[10025] dbg: FuzzyOcr: _ qEGY,OB "12. ClamAVを使用したPDF、XLSおよびフィッシングスパムのフィルタリング(Sanesecurityシグネチャ)
現在、スパムの多くは、スパムの「情報」が.pdfまたは.xlsファイルとして添付されており、時には.zipファイルの中に隠されています。これらのスパムメールは、SpamAssassinやベイズフィルターで簡単にキャッチすることができませんが、ClamAVウイルススキャナーは、正しいシグネチャを与えられると簡単にキャッチできます。ClamAVはメールの添付ファイルをスキャンするために構築されています。
sanesecurity用のフォルダを作成し、スクリプトをダウンロードして適切な権限を与えます。
apt-get install curl rsync
mkdir /usr/src/sanesecurity && cd /usr/src/sanesecurity
wget http://www.inetmsg.com/pub/clamav-unofficial-sigs.tar.gz
tar -zxf clamav-unofficial-sigs.tar.gz && cd clamav-unofficial-sigs-3.7.1
mv clamav-unofficial-sigs.sh /usr/sbin
mv clamav-unofficial-sigs.conf /etc/
chmod +x /usr/sbin/clamav-unofficial-sigs.sh
vi clamav-unofficial-sigs.conf次の変数をインストールに合わせて変更:
clam_dbs="/var/lib/clamav"clamav_dbs変数には、ClamAVシグネチャが保存されているディレクトリへのパスが含まれます。
clamd.pidへのパス:
clamd_pid="/var/run/clamav/clamd.pid"更新後に再読み込み:
reload_dbs="yes"
reload_opt="kill -USR2 `cat $clamd_pid`" #DBを再読み込みするためにPIDにシグナルを送信作業ディレクトリ:
work_dir="/var/lib/clamav"設定が完了したら、次のように設定:
user_configuration_complete="yes" 更新スクリプトを実行して、ダウンロードが機能するか確認:
clamav-unofficial-sigs.shCronに追加:
00 04 * * * /usr/sbin/clamav-unofficial-sigs.sh -c /etc/clamav-unofficial-sigs.conf &> /dev/null /etc/clamav-unofficial-sigs.confを編集し、MalwarePortalデータベースセクションをコメントアウトしてください。これを使用すると、たくさんの誤検知が発生しました。
13. Greyfixによるグレイリスティング
Greyfixは非常にうまく機能し、リソースに優しい小さなグレイリスティングデーモンです。
インストール:
cd /usr/src && wget http://www.kim-minh.com/pub/greyfix/greyfix-0.3.9.tar.gz
tar -xf greyfix-0.3.9.tar.gz && cd greyfix-0.3.9
./configure --localstatedir=/var
make
make installvi /etc/postfix/master.cf次のように追加:
greyfix unix - n n - - spawn
user=nobody argv=/usr/local/sbin/greyfix --greylist-delay 60 -/ 24すでにpostfixセットアップスクリプトを使用してmain.cfのエントリを追加しました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。