Apache HTTP es uno de los servidores web más usados en Internet por sus diversas características dentro de las cuales destacamos flexibilidad, estabilidad y muchas más.
Por defecto, el servidor web Apache toma instrucciones para escuchar la conexión entrante y vincularse al puerto 80 del equipo., en caso de usar una configuración TLS, el servidor escuchará las conexiones seguras en el puerto 443.
Si el objetivo es que el servidor web Apache enlace y escuche el tráfico web en otros puertos además de los puertos web estándar, será necesario que agreguemos una nueva instrucción donde se incluirá el nuevo puerto de escucha.
Cómo modificar puerto HTTP de servidor Apache en Linux
En distribuciones basadas en Debian o Ubuntu, el archivo de configuración a editar es el archivo /etc/apache2/ports.conf y en las distribuciones basadas en RHEL o CentOS editaremos el archivo /etc/httpd/conf/httpd.conf.
nano /etc/apache2/ports.conf (Debian/Ubuntu) nano /etc/httpd/conf/httpd.conf (RHEL/CentOS)
Para este caso usaremos Ubuntu 17. Al acceder a este archivo veremos lo siguiente:
Como vemos, el valor por defecto en la línea LISTEN es el puerto 80. Para este tutorial, configuraremos el servidor Apache HTTP para que escuche las conexiones en el puerto 8081 del equipo, por lo tanto, añadiremos la línea "LISTEN 8081" justo bajo la línea del puerto 80:
Guardamos los cambios usando la combinación de teclas siguiente:
Ctrl + O
Salimos del editor usando:
Ctrl + X
Después de agregar la línea indicada, será necesario crear o modificar un host virtual Apache en las distribuciones basada en Debian o Ubuntu para iniciar el proceso de enlace, el cual será de ayuda para los requisitos de vhost.
En el caso de las distribuciones basadas en CentOS o RHEL, el cambio se aplica directamente en el host virtual predeterminado.
En este caso, abriremos y editaremos el archivo 000-default.conf y allí cambiaremos el puerto a 8081 de la siguiente forma:
nano /etc/apache2/sites-enabled/000-default.conf
Establecemos el puerto 8081 en la línea “VirtualHost”, guardamos los cambios y salimos del editor.
Por último, vamos a aplicar los cambios y permitir que Apache se vincule con el nuevo puerto, para ello vamos a reiniciar el daemon y verificar la tabla de sockets de red local usando el comando netstat o ss. El puerto 8081 para escuchar debe mostrarse en la tabla de red del servidor según lo hemos definido anteriormente, vamos a ejecutar lo siguiente:
systemctl restart apache2 netstat -tlpn| grep apache ss -tlpn| grep apache
Ahora, para comprobar que la conexión es correcta, accederemos desde algún navegador usando la siguiente sintaxis:
http://Direccion_IP:8081
En las distribuciones de Linux basada en CentOS / RHEL, vamos a instalar el paquete policycoreutils para agregar las reglas de SELinux requeridas para que Apache se pueda vincular con el nuevo puerto y reiniciar el servidor Apache HTTP para aplicar los cambios. Ejecutamos lo siguiente:
yum install policycoreutils
Allí ingresamos la letra y para confirmar la descarga e instalación. Luego, agregaremos las reglas de SELinux para el puerto 8081:
semanage port -a -t http_port_t -p tcp 8081 semanage port -m -t http_port_t -p tcp 8081
yum install policycoreutils-python
Ahora, procedemos a resetear el servicio de Apache:
systemctl restart httpd.service
Luego, vamos a ejecutar el comando netstat o ss para verificar si el nuevo puerto se une de forma correcta y escucha el tráfico entrante, ejecutaremos alguna de las siguientes líneas:
netstat -tlpn| grep httpd ss -tlpn| grep httpd
Al igual que Ubuntu, podremos ir al navegador e ingresar usando la siguiente sintaxis:
http://Direccion_IP:8081Con este método, podremos modificar el puerto por defecto de Apache en Linux.