
Estou procurando um equivalente ufw default deny
para firewalld; a ideia é que, depois de fazer login por meio de SSH em meu novo servidor, eu queira bloquear todas as novas conexões de entrada para ter tempo de atualizar e proteger o sistema. Eu uso CentOS7 com firewalld.
Responder1
Parece dissopostagem de falha no servidorque limitar o tráfego neste nível superiorrequer regras "ricas".
Para implementar uma regra avançada que seja promulgada na zona padrão que elimina todo e qualquer tráfego IPv4:
firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
--add-rich-rule='rule family=ipv4 source address=0.0.0.0/0 drop'
Isso emula o ufw default deny
comportamento; para enviar uma mensagem de rejeição ICMP, altere drop
para reject
. A regra acima é específica para IPv4; para IPv6, use:
firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
--add-rich-rule='rule family=ipv6 source address=::/0 drop'
Após investigação, isso adiciona uma entrada ao iptables que vemdepoisas conexões "aceitar RELATED e ESTABLISHED", para que não interrompa sua sessão ssh existente. Nos meus testes, a "cadeia" resultante de iptables vai (para uma zona padrão de 'pública'):
INPUT -> INPUT_ZONES -> IN_public -> IN_public_deny
Se você espera reinicializar como parte das atualizações, adicione o --permanent
sinalizador.
Se você não espera reinicializar como parte das atualizações, poderá usar o --timeout
sinalizador, que aceita valores como 5s
, 10m
ou 15h
para "5 segundos", "10 minutos" ou "15 horas", respectivamente. Tal regra será excluída após esse período de tempo limite.
Quando você quiser remover a regra que adicionou, simplesmente execute o mesmo firewall-cmd
que antes, mas substituindo --add-rich-rule
por --remove-rich-rule
; para um exemplo de IPv4:
firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
--remove-rich-rule='rule family=ipv4 source address=0.0.0.0/0 accept'
Referência:http://www.firewalld.org/documentation/man-pages/firewalld.richlanguage.html