¿Cómo eliminar el acceso a un puerto usando firewall en Centos7?

13

Tenía un puerto abierto para uso público usando firewall-cmd, quería limitar este puerto a una IP específica para la que encontré la respuesta en este SITIO .

Usé lo siguiente para abrirlo:

$ firewall-cmd --permanent --zone=public --add-port=10050/tcp
$ firewall-cmd --reload

Ahora, utilizando la información de la información que encontré, quería restringir el acceso a este puerto a una dirección IP específica. ¿Necesito primero eliminar este puerto del acceso público?

¿O puedo simplemente agregar la nueva regla de la siguiente manera y eso resolverá el problema por mí?

$ firewall-cmd --new-zone=special
$ firewall-cmd --permanent --zone=special --add-rich-rule='
  rule family="ipv4"
  source address=”123.1.1.1"
  port protocol="tcp" port="10050" accept'

He probado lo siguiente:

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --reload

Pero cuando ejecuto lo siguiente:

$ firewall-cmd --list-ports 

10050/tcp todavía se muestra.

Por favor, comprenda que no estoy demasiado familiarizado con las configuraciones laterales de Sever.

Soultion: No olvides el tiempo de ejecución a permanente.

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent
$ firewall-cmd --reload 
mcv
fuente
Ah se me olvidó el --permanent
MCV
1
Debe publicar esto como respuesta (y aceptarlo). Es perfectamente aceptable aceptar sus propias respuestas, de esta manera la pregunta se marca como resuelta.
Gerald Schneider
1
Es mejor no usar --permanent, en caso de que cometa un error con una regla de firewall. Si usó --permanenty se bloqueó, le resultará bastante difícil volver a entrar, ya que no tiene forma de recuperarse. En cambio, no lo use --permanent, y cuando esté satisfecho con las reglas, úselo firewall-cmd --runtime-to-permanentpara confirmar las reglas. Si queda bloqueado, volverá a cargar el firewall o reiniciará.
Michael Hampton
Entonces, ¿se puede firewall-cmd --runtime-to-permanentaplicar después de esto firewall-cmd --reloado lo reemplaza por completo? Definitivamente voy a intentar esto.
mcv

Respuestas:

28

Solución: no olvide el tiempo de ejecución a permanente

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent 
$ firewall-cmd --reload 
mcv
fuente
1
Todavía tenía que seguir con systemctl restart firewalld.
JaKu
Esto no funcionó para mí. systemctles versión 219y firewall-cmdes versión 0.5.3en CentOS 7.5 64bit.
Pred
5
# firewall-cmd --zone=public --remove-port=12345/tcp --permanent
# firewall-cmd --reload

Reemplace 12345 con el puerto que desea eliminar.

Zing Lee
fuente
1
Leí en alguna parte que en Fedora doc, sugiere poner --permanentcomo primera opción. Pero sí, --permanentes la clave.
WesternGun
Por lo general, lo mantengo como la última opción para asegurarme de que si la regla es incorrecta por cualquier razón, simplemente pueda reiniciar sin hacer que la regla sea permanente. Si hace lo que quiero, puedo subir la flecha y agregar --permanental final.
Justin E
0

Sigue estos pasos, estarás bien:

  1. $ firewall-cmd --zone = public --remove-port = 10050 / tcp
  2. $ firewall-cmd --runtime-to-permanent
  3. $ firewall-cmd --reload
  4. $ systemctl reiniciar Firewalld
  5. $ firewall-cmd --zone = public --list-ports
Dan Howel
fuente
No creo que necesite reiniciar firewalld, en firewalldrealidad fue diseñado para evitar reiniciar todos los servicios cada vez que cambia una configuración.
vdegenne