Instalando PortSentry 1.2 no CentOS 7

Publicado por Charles Josiah Rusch Alandt em 28/03/2017

[ Hits: 3.567 ]

Blog: https://www.linkedin.com/in/charlesjosiah/

 


Instalando PortSentry 1.2 no CentOS 7



Olá a todos, essa dica de instalação foi construída durante a minha aula no curso de Redes do Senai CTAI Florianopolis, U.C. Técnicas de Segurança de Rede deste ano (1o.Semestre/2017), assim agradeço previamente a todos os acadêmicos que auxiliaram na construção desta dica.

Alguns pre-requisitos são necessários para esta tarefa, e temos como objetivo pontuar em visão macro da instalação do PortSentry 1.2 no CentOS 7.

Para quem não conhece, PortSentry é um ótimo e bem eficaz HIDS, ou seja, um IDS para HOST, instalado localmente no servidor; consegue detectar ataques e scans vindo da internet e fazer o bloqueio do respectivo IP do "espertinho".

É possível integrar junto com Fail2ban e outros apps para justamente distribuir a ameaça pela rede.

Recomendo a leitura, aqui mesmo no VOL, das diversas e ótimas documentações sobre o nosso amigo PortSentry.

Então dedos no teclado, e vamos lá:

Primeiro baixamos o pacote correto: portsentry-1.2.tar.gz (está disponível em diversos sites e no sourceforge.net).

Já com um CentOS 7 instalado e previamente configurado com o básico, vamos lá:

sudo yum groupinstall 'Development Tools' (precisamos copilar algumas coisas...)
# wget https://goo.gl/EKBKdi (procure o link correto na internet, esse vai expirar em breve)
# cd portsentry_beta/
# make linux

Aqui o negócio apresenta erro e não vai mais para frente! Galera já desistindo da faculdade, jogando a toalha, quase trocando de curso e indo estudar moda, tudo por causa de um errinho no make... :D
Linux: Instalando PortSentry 1.2 no CentOS 7, missão quase impossível :D
Depois de muito pesquisar, testar e analisar, encontramos um erro no código fonte do portsentry. :D

Então para corrigir:

# vi portsentry.c +1584 (isso mesmo vá até a linha 1584)

repare que existe uma quebra de linha onde não deveria ter. Corrija isso, e vamos continuar a brincadeira... não esqueça de salvar o arquivo :wq!
# make linux ; make generic ; make install

Se tudo correu bem, e tudo foi compilado com sucesso, uhuuuu!!! :D

Edite o arquivo de configuração portsentry.conf, em /usr/local/ e siga algumas sugestões de configuração.

Editar, adicionar ou remover as portas da lista de monitoramento. Lembrando que a porta não deve estar em uso por um serviço real.

TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667,12345,12346,20034,27665,31337,32771,32772,32773,32774,40421,49724,54320"
UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700,37444,34555,31335,32770,32771,32772,32773,32774,31337,54321"

Alterar os parâmetros:

# 0 = Do not block UDP/TCP scans.
# 1 = Block UDP/TCP scans.
# 2 = Run external command only (KILL_RUN_CMD)


BLOCK_UDP="1"
BLOCK_TCP="1"

Mais algumas alterações... E alterar quais os comandos que devem ser executados quando um ataque for detectado.

KILL_ROUTE="/sbin/route add -host $TARGET$ reject"
ou se quiser usar iptables
KILL_ROUTE="/usr/local/bin/iptables -I INPUT -s $TARGET$ -j DROP"

Como estamos trabalhando com TCPWrappers, durante nossas aulas, vamos adicionar nos hosts.deny para ficar mais legal :D

KILL_HOSTS_DENY="ALL: $TARGET$ # Portsentry trabalhando"

Vamos deixar uma mensagem para o nosso “amigão" :D

PORT_BANNER="Sai fora malandro...."

Sai salvando :wq! e partir para os testes...

Iniciar o daemon, desta forma estamos barrando conexões TCP/UDP e portscanner:

# portsentry -atcp
# portsentry -audp


Nesta forma o teste é mais simples:

# portsentry -tcp
# portsentry -udp


Para parar o serviço:

# kill -9 `ps -aux | grep portsentry | awk '{ print $2 }'`

Para remover um endereço ip do bloqueio, edite /etc/hosts.deny e remova a linha referente ao IP.

Caso esteja usando iptables, simplesmente digite: iptables -F

Case esteja usando route, digite: route del -host <IP> reject

e remova seus ips dos arquivos portsentry.blocked.* ou o comando abaixo (trocar o xxx.xxx.xxx.xxx pelo ip).

# sed -i ’s/xxx.xxx.xxx.xx//g’ portsentry.blocked.*

Obs.: se você utiliza RedHat/CentOS e derivados, configurar o firewallD e o SELinux. E também não criamos os scripts de start/stop/restart, mas quem sabe para uma próxima dica.

Outras dicas deste autor

Fazendo o seu Asterisk contar até 100...

Zabbix API com cURL e alguns exemplos de utilização

Autenticar usuário e mostrar os membros de um grupo no site PHP via LDAP no AD W2K12

tcpdump - Capturando senhas de serviços POP3/IMAP/SMTP ou HTTP

Leitura recomendada

Instalando e integrando Snort, Barnyard e PostgreSQL no Linux

Protegendo arquivo com comando chattr

Squid com usuários X computadores por setor usando endereço MAC

Proteção Syn Flood de verdade

Proxy com WPAD pelo DHCP

  

Comentários
[1] Comentário enviado por ldcdanilo em 30/03/2017 - 14:18h

Ou poderia ter seguido a dica do teu aluno querido e ...

sudo apt-cache search portsentry
sudo apt-get install portsentry

haha

[2] Comentário enviado por charles.alandt em 30/03/2017 - 14:28h


[1] Comentário enviado por ldcdanilo em 30/03/2017 - 14:18h

Ou poderia ter seguido a dica do teu aluno querido e ...

sudo apt-cache search portsentry
sudo apt-get install portsentry

haha


Obrigado, Danilo, pela dica para o Debian e derivados....
:D



Contribuir com comentário