
Necesito abrir varios puertos diferentes (no en rangos) en una máquina CentOS.
Sé cómo abrir un puerto con firewall-cmd
, pero eso resulta molesto para abrir como 40 puertos o más.
¿Existe un archivo de configuración donde pueda definir todos los puertos abiertos en un solo lugar? Lamentablemente no encontré nada al respecto.
Respuesta1
Puede definir un servicio a partir de un archivo xml que contenga todos los puertos que necesita, agregar un servicio a partir de él y luego habilitarlo. Cree el archivo service.xml así:
<?xml version="1.0" encoding="utf-8"?>
<service>
<port port="port1" protocol="proto1"/>
<port port="port2" protocol="proto2"/>
<port port="port3" protocol="proto3"/>
<port port="port4" protocol="proto4"/>
</service>
Agregar nuevo servicio:
# firewall-offline-cmd --new-service-from-file=service.xml --name=My_Service
Vuelva a cargar el cmd del firewall:
# firewall-cmd --reload
Luego agrega tu servicio:
# firewall-cmd --add-service My_Service
Respuesta2
firewall-cmd --permanent --add-port={80/tcp,443/tcp,9200/tcp,5601/tcp,5044/tcp}
firewall-cmd --reload
Respuesta3
Siempre puedes hacer un pequeño guión/una frase:
#!/bin/bash
for i in 80 443 22 123 21 1337 31337
do
firewall-cmd --zone=public --add-port=${i}/tcp
done
Respuesta4
Aunque esta es una pregunta muy antigua, puede volverse realmente "interesante", así que pensé que debería responderla.
Todos los puertos posibles en una sola línea
# simple
firewall-cmd --add-port={80,443}/tcp
# Both protocols
firewall-cmd --add-port={80,443}/{tcp,udp}
# can be a bit complex and note the nested parentheses
firewall-cmd --add-port={{80,443}/{tcp,udp},{110,995}/tcp}
Luego echa un vistazo a lo que has hecho :) escribiendo
firewall-cmd --list-ports
Pero los servicios son mejores.
También experimenté con --add-services', whose names can be found in
/etc/services'. Es incluso mejor que usar puertos. Tanto los nombres como los puertos están en ese archivo, por lo que puedes enumerar algunos de ellos:
grep -E 'http|imap|pop3|smtp|dns|ftp' /etc/services
Podemos abrir puertos ingresando lo siguiente: ``:
# readable
firewall-cmd --add-service={http,https}
firewall-cmd --list-services
Eso es todo por el momento.