Una conexión de red TCP/IP puede estar bloqueada, interrumpida, abierta o filtrada. Estas acciones generalmente están controladas por el firewall de IPtables que usa el sistema y es independiente de cualquier proceso o programa que pueda estar escuchando en un puerto de red. Esta publicación describirá los pasos para abrir un puerto requerido por una aplicación. Para este ejemplo de publicación, abriremos el puerto específico de la aplicación (Apache) 55555.
Los detalles del servidor son los siguientes:
# uname -a Linux geeklab 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 20:13:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
1. Comprobar el estado del puerto
Verifique que el puerto no esté abierto y que Apache no muestre ese puerto:
# netstat -na | grep 55555
# lsof -i -P |grep http httpd 5823 root 4u IPv6 42212 0t0 TCP *:80 (LISTEN)
2. Comprobar el estado del puerto en iptables
Verifique que iptables no muestre ese puerto abierto:
# iptables-save | grep 55555
3. Agregar el puerto
Agregue el puerto de prueba en /etc/services archivo y permitir que el puerto acepte paquetes. El puerto de prueba se puede agregar editando el archivo /etc/services en el siguiente formato:
# vi /etc/services service-name port/protocol [aliases ...] [# comment]
# vi /etc/services testport 55555/tcp # Application Name
4. Abrir puertos de cortafuegos
Agregar regla de Firewall para permitir que el puerto acepte paquetes:
# firewall-cmd --zone=public --add-port=55555/tcp --permanent success
# firewall-cmd --reload success
# iptables-save | grep 55555 -A IN_public_allow -p tcp -m tcp --dport 55555 -m conntrack --ctstate NEW -j ACCEPT
5. Comprobar el estado del puerto recién agregado
Después de agregar el puerto para httpd y recargar los servicios de httpd, observe que ahora httpd también está escuchando el puerto 55555 recién agregado:
# lsof -i -P |grep http httpd 6595 root 4u IPv6 43709 0t0 TCP *:80 (LISTEN) httpd 6595 root 6u IPv6 43713 0t0 TCP *:55555 (LISTEN)
# netstat -na |grep 55555 tcp6 0 0 :::55555 :::* LISTENCentOS/RHEL:¿Cómo encontrar si un puerto de red está abierto o no?
CentOS/RHEL 7:¿Cómo abrir un puerto en el firewall con firewall-cmd?