Búsqueda de sitios web

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

Artículos relacionados