Como se proteger contra scanners de portas?

2

É possível impedir que nmap observe totalmente a minha máquina? Depois de eliminar todas as conexões de entrada com iptables port scans, retorne como "filtrado". Preferiria que o nmap não conseguisse ver quais portas existiam . Isso é possível?

As soluções abaixo parecem não funcionar:

link

link

link

Se não for possível evitar que o nmap veja o meu dispositivo, será possível limitar a taxa de modo que o nmap leve muito tempo para verificar totalmente o meu IP?

    
por spacemonkey 15.02.2017 / 06:25

3 respostas

6

Se você quiser que um serviço (como o SSH) esteja disponível e possa ser usado, o Nmap poderá encontrá-lo. De um modo geral, as varreduras de portas não são uma ameaça; sua segurança não deve depender de um invasor que não saiba quais serviços estão sendo executados. O uso de uma porta não padrão para SSH é principalmente útil para a redução de ruído de log, já que há tanta força bruta automatizada feita na porta padrão 22.

Seus principais objetivos do ponto de vista da segurança devem ser: Conhecer / Predizer, Impedir, Detectar, Responder e Recuperar. Veja como a varredura de portas se relaciona com estas:

Conheça / Preveja : saiba quais recursos você possui e para quais atacantes. Portalize você mesmo para ver sua exposição. Entenda o que as varreduras de portas podem e não podem fazer; eles não são mágicos para cortar pó de fada.

Prevent : use um firewall para impedir o acesso a portas / serviços que não devem ser públicos. Restringir o acesso a endereços IP conhecidos. Mova os dados e servidores confidenciais por trás do perímetro da rede e controle o acesso com uma VPN ou outro controle de acesso. A limitação de taxas não é prevenção, apenas demora.

Detectar : monitora os logs para varredura de porta, força bruta e outras indicações de ataque. Entenda o que é ruído de fundo normal e o que realmente constitui uma ameaça. Configure alertas para indicações de comprometimento.

Responder : tenha um plano para lidar com uma violação de segurança. Configure defesas automatizadas como o fail2ban para responder a ameaças. A limitação de taxa pode ser uma resposta aqui, mas ela realmente impede alguma coisa?

Recuperar : tenha um plano de recuperação. Faça backups regulares e teste a restauração a partir do backup.

    
por 15.02.2017 / 16:55
5

O limite de taxa simples não é suficiente porque o nmap aumenta o atraso da verificação quando atinge o limite de taxa. Aqui está o que você pode fazer melhor com o iptables.

Primeiro crie listas de ipset

ipset create port_scanners hash:ip family inet hashsize 32768 maxelem 65536 timeout 600
ipset create scanned_ports hash:ip,port family inet hashsize 32768 maxelem 65536 timeout 60

E regras de iptables

iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state NEW -m set ! --match-set scanned_ports src,dst -m hashlimit --hashlimit-above 1/hour --hashlimit-burst 5 --hashlimit-mode srcip --hashlimit-name portscan --hashlimit-htable-expire 10000 -j SET --add-set port_scanners src --exist
iptables -A INPUT -m state --state NEW -m set --match-set port_scanners src -j DROP
iptables -A INPUT -m state --state NEW -j SET --add-set scanned_ports src,dst

Como isso funciona:

Aqui, armazenamos portas rastreadas em scanned_ports set e contamos apenas as portas recentemente verificadas em nossa regra hashlimit. Se um scanner enviar pacotes para 5 portas diferentes (veja --hashlimit-burst 5), isso significa que é provavelmente um scanner, então vamos adicioná-lo ao conjunto de port_scanners.

O tempo limite de port_scanners é o tempo de bloqueio dos scanners (10 minutos nesse exemplo). Ele começará a contar desde o início (veja --existir) até que o atacante pare de procurar por 10 segundos (veja --hashlimit-htable-expire 10000)

Você pode definir esses parâmetros com os valores mais adequados para você.

Esteja ciente de que alguém pode tornar qualquer IP bloqueado apenas fazendo a varredura como spoofing. Eu sugiro que você não defina o tempo limite de bloqueio por muito tempo.

    
por 30.11.2017 / 06:25
4

Aqui está o que a documentação do nmap diz sobre o estado "filtrado":

The state is either open, filtered, closed, or unfiltered. Open means that an application on the target machine is listening for connections/packets on that port. Filtered means that a firewall, filter, or other network obstacle is blocking the port so that Nmap cannot tell whether it is open or closed. Closed ports have no application listening on them, though they could open up at any time. Ports are classified as unfiltered when they are responsive to Nmap's probes, but Nmap cannot determine whether they are open or closed. Nmap reports the state combinations open|filtered and closed|filtered when it cannot determine which of the two states describe a port.

Parece que o comportamento normal de um "fechado" (ou seja, um alcançável porta, mas onde nenhum servidor está escutando), está mais perto do iptables REJECT action do que para DROP e o diagnóstico "filtrado" do nmap reconhece DROP (onde a conexão eventualmente expira, porque de silêncio total do servidor sendo examinado, em vez de ser fechado imediatamente, como aconteceria com REJECT .)

Por isso, sugiro tentar com REJECT em vez de DROP e ver se os resultados da verificação forem mais do seu agrado.

    
por 15.02.2017 / 16:34