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*.deb

Baruwaスクリプトで使用されるアクセスユーザー名とパスワードを含む、ログ用の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*.deb

mysql dbのセットアップを促された場合は、いいえを選択します。現在のdbと設定を再利用します。

接続する前に、/usr/share/pyshared/baruwa/settings.pyが正しいデータベース情報で設定されていることを確認してください。そうしないと、接続が失敗します。

vi /usr/share/pyshared/baruwa/settings.py
DATABASE_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 syncdb

UwsgiとNginxを再起動

/etc/init.d/uwsgi-python2.6 restart && /etc/init.d/nginx restart

Baruwaは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 restart

Baruwa 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;  
done

vi /etc/MailScanner/MailScanner.confを開き、次のように変更:

Run As Group = celeryd  
Quarantine User = celeryd  
Quarantine Group = celeryd

vi /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 ![](/files/f1a3d4ae-b9dd-4d8d-bef0-ce32003c43c2) 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.py

Cronジョブを追加:

@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.cf
policy 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-cleanmysql

Cronに追加

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.sh

Cronに追加:

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 install
vi /etc/postfix/master.cf

次のように追加:

greyfix    unix  -        n       n       -        -       spawn
   user=nobody  argv=/usr/local/sbin/greyfix   --greylist-delay 60  -/ 24

すでにpostfixセットアップスクリプトを使用してmain.cfのエントリを追加しました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。