Cita de un experto:
La automatización y la infraestructura como código (IaC) son cada vez más importantes. Netplan es un paso en la dirección correcta, permitiendo definir la configuración de la red de forma declarativa.
Chris Richardson, Ingeniero DevOps
En la siguiente sección, veremos cómo configurar el firewall para las direcciones IP adicionales.
Configuración del firewall
Después de añadir direcciones IP adicionales, es importante configurar el firewall para garantizar la seguridad de tu VPS. El firewall actúa como una barrera entre tu servidor y el mundo exterior, bloqueando el tráfico no deseado y permitiendo solo el necesario.
Los firewalls más comunes en Linux son iptables
y firewalld
. iptables
es un firewall más antiguo, pero aún ampliamente utilizado. firewalld
es un firewall más moderno, que ofrece una interfaz de gestión más amigable.
Firewalld (recomendado para CentOS y Ubuntu)
firewalld
utiliza el concepto de zonas, que representan diferentes niveles de confianza en la red. Por ejemplo, la zona public
está destinada a redes públicas y tiene reglas más estrictas que la zona home
, destinada a redes domésticas.
Para verificar qué firewall se está utilizando y su estado, utiliza el comando:
# systemctl status firewalld
Si firewalld
no está en ejecución, inícialo:
# systemctl start firewalld
# systemctl enable firewalld
El primer comando inicia el firewall, y el segundo habilita su inicio automático al arrancar el sistema.
Para añadir una regla de firewall para una dirección IP adicional, primero debes determinar a qué zona se debe asignar. Si quieres que la dirección IP sea accesible desde cualquier red, utiliza la zona public
. Si quieres restringir el acceso solo desde ciertas redes, crea una nueva zona o utiliza una existente, como trusted
.
Supongamos que quieres permitir el acceso al servidor web (puertos 80 y 443) en la dirección IP adicional 192.168.1.101
. Ejecuta los siguientes comandos:
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="80" protocol="tcp" accept'
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="443" protocol="tcp" accept'
# firewall-cmd --reload
Los dos primeros comandos añaden reglas que permiten el tráfico entrante a los puertos 80 y 443 desde la dirección IP 192.168.1.101
en la zona public
. La opción --permanent
indica que las reglas se deben añadir a la configuración permanente, que se guarda después de reiniciar el sistema. El tercer comando recarga el firewall para que los cambios surtan efecto.
Para verificar que las reglas se han añadido correctamente, utiliza el comando:
# firewall-cmd --list-all --zone=public
Deberías ver las reglas añadidas en la salida. También puedes utilizar el comando firewall-cmd --list-rich-rules --zone=public
para ver solo las rich rules.
Si quieres permitir el acceso a todos los puertos desde una dirección IP específica, utiliza la siguiente regla:
# firewall-cmd --permanent --zone=trusted --add-source=192.168.1.101
# firewall-cmd --reload
Esta regla añade la dirección IP 192.168.1.101
a la zona trusted
, que permite todo el tráfico desde esa dirección IP.
Iptables (opción alternativa)
Si estás utilizando iptables
, tendrás que añadir manualmente reglas para cada puerto y dirección IP. Antes de realizar cambios, se recomienda guardar la configuración actual de iptables
:
# iptables-save > /etc/iptables.rules
Para permitir el acceso al servidor web (puertos 80 y 443) en la dirección IP adicional 192.168.1.101
, ejecuta los siguientes comandos:
# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 443 -j ACCEPT
Estos comandos añaden reglas a la tabla INPUT
, permitiendo el tráfico entrante a los puertos 80 y 443 desde la dirección IP 192.168.1.101
. La opción -A
añade la regla al final de la tabla.
Analicemos los parámetros:
DEVICE
: Indica el nombre del dispositivo.eth0:1
indica que esta es una dirección IP adicional en la interfazeth0
.IPADDR
: Indica la dirección IP adicional.NETMASK
: Indica la máscara de subred.ONBOOT
: Indica si la interfaz debe activarse al arrancar el sistema.
Para crear el archivo, utiliza un editor de texto, como vi
o nano
:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
Pega el contenido indicado arriba en el archivo y guárdalo. Después de esto, es necesario reiniciar el servicio de red para que los cambios surtan efecto:
# systemctl restart network
Para verificar que la dirección IP se ha añadido correctamente, utiliza el comando ip addr show eth0
:
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.1.101/24 scope global secondary eth0:1
valid_lft forever preferred_lft forever
Deberías ver ambas direcciones IP (192.168.1.100
y 192.168.1.101
) en la salida. Presta atención a la línea inet 192.168.1.101/24 scope global secondary eth0:1
, que confirma que la dirección IP adicional se ha añadido como una dirección secundaria en la interfaz eth0.
Método alternativo (nmcli):
En las versiones modernas de CentOS, se puede utilizar la utilidad nmcli
(NetworkManager Command Line Interface) para gestionar las conexiones de red. Este es un método más moderno y recomendado para añadir direcciones IP.
# nmcli con add type ethernet con-name eth0-1 ifname eth0 ip4 192.168.1.101/24
# nmcli con up eth0-1
El primer comando añade una nueva conexión de tipo ethernet con el nombre eth0-1
, que utiliza la interfaz eth0
y la dirección IP 192.168.1.101/24
. El segundo comando activa esta conexión. También puedes configurar la puerta de enlace predeterminada utilizando nmcli
, si es necesario.
¡Importante! Asegúrate de que tu proveedor de alojamiento haya permitido el uso de direcciones IP adicionales y que estén configuradas correctamente en su lado. De lo contrario, el tráfico a estas direcciones IP podría no enrutarse a tu VPS.
Para depurar problemas con la red en CentOS, puedes utilizar los siguientes comandos:
# ping 192.168.1.101
# traceroute 192.168.1.101
# systemctl status network
# journalctl -u network
ping
comprueba la conectividad con la dirección IP. traceroute
muestra la ruta del tráfico a la dirección IP. systemctl status network
muestra el estado del servicio de red. journalctl -u network
muestra los logs del servicio de red.
Tabla de comparación de métodos para añadir IP en CentOS:
Método | Facilidad | Modernidad | Recomendación |
---|---|---|---|
ifcfg-ethX:Y | Media | Obsoleto | No recomendado |
nmcli | Alta | Moderno | Recomendado |
En la siguiente sección, veremos cómo añadir direcciones IP adicionales en Ubuntu/Debian.
Añadir direcciones IP en Ubuntu/Debian
En Ubuntu y Debian, la adición de direcciones IP adicionales es algo diferente a CentOS. Tradicionalmente, esto se hacía a través del archivo /etc/network/interfaces
, pero en las versiones modernas de Ubuntu, a menudo se utiliza Netplan.
Método 1: /etc/network/interfaces (tradicional)
Este método implica la edición del archivo /etc/network/interfaces
. Atención: la edición incorrecta de este archivo puede causar problemas con la red. Antes de realizar cambios, haz una copia de seguridad del archivo:
# cp /etc/network/interfaces /etc/network/interfaces.bak
A continuación, abre el archivo /etc/network/interfaces
en un editor de texto:
# nano /etc/network/interfaces
Supongamos que tu interfaz principal es eth0
y su configuración se ve así:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
Para añadir una dirección IP adicional 192.168.1.101
, añade las siguientes líneas al final del archivo:
auto eth0:1
iface eth0:1 inet static
address 192.168.1.101
netmask 255.255.255.0
Ten en cuenta que estamos utilizando eth0:1
para designar la dirección IP adicional. Después de realizar los cambios, guarda el archivo y reinicia el servicio de red:
# systemctl restart networking
Para verificar que la dirección IP se ha añadido correctamente, utiliza el comando ip addr show eth0
:
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.1.101/24 scope global secondary eth0:1
valid_lft forever preferred_lft forever
Deberías ver ambas direcciones IP en la salida, como en CentOS.
Método 2: Netplan (moderno)
Netplan es un sistema de configuración de red utilizado en las versiones modernas de Ubuntu. Los archivos de configuración de Netplan se encuentran en el directorio /etc/netplan/
y tienen la extensión .yaml
. El nombre del archivo puede ser diferente, por ejemplo, 01-network-config.yaml
.
Para añadir una dirección IP adicional con Netplan, necesitas editar el archivo de configuración existente o crear uno nuevo. Primero, determina el nombre de tu interfaz de red, utilizando el comando ip link
:
# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
En este ejemplo, el nombre de la interfaz es eth0
. A continuación, abre el archivo de configuración de Netplan en un editor de texto:
# nano /etc/netplan/01-network-config.yaml
Supongamos que el archivo original se ve así:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Para añadir una dirección IP adicional 192.168.1.101
, modifica el archivo de la siguiente manera:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24, 192.168.1.101/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Ten en cuenta que hemos añadido 192.168.1.101/24
a la lista de addresses
. Después de realizar los cambios, guarda el archivo y aplica la configuración de Netplan:
# netplan apply
Si se producen errores, puedes utilizar el comando netplan --debug apply
para obtener más información.
Precaución: Los archivos YAML son sensibles a la indentación. Asegúrate de que la indentación en tu archivo Netplan es correcta. Una indentación incorrecta puede provocar errores de configuración.
Al igual que en CentOS, para depurar problemas con la red en Ubuntu/Debian, se pueden utilizar los comandos ping
, traceroute
, systemctl status networking
y journalctl -u networking
.
Cita de un experto:
La automatización y la infraestructura como código (IaC) son cada vez más importantes. Netplan es un paso en la dirección correcta, permitiendo definir la configuración de la red de forma declarativa.
Chris Richardson, Ingeniero DevOps
En la siguiente sección, veremos cómo configurar el firewall para las direcciones IP adicionales.
Configuración del firewall
Después de añadir direcciones IP adicionales, es importante configurar el firewall para garantizar la seguridad de tu VPS. El firewall actúa como una barrera entre tu servidor y el mundo exterior, bloqueando el tráfico no deseado y permitiendo solo el necesario.
Los firewalls más comunes en Linux son iptables
y firewalld
. iptables
es un firewall más antiguo, pero aún ampliamente utilizado. firewalld
es un firewall más moderno, que ofrece una interfaz de gestión más amigable.
Firewalld (recomendado para CentOS y Ubuntu)
firewalld
utiliza el concepto de zonas, que representan diferentes niveles de confianza en la red. Por ejemplo, la zona public
está destinada a redes públicas y tiene reglas más estrictas que la zona home
, destinada a redes domésticas.
Para verificar qué firewall se está utilizando y su estado, utiliza el comando:
# systemctl status firewalld
Si firewalld
no está en ejecución, inícialo:
# systemctl start firewalld
# systemctl enable firewalld
El primer comando inicia el firewall, y el segundo habilita su inicio automático al arrancar el sistema.
Para añadir una regla de firewall para una dirección IP adicional, primero debes determinar a qué zona se debe asignar. Si quieres que la dirección IP sea accesible desde cualquier red, utiliza la zona public
. Si quieres restringir el acceso solo desde ciertas redes, crea una nueva zona o utiliza una existente, como trusted
.
Supongamos que quieres permitir el acceso al servidor web (puertos 80 y 443) en la dirección IP adicional 192.168.1.101
. Ejecuta los siguientes comandos:
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="80" protocol="tcp" accept'
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="443" protocol="tcp" accept'
# firewall-cmd --reload
Los dos primeros comandos añaden reglas que permiten el tráfico entrante a los puertos 80 y 443 desde la dirección IP 192.168.1.101
en la zona public
. La opción --permanent
indica que las reglas se deben añadir a la configuración permanente, que se guarda después de reiniciar el sistema. El tercer comando recarga el firewall para que los cambios surtan efecto.
Para verificar que las reglas se han añadido correctamente, utiliza el comando:
# firewall-cmd --list-all --zone=public
Deberías ver las reglas añadidas en la salida. También puedes utilizar el comando firewall-cmd --list-rich-rules --zone=public
para ver solo las rich rules.
Si quieres permitir el acceso a todos los puertos desde una dirección IP específica, utiliza la siguiente regla:
# firewall-cmd --permanent --zone=trusted --add-source=192.168.1.101
# firewall-cmd --reload
Esta regla añade la dirección IP 192.168.1.101
a la zona trusted
, que permite todo el tráfico desde esa dirección IP.
Iptables (opción alternativa)
Si estás utilizando iptables
, tendrás que añadir manualmente reglas para cada puerto y dirección IP. Antes de realizar cambios, se recomienda guardar la configuración actual de iptables
:
# iptables-save > /etc/iptables.rules
Para permitir el acceso al servidor web (puertos 80 y 443) en la dirección IP adicional 192.168.1.101
, ejecuta los siguientes comandos:
# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 443 -j ACCEPT
Estos comandos añaden reglas a la tabla INPUT
, permitiendo el tráfico entrante a los puertos 80 y 443 desde la dirección IP 192.168.1.101
. La opción -A
añade la regla al final de la tabla.
Cita de un experto:
Las direcciones IP son la base de la red moderna. Entender cómo funcionan es esencial para la gestión eficaz de la infraestructura de red.
Vint Cerf, uno de los «padres de Internet»
En la siguiente sección, veremos cómo añadir direcciones IP adicionales en CentOS.
Añadir direcciones IP en CentOS
En CentOS (y otras distribuciones Red Hat), la adición de direcciones IP adicionales generalmente implica la creación de archivos de configuración adicionales para las interfaces de red. Tradicionalmente, esto se hacía a través de los archivos /etc/sysconfig/network-scripts/ifcfg-ethX:Y
, donde ethX
es el nombre de tu interfaz de red principal (por ejemplo, eth0), y Y
es un número que permite distinguir las direcciones IP adicionales.
Supongamos que tienes una dirección IP principal 192.168.1.100
, una máscara de subred 255.255.255.0
y quieres añadir una dirección IP adicional 192.168.1.101
con la misma máscara de subred. Necesitas crear un archivo /etc/sysconfig/network-scripts/ifcfg-eth0:1
con el siguiente contenido:
DEVICE=eth0:1
IPADDR=192.168.1.101
NETMASK=255.255.255.0
ONBOOT=yes
Analicemos los parámetros:
DEVICE
: Indica el nombre del dispositivo.eth0:1
indica que esta es una dirección IP adicional en la interfazeth0
.IPADDR
: Indica la dirección IP adicional.NETMASK
: Indica la máscara de subred.ONBOOT
: Indica si la interfaz debe activarse al arrancar el sistema.
Para crear el archivo, utiliza un editor de texto, como vi
o nano
:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
Pega el contenido indicado arriba en el archivo y guárdalo. Después de esto, es necesario reiniciar el servicio de red para que los cambios surtan efecto:
# systemctl restart network
Para verificar que la dirección IP se ha añadido correctamente, utiliza el comando ip addr show eth0
:
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.1.101/24 scope global secondary eth0:1
valid_lft forever preferred_lft forever
Deberías ver ambas direcciones IP (192.168.1.100
y 192.168.1.101
) en la salida. Presta atención a la línea inet 192.168.1.101/24 scope global secondary eth0:1
, que confirma que la dirección IP adicional se ha añadido como una dirección secundaria en la interfaz eth0.
Método alternativo (nmcli):
En las versiones modernas de CentOS, se puede utilizar la utilidad nmcli
(NetworkManager Command Line Interface) para gestionar las conexiones de red. Este es un método más moderno y recomendado para añadir direcciones IP.
# nmcli con add type ethernet con-name eth0-1 ifname eth0 ip4 192.168.1.101/24
# nmcli con up eth0-1
El primer comando añade una nueva conexión de tipo ethernet con el nombre eth0-1
, que utiliza la interfaz eth0
y la dirección IP 192.168.1.101/24
. El segundo comando activa esta conexión. También puedes configurar la puerta de enlace predeterminada utilizando nmcli
, si es necesario.
¡Importante! Asegúrate de que tu proveedor de alojamiento haya permitido el uso de direcciones IP adicionales y que estén configuradas correctamente en su lado. De lo contrario, el tráfico a estas direcciones IP podría no enrutarse a tu VPS.
Para depurar problemas con la red en CentOS, puedes utilizar los siguientes comandos:
# ping 192.168.1.101
# traceroute 192.168.1.101
# systemctl status network
# journalctl -u network
ping
comprueba la conectividad con la dirección IP. traceroute
muestra la ruta del tráfico a la dirección IP. systemctl status network
muestra el estado del servicio de red. journalctl -u network
muestra los logs del servicio de red.
Tabla de comparación de métodos para añadir IP en CentOS:
Método | Facilidad | Modernidad | Recomendación |
---|---|---|---|
ifcfg-ethX:Y | Media | Obsoleto | No recomendado |
nmcli | Alta | Moderno | Recomendado |
En la siguiente sección, veremos cómo añadir direcciones IP adicionales en Ubuntu/Debian.
Añadir direcciones IP en Ubuntu/Debian
En Ubuntu y Debian, la adición de direcciones IP adicionales es algo diferente a CentOS. Tradicionalmente, esto se hacía a través del archivo /etc/network/interfaces
, pero en las versiones modernas de Ubuntu, a menudo se utiliza Netplan.
Método 1: /etc/network/interfaces (tradicional)
Este método implica la edición del archivo /etc/network/interfaces
. Atención: la edición incorrecta de este archivo puede causar problemas con la red. Antes de realizar cambios, haz una copia de seguridad del archivo:
# cp /etc/network/interfaces /etc/network/interfaces.bak
A continuación, abre el archivo /etc/network/interfaces
en un editor de texto:
# nano /etc/network/interfaces
Supongamos que tu interfaz principal es eth0
y su configuración se ve así:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
Para añadir una dirección IP adicional 192.168.1.101
, añade las siguientes líneas al final del archivo:
auto eth0:1
iface eth0:1 inet static
address 192.168.1.101
netmask 255.255.255.0
Ten en cuenta que estamos utilizando eth0:1
para designar la dirección IP adicional. Después de realizar los cambios, guarda el archivo y reinicia el servicio de red:
# systemctl restart networking
Para verificar que la dirección IP se ha añadido correctamente, utiliza el comando ip addr show eth0
:
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.1.101/24 scope global secondary eth0:1
valid_lft forever preferred_lft forever
Deberías ver ambas direcciones IP en la salida, como en CentOS.
Método 2: Netplan (moderno)
Netplan es un sistema de configuración de red utilizado en las versiones modernas de Ubuntu. Los archivos de configuración de Netplan se encuentran en el directorio /etc/netplan/
y tienen la extensión .yaml
. El nombre del archivo puede ser diferente, por ejemplo, 01-network-config.yaml
.
Para añadir una dirección IP adicional con Netplan, necesitas editar el archivo de configuración existente o crear uno nuevo. Primero, determina el nombre de tu interfaz de red, utilizando el comando ip link
:
# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
En este ejemplo, el nombre de la interfaz es eth0
. A continuación, abre el archivo de configuración de Netplan en un editor de texto:
# nano /etc/netplan/01-network-config.yaml
Supongamos que el archivo original se ve así:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Para añadir una dirección IP adicional 192.168.1.101
, modifica el archivo de la siguiente manera:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24, 192.168.1.101/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Ten en cuenta que hemos añadido 192.168.1.101/24
a la lista de addresses
. Después de realizar los cambios, guarda el archivo y aplica la configuración de Netplan:
# netplan apply
Si se producen errores, puedes utilizar el comando netplan --debug apply
para obtener más información.
Precaución: Los archivos YAML son sensibles a la indentación. Asegúrate de que la indentación en tu archivo Netplan es correcta. Una indentación incorrecta puede provocar errores de configuración.
Al igual que en CentOS, para depurar problemas con la red en Ubuntu/Debian, se pueden utilizar los comandos ping
, traceroute
, systemctl status networking
y journalctl -u networking
.
Cita de un experto:
La automatización y la infraestructura como código (IaC) son cada vez más importantes. Netplan es un paso en la dirección correcta, permitiendo definir la configuración de la red de forma declarativa.
Chris Richardson, Ingeniero DevOps
En la siguiente sección, veremos cómo configurar el firewall para las direcciones IP adicionales.
Configuración del firewall
Después de añadir direcciones IP adicionales, es importante configurar el firewall para garantizar la seguridad de tu VPS. El firewall actúa como una barrera entre tu servidor y el mundo exterior, bloqueando el tráfico no deseado y permitiendo solo el necesario.
Los firewalls más comunes en Linux son iptables
y firewalld
. iptables
es un firewall más antiguo, pero aún ampliamente utilizado. firewalld
es un firewall más moderno, que ofrece una interfaz de gestión más amigable.
Firewalld (recomendado para CentOS y Ubuntu)
firewalld
utiliza el concepto de zonas, que representan diferentes niveles de confianza en la red. Por ejemplo, la zona public
está destinada a redes públicas y tiene reglas más estrictas que la zona home
, destinada a redes domésticas.
Para verificar qué firewall se está utilizando y su estado, utiliza el comando:
# systemctl status firewalld
Si firewalld
no está en ejecución, inícialo:
# systemctl start firewalld
# systemctl enable firewalld
El primer comando inicia el firewall, y el segundo habilita su inicio automático al arrancar el sistema.
Para añadir una regla de firewall para una dirección IP adicional, primero debes determinar a qué zona se debe asignar. Si quieres que la dirección IP sea accesible desde cualquier red, utiliza la zona public
. Si quieres restringir el acceso solo desde ciertas redes, crea una nueva zona o utiliza una existente, como trusted
.
Supongamos que quieres permitir el acceso al servidor web (puertos 80 y 443) en la dirección IP adicional 192.168.1.101
. Ejecuta los siguientes comandos:
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="80" protocol="tcp" accept'
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="443" protocol="tcp" accept'
# firewall-cmd --reload
Los dos primeros comandos añaden reglas que permiten el tráfico entrante a los puertos 80 y 443 desde la dirección IP 192.168.1.101
en la zona public
. La opción --permanent
indica que las reglas se deben añadir a la configuración permanente, que se guarda después de reiniciar el sistema. El tercer comando recarga el firewall para que los cambios surtan efecto.
Para verificar que las reglas se han añadido correctamente, utiliza el comando:
# firewall-cmd --list-all --zone=public
Deberías ver las reglas añadidas en la salida. También puedes utilizar el comando firewall-cmd --list-rich-rules --zone=public
para ver solo las rich rules.
Si quieres permitir el acceso a todos los puertos desde una dirección IP específica, utiliza la siguiente regla:
# firewall-cmd --permanent --zone=trusted --add-source=192.168.1.101
# firewall-cmd --reload
Esta regla añade la dirección IP 192.168.1.101
a la zona trusted
, que permite todo el tráfico desde esa dirección IP.
Iptables (opción alternativa)
Si estás utilizando iptables
, tendrás que añadir manualmente reglas para cada puerto y dirección IP. Antes de realizar cambios, se recomienda guardar la configuración actual de iptables
:
# iptables-save > /etc/iptables.rules
Para permitir el acceso al servidor web (puertos 80 y 443) en la dirección IP adicional 192.168.1.101
, ejecuta los siguientes comandos:
# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 443 -j ACCEPT
Estos comandos añaden reglas a la tabla INPUT
, permitiendo el tráfico entrante a los puertos 80 y 443 desde la dirección IP 192.168.1.101
. La opción -A
añade la regla al final de la tabla.
Cómo añadir direcciones IP adicionales a un VPS
En esta guía detallada, veremos cómo añadir direcciones IP adicionales a tu servidor privado virtual (VPS). Cubriremos los fundamentos teóricos, los pasos prácticos para los sistemas operativos Linux más populares (CentOS, Ubuntu, Debian), y también consideraremos los problemas comunes y cómo solucionarlos. Tanto si eres un novato como un administrador de sistemas experimentado, esta guía te ayudará a configurar correctamente las direcciones IP adicionales para tu VPS, para que puedas aprovechar al máximo sus capacidades. También abordaremos cuestiones de seguridad y optimización del rendimiento.
Contenido:
- Introducción
- Entendiendo las direcciones IP
- Añadir direcciones IP en CentOS
- Añadir direcciones IP en Ubuntu/Debian
- Configuración del firewall
- Prueba y resolución de problemas
Introducción
Un servidor privado virtual (VPS) proporciona los recursos necesarios para ejecutar sitios web, aplicaciones y otros servicios. A veces, una sola dirección IP no es suficiente. Añadir direcciones IP adicionales puede ser útil para diversos fines, como alojar múltiples sitios web con diferentes certificados SSL, dividir el tráfico o mejorar la seguridad. En esta sección, veremos los fundamentos para añadir direcciones IP adicionales a un VPS.
Por ejemplo, imagina que eres dueño de una empresa de alojamiento web. Necesitas alojar sitios para varios clientes, y cada sitio requiere un certificado SSL único. Para ello, es necesario que cada sitio tenga su propia dirección IP. Añadir direcciones IP adicionales a tu VPS te permite hacer esto.
Otro ejemplo es cuando quieres dividir el tráfico entre diferentes servicios. Por ejemplo, puedes asignar una dirección IP para el servidor web, otra para el servidor de correo y una tercera para el servidor de bases de datos. Esto ayuda a aislar los diferentes servicios entre sí y a mejorar la seguridad.
Antes de empezar, asegúrate de tener derechos root o privilegios sudo en tu VPS. También es necesario conocer la configuración de red de tu VPS, incluyendo la dirección IP actual, la máscara de subred y la puerta de enlace predeterminada. Esta información se puede obtener de tu proveedor de alojamiento o utilizando los siguientes comandos:
# ip addr show
# route -n
# cat /etc/resolv.conf
El comando ip addr show
muestra todas las interfaces de red y sus direcciones IP. route -n
muestra la tabla de enrutamiento, que indica la puerta de enlace predeterminada. cat /etc/resolv.conf
muestra la lista de servidores DNS utilizados por tu sistema.
Es importante tener en cuenta que el proceso de añadir direcciones IP adicionales puede variar ligeramente dependiendo del VPS: Guía práctica" class="internal-post-link">sistema operativo de tu VPS. En las siguientes secciones, veremos cómo hacerlo para CentOS y Ubuntu/Debian.
Comparación de sistemas operativos para VPS:
Sistema operativo | Facilidad de uso | Seguridad | Soporte de la comunidad |
---|---|---|---|
CentOS | Media | Alta | Grande |
Ubuntu | Alta | Media | Muy grande |
Debian | Media | Alta | Grande |
La elección del sistema operativo depende de tus necesidades y experiencia. CentOS y Debian son conocidos por su estabilidad y seguridad, mientras que Ubuntu ofrece una interfaz más amigable y un mayor soporte de la comunidad.
Entendiendo las direcciones IP
Antes de añadir direcciones IP adicionales, es importante entender qué es una dirección IP y cómo funciona. Una dirección IP (Internet Protocol address) es un identificador numérico único asignado a cada dispositivo conectado a una red informática que utiliza el protocolo IP para la comunicación. Actúa como una dirección postal para los datos en Internet.
Existen dos tipos principales de direcciones IP: IPv4 e IPv6. IPv4 utiliza un espacio de direcciones de 32 bits, lo que permite tener alrededor de 4.3 mil millones de direcciones únicas. IPv6 utiliza un espacio de direcciones de 128 bits, ofreciendo un número prácticamente ilimitado de direcciones. Actualmente, IPv4 todavía se utiliza ampliamente, pero IPv6 se está implementando gradualmente debido al agotamiento del espacio de direcciones IPv4.
Las direcciones IP también se pueden dividir en estáticas y dinámicas. Una dirección IP estática se asigna a un dispositivo manualmente y permanece sin cambios. Una dirección IP dinámica se asigna a un dispositivo automáticamente por un servidor DHCP (Dynamic Host Configuration Protocol) y puede cambiar con el tiempo. Para los VPS, normalmente se utilizan direcciones IP estáticas, ya que proporcionan un acceso estable y predecible al servidor.
Cada dirección IP está asociada con una máscara de subred, que define qué parte de la dirección IP identifica la red y qué parte identifica el host en esa red. Por ejemplo, una máscara de subred 255.255.255.0 significa que los primeros 24 bits de la dirección IP identifican la red y los últimos 8 bits identifican el host. La puerta de enlace predeterminada es la dirección IP del router a través del cual el tráfico sale de tu red local.
Al añadir direcciones IP adicionales a un VPS, necesitas conocer los siguientes parámetros para cada dirección IP: la dirección IP, la máscara de subred y la puerta de enlace predeterminada. Normalmente, esta información la proporciona tu proveedor de alojamiento.
Para verificar la configuración de red actual, puedes utilizar el comando ip route
. Por ejemplo:
# ip route
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
Esta salida muestra que la puerta de enlace predeterminada es 192.168.1.1 y la interfaz de red es eth0. También puedes utilizar el comando ifconfig
(aunque puede estar obsoleto en algunos sistemas) para obtener información sobre las direcciones IP y las máscaras de subred.
Cita de un experto:
Las direcciones IP son la base de la red moderna. Entender cómo funcionan es esencial para la gestión eficaz de la infraestructura de red.
Vint Cerf, uno de los «padres de Internet»
En la siguiente sección, veremos cómo añadir direcciones IP adicionales en CentOS.
Añadir direcciones IP en CentOS
En CentOS (y otras distribuciones Red Hat), la adición de direcciones IP adicionales generalmente implica la creación de archivos de configuración adicionales para las interfaces de red. Tradicionalmente, esto se hacía a través de los archivos /etc/sysconfig/network-scripts/ifcfg-ethX:Y
, donde ethX
es el nombre de tu interfaz de red principal (por ejemplo, eth0), y Y
es un número que permite distinguir las direcciones IP adicionales.
Supongamos que tienes una dirección IP principal 192.168.1.100
, una máscara de subred 255.255.255.0
y quieres añadir una dirección IP adicional 192.168.1.101
con la misma máscara de subred. Necesitas crear un archivo /etc/sysconfig/network-scripts/ifcfg-eth0:1
con el siguiente contenido:
DEVICE=eth0:1
IPADDR=192.168.1.101
NETMASK=255.255.255.0
ONBOOT=yes
Analicemos los parámetros:
DEVICE
: Indica el nombre del dispositivo.eth0:1
indica que esta es una dirección IP adicional en la interfazeth0
.IPADDR
: Indica la dirección IP adicional.NETMASK
: Indica la máscara de subred.ONBOOT
: Indica si la interfaz debe activarse al arrancar el sistema.
Para crear el archivo, utiliza un editor de texto, como vi
o nano
:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
Pega el contenido indicado arriba en el archivo y guárdalo. Después de esto, es necesario reiniciar el servicio de red para que los cambios surtan efecto:
# systemctl restart network
Para verificar que la dirección IP se ha añadido correctamente, utiliza el comando ip addr show eth0
:
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.1.101/24 scope global secondary eth0:1
valid_lft forever preferred_lft forever
Deberías ver ambas direcciones IP (192.168.1.100
y 192.168.1.101
) en la salida. Presta atención a la línea inet 192.168.1.101/24 scope global secondary eth0:1
, que confirma que la dirección IP adicional se ha añadido como una dirección secundaria en la interfaz eth0.
Método alternativo (nmcli):
En las versiones modernas de CentOS, se puede utilizar la utilidad nmcli
(NetworkManager Command Line Interface) para gestionar las conexiones de red. Este es un método más moderno y recomendado para añadir direcciones IP.
# nmcli con add type ethernet con-name eth0-1 ifname eth0 ip4 192.168.1.101/24
# nmcli con up eth0-1
El primer comando añade una nueva conexión de tipo ethernet con el nombre eth0-1
, que utiliza la interfaz eth0
y la dirección IP 192.168.1.101/24
. El segundo comando activa esta conexión. También puedes configurar la puerta de enlace predeterminada utilizando nmcli
, si es necesario.
¡Importante! Asegúrate de que tu proveedor de alojamiento haya permitido el uso de direcciones IP adicionales y que estén configuradas correctamente en su lado. De lo contrario, el tráfico a estas direcciones IP podría no enrutarse a tu VPS.
Para depurar problemas con la red en CentOS, puedes utilizar los siguientes comandos:
# ping 192.168.1.101
# traceroute 192.168.1.101
# systemctl status network
# journalctl -u network
ping
comprueba la conectividad con la dirección IP. traceroute
muestra la ruta del tráfico a la dirección IP. systemctl status network
muestra el estado del servicio de red. journalctl -u network
muestra los logs del servicio de red.
Tabla de comparación de métodos para añadir IP en CentOS:
Método | Facilidad | Modernidad | Recomendación |
---|---|---|---|
ifcfg-ethX:Y | Media | Obsoleto | No recomendado |
nmcli | Alta | Moderno | Recomendado |
En la siguiente sección, veremos cómo añadir direcciones IP adicionales en Ubuntu/Debian.
Añadir direcciones IP en Ubuntu/Debian
En Ubuntu y Debian, la adición de direcciones IP adicionales es algo diferente a CentOS. Tradicionalmente, esto se hacía a través del archivo /etc/network/interfaces
, pero en las versiones modernas de Ubuntu, a menudo se utiliza Netplan.
Método 1: /etc/network/interfaces (tradicional)
Este método implica la edición del archivo /etc/network/interfaces
. Atención: la edición incorrecta de este archivo puede causar problemas con la red. Antes de realizar cambios, haz una copia de seguridad del archivo:
# cp /etc/network/interfaces /etc/network/interfaces.bak
A continuación, abre el archivo /etc/network/interfaces
en un editor de texto:
# nano /etc/network/interfaces
Supongamos que tu interfaz principal es eth0
y su configuración se ve así:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
Para añadir una dirección IP adicional 192.168.1.101
, añade las siguientes líneas al final del archivo:
auto eth0:1
iface eth0:1 inet static
address 192.168.1.101
netmask 255.255.255.0
Ten en cuenta que estamos utilizando eth0:1
para designar la dirección IP adicional. Después de realizar los cambios, guarda el archivo y reinicia el servicio de red:
# systemctl restart networking
Para verificar que la dirección IP se ha añadido correctamente, utiliza el comando ip addr show eth0
:
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.1.101/24 scope global secondary eth0:1
valid_lft forever preferred_lft forever
Deberías ver ambas direcciones IP en la salida, como en CentOS.
Método 2: Netplan (moderno)
Netplan es un sistema de configuración de red utilizado en las versiones modernas de Ubuntu. Los archivos de configuración de Netplan se encuentran en el directorio /etc/netplan/
y tienen la extensión .yaml
. El nombre del archivo puede ser diferente, por ejemplo, 01-network-config.yaml
.
Para añadir una dirección IP adicional con Netplan, necesitas editar el archivo de configuración existente o crear uno nuevo. Primero, determina el nombre de tu interfaz de red, utilizando el comando ip link
:
# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
En este ejemplo, el nombre de la interfaz es eth0
. A continuación, abre el archivo de configuración de Netplan en un editor de texto:
# nano /etc/netplan/01-network-config.yaml
Supongamos que el archivo original se ve así:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Para añadir una dirección IP adicional 192.168.1.101
, modifica el archivo de la siguiente manera:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24, 192.168.1.101/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Ten en cuenta que hemos añadido 192.168.1.101/24
a la lista de addresses
. Después de realizar los cambios, guarda el archivo y aplica la configuración de Netplan:
# netplan apply
Si se producen errores, puedes utilizar el comando netplan --debug apply
para obtener más información.
Precaución: Los archivos YAML son sensibles a la indentación. Asegúrate de que la indentación en tu archivo Netplan es correcta. Una indentación incorrecta puede provocar errores de configuración.
Al igual que en CentOS, para depurar problemas con la red en Ubuntu/Debian, se pueden utilizar los comandos ping
, traceroute
, systemctl status networking
y journalctl -u networking
.
Cita de un experto:
La automatización y la infraestructura como código (IaC) son cada vez más importantes. Netplan es un paso en la dirección correcta, permitiendo definir la configuración de la red de forma declarativa.
Chris Richardson, Ingeniero DevOps
En la siguiente sección, veremos cómo configurar el firewall para las direcciones IP adicionales.
Configuración del firewall
Después de añadir direcciones IP adicionales, es importante configurar el firewall para garantizar la seguridad de tu VPS. El firewall actúa como una barrera entre tu servidor y el mundo exterior, bloqueando el tráfico no deseado y permitiendo solo el necesario.
Los firewalls más comunes en Linux son iptables
y firewalld
. iptables
es un firewall más antiguo, pero aún ampliamente utilizado. firewalld
es un firewall más moderno, que ofrece una interfaz de gestión más amigable.
Firewalld (recomendado para CentOS y Ubuntu)
firewalld
utiliza el concepto de zonas, que representan diferentes niveles de confianza en la red. Por ejemplo, la zona public
está destinada a redes públicas y tiene reglas más estrictas que la zona home
, destinada a redes domésticas.
Para verificar qué firewall se está utilizando y su estado, utiliza el comando:
# systemctl status firewalld
Si firewalld
no está en ejecución, inícialo:
# systemctl start firewalld
# systemctl enable firewalld
El primer comando inicia el firewall, y el segundo habilita su inicio automático al arrancar el sistema.
Para añadir una regla de firewall para una dirección IP adicional, primero debes determinar a qué zona se debe asignar. Si quieres que la dirección IP sea accesible desde cualquier red, utiliza la zona public
. Si quieres restringir el acceso solo desde ciertas redes, crea una nueva zona o utiliza una existente, como trusted
.
Supongamos que quieres permitir el acceso al servidor web (puertos 80 y 443) en la dirección IP adicional 192.168.1.101
. Ejecuta los siguientes comandos:
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="80" protocol="tcp" accept'
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port port="443" protocol="tcp" accept'
# firewall-cmd --reload
Los dos primeros comandos añaden reglas que permiten el tráfico entrante a los puertos 80 y 443 desde la dirección IP 192.168.1.101
en la zona public
. La opción --permanent
indica que las reglas se deben añadir a la configuración permanente, que se guarda después de reiniciar el sistema. El tercer comando recarga el firewall para que los cambios surtan efecto.
Para verificar que las reglas se han añadido correctamente, utiliza el comando:
# firewall-cmd --list-all --zone=public
Deberías ver las reglas añadidas en la salida. También puedes utilizar el comando firewall-cmd --list-rich-rules --zone=public
para ver solo las rich rules.
Si quieres permitir el acceso a todos los puertos desde una dirección IP específica, utiliza la siguiente regla:
# firewall-cmd --permanent --zone=trusted --add-source=192.168.1.101
# firewall-cmd --reload
Esta regla añade la dirección IP 192.168.1.101
a la zona trusted
, que permite todo el tráfico desde esa dirección IP.
Iptables (opción alternativa)
Si estás utilizando iptables
, tendrás que añadir manualmente reglas para cada puerto y dirección IP. Antes de realizar cambios, se recomienda guardar la configuración actual de iptables
:
# iptables-save > /etc/iptables.rules
Para permitir el acceso al servidor web (puertos 80 y 443) en la dirección IP adicional 192.168.1.101
, ejecuta los siguientes comandos:
# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -s 192.168.1.101 --dport 443 -j ACCEPT
Estos comandos añaden reglas a la tabla INPUT
, permitiendo el tráfico entrante a los puertos 80 y 443 desde la dirección IP 192.168.1.101
. La opción -A
añade la regla al final de la tabla.