Spam Management · 13 min read · Dec 25, 2025

Идеальный SpamSnake - Ubuntu Jeos 10.10 Maverick Meerkat - Страница 3

8. Baruwa

Скачайте пользовательский пакет deb для baruwa:

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. Вам также будет предложено настроить информацию о пользователе-администраторе для интерфейса Baruwa.

vi /usr/share/pyshared/baruwa/settings.py

Измените URL-адрес хоста карантина по вашему усмотрению:

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. Пропустите это, если вы выполняете новую установку.

Скачайте последнюю версию пакета deb для baruwa:

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, выберите “нет”. Мы повторно используем текущую базу данных и настройки.

Убедитесь, что /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 и настройте базу данных/пользователя/пароль:

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*

vi /etc/rabbitmq/rabbitmq.conf для привязки к localhost:

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. Nginx с Uwsgi

Скачайте и установите как Nginx, так и Uwsgi из Launchpad Кристофера Ли:

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 как администратор –> Настройки –> Учетные записи –> Создать учетную запись

После создания учетной записи пользователя вы получите две новые вкладки на этой странице: Настройки профиля и Связанные адреса.

Заполните настройки профиля, выбрав администратора домена, и установите низкий балл 6 и высокий балл 9 и отметьте сканирование электронной почты.

Нажмите на знак + под связанными адресами и введите домены, для которых пользователь является администратором, например, domain.com. domain.com появится под связанными адресами.

Нажмите на domain.com, и вы перейдете в информацию о домене, где сможете настроить информацию о доставке SMTP. Добавьте сервер smtp для получения или ip адрес получающего smtp сервера. Выберите включить, и если вы используете нестандартный порт, установите его, в противном случае используйте 25. После этого вы можете нажать кнопку тестирования рядом с карандашом, чтобы увидеть, примет ли ваш сервер получения соединение.

Теперь вы можете выйти как администратор и войти как пользователь, которого вы только что настроили, и почта должна начать поступать.

Параметры relay_recipients, relay_domains и transports в /etc/postfix/main.cf будут использовать записи, которые вы предоставили в 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 зависит от модулей Perl Mail::SPF и NetAddr::IP.

Нам нужно скачать postfix-policyd-spf-perl с http://www.openspf.org/Software в директорию /usr/src/ и установить его в директорию /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

(Ведущие пробелы перед 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, чтобы улучшить производительность, так как изображения, которые мы уже отсканировали, не будут сканироваться снова, так как OCR является ресурсозатратной деятельностью.

Создайте базу данных 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';
# по умолчанию
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 "Использование: fuzzy-cleanmysql [Опции]\n";
    print "\n";
    print "Доступные опции:\n";
    print "--age=i      Глобальный возраст в часах, чтобы хранить в базе данных\n";
    print "--config=s   Укажите местоположение FuzzyOcr.cf\n";
    print "             По умолчанию: /etc/spamassassin/FuzzyOcr.cf\n";
    print "--hash=i     Количество часов, чтобы хранить в базе данных Hash\n";
    print "--safe=i     Количество часов, чтобы хранить в базе данных Safe\n";
    print "--verbose    Показать больше информации\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 "Не удается прочитать файл конфигурации, используйте значения по умолчанию...\n";
while () {
    chomp;
    if ($_ =~ m/^focr_bin_(\w+) (.+)/) {
        $App{$1} = $2;
        printf "Найден пользовательский путь \"$2\" для приложения \"$1\"\n" if $verbose;
    }
    if ($_ =~ m/^focr_path_bin (.+)/) {
        $app_path = $1;
        printf "Найден новый путь: \"$1\"\n" if $verbose;
    }
    if ($_ =~ m/^focr_enable_image_hashing (\d)/) {
        $App{hashing_type} = $1;
        printf "Найдено хеширование БД\n" if ($verbose and $1 == 2);
        printf "Найдено хеширование MySQL\n" if ($verbose and $1 == 3);
    }
    if ($_ =~ m/^focr_mysql_(\w+) (.+)/) {
        $MySQL{$1} = $2;
        printf "Найден параметр MySQL $1 => '$2'\n" if $verbose;
    }
    if ($_ =~ m/^focr_threshold_max_hash (.+)/) {
        $App{max_hash} = $1;
        printf "Обновленный 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 "Подключение к: $dsn\n" if $verbose;
    return DBI->connect($dsn, $username, $password,\%dopts) or die("Не удалось подключиться!");
}
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 "Удалить из таблицы $MySQL{$ff}\n";
        print "$sql,  $timestamp\n";
        print "Временная метка - ", scalar(localtime($timestamp)), "\n";
        print "Это $age{$ff} секунд раньше, чем сейчас.\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

Вот и все для конфигурации 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: Пятница, 4 августа, 16:01 по восточному времени  
[10025] dbg: FuzzyOcr: ЛАС-ВЕГАС, НЕВАДА--(MARKET WIRE)--4 августа 2006 года -- auantum Energy, lnc. (OTC  
[10025] dbg: FuzzyOcr: BB:aEGY.oB-_-  
[10025] dbg: FuzzyOcr: auantum Energy, lnc. рада сообщить, что она подала заявку на листинг своих акций на  
[10025] dbg: FuzzyOcr: торгах на Франкфуртской фондовой бирже. Компания наняла услуги Baltic  
[10025] dbg: FuzzyOcr: Инвестиционной группы из Гамбурга, Германия, чтобы помочь с заявкой.  
[10025] dbg: FuzzyOcr:  
[10025] dbg: FuzzyOcr: _ qEGY,OB "

12. Фильтрация PDF, XLS и фишингового спама с помощью ClamAV (подписи Sanesecurity)

В настоящее время существует много спама, где “информация” спама прикреплена в виде файлов .pdf или .xls, иногда также скрытых внутри .zip файла. Хотя этот спам не легко поймать с помощью, например, SpamAssassin или фильтра Bayes, антивирус 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`" #Сигналы 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. Greylisting с 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

Мы уже добавили запись для main.cf, используя скрипт настройки postfix.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.