Ícone do site CooperaTI

Protegendo seu servidor com PortSentry


Ter um servidor ligado à internet e sempre complicado, além de lidar com as configurações de serviços para garantir a estabilidade e segurança, temos que pensar também nos mal intencionados da rede. Evitar que ataques de portscan sejam efetivos costuma ser trabalhoso, mas com o Portsentry sua vida fica um pouco mais fácil.

O Portsentry simula que portas estejam abertas em seu Servidor e quando essas portas recebem algum tipo de acesso ou escaneamento ele pode tomar alguma atitude. Geralmente bloquear o IP de origem, assim seu sistema mantém aquele host bloqueado.
Vamos à instalação:
root# apt-get install portsentry
Se o sistema for baseado em CentOS, procure pelo portsentry no site rpmfind.net, escolha a versão compatível com seu sistema e instale com:
root# rpm -ivh portsentry-versao_do_porsentry.rpm
Agora entre no diretório /etc/portsentry para começar as configurações:
root# cd /etc/portsentry
Renomeie o arquivo portsentry.conf :
root# mv portsentry.conf portsentry.conf.original
Crie seu arquivo com o seguinte conteúdo:
root# vi portsentry.conf
# Portas que serão simuladas pelo portsentry(NUNCA USE PORTAS DE SERVIÇOS QUE ESTEJAM NESTE SERVIDOR)
TCP_PORTS=”1,11,15,23,79,111,119,143,445,540,635,1080,1524,2000,3128,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″
# Portas altas
ADVANCED_PORTS_TCP=”1024″
ADVANCED_PORTS_UDP=”1024″
# Portas excluídas do bloqueio
ADVANCED_EXCLUDE_TCP=”113,139″
ADVANCED_EXCLUDE_UDP=”520,138,137,67″
# Hosts que não serão bloqueados estão neste arquivo(um por linha)
IGNORE_FILE=”/etc/portsentry/portsentry.ignore”
# Histórico dos bloqueios
HISTORY_FILE=”/var/lib/portsentry/portsentry.history”
# Hosts bloqueados
BLOCKED_FILE=”/var/lib/portsentry/portsentry.blocked”
# Não resolver nome dos hosts
RESOLVE_HOST = “0”
# Bloquear TCP e UDP
BLOCK_UDP=”1″
BLOCK_TCP=”1″
# Regras do IPTABLES que irá bloquear o host que acessar as portas:
KILL_ROUTE=”/sbin/iptables -I INPUT -s $TARGET$ -j DROP”
# Regra a ser adicionada no hosts.allow
KILL_HOSTS_DENY=”ALL: $TARGET$ : DENY”
# Quantos acessos um host pode fazer em uma porta antes de ser bloqueado
SCAN_TRIGGER=”1″

Basta agora reiniciar o serviço:
root# /etc/init.d/portsentry restart
Veja como funciona, primeiro temos as portas normais de serviço abertas:

Veja agora as portas depois do portsentry instalado:

Veja as regras de firewall totalmente limpas:

Vamos fazer 2 acessos à porta 111 , que é uma das portas abertas pelo Portsentry:

Podemos ver que no segundo acesso a conexão não se completou, pois no segundo acesso uma regras de firewall foi criada para aquele host:

Então quando um host fizer um escaneamento em seu servidor ou tentativas de acesso, as portas que estão abertas pelo portsentry são monitoradas e o host será bloqueado por regra de firewall. Assim o host só será liberado quando o administrador remover a regra, e o bloqueio é para qualquer acesso daquele host e não apenas na porta anteriormente acessada.
Então gradualmente faremos nossos servidores mais seguros e junto com outros posts que temos aqui no CooperaTI expandimos nosso conhecimento em segurança.
Espero que gostem do artigo e não se esqueçam de votar no TopBlog.

Sair da versão mobile