vmware:nfs

Firewall Dinâmico para Zimbra

Motivação:

A conta de administrador do Zimbra recebe mensagens com notificações de origem de spams com os respectivos IPs dos supostos spammers. Foi sugerida a criação de uma solução que bloqueasse pelo período de 15 dias o acesso desses endereços ao servidor de e-mail.

* Getmail 4

* Iptables

É recomendado a criação de uma conta de e-mail para que receba através do encaminhamento cópias das mensagens que a conta admin@ifce.edu.br com as notificações. Neste caso foi criada a conta spamhunter@ifce.edu.br para receber os e-mails com as notificações. Todos procedimentos descritos abaixo devem ser realizados no servidor responsável por receber os e-mails.

Instalação do GetMail 4:

  
sudo apt-get update 
sudo apt-get install getmail4

É necessária a criação do diretório onde será armazenado o arquivo de configuração do getmail no home do usuário que irá baixar os e-mails:

  
mkdir /home/operador/.getmail 

Criação do arquivo de configuração para que seja possível baixar os emails:

  
vim /home/operador/.getmail/getmailrc

Conteúdo do arquivo com comentários:

[retriever]
# Tipo de servidor pode ser POP ou IMAP, neste caso foi definido POP
type = SimplePOP3SSLRetriever
# Endereço do Servidor POP
server = pop.ifce.edu.br
# Nome de usuário do e-mail
username = spamhunter@ifce.edu.br
# Senha da conta de e-mail
password = linuxifce
mailboxes = ("out.ifce",)
[destination]
type = Mboxrd
# Endereço do arquivo com conteúdo dos e-mails baixados
path = ~/mail/emails.mbox
[options]
# print messages about each action (verbose = 2)
# Other options:
# 0 displays warnings and errors
# 1 displays messages about retrieving and deleting messages
read_all = false
# Apaga os emails do servidor depois de baixar
delete = true
verbose = 2
# Endereço do arquivo de log do serviço de e-mail do usuário
message_log = ~/.getmail/ifcemail.log

Criação do script que irá baixar os e-mails, extrair os endereços IPs dos possíveis spammers e irá gerar as regras no firewall local da máquina do zimbra:

 
vim /home/operador/antispam
 
#!/bin/bash
# Cria arquivo que irá armazenar o conteúdo dos e-mails
touch /home/operador/mail/emails.mbox
# Executa o getmail com isso os e-mails serão baixados
getmail
# Extrai o IP dos e-mails de notificação dos spams e cria uma lista dos Ips a serem bloqueados no arquivo /home/operador/lista  
cat /home/operador/mail/emails.mbox | grep 'localhost localhost' | cut -d "," -f1 | cut -d "[" -f 2 | cut -d "]" -f 1 > /home/operador/lista

# Enviado Regras para o Firewall com bloqueio de 15 dias para cada IP recebido da lista

# Define variáveis 
SPAMLIST="spamlist"
SPAMDROPMSG="SPAM LIST DROP"
BADIPS=$(egrep -v -E "^#|^$" /home/operador/lista)
dateatual=`date +%Y/%m/%d | sed 's/\//-/' | sed 's/\//-/'`
datefinal=`date +%Y/%m/%d -d "+15 days" | sed 's/\//-/' | sed 's/\//-/'`
datefinal2=`date +%Y/%m/%d -d "+1 days" | sed 's/\//-/' | sed 's/\//-/'`
# Cria nova lista no iptables
sudo /sbin/iptables -N $SPAMLIST
for ipblock in $BADIPS
do
sudo /sbin/iptables -A $SPAMLIST -s $ipblock -m time --kerneltz --datestart $dateatual --datestop $datefinal -j DROP
done
sudo /sbin/iptables -A INPUT -s 200.17.33.0/24 -m time --kerneltz --datestart $dateatual --datestop $datefinal2 -j ACCEPT
sudo /sbin/iptables -A INPUT -s 127.0.0.1 -m time --kerneltz --datestart $dateatual --datestop $datefinal2 -j ACCEPT
# Gera lista com todos os IPs que já foram bloqueados pelo menos uma vez no Firewall
cat /home/operador/lista >> /home/operador/blacklist
# Limpa os e-mails baixados 
rm -rf /home/operador/mail/emails.mbox
# Limpa a lista de IPs gerada na execução do script
rm -rf /home/operador/lista

Preparando o do Script para execução :

chmod 777 /home/operador/antispam
chmod +x /home/operador/antispam

Incluindo o Script na Crontab do usuário para execução a cada uma hora:

crontab -e

Deverá ser adicionada na última linha o seguinte conteúdo:

0   *   *   *   *    /home/operador/antispam

Referencias:

Valber Jones de Castro 2014/12/29 13:05

  • vmware/nfs.txt
  • Última modificação: 2021/08/25 10:33
  • (edição externa)