Os créditos deste post são do site http://blog.bibliotecaunix.org/?p=103
Hoje estavamos com problemas relacionados a muitas pessoas baixando torrent na rede e a quantidade de alertas do CAIS sobre pirataria estava além do limite.
Buscamos então uma forma de resolver o problema, primeiro vamos utilizar o snort para buscar as entradas P2P com uma regra especial e depois configuramos o fail2ban para filtrar e bloquear as entradas dos peers dinâmicamente.
Vamos instalar os pacotes necessários:
# apt-get install snort fail2banapós instalarmos estes 2 pacotes, vamos adicionar a seguinte regra no arquivo local.rules do snort:
# vim /etc/snort/rules/local.rules
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"TO_BAN"; flow:to_server,established; content:"|13|BitTorrent protocol"; depth:20; sid:2181; rev:2;)
esta regra vai filtrar o protocolo do BitTorrent. Para juntarmos com o fail2ban, vamos fazer com que o snort escreva um log que seja compreendido por ele, adicione a seguinte linha ao seu snort.conf:
# vim /etc/snort/snort.conf
output alert_csv: /var/log/snort/p2p timestamp,dste reinicie o snort:
# /etc/init.d/snort restartpronto, o arquivo de log p2p está sendo gerado, temos que fazer o fail2ban entendê-lo agora. Edite o arquivo de interpretação de datas do fail2bain para que ele compreenda a saída de timestamp do snort:
# vim /usr/share/fail2ban/server/datedetector.pye adicione o seguinte:
# snort 08/23-20:03:12.062498 template = DateStrptime() template.setName("Month/Day-Hour:Minute:Second[.Millisecond]") template.setRegex("\d{2}/\d{2}-\d{2}:\d{2}:\d{2}") template.setPattern("%m/%d-%H:%M:%S") self.__templates.append(template)isso vai casar com o padrão do alert_csv que definimos no snort. Vamos agora criar a regra dentro do fail2ban:
# vim /etc/fail2ban/filter.d/p2p.conf
[Definition] failregex = ,< HOST > ignoreregex =(os parênteses são juntos ao HOST, mas o Blog não deixou colocar junto) e a regra no jail.conf:
# vim /etc/fail2ban/jail.conf
[p2p] enabled = enable protocol = tcp filter = p2p port = 1:65535 logpath = /var/log/snort/p2p maxretry = 5reinicialize o fail2ban para garantir que nosso ambiente vai estar de fato filtrando as entradas:
# /etc/init.d/fail2ban restartpronto, nosso filtro em tempo real de P2P está configurado.
Seja Membro Gratuítamente
Assine a newsletter para receber em seu email as publicações atualizadas neste blog