Spam-Filter · 13 min read · Dec 25, 2025
Der perfekte SpamSnake - Ubuntu Jeos 10.10 Maverick Meerkat - Seite 3
8. Baruwa
Lade das benutzerdefinierte Baruwa deb-Paket herunter:
cd /usr/src
wget baruwa_1.0.1-2sn_all.deb Aktualisiert 021811
wget baruwa-doc_1.0.1-2_all.deb
gdebi baruwa*.debDu wirst aufgefordert, die Baruwa-Datenbank für das Logging einzurichten, einschließlich eines Benutzernamens und Passworts, die von den Baruwa-Skripten verwendet werden. Du wirst auch aufgefordert, die Admin-Benutzerinformationen für das Baruwa-Frontend einzurichten.
vi /usr/share/pyshared/baruwa/settings.pyÄndere die Quarantäne-Host-URL nach deinem Belieben:
QUARANTINE_REPORT_HOSTURL = 'http://baruwa-alpha.local'vi /opt/MailScanner/etc/MailScanner.confDu musst sicherstellen, dass die folgenden Optionen gesetzt sind:
Always Looked Up Last = &BaruwaSQL
Is Definitely Not Spam = &BaruwaWhitelist
Is Definitely Spam = &BaruwaBlacklist
Required SpamAssassin Score = &BaruwaLowScore
High SpamAssassin Score = &BaruwaHighScore Upgrade von Baruwa
*Hinweis: Dieser Abschnitt ist nur für diejenigen, die eine ältere Version von Baruwa ausführen. Überspringe dies, wenn du eine Neuinstallation durchführst.
Lade das neueste Baruwa deb-Paket herunter:
cd /usr/src
wget baruwa_1.0.2-4sn_all.deb Aktualisiert 052011
wget baruwa-doc_1.0.2-4_all.deb
gdebi baruwa*.debWenn du aufgefordert wirst, die MySQL-Datenbank einzurichten, wähle “nein”. Wir werden die aktuelle Datenbank und die Einstellungen wiederverwenden.
Stelle sicher, dass /usr/share/pyshared/baruwa/settings.py mit den richtigen Datenbankinformationen eingerichtet ist, bevor du dich verbindest, andernfalls wird deine Verbindung fehlschlagen.
vi /usr/share/pyshared/baruwa/settings.pyDATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' oder 'oracle'.
DATABASE_NAME = 'baruwa' # Oder Pfad zur Datenbankdatei, wenn sqlite3 verwendet wird.
DATABASE_USER = 'baruwa' # Wird nicht mit sqlite3 verwendet.
DATABASE_PASSWORD = 'password' # Wird nicht mit sqlite3 verwendet.
DATABASE_HOST = '' # Auf leere Zeichenfolge für localhost setzen. Wird nicht mit sqlite3 verwendet.
DATABASE_PORT = '' # Auf leere Zeichenfolge für Standard setzen. Wird nicht mit sqlite3 verwendet.*Hinweis: Aufgrund einiger kleiner Upgrade-Konflikte müssen diese Schritte möglicherweise unternommen werden, um Baruwa korrekt zu aktualisieren.
Wenn /opt/MailScanner entfernt wurde:
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/MailScannerStelle sicher, dass du deine Datenbankverbindungszeichenfolge in /etc/MailScanner/CustomFunctions/*.pm-Dateien aktualisierst.
Führe schließlich aus
manage.py syncdbStarte Uwsgi und Nginx neu
/etc/init.d/uwsgi-python2.6 restart && /etc/init.d/nginx restartBaruwa sollte auf 102-4sn aktualisiert werden.
Upgrade von Baruwa 102-4 auf 111-3sn
Installiere Rabbitmq-Server 2.2.0 und richte db/benutzer/passwort ein:
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, um an localhost zu binden:
export RABBITMQ_NODENAME=rabbit@localhost
export RABBITMQ_NODE_IP_ADDRESS=127.0.0.1
export ERL_EPMD_ADDRESS=127.0.0.1Füge die Datenbankanmeldeinformationen hinzu:
rabbitmqctl add_user baruwa password
rabbitmqctl add_vhost baruwa
rabbitmqctl set_permissions -p baruwa baruwa ".*" ".*" ".*"Starte rabbitmq-server neu:
/etc/init.d/rabbitmq-server restartFüge Quellen für Baruwa 1.1.1-3 hinzu und installiere Abhängigkeiten:
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 mainInstalliere Abhängigkeiten:
apt-get update
apt-get install python-django-celery python-importlib*Hinweis: Der obige Befehl sollte alle Abhängigkeiten für Baruwa installieren.
Lade und installiere 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*Hinweis: Installiere die Version der Dateien des Paketbetreuers, wenn du gefragt wirst. Wähle “nein”, um MySQL einzurichten, da wir von einer vorherigen Version aktualisieren.
Behebe den Symlink für 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 und behebe die Baruwa-Datenbankkonfiguration:
DATABASES = {
'default': {
# Füge 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3'
# oder 'oracle' hinzu.
'ENGINE': 'django.db.backends.mysql',
# Oder Pfad zur Datenbankdatei, wenn sqlite3 verwendet wird.
'NAME': 'baruwa',
# Wird nicht mit sqlite3 verwendet.
'USER': 'baruwa',
# Wird nicht mit sqlite3 verwendet.
'PASSWORD': 'password',
# Auf leere Zeichenfolge für localhost setzen. Wird nicht mit sqlite3 verwendet.
'HOST': '',
# Auf leere Zeichenfolge für Standard setzen. Wird nicht mit sqlite3 verwendet.
'PORT': '',
}
}Aktualisiere die Baruwa-Datenbankstruktur:
baruwa-admin syncdb --noinputFühre eine falsche Migration durch, um ein Upgrade zu initiieren:
for name in $(echo "accounts messages lists reports status config"); do
baruwa-admin migrate $name 0001 --fake;
doneFühre die normale Migration durch:
for name in $(echo "accounts messages lists reports status fixups config"); do
baruwa-admin migrate $name;
donevi /etc/MailScanner/MailScanner.conf ändere Folgendes:
Run As Group = celeryd
Quarantine User = celeryd
Quarantine Group = celerydvi /etc/MailScanner/conf.d/baruwa.conf:
Quarantine User = postfix #(Oder was auch immer dein `Run As User` eingestellt ist)
DB DSN = DBI:mysql:database=baruwa;host=localhost;port=3306 #setze auf gültigen DSN
DB Username = baruwa # dein DB-Benutzername
DB Password = password # dein DB-Passwortvi /etc/init.d/mailscanner und ändere die Gruppeneinträge von www-data auf 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} #Erforderlich zum Erstellen des Ordners
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 \Füge den Benutzer celeryd zur Gruppe clamav hinzu:
usermod -a -G celeryd clamavÄndere den Gruppenbesitz des Quarantäneordners und des Inhalts:
chgrp -R celeryd /var/spool/MailScanner/quarantineWenn du Signaturen verwenden möchtest, initialisiere sie, indem du Folgendes ausführst:
baruwa-admin initconfigAndernfalls deaktiviere die Optionen in /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.customizeStarte dein System neu und genieße Baruwa 111-3sn.
9. Nginx mit Uwsgi
Lade Nginx und Uwsgi von Chris Leas Launchpad herunter und installiere beide:
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*Verwende die folgenden Konfigurationsdateien für uwsgi und 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;
#Hauptzugriffsprotokoll
access_log /var/log/nginx/access.log;
#Hauptfehlerprotokoll
error_log /var/log/nginx/error.log;
location /static {
root /usr/share/pyshared/baruwa/static/;
}
# Statische Ressourcen
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;
}
}*Hinweis: Stelle sicher, dass du example.com in einen FQDN änderst, der zu deiner Einrichtung passt.
Entferne den Standard-virtuellen Host und kopiere 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.confStarte die Dienste neu:
/etc/init.d/uwsgi-python2.6 restart && /etc/init.d/nginx restartDu solltest bereit sein.
Richte Cron-Jobs ein
Erstelle einen Symlink zu manage.py:
ln -s /usr/share/pyshared/baruwa/manage.py /usr/bin/manage.py
chmod +x /usr/bin/manage.pyFüge Cron-Jobs hinzu:
@daily manage.py cleanquarantine &> /dev/null #Quarantäne bereinigen
@daily manage.py sendquarantinereports &> /dev/null #Quarantäneberichte senden
@monthly manage.py dbclean &> /dev/null #Maillog bereinigen
@weekly manage.py updatesarules &> /dev/null #Spamassassin-Regeln aktualisieren
@daily manage.py sendpdfreports &> /dev/null #PDF-Berichte sendenStarte MailScanner:
/etc/init.d/mailscanner startRufe deinen Browser auf http://hostname_used, melde dich mit dem Admin-Benutzer und Passwort an und beginne zu arbeiten. Du kannst jetzt die Schnittstelle verwenden, um Benutzer hinzuzufügen und Nachrichten zu verarbeiten usw.
Einrichtungsanweisungen für Baruwa
Melde dich bei Baruwa als Admin an –> Einstellungen –> Konten –> Konto erstellen
Sobald du das Benutzerkonto erstellt hast, erhältst du zwei neue Registerkarten auf dieser Seite, Profileinstellungen und Zugeordnete Adressen.
Fülle die Profileinstellungen aus, wähle Domain-Admin und setze einen niedrigen Score von 6 und einen hohen Score von 9 und aktiviere die E-Mail-Scans.
Klicke auf das +-Zeichen unter Zugeordnete Adressen und gib eine Domain ein, für die der Benutzer der Admin ist, z. B. domain.com. domain.com wird unter Zugeordnete Adressen angezeigt.
Klicke auf domain.com und du wirst in die Domaininformationen weitergeleitet, wo du die SMTP-Zustellinformationen einrichten kannst. Füge den empfangenden SMTP-Server oder die IP des empfangenden SMTP-Servers hinzu. Wähle aktivieren und wenn du einen nicht standardmäßigen Port verwendest, setze ihn, andernfalls verwende 25. Sobald du das getan hast, kannst du auf die Testtaste neben dem Bleistift klicken, um zu sehen, ob dein empfangender Server die Verbindung akzeptiert.
Jetzt kannst du dich als Admin abmelden und dich als den Benutzer anmelden, den du gerade eingerichtet hast, und die E-Mails sollten zu fließen beginnen.
Die Einstellungen relay_recipients, relay_domains und transports in /etc/postfix/main.cf verwenden die Einträge, die du in Baruwa bereitgestellt hast. Daher ist keine Hash-Datei erforderlich.
Die zugehörigen Abfragen in den MySQL cf-Dateien ziehen das Ergebnis im richtigen Format und füttern es an Postfix zur Verwendung.
Wenn du jedoch einen Hash für eine deiner Konfigurationsdateien verwenden möchtest, verwende das folgende Beispiel, um /etc/postfix/main.cf einzurichten:
relay_recipient_maps = hash:/etc/postfix/relay_recipientsNatürlich müsstest du die Hash-Datei(en) erstellen, sie befüllen und postmap für Postfix verwenden.
*Hinweis: Wenn du am Ende einen Hash für relay_recipients für bestimmte Domains verwendest, musst du diese Domain aus /etc/postfix/access entfernen. Alle anderen Domänenbenutzer können weiterhin mit look_ahead überprüft werden.
Außerdem, wenn du MX-Abfragen durchführen musst, musst du /etc/postfix/mysql-transports.cf so bearbeiten, dass es aussieht:
concat('smtp:', mail_hosts.address, ':', port) 'transport'Die [ und ] wurden entfernt, um MX-Abfragen zu ermöglichen.
Genieße Baruwa!
10. Installiere und konfiguriere SPF
Das Paket postfix-policyd-spf-perl hängt von den Perl-Modulen Mail::SPF und NetAddr::IP ab.
Wir müssen postfix-policyd-spf-perl von http://www.openspf.org/Software in das Verzeichnis /usr/src/ herunterladen und es in das Verzeichnis /usr/lib/postfix/ installieren:
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-perlDann bearbeiten wir /etc/postfix/master.cf und fügen das folgende Stanza am Ende hinzu:
vi /etc/postfix/master.cfpolicy unix - n n - - spawn
user=nobody argv=/usr/bin/perl /usr/lib/postfix/policyd-spf-perl(Die führenden Leerzeichen vor user=nobody sind wichtig, damit Postfix weiß, dass diese Zeile zur vorherigen gehört!)
*Hinweis: Wir haben bereits den Eintrag für main.cf mit dem Postfix-Setup-Skript hinzugefügt.
Starte dann Postfix neu:
/etc/init.d/postfix restartDas war’s schon.
11. Installiere und konfiguriere FuzzyOcr
FuzzyOCR hat einige Voraussetzungen wie ocrad und gocr, die wir so installieren können:
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 ist jetzt installiert, jetzt müssen wir es konfigurieren. Die Konfigurationsdatei von FuzzyOCR ist /etc/spamassassin/FuzzyOcr.cf. In dieser Datei ist fast alles auskommentiert. Wir öffnen diese Datei jetzt und nehmen einige Änderungen vor:
vi /etc/spamassassin/FuzzyOcr.cfKommentiere die folgenden Zeilen aus:
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, tesseractKommentiere den Pfad aus:
#focr_path_bin /usr/local/netpbm/bin:/usr/local/bin:/usr/binWir werden die Bild-Hashes in einer MySQL-Datenbank speichern, um die Leistung zu verbessern, sodass Bilder, die wir bereits gescannt haben, nicht erneut gescannt werden, da OCR eine ressourcenintensive Aktivität ist.
Erstelle die MySQL-Datenbank:
Das SQL-Skript erstellt die Datenbank für FuzzyOCR:
mysql -p < FuzzyOcr.mysqlGewähre Berechtigungen:
mysql –u root –p
GRANT ALL ON FuzzyOcr.* TO fuzzyocr@localhost IDENTIFIED BY 'password';Aktualisiere FuzzyOcr.cf
vi /etc/spamassassin/FuzzyOcr.cfAktiviere die folgenden Zeilen:
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*Hinweis: Stelle sicher, dass du die Zeilen in Rot änderst.
Richte den FuzzyOcr-Datenbankreiniger ein
vi /usr/sbin/fuzzy-cleanmysql#!/usr/bin/perl
#Script zum Bereinigen von MySQL-Tabellen. Standardmäßig werden Daten in Safe für 1 Tag und in Hash für 10 Tage aufbewahrt.
#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';
# Standardwerte
my $cfgfile = "/etc/spamassassin/FuzzyOcr.cf";
my %App;
my %age;
$age{'age'} = 10*24; # 10 Tage
$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 "Verwendung: fuzzy-cleanmysql [Optionen]\n";
print "\n";
print "Verfügbare Optionen:\n";
print "--age=i Globale Alter in Stunden, die in der DB aufbewahrt werden sollen\n";
print "--config=s Gebe den Speicherort von FuzzyOcr.cf an\n";
print " Standard: /etc/spamassassin/FuzzyOcr.cf\n";
print "--hash=i Anzahl der Stunden, die in der Hash-DB aufbewahrt werden sollen\n";
print "--safe=i Anzahl der Stunden, die in der Safe-DB aufbewahrt werden sollen\n";
print "--verbose Zeige mehr Informationen an\n";
print "\n";
exit 1;
}
# Stunden in Sekunden umwandeln
$age{'age'} *= 60 * 60;
$age{'hash'} *= 60 * 60;
$age{'safe'} *= 60 * 60;
$age{'safe'} = $age{'safe'} ? $age{'safe'} : $age{'age'};
# Lese benutzerdefinierte Pfade aus FuzzyOcr.cf
my $app_path = q(/usr/local/netpbm/bin:/usr/local/bin:/usr/bin);
open CONFIG, "< $cfgfile" or warn "Kann Konfigurationsdatei nicht lesen, verwende Standardwerte...\n";
while () {
chomp;
if ($_ =~ m/^focr_bin_(\w+) (.+)/) {
$App{$1} = $2;
printf "Gefundener benutzerdefinierter Pfad \"$2\" für Anwendung \"$1\"\n" if $verbose;
}
if ($_ =~ m/^focr_path_bin (.+)/) {
$app_path = $1;
printf "Gefundener neuer Pfad: \"$1\"\n" if $verbose;
}
if ($_ =~ m/^focr_enable_image_hashing (\d)/) {
$App{hashing_type} = $1;
printf "Gefundene DB-Hashing\n" if ($verbose and $1 == 2);
printf "Gefundene MySQL-Hashing\n" if ($verbose and $1 == 3);
}
if ($_ =~ m/^focr_mysql_(\w+) (.+)/) {
$MySQL{$1} = $2;
printf "Gefundene MySQL-Option $1 => '$2'\n" if $verbose;
}
if ($_ =~ m/^focr_threshold_max_hash (.+)/) {
$App{max_hash} = $1;
printf "Aktualisierter Thresold{max_hash} = $1\n" if $verbose;
}
}
close CONFIG;
# Stelle sicher, dass wir diesen Schwellenwert gesetzt haben
$App{max_hash} = 5 unless defined $App{max_hash};
# Suche nach dem Pfad für bin_util, es sei denn, er wurde bereits in der Konfigurationsdatei angegeben
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 "Verbinde zu: $dsn\n" if $verbose;
return DBI->connect($dsn, $username, $password,\%dopts) or die("Konnte nicht verbinden!");
}
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 "Lösche aus Tabelle $MySQL{$ff}\n";
print "$sql, $timestamp\n";
print "Zeitstempel ist ", scalar(localtime($timestamp)), "\n";
print "Das sind $age{$ff} Sekunden früher als jetzt.\n";
print "\n";
}
$ddb->do($sql,undef,$timestamp);
}
$ddb->disconnect;
}
}chmod +x /usr/sbin/fuzzy-cleanmysqlFüge es zu Cron hinzu
crontab -e@weekly /usr/sbin/fuzzy-cleanmysql &> /dev/null #FuzzyOcr DB-ReinigerDas war’s schon für die FuzzyOCR-Konfiguration. Lass uns sehen, ob es wie erwartet funktioniert.
Wir können jede dieser E-Mails jetzt SpamAssassin zuführen, um zu sehen, ob FuzzyOCR korrekt in SpamAssassin integriert ist.
spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.6.0/samples/ocr-gif.eml > /dev/nullDu solltest jetzt eine Menge Ausgaben sehen, das Ende sollte so aussehen:
[...]
[10025] dbg: FuzzyOcr:
[10025] dbg: FuzzyOcr: Freitag, 4. August, 16:01 Uhr ET
[10025] dbg: FuzzyOcr: LAS VEGAS, NEVADA--(MARKET WIRE)--4. August 2006 -- auantum Energy, lnc. (OTC
[10025] dbg: FuzzyOcr: BB:aEGY.oB-_-
[10025] dbg: FuzzyOcr: auantum Energy, lnc. freut sich bekannt zu geben, dass es beantragt hat, seine Aktien an der Frankfurter Börse notieren zu lassen. Das Unternehmen hat die Dienste der Baltic
[10025] dbg: FuzzyOcr: lnvestment Group aus Hamburg, Deutschland, in Anspruch genommen, um bei der Bewerbung zu helfen.
[10025] dbg: FuzzyOcr:
[10025] dbg: FuzzyOcr: _ qEGY,OB "12. Filterung von PDF, XLS und Phishing-Spam mit ClamAV (Sanesecurity-Signaturen)
Derzeit gibt es viele Spam-Nachrichten, bei denen die Spam-“Informationen” als .pdf- oder .xls-Dateien angehängt sind, manchmal auch in einer .zip-Datei versteckt. Während diese Spam-E-Mails nicht leicht mit z. B. SpamAssassin oder einem Bayes-Filter zu fangen sind, kann der ClamAV-Virenscanner sie leicht erfassen, wenn er mit den richtigen Signaturen gefüttert wird, da ClamAV zum Scannen von E-Mail-Anhängen entwickelt wurde.
Erstelle einen Ordner für Sanesecurity und lade herunter und gib dem Skript die richtigen Berechtigungen.
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.confund ändere die folgenden Variablen, um sie an deine Installation anzupassen:
clam_dbs="/var/lib/clamav"Die Variable clamav_dbs enthält den Pfad zum Verzeichnis, in dem deine ClamAV-Signaturen gespeichert sind.
Pfad zu clamd.pid:
clamd_pid="/var/run/clamav/clamd.pid"Neu laden nach dem Update:
reload_dbs="ja"
reload_opt="kill -USR2 `cat $clamd_pid`" #Signalisiert PID, um DBs neu zu ladenArbeitsverzeichnis:
work_dir="/var/lib/clamav"Und sobald du mit der Konfiguration fertig bist, setze das folgende auf ja:
user_configuration_complete="ja" Jetzt führen wir das Update-Skript aus, um zu überprüfen, ob der Download funktioniert:
clamav-unofficial-sigs.shFüge es zu Cron hinzu:
00 04 * * * /usr/sbin/clamav-unofficial-sigs.sh -c /etc/clamav-unofficial-sigs.conf &> /dev/null Bitte bearbeite /etc/clamav-unofficial-sigs.conf und kommentiere den Abschnitt zur MalwarePortal-Datenbank aus. Es gab viele Fehlalarme, wenn man dessen Definitionen verwendet.
13. Greylisting mit Greyfix
Greyfix ist ein winziger Greylisting-Daemon, der extrem gut funktioniert und ressourcenschonend ist.
Installiere:
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.cfund füge Folgendes hinzu:
greyfix unix - n n - - spawn
user=nobody argv=/usr/local/sbin/greyfix --greylist-delay 60 -/ 24Wir haben bereits den Eintrag für main.cf mit dem Postfix-Setup-Skript hinzugefügt.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.