Instalando PortSentry 1.2 no CentOS 7

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

[ Hits: 5.582 ]

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

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

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

Fazendo o seu Asterisk contar até 100...

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

Leitura recomendada

Criando senhas diferentes para sites diferentes

Como ficar livre de vírus de uma vez por todas

Kerio Control Brasil - Firewall simples porém poderoso!

Script gerador de senha

Monitorando hora de desligamento de servidores Linux

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts