seguinte, não tenho muita experiência com servidor de email... mas preciso bloquear anexos .exe, .pif., .bat, etc...
o servidor instalado é exim4 (no debian)
alguém sabe como fazer isso?
seguinte, não tenho muita experiência com servidor de email... mas preciso bloquear anexos .exe, .pif., .bat, etc...
o servidor instalado é exim4 (no debian)
alguém sabe como fazer isso?
voce usa qual delivery para as mensagens ?? procmail ? maildrop ?
vc poderia da uma olhada nesta pagina onde conta anti-virus que bloqueia qualquer coisa que vc queria
http://www.goffredo.eti.br/anti-virus/
estou usando o procmail
Voce pode colocar no seu /etc/procmailrc
Código :PMDIR=/var/mail/FILTER LOGFILE=$PMDIR/log :0B $PMDIR/.msgid.lck * name=".*\.(scr|pif|bat)| +\.exe|.*\.cmd" $PMDIR/filter-scr-pif-exe
Lembre-se de criar o diretorio /var/mail/FILTER
adicionei isso no /etc/procmailrc, criei o diretório ... mas não funciona.. o anexo continua passando...
creio que instalando um antivírus resolva, não?
tentei o amavis aqui (amavis é mesmo antivírus? e o clamav?)
apt-get install amavisd-new
mas.. como fazer pra "sincronizar" o amavis com o exim4 ?
desculpa a falta de conhecimento... mas nunca mexi com email entes
:-(
instalei o mailscanner + clamav
mas o bloqueio de arquivos.exe e .bat ainda não está funcionando
:-(
provavelmente voce tera que configurar nele o bloqueio para esses arquivos..
mais ai a minha regra de procmail deveria funcionar eu estou usando ela sem problemas.
[]´s
então cara...
desculpa minha insistência nisso... mas é que realmente eu nunca mexi com servidor de email e estou usando esse server há 1 semana...
fui checar o que o administrador dela instalou... e lá constava
#apt-get install exim4 exim4-base exim4-config exim4-daemon-heavy
#apt-get install qpopper
#apt-get install uw-imapd
#apt-get install procmail
#apt-get install spamassassin
isso é tudo que eu sei até agora...
olha como está o /etc/procmailrc
pode ajudar?# Location of the SquirrelMail user data files
SQDATA=/var/lib/squirrelmail/data/
# Location of the user's SM Trash file ($HOME represents the user's home dir)
SQTRASH=$HOME/INBOX.Trash
# Full, absolute path of the test utility on the system
TESTPATH=/usr/bin/test
# Full, absolute path of the formail utility on the system
FORMAILPATH=/usr/bin/formail
# Full, absolute path of the grep utility on the system
GREPPATH=/bin/grep
# Full, absolute path of the sed utility on the system
SEDPATH=/bin/sed
# DO NOT MODIFY ANYTHING BELOW UNLESS YOU (REALLY) KNOW WHAT YOU'RE DOING!
SHELL=/bin/sh
BLOCKLIST=$LOGNAME.block
:0
* ? $TESTPATH -f $SQDATA/$BLOCKLIST
{
# Get the sender's email address
:0h
SENDER=|$FORMAILPATH -IReply-To: -rtzxTo:
# Grab the domain from the sender
DOMAIN=\*@`echo $SENDER|sed s/^.*@//`
:0
* 1^0 ? $GREPPATH $SENDER $SQDATA/$BLOCKLIST
* 1^0 ? $GREPPATH $DOMAIN $SQDATA/$BLOCKLIST
{
DROPPRIVS=yes
:0:
$SQTRASH
}
}
:0:
*^X-Spam-Flag:.*YES
$HOME/INBOX.Spam
:0:
*^Subject:.*.
$HOME/INBOX
# --- BLOQUEAR ANEXOS ---------
PMDIR=/var/mail/FILTER
LOGFILE=$PMDIR/log
:0B $PMDIR/.msgid.lck
* name=".*\.(scr|pif|bat)| +\.exe|.*\.cmd"
$PMDIR/filter-src-pif-exe
Coloque assim seu procmailrc e faca um teste...
Código :# Location of the SquirrelMail user data files SQDATA=/var/lib/squirrelmail/data/ # Location of the user's SM Trash file ($HOME represents the user's home dir) SQTRASH=$HOME/INBOX.Trash # Full, absolute path of the test utility on the system TESTPATH=/usr/bin/test # Full, absolute path of the formail utility on the system FORMAILPATH=/usr/bin/formail # Full, absolute path of the grep utility on the system GREPPATH=/bin/grep # Full, absolute path of the sed utility on the system SEDPATH=/bin/sed # DO NOT MODIFY ANYTHING BELOW UNLESS YOU (REALLY) KNOW WHAT YOU'RE DOING! SHELL=/bin/sh BLOCKLIST=$LOGNAME.block # --- BLOQUEAR ANEXOS --------- :0 * ^Content-Type:.*multipart/mixed; { :0 B * ^Content-Transfer-Encoding: base64 * ^Content-Disposition: attachment; * ^.*filename=".*\.(pif|scr|bat|exe|com)" /dev/null } :0 * ? $TESTPATH -f $SQDATA/$BLOCKLIST { # Get the sender's email address :0h SENDER=|$FORMAILPATH -IReply-To: -rtzxTo: # Grab the domain from the sender DOMAIN=\*@`echo $SENDER|sed s/^.*@//` :0 * 1^0 ? $GREPPATH $SENDER $SQDATA/$BLOCKLIST * 1^0 ? $GREPPATH $DOMAIN $SQDATA/$BLOCKLIST { DROPPRIVS=yes :0: $SQTRASH } } :0: *^X-Spam-Flag:.*YES $HOME/INBOX.Spam :0: *^Subject:.*. $HOME/INBOX
valeu cara!
funcionou!!
:-D
acabou meu horário aqui... depois vou analisar os códigos pra entender (tentar) o motivo de não estar funcionando antes
valeu!!
desse jeito a mensagem não chega para o destinatário...
tem como fazer a mensagem chegar SEM o anexo?
ao invés de bloquear tudo...
ai foge ao meu nivel de conhecimento mais acredito que o GOOGLE tenha a reposta
Ai pessoal boa noite ...tambem tô com essa bromca ...não estou conseguindo
bloquear anexos ...
estou usando o postfix + uw-imap
alguem pode me dar uma luz ...
valew ...
olá consegui com expressões regulares ....Postado originalmente por rootmaster
valew ...
eu achei o seguinte script:
mas não funfou aqui no exim##########################################################
# Solução 1. Bloqueia qualquer anexo suspeito.
# - crie o diretorio $DIR;
# - crie o /etc/virus.msg com a msg de aviso.
# coloque em /etc/procmailrc
# Diretorio onde as msg bloqueadas serão guardadas
DIR="/var/spool/procmail"
# Protecao contra alguns virus
:0 B
* filename=.+\....\.(pif|com|exe|bat|lnk|scr|vbs)
{
# Cria um copia carbono, que eh passada ao formail.
# O formail gera cabecalhos de reply, que concatenado
# com o /etc/virus.msg, gera uma mensagem que é passada
# ao agente SMTP, no caso o sendmail.
#
# O parametro -i permite trocar o remetente. No caso, estou
# trocando para "antivirus". Senão a msg de retorno iria
# com o endereco da vitima (digo, quase vitima...).
:0 c
|(formail -r -i"From:antivirus" -A"X-Loop: antivirus";\
cat /etc/virus.msg)|$SENDMAIL -oi -t
# Utilizando lockfile, para evitar que mais de um
# processo mexa no arquivo ao mesmo tempo (recomendavel)
:0: ${DIR}/${LOGNAME}.lock
${DIR}/${LOGNAME}.virus
}
# fim
##########################################################
:cry:
ae, dei uma modificada no código e agora está funcionando, parcialmente
e:0 B
* ^Content-Transfer-Encoding: base64
* ^Content-Disposition: attachment;
* ^.*filename=".*\.(pif|com|exe|bat|scr|vbs)"
(a única coisa que fiz aqui foi fechar o parêntese no final, estava aberto e por isso não funcionava) :-P:0 c
|(formail -r -i"From:antivirus" -A"X-Loop: antivirus";\
cat /etc/virus.msg)|$SENDMAIL -oi -t)
PORÉM, ele retorna a mensagem para o remetente original como "Mail Delivery System" e não como "antivirus" como eu digitei acima...
li o manual do procmail, adicionei outro parâmetros... -t -k, mudei outros parâmetros... mas mesmo assim.. não consegui mudar isso...
outra coisa..., eu queria que na resposta (-r) ele colasse o conteúdo da mensagem original... e não só a mensagem que estou enviando (/etc/virus.msg)
alguém pode ajudar?
ae, eu mesmo respondendo porque já vi muitas dúvidas parecidas na net...
então, o que eu queria sobre mudar o remetente.. ficando antivirus@.... eu consegui mudando a linha do formail, deixando-a assim:
:-D| (formail -r ; cat /etc/virus.msg) | $SENDMAIL -oi -t -f antivirus
prontinho, basta alterar o -f NOME e pronto.
na verdade... o que eu quero é manter a mensagem original na hora de responder... adicionando o conteúdo do /etc/virus.msg... mas do jeito que tá.. ele só manda o conteúdo do arquivo...
outra coisa, mandar um email pra pessoa que iria receber o arquivo, avisando que não a mensagem não pôde ser entregue
do jeito que tá.. só o remetente vai receber a resposta... o destinatário nem ficará sabendo de nada... :S
mas enfim, quem puder ajudar...