Spam Management · 14 min read · Dec 25, 2025
O SpamSnake Perfeito - Ubuntu Jeos 10.10 Maverick Meerkat - Página 3
8. Baruwa
Baixe o pacote deb personalizado do baruwa:
cd /usr/src
wget baruwa_1.0.1-2sn_all.deb Atualizado 021811
wget baruwa-doc_1.0.1-2_all.deb
gdebi baruwa*.debVocê será solicitado a configurar o banco de dados do baruwa para registro, incluindo um nome de usuário e senha de acesso, que serão usados pelos scripts do Baruwa. Você também será solicitado a configurar as informações do usuário administrador para a interface do Baruwa.
vi /usr/share/pyshared/baruwa/settings.pyAltere o hosturl de Quarantine conforme sua preferência:
QUARANTINE_REPORT_HOSTURL = 'http://baruwa-alpha.local'vi /opt/MailScanner/etc/MailScanner.confVocê precisa garantir que as seguintes opções estejam definidas:
Always Looked Up Last = &BaruwaSQL
Is Definitely Not Spam = &BaruwaWhitelist
Is Definitely Spam = &BaruwaBlacklist
Required SpamAssassin Score = &BaruwaLowScore
High SpamAssassin Score = &BaruwaHighScore Atualizando Baruwa
*Nota: Esta seção é apenas para aqueles que estão executando uma versão mais antiga do Baruwa. Pule isso se você estiver fazendo uma instalação limpa.
Baixe o pacote deb mais recente do baruwa:
cd /usr/src
wget baruwa_1.0.2-4sn_all.deb Atualizado 052011
wget baruwa-doc_1.0.2-4_all.deb
gdebi baruwa*.debQuando solicitado a configurar o banco de dados mysql, selecione não. Vamos reutilizar o banco de dados e as configurações atuais.
Certifique-se de que /usr/share/pyshared/baruwa/settings.py esteja configurado com as informações corretas do banco de dados antes de se conectar, caso contrário, sua conexão falhará.
vi /usr/share/pyshared/baruwa/settings.pyDATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' ou 'oracle'.
DATABASE_NAME = 'baruwa' # Ou caminho para o arquivo do banco de dados se estiver usando sqlite3.
DATABASE_USER = 'baruwa' # Não usado com sqlite3.
DATABASE_PASSWORD = 'password' # Não usado com sqlite3.
DATABASE_HOST = '' # Defina como string vazia para localhost. Não usado com sqlite3.
DATABASE_PORT = '' # Defina como string vazia para padrão. Não usado com sqlite3.*Nota: Devido a alguns conflitos menores de atualização, esses passos podem ter que ser seguidos para atualizar corretamente o baruwa.
Se /opt/MailScanner foi removido:
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/MailScannerCertifique-se de atualizar sua string de conexão do banco de dados em /etc/MailScanner/CustomFunctions/*.pm.
Finalmente, execute
manage.py syncdbReinicie o Uwsgi e o Nginx
/etc/init.d/uwsgi-python2.6 restart && /etc/init.d/nginx restartO Baruwa deve ser atualizado para 102-4sn.
Atualizando Baruwa 102-4 para 111-3sn
Instale Rabbitmq-Server 2.2.0 e configure db/usuário/senha:
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 para vincular ao localhost:
export RABBITMQ_NODENAME=rabbit@localhost
export RABBITMQ_NODE_IP_ADDRESS=127.0.0.1
export ERL_EPMD_ADDRESS=127.0.0.1Adicione as credenciais do banco de dados:
rabbitmqctl add_user baruwa password
rabbitmqctl add_vhost baruwa
rabbitmqctl set_permissions -p baruwa baruwa ".*" ".*" ".*"Reinicie o rabbitmq-server:
/etc/init.d/rabbitmq-server restartAdicione fontes para Baruwa 1.1.1-3 e instale dependências:
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 mainInstale Dependências:
apt-get update
apt-get install python-django-celery python-importlib*Nota: O comando acima deve instalar todas as dependências para o Baruwa.
Baixe e instale 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*Nota: Instale a versão do mantenedor do pacote dos arquivos quando solicitado. Selecione não para configurar o mysql, pois estamos atualizando de uma versão anterior.
Corrija o link simbólico para 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 e corrija a configuração do banco de dados do baruwa:
DATABASES = {
'default': {
# Adicione 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3'
# ou 'oracle'.
'ENGINE': 'django.db.backends.mysql',
# Ou caminho para o arquivo do banco de dados se estiver usando sqlite3.
'NAME': 'baruwa',
# Não usado com sqlite3.
'USER': 'baruwa',
# Não usado com sqlite3.
'PASSWORD': 'password',
# Defina como string vazia para localhost. Não usado com sqlite3.
'HOST': '',
# Defina como string vazia para padrão. Não usado com sqlite3.
'PORT': '',
}
}Atualize a estrutura do banco de dados do Baruwa:
baruwa-admin syncdb --noinputExecute a migração falsa para iniciar uma atualização:
for name in $(echo "accounts messages lists reports status config"); do
baruwa-admin migrate $name 0001 --fake;
doneExecute a migração normal:
for name in $(echo "accounts messages lists reports status fixups config"); do
baruwa-admin migrate $name;
donevi /etc/MailScanner/MailScanner.conf altere o seguinte:
Run As Group = celeryd
Quarantine User = celeryd
Quarantine Group = celerydvi /etc/MailScanner/conf.d/baruwa.conf:
Quarantine User = postfix #(Ou o que quer que seu `Run As User` esteja definido)
DB DSN = DBI:mysql:database=baruwa;host=localhost;port=3306 #defina para DSN válido
DB Username = baruwa # seu nome de usuário do DB
DB Password = password # sua senha do DBvi /etc/init.d/mailscanner e altere as entradas de grupo de www-data para 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} #Necessário para Criar Pasta
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 \Adicione o usuário celeryd ao grupo clamav:
usermod -a -G celeryd clamavAltere a propriedade do grupo da pasta de quarentena e do conteúdo:
chgrp -R celeryd /var/spool/MailScanner/quarantineSe você for usar assinaturas, inicialize executando:
baruwa-admin initconfigCaso contrário, desative as opções em /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.customizeReinicie seu sistema e aproveite o Baruwa 111-3sn.
9. Nginx com Uwsgi
Baixe e instale tanto o Nginx quanto o Uwsgi do Launchpad de Chris Lea:
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*Use os seguintes arquivos de configuração para uwsgi e 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;
#log de acesso principal
access_log /var/log/nginx/access.log;
#log de erro principal
error_log /var/log/nginx/error.log;
location /static {
root /usr/share/pyshared/baruwa/static/;
}
# recursos estáticos
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;
}
}*Nota: Certifique-se de alterar example.com para um FQDN que corresponda à sua configuração.
Remova o host virtual padrão e copie os 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.confReinicie os serviços:
/etc/init.d/uwsgi-python2.6 restart && /etc/init.d/nginx restartVocê deve estar tudo pronto.
Configure tarefas Cron
Crie um link simbólico para manage.py:
ln -s /usr/share/pyshared/baruwa/manage.py /usr/bin/manage.py
chmod +x /usr/bin/manage.pyAdicione tarefas cron:
@daily manage.py cleanquarantine &> /dev/null #Limpar quarentena
@daily manage.py sendquarantinereports &> /dev/null #Enviar relatórios de quarentena
@monthly manage.py dbclean &> /dev/null #Limpar maillog
@weekly manage.py updatesarules &> /dev/null #Atualizar regras do spamassassin
@daily manage.py sendpdfreports &> /dev/null #Enviar relatórios em PDFInicie o MailScanner:
/etc/init.d/mailscanner startAponte seu navegador para http://hostname_used faça login com o usuário administrador e senha e comece a trabalhar. Agora você pode usar a interface para adicionar usuários e processar mensagens, etc.
Instruções de Configuração para Baruwa
Faça login no Baruwa como administrador –> Configurações –> Contas –> Criar Conta
Depois de criar a conta de usuário, você verá duas novas abas nessa página, Configurações de Perfil e Endereços Associados.
Preencha as Configurações de Perfil escolhendo Administrador de Domínio e defina uma pontuação baixa de 6 e uma pontuação alta de 9 e marque escanear e-mail.
Clique no sinal de + abaixo de Endereços Associados e insira um domínio para o qual o usuário é o administrador, por exemplo, domain.com. domain.com aparecerá sob Endereços Associados.
Clique em domain.com e você será levado às Informações do Domínio, onde poderá configurar as informações de entrega SMTP. Vá em frente e adicione o servidor smtp de recebimento, ou o ip do servidor smtp de recebimento. Selecione habilitar e, se você usar uma porta não padrão, defina-a, caso contrário, use 25. Depois de fazer isso, você pode clicar no botão de teste ao lado do lápis, para ver se seu servidor de recebimento aceitará a conexão.
Agora, você pode sair como administrador e fazer login como o usuário que acabou de configurar e os e-mails devem começar a fluir.
As configurações relay_recipients, relay_domains e transports em /etc/postfix/main.cf usarão as entradas que você forneceu no Baruwa. Portanto, nenhum arquivo hash é necessário.
As consultas associadas nos arquivos cf do mysql puxarão o resultado no formato adequado e o alimentarão ao postfix para uso.
No entanto, se você quiser usar um hash para qualquer um de seus arquivos de configuração, use o seguinte como exemplo de como configurar /etc/postfix/main.cf:
relay_recipient_maps = hash:/etc/postfix/relay_recipientsClaro, você teria que criar o(s) arquivo(s) hash, preenchê-lo e postmap para que o postfix o utilizasse.
*Nota: Se você acabar usando hash para relay_recipients para domínios específicos, você terá que remover esse domínio de /etc/postfix/access. Todos os outros usuários de domínio ainda podem ser verificados usando look_ahead
Além disso, se você precisar fazer buscas mx, você terá que editar /etc/postfix/mysql-transports.cf query para ficar assim:
concat('smtp:', mail_hosts.address, ':', port) 'transport'Os [ e ] foram removidos para permitir buscas MX.
Aproveite o Baruwa!
10. Instalar e Configurar SPF
O pacote postfix-policyd-spf-perl depende dos módulos Perl Mail::SPF e NetAddr::IP.
Precisamos baixar postfix-policyd-spf-perl de http://www.openspf.org/Software para o diretório /usr/src/ e instalá-lo no diretório /usr/lib/postfix/ assim:
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-perlEntão editamos /etc/postfix/master.cf e adicionamos a seguinte estrofe no final:
vi /etc/postfix/master.cfpolicy unix - n n - - spawn
user=nobody argv=/usr/bin/perl /usr/lib/postfix/policyd-spf-perl(Os espaços iniciais antes de user=nobody são importantes para que o Postfix saiba que esta linha pertence à anterior!)
*Nota: Já adicionamos a entrada para main.cf usando o script de configuração do postfix.
Então reinicie o Postfix:
/etc/init.d/postfix restartÉ isso já.
11. Instalar e Configurar FuzzyOcr
FuzzyOCR tem alguns pré-requisitos como ocrad e gocr que podemos instalar assim:
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/Então o FuzzyOCR está agora instalado, agora precisamos configurá-lo. O arquivo de configuração do FuzzyOCR é /etc/spamassassin/FuzzyOcr.cf. Nesse arquivo quase tudo está comentado. Abrimos esse arquivo agora e fazemos algumas modificações:
vi /etc/spamassassin/FuzzyOcr.cfDescomente as seguintes linhas:
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, tesseractComente o caminho:
#focr_path_bin /usr/local/netpbm/bin:/usr/local/bin:/usr/binArmazenaremos os hashes de imagem em um banco de dados mysql para melhorar o desempenho, de modo que imagens que já escaneamos não sejam escaneadas novamente, pois OCR é uma atividade que consome recursos.
Crie o Banco de Dados MySQL:
O script sql cria o banco de dados para fuzzyocr:
mysql -p < FuzzyOcr.mysqlConceda privilégios:
mysql –u root –p
GRANT ALL ON FuzzyOcr.* TO fuzzyocr@localhost IDENTIFIED BY ‘password’;Atualize FuzzyOcr.cf
vi /etc/spamassassin/FuzzyOcr.cfAtive as seguintes linhas:
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*Nota: Certifique-se de alterar as linhas em vermelho.
Configuração do Limpador de Banco de Dados FuzzyOcr
vi /usr/sbin/fuzzy-cleanmysql#!/usr/bin/perl
#Script para limpar tabelas mysql de dados. O padrão é deixar dados em Safe por 1 dia e Hash por 10 dias.
#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';
# padrões
my $cfgfile = "/etc/spamassassin/FuzzyOcr.cf";
my %App;
my %age;
$age{'age'} = 10*24; # 10 dias
$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 "Uso: fuzzy-cleanmysql [Opções]\n";
print "\n";
print "Opções disponíveis:\n";
print "--age=i Idade global em horas para manter no db\n";
print "--config=s Especificar localização de FuzzyOcr.cf\n";
print " Padrão: /etc/spamassassin/FuzzyOcr.cf\n";
print "--hash=i Número de horas antigas para manter no banco de dados Hash\n";
print "--safe=i Número de horas antigas para manter no banco de dados Safe\n";
print "--verbose Mostrar mais informações\n";
print "\n";
exit 1;
}
# Converter horas em segundos
$age{'age'} *= 60 * 60;
$age{'hash'} *= 60 * 60;
$age{'safe'} *= 60 * 60;
$age{'safe'} = $age{'safe'} ? $age{'safe'} : $age{'age'};
# Ler caminhos personalizados de FuzzyOcr.cf
my $app_path = q(/usr/local/netpbm/bin:/usr/local/bin:/usr/bin);
open CONFIG, "< $cfgfile" or warn "Não é possível ler o arquivo de configuração, usando padrões...\n";
while () {
chomp;
if ($_ =~ m/^focr_bin_(\w+) (.+)/) {
$App{$1} = $2;
printf "Encontrado caminho personalizado \"$2\" para o aplicativo \"$1\"\n" if $verbose;
}
if ($_ =~ m/^focr_path_bin (.+)/) {
$app_path = $1;
printf "Encontrado novo caminho: \"$1\"\n" if $verbose;
}
if ($_ =~ m/^focr_enable_image_hashing (\d)/) {
$App{hashing_type} = $1;
printf "Encontrado Hashing DB\n" if ($verbose e $1 == 2);
printf "Encontrado Hashing MySQL\n" if ($verbose e $1 == 3);
}
if ($_ =~ m/^focr_mysql_(\w+) (.+)/) {
$MySQL{$1} = $2;
printf "Encontrada opção MySQL $1 => '$2'\n" if $verbose;
}
if ($_ =~ m/^focr_threshold_max_hash (.+)/) {
$App{max_hash} = $1;
printf "Atualizado Thresold{max_hash} = $1\n" if $verbose;
}
}
close CONFIG;
# certifique-se de que temos esse limite definido
$App{max_hash} = 5 a menos que definido $App{max_hash};
# caminho de busca para bin_util a menos que já especificado no arquivo de configuração
foreach my $app (@bin_utils) {
next if definido $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 (definido $socket) {
$dsn .= ";mysql_socket=$socket";
} else {
$dsn .= ";host=$hostname";
$dns .= ";port=$port" a menos que $port == 3306;
}
printf "Conectando a: $dsn\n" if $verbose;
return DBI->connect($dsn, $username, $password,\%dopts) or die("Não foi possível conectar!");
}
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 "Excluir da Tabela $MySQL{$ff}\n";
print "$sql, $timestamp\n";
print "Timestamp é ", scalar(localtime($timestamp)), "\n";
print "Isso é $age{$ff} segundos antes de agora.\n";
print "\n";
}
$ddb->do($sql,undef,$timestamp);
}
$ddb->disconnect;
}
}chmod +x /usr/sbin/fuzzy-cleanmysqlAdicione-o ao cron
crontab -e@weekly /usr/sbin/fuzzy-cleanmysql &> /dev/null #Limpador de DB FuzzyOcrÉ isso já para a configuração do FuzzyOCR. Agora vamos ver se funciona como esperado.
Podemos alimentar cada um desses e-mails ao SpamAssassin agora para ver se o FuzzyOCR está vinculado corretamente ao SpamAssassin.
spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.6.0/samples/ocr-gif.eml > /dev/nullVocê deve agora ver uma saída grande, o final deve parecer assim:
[...]
[10025] dbg: FuzzyOcr:
[10025] dbg: FuzzyOcr: Sexta-feira 4 de agosto, 16:01 ET
[10025] dbg: FuzzyOcr: LAS VEGAS, NEVADA--(MARKET WIRE)--4 de agosto de 2006 -- a energia quântica, lnc. (OTC
[10025] dbg: FuzzyOcr: BB:aEGY.oB-_-
[10025] dbg: FuzzyOcr: a energia quântica, lnc. tem o prazer de anunciar que solicitou a listagem de suas ações na
[10025] dbg: FuzzyOcr: Frankfurt Stock Exchange. A empresa contratou os serviços do Baltic
[10025] dbg: FuzzyOcr: Investment Group de Hamburgo, Alemanha, para ajudar com a aplicação.
[10025] dbg: FuzzyOcr:
[10025] dbg: FuzzyOcr: _ qEGY,OB "12. Filtrando PDF, XLS e Spam de Phishing com ClamAV (Assinaturas Sanesecurity)
Atualmente, há muito spam onde as “informações” de spam estão anexadas como arquivos .pdf ou .xls, às vezes também ocultas dentro de um arquivo .zip. Embora esses e-mails de spam não sejam fáceis de capturar com, por exemplo, SpamAssassin ou um filtro Bayes, o scanner de vírus ClamAV pode capturá-los facilmente quando alimentado com as assinaturas corretas, pois o ClamAV é construído para escanear anexos de e-mail.
Crie uma pasta para sanesecurity e baixe e dê ao script a permissão adequada.
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.confe altere as seguintes variáveis para corresponder à sua instalação:
clam_dbs="/var/lib/clamav"A variável clamav_dbs contém o caminho para o diretório onde suas assinaturas ClamAV estão armazenadas.
Caminho para clamd.pid:
clamd_pid="/var/run/clamav/clamd.pid"Recarregar após atualização:
reload_dbs="yes"
reload_opt="kill -USR2 `cat $clamd_pid`" #Sinaliza PID para recarregar dbsDiretório de Trabalho:
work_dir="/var/lib/clamav"E uma vez que você tenha terminado a configuração, defina o seguinte como sim:
user_configuration_complete="yes" Agora executamos o script de atualização para verificar se o download funciona:
clamav-unofficial-sigs.shAdicione-o ao cron:
00 04 * * * /usr/sbin/clamav-unofficial-sigs.sh -c /etc/clamav-unofficial-sigs.conf &> /dev/null Por favor, edite /etc/clamav-unofficial-sigs.conf e comente a seção do banco de dados MalwarePortal. Tem havido toneladas de falsos positivos ao usar suas definições.
13. Greylisting com Greyfix
Greyfix é um pequeno daemon de greylisting que funciona extremamente bem e é leve em recursos.
Instale:
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.cfe adicione o seguinte:
greyfix unix - n n - - spawn
user=nobody argv=/usr/local/sbin/greyfix --greylist-delay 60 -/ 24Já adicionamos a entrada para main.cf usando o script de configuração do postfix.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.