Como bloquear o Ultrasurf - solução definitiva (iptables + Fail2ban)
Neste artigo eu descrevo como fazer o bloqueio do Ultrasurf utilizando iptables e Fail2ban.
Parte 3: Enviando e-mail de aviso
É possível enviar um e-mail de alerta a cada bloqueio e desbloqueio que o Fail2ban faz.
Para ativar esta função, você tem primeiramente que testar o envio de e-mail na máquina. Para fazer isto, vamos usar o programa "mail":
# mail seu-email@seu-dominio.com.br
Obs.: Atenção ao "." (ponto) no final da mensagem, ele finaliza o e-mail.
O Debian, por padrão, utiliza o Exim. O Log fica localizado em "/var/log/exim4/mainlog".
Você também pode usar o comando 'mailq' para verificar a fila de e-mail, em situações normais, não deve existir nenhum e-mail na fila.
Diversos detalhes podem impedir o envio de e-mail, aqui não vou detalhar muito, vou apenas colocar o conteúdo do meu arquivo "/etc/exim4/update-exim4.conf.conf" para usar como referência.
Estou usando ele como "smarthost" e encaminhando as mensagens para o meu servidor de SMTP.
Depois de ajustar o arquivo, você deve executar o comando "update-exim4.conf" para atualizar a configuração e reiniciar o Daemon do Exim com o comando "/etc/init.d/exim4 restart".
Pronto, se o envio de e-mail pelo programa "Mail" estiver funcionando, você já pode ativar o envio de e-mail pelo Fail2ban, vamos lá.
Edite o arquivo "/etc/fail2ban/jail.local":
# vi /etc/fail2ban/jail.local
Adicione a "action sendmail-ultrasurf", conforme exemplo acima. Agora vamos criar um novo arquivo chamado "/etc/fail2ban/action.d/sendmail-ultrasurf.local":
# vi /etc/fail2ban/action.d/sendmail-ultrasurf.local
Feito isto, você irá receber um email quando uma máquina for bloqueada ou desbloqueada, veja exemplos abaixo.
- Bloqueio
- Desbloqueio
Você também pode alterar a mensagem a seu critério.
Para ativar esta função, você tem primeiramente que testar o envio de e-mail na máquina. Para fazer isto, vamos usar o programa "mail":
# mail seu-email@seu-dominio.com.br
Subject: Teste
Teste de envio de mensagem
.
Cc:
Teste de envio de mensagem
.
Cc:
Obs.: Atenção ao "." (ponto) no final da mensagem, ele finaliza o e-mail.
O Debian, por padrão, utiliza o Exim. O Log fica localizado em "/var/log/exim4/mainlog".
Você também pode usar o comando 'mailq' para verificar a fila de e-mail, em situações normais, não deve existir nenhum e-mail na fila.
Diversos detalhes podem impedir o envio de e-mail, aqui não vou detalhar muito, vou apenas colocar o conteúdo do meu arquivo "/etc/exim4/update-exim4.conf.conf" para usar como referência.
dc_eximconfig_configtype='smarthost'
dc_other_hostnames='SERVER.DOMINIO.com.br'
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets='127.0.0.1'
dc_smarthost='smtp.DOMINIO.com.br'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
dc_other_hostnames='SERVER.DOMINIO.com.br'
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets='127.0.0.1'
dc_smarthost='smtp.DOMINIO.com.br'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
Estou usando ele como "smarthost" e encaminhando as mensagens para o meu servidor de SMTP.
Depois de ajustar o arquivo, você deve executar o comando "update-exim4.conf" para atualizar a configuração e reiniciar o Daemon do Exim com o comando "/etc/init.d/exim4 restart".
Pronto, se o envio de e-mail pelo programa "Mail" estiver funcionando, você já pode ativar o envio de e-mail pelo Fail2ban, vamos lá.
Edite o arquivo "/etc/fail2ban/jail.local":
# vi /etc/fail2ban/jail.local
[ultrasurf]
enabled = true
filter = ultrasurf
port = all
banaction = iptables-ultrasurf
sendmail-ultrasurf
logpath = /var/log/messages
maxretry = 6
bantime = 900
enabled = true
filter = ultrasurf
port = all
banaction = iptables-ultrasurf
sendmail-ultrasurf
logpath = /var/log/messages
maxretry = 6
bantime = 900
Adicione a "action sendmail-ultrasurf", conforme exemplo acima. Agora vamos criar um novo arquivo chamado "/etc/fail2ban/action.d/sendmail-ultrasurf.local":
# vi /etc/fail2ban/action.d/sendmail-ultrasurf.local
[Definition]
actionstart =
actionstop =
actioncheck =
actionban = printf %%b "Subject: Bloqueado <ip>
From: Suporte <<sender>>
To: <dest>\n
\n
O dispositivo com IP <ip> foi bloqueado depois de tentar burlar
<failures> vezes o nosso sistema de seguranca.\n
Acesso sera liberado automaticamente,\n
Suporte" | /usr/sbin/sendmail -f <sender> <dest>
actionunban = printf %%b "Subject: Liberado <ip>
From: Infra <<sender>>
To: <dest>\n
\n
O dispositivo com IP <ip> foi liberado para acesso normal\n
Novas tentativas serao bloqueadas automaticamente,\n
Suporte" | /usr/sbin/sendmail -f <sender> <dest>
[Init]
name = default
dest = root
sender = fail2ban
actionstart =
actionstop =
actioncheck =
actionban = printf %%b "Subject: Bloqueado <ip>
From: Suporte <<sender>>
To: <dest>\n
\n
O dispositivo com IP <ip> foi bloqueado depois de tentar burlar
<failures> vezes o nosso sistema de seguranca.\n
Acesso sera liberado automaticamente,\n
Suporte" | /usr/sbin/sendmail -f <sender> <dest>
actionunban = printf %%b "Subject: Liberado <ip>
From: Infra <<sender>>
To: <dest>\n
\n
O dispositivo com IP <ip> foi liberado para acesso normal\n
Novas tentativas serao bloqueadas automaticamente,\n
Suporte" | /usr/sbin/sendmail -f <sender> <dest>
[Init]
name = default
dest = root
sender = fail2ban
Feito isto, você irá receber um email quando uma máquina for bloqueada ou desbloqueada, veja exemplos abaixo.
- Bloqueio
"O dispositivo com IP 10.23.134.41 foi bloqueado depois de tentar burlar
14 vezes o nosso sistema de seguranca.
Acesso sera liberado automaticamente,
Suporte"
- Desbloqueio
"O dispositivo com IP 10.23.134.41 foi liberado para acesso normal
Novas tentativas serao bloqueadas automaticamente,
Suporte"
Você também pode alterar a mensagem a seu critério.
a regra state (-m state --state ESTABLISHED,RELATED) -bash: syntax error near unexpected token `-m'