Cómo cambiar el puerto predeterminado de Apache en Linux
Mantener seguro el servidor Linux es el deber vital de un administrador del sistema. Si bien hay muchas formas de asegurarse de que su servidor sea lo más seguro posible, primero debe seguir algunos pasos básicos. Uno de ellos es cambiar los puertos predeterminados de los servicios utilizados con frecuencia a puertos personalizados. Aquí veremos cómo cambiar los puertos predeterminados de Apache, FTP y SSH a algo diferente que sea difícil de adivinar. Dividamos este tema en tres pequeñas partes. En la primera parte, veremos cómo cambiar el puerto predeterminado de Apache a un puerto personalizado en Linux.
¿Por qué necesitamos cambiar el puerto predeterminado de Apache2?
Antes de abordar el tema, podría preguntarse ¿cambiar el puerto aumentará la seguridad? Para ser honesto, no, no protegerá su sistema por completo. Cambiar el puerto predeterminado por sí solo no proporciona ninguna defensa de seguridad seria. Hay muchos escáneres de puertos que eventualmente descubrirán qué puerto estás utilizando. Pero al menos puede proteger sus servidores de cualquier ataque de aficionados y también puede reducir la cantidad de ataques. Por eso necesitamos cambiar los puertos predeterminados.
Cambie el puerto predeterminado de Apache a un puerto personalizado
1. Cambiar el puerto de Apache en Debian/Ubuntu
Edite el archivo /etc/apache2/ports.conf
:
sudo vi /etc/apache2/ports.conf
Busque la siguiente línea:
Listen 80
Y cámbielo a un número aleatorio de su elección, por ejemplo 8090
.
Listen 8090
Esta entrada hace que el servidor acepte conexiones en el puerto 8090
en todas las interfaces. Para que el servidor acepte conexiones en el puerto 8090
para una interfaz específica, simplemente incluya la dirección IP de la interfaz de red correspondiente como se muestra a continuación.
Listen 192.168.1.101:8090
Esto será útil si su servidor tiene varias direcciones IP o interfaces de red.
Guarde y cierre el archivo.
Además, en Ubuntu y Debian, también debe cambiar el número de puerto en el archivo /etc/apache2/sites-enabled/000-default.conf
.
sudo vi /etc/apache2/sites-enabled/000-default.conf
Busque la siguiente línea y cambie el número de puerto.
<VirtualHost *:8090>
Guarde y cierre el archivo.
Luego, reinicie el servicio Apache para que los cambios surtan efecto.
sudo systemctl restart apache2
Ahora verifiquemos la configuración del puerto:
sudo netstat -tulpn | grep :8090
Salida de muestra:
tcp6 0 0 :::8090 :::* LISTEN 4066/apache2
Luego, abra su navegador web y navegue hasta la URL: http://dirección-IP:8090.
Deberías ver la siguiente pantalla:
Página de prueba de Apache2 en Ubuntu
A continuación veremos cómo cambiar el puerto de Apache en sistemas basados en RHEL.
2. Cambiar el puerto de Apache en RHEL, CentOS, AlmaLinux, Rocky Linux
Primero asegúrese de haber instalado el servidor web Apache.
Luego, edite el archivo /etc/httpd/conf/httpd.conf
,
sudo vi /etc/httpd/conf/httpd.conf
Busque la siguiente línea:
Listen 80
Y cámbielo a un número aleatorio de su elección, por ejemplo 8090
.
Listen 8090
Esta entrada hace que el servidor acepte conexiones en el puerto 8090
en todas las interfaces. Para que el servidor acepte conexiones en el puerto 8090 para una interfaz específica, simplemente incluya la dirección IP de la interfaz de red correspondiente como se muestra a continuación.
Listen 192.168.1.150:8090
Esto será útil si su servidor tiene varias direcciones IP o interfaces de red.
Guarde y cierre el archivo.
En los sistemas RHEL/CentOS, asegúrese de que SELinux y Firewall no bloqueen el nuevo número de puerto 8090
.
sudo semanage port -a -t http_port_t -p tcp 8090
Si no se encuentra el comando semanage, instale el siguiente paquete en CentOS 7/RHEL 8:
sudo yum install policycoreutils-python
En CentOS 8/RHEL 8:
sudo dnf install policycoreutils-python-utils
Para permitir el puerto 8090 a través del firewall, siga los siguientes pasos.
En RHEL 7/8 y CentOS 7/8:
sudo firewall-cmd --permanent --add-port=8090/tcp
sudo firewall-cmd --reload
En RHEL 6/CentOS 6:
sudo vi /etc/sysconfig/iptables
Y agregue la nueva línea de puerto personalizado:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
Guarde y salga del archivo y reinicie el servicio iptables.
sudo service iptables restart
Finalmente reinicie el servicio httpd.
sudo systemctl restart httpd
En sistemas RHEL 6.x, reinicie el servicio httpd
usando el siguiente comando:
sudo service httpd restart
Ahora verifique el puerto de escucha usando el comando:
Salida de muestra:
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/httpd.service.d
└─php-fpm.conf
Active: active (running) since Mon 2020-02-10 17:08:21 IST; 1min 20s ago
Docs: man:httpd.service(8)
Main PID: 2126 (httpd)
Status: "Running, listening on: port 8090"
Tasks: 213 (limit: 11501)
Memory: 24.3M
CGroup: /system.slice/httpd.service
├─2126 /usr/sbin/httpd -DFOREGROUND
├─2127 /usr/sbin/httpd -DFOREGROUND
├─2128 /usr/sbin/httpd -DFOREGROUND
├─2129 /usr/sbin/httpd -DFOREGROUND
└─2130 /usr/sbin/httpd -DFOREGROUND
Feb 10 17:08:21 centos8.ostechnix.lan systemd[1]: Starting The Apache HTTP Server...
Feb 10 17:08:21 centos8.ostechnix.lan systemd[1]: Started The Apache HTTP Server.
Feb 10 17:08:21 centos8.ostechnix.lan httpd[2126]: Server configured, listening on: port 8090
O usando el comando netstat
:
sudo netstat -tulpn | grep :8090
Salida de muestra:
tcp6 0 0 :::8090 :::* LISTEN 17636/httpd
Si no se encuentra el comando netstat, instale el siguiente paquete.
sudo yum install net-tools
Luego, verifique la página de prueba de Apache desde el navegador usando la URL: http://dirección-IP:8090.
Deberías ver la siguiente pantalla:
Cambie el puerto predeterminado de Apache a un puerto personalizado en Linux
¡Felicidades! Se ha cambiado el puerto predeterminado de Apache.
Consulte el siguiente enlace para saber cómo cambiar el puerto predeterminado de FTP.
- Cómo cambiar el puerto predeterminado de FTP a un puerto personalizado