Denegar temporalmente todo el tráfico entrante con firewalld

Denegar temporalmente todo el tráfico entrante con firewalld

Estoy buscando un equivalente a ufw default denyfirewalld; La idea es que después de iniciar sesión a través de SSH en mi servidor nuevo, quiero bloquear todas las conexiones nuevas entrantes para tener tiempo de actualizar y proteger el sistema. Yo uso CentOS7 con firewalld.

Respuesta1

Parece de estopublicación de falla del servidorque limitar el tráfico a este nivel superiorrequiere reglas "ricas".

Para implementar una regla enriquecida que se implemente en la zona predeterminada y que elimine todo el tráfico IPv4:

firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
  --add-rich-rule='rule family=ipv4 source address=0.0.0.0/0 drop'

Esto emula el ufw default denycomportamiento; para enviar un mensaje de rechazo ICMP, cambie el dropvalor a reject. La regla anterior es específica de IPv4; para IPv6, utilice:

firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
  --add-rich-rule='rule family=ipv6 source address=::/0 drop'

Tras la investigación, esto agrega una entrada a iptables que vienedespuéslas conexiones "aceptar conexiones RELACIONADAS y ESTABLECIDAS", por lo que no interrumpirá su sesión ssh existente. En mis pruebas, la "cadena" resultante de iptables es (para una zona predeterminada de 'pública'):

INPUT -> INPUT_ZONES -> IN_public -> IN_public_deny

Si espera reiniciar como parte de las actualizaciones, agregue la --permanentbandera.

Si no espera reiniciar como parte de las actualizaciones, puede usar la --timeoutbandera, que acepta valores como 5s, 10mo 15hdurante "5 segundos", "10 minutos" o "15 horas", respectivamente. Dicha regla se eliminará después de ese período de tiempo de espera.

Cuando desee eliminar la regla que agregó, simplemente ejecute lo mismo firewall-cmdque antes, pero reemplazándola --add-rich-rulecon --remove-rich-rule; para un ejemplo de IPv4:

firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
  --remove-rich-rule='rule family=ipv4 source address=0.0.0.0/0 accept'

Referencia:http://www.firewalld.org/documentation/man-pages/firewalld.richlanguage.html

información relacionada