Portas e bloqueio de saída
Detecção de varredura de portas, fechamento de portas expostas de bancos de dados e de administração, e bloqueio do tráfego de saída para endereços de ameaças com o InfraFence, cada alteração verificada e desfeita se quebrar algo.
Última atualização:
Detecção de varredura de portas
O agente vê cada tentativa de conexão TCP de entrada, tanto em portas abertas quanto fechadas, por meio de um filtro somente leitura no kernel. Uma varredura de portas é:
- um endereço tocando 15 portas diferentes em 10 minutos, ou
- uma rede (uma /24 em IPv4, uma /64 em IPv6) tocando 30 portas diferentes a partir de 3 ou mais endereços em 10 minutos.
Detectar varreduras de portas vem ativado por padrão e reporta um aviso port_scan. Banir quem varre portas vem desligado por padrão, porque serviços de monitoramento e mecanismos de busca também fazem varreduras; quando ativado, bane endereços individuais, nunca redes inteiras.
Fechar uma porta
Bancos de dados e serviços de administração não deveriam ficar expostos à internet. Fechar uma porta descarta as novas conexões vindas de endereços públicos; loopback, redes privadas e endereços na whitelist continuam com acesso, assim como os programas no próprio servidor. Vale também para portas publicadas por contêineres Docker, e para IPv6 quando o ip6tables está disponível.
Só estas portas podem ser fechadas: 3306, 5432, 6379, 6380, 27017, 27018, 9200, 9300, 11211, 2375, 2376, 5984, 8086, 15672, 5601, 9042, 7000, 7001, 8529 e 28015 (MySQL, PostgreSQL, Redis, MongoDB, Elasticsearch, Memcached, a API do Docker, CouchDB, InfluxDB, RabbitMQ, Kibana, Cassandra, ArangoDB, RethinkDB).
Nunca fechadas: 22, 80, 443, qualquer porta em que o SSH escuta ou que uma sessão SSH aberta usa, e qualquer porta em que um servidor web escuta. Uma porta não é fechada enquanto houver um endereço público conectado a ela.
Bloquear o tráfego de saída
Um destino só pode ser bloqueado se o próprio agente o marcou como ameaça nas últimas 24 horas: uma conexão com um endereço listado, uma resposta DNS apontando para um, ou uma entrada da lista de ameaças aplicada. Nunca bloqueados: endereços privados, protegidos e na whitelist, o painel, os servidores DNS configurados, um endereço logado via SSH neste momento ou de onde veio um login SSH nos últimos 30 dias, ou um endereço conectado neste momento a um serviço do servidor. Uma conexão ao SSH que não fez login, como um ataque de força bruta, não protege ninguém. Os bloqueios de saída valem para IPv4.
Destinos habituais
O agente conta as conexões de saída do próprio servidor por endereço e por dia: só endereços IPv4 públicos e uma contagem diária, guardados por 7 dias. Um endereço é um destino habitual quando, na primeira vez que apareceu em uma lista de ameaças, o servidor tinha se conectado a ele 5 ou mais vezes em 3 ou mais dos 7 dias anteriores. Uma API, um serviço de backup ou um mirror de atualizações que vai parar em uma lista de ameaças não pode ser cortado por uma decisão automática, então bloquear um destino habitual exige uma pessoa: Aplicar por um proprietário ou admin com autenticação de dois fatores, ou uma aprovação em Aprovações. A correspondência informa quantas conexões em quantos dias. Um bloqueio que já está em vigor continua. Um endereço que já estava listado quando o servidor o acessou pela primeira vez nunca se torna habitual (agente 1.0.35 ou mais recente).
Uma correspondência também informa a sua direção. inbound significa que o endereço listado se conectou a um serviço do servidor: é um atacante, não um destino, e o AutoMode o bane em vez de bloquear o tráfego para ele.
Quem pede
As portas são fechadas e os destinos bloqueados quando uma pessoa pede pelo painel, ou quando o AutoMode ou o modo de emergência decidem fazê-lo. Toda alteração aparece em Atividade, com Desfazer. Nada muda no modo monitor.
O AutoMode e o modo de emergência fecham uma porta sozinhos só quando ela é uma de 3306, 5432, 6379, 27017, 9200, 11211, 2375, 2376, 5984 e 8086, a verificação de hardening a encontrou aberta para a rede e ela foi atacada nas últimas 24 horas (agente 1.0.31 ou mais recente, que informa as suas portas SSH). Qualquer outra porta precisa da sua aprovação: a 3306 do MySQL sem ataques, a 5432 do PostgreSQL ou a 15672 do RabbitMQ aguardam em Aprovações. O AutoMode e o modo de emergência bloqueiam um destino sozinhos só depois de uma correspondência crítica de uma conexão de saída, e nunca um destino habitual.
Aprovar uma porta exige a autenticação de dois fatores. Só um proprietário ou admin com sessão iniciada com autenticação de dois fatores pode aprovar o fechamento de uma porta, ou fechá-la na hora com Aplicar na pontuação de segurança; sem 2FA, esse Aplicar também vira uma solicitação em Aprovações. Ative-a em Configurações › Segurança.
Verificado, ou desfeito
Antes de cada alteração, o agente anota quais portas SSH e quais sites respondem; depois, verifica de novo. Se algo parou de responder, ele desfaz a alteração sozinho e reporta Desfeita pelo servidor.
As regras ficam nas chains do agente INFRAFENCE-PORTS e INFRAFENCE-EGRESS e são restauradas após uma reinicialização. Limites: 200 portas fechadas e 1.000 destinos bloqueados por servidor.
