En este artículo veremos cómo realizar la configuración inicial de un servidor virtual VPS con un Ubuntu 16.04 contratado con OVH. Esta configuración inicial consiste en el cambio del hostname y la dirección ipv6 que se nos proporciona con el servicio.
No tengo ningún tipo de vínculo con OVH más allá de que a fecha de este artículo tengo mi blog alojado en este proveedor. |
1. Antes de empezar
Los datos de direccionamiento, hostname, etc que aquí se muestran son los datos que corresponden a mi servidor. Los dejo para que sirvan de ejemplo, pero deberás sustituirlos por los tuyos. |
1.1. Accece a tu panel
Deberemos en primer lugar anotar los datos que se nos ha proporcionado para nuestro servidor virtual, accediendo para ello al panel OVH.
En este punto anotaremos:
-
hostname asignado
-
nombre de servicio (coincidirá con el hostname)
-
dirección ip4
-
dirección ipv6
-
puerta de acceso ipv6 (gateway)
-
registro inverso (debería coincidir con el del servicio)
A parte de la conexión por ssh, deberíamos comprobar que nos funciona correctamente el KVM. Si nos equivocamos en el proceso de configuración, siempre podremos acceder al servidor mediante este sistema. |
Vamos a hacer que nuestro host cambie de nombre pero el "nombre de servicio" seguirá siendo el mismo, ya que es el nombre que utiliza OVH para identificar nuestro servidor. |
1.2. Comprueba la configuración de tu servidor
Nos loguearemos en el equipo por ssh y visualizaremos la información de red del host.
root@vps485070:~# ifconfig
ens3 Link encap:Ethernet HWaddr fa:16:3e:2f:e2:e3
inet addr:54.37.157.73 Bcast:54.37.157.73 Mask:255.255.255.255
inet6 addr: fe80::f816:3eff:fe2f:e2e3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:66 errors:0 dropped:0 overruns:0 frame:0
TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7791 (7.7 KB) TX bytes:9419 (9.4 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:160 errors:0 dropped:0 overruns:0 frame:0
TX packets:160 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:11840 (11.8 KB) TX bytes:11840 (11.8 KB)
En mi caso, la dirección es la 57.37.157.73
y veremos que coincide con la
dirección IP indicada en el panel. Pero fijémonos que nuestra máscara de red es
255.255.255.255
. Además comprobamos que la dirección ipv6 asignada es de
tipo local, luego por defecto no está configurada la ip que tenemos asignada.
Ahora comprobamos la tabla de rutas:
root@vps485070:~# ip route list
default via 54.37.156.1 dev ens3
54.37.156.1 dev ens3 scope link
root@vps485070:~# ip -f inet6 route list
fe80::/64 dev ens3 proto kernel metric 256 pref medium
Vemos que para ipv6 sólo tenemos la red local y que en el enlace ipv4 la ruta
por defecto es 54.37.156.1
. Pero ¿cómo llegamos si nuestra máscara es una
/32
?. Pues para ello se define la ruta indicando explícitamente el dispositivo.
Supongo el proveedor de hosting habrá determinado esta configuración para que no haya una conectividad directa con las máquinas virtuales "adyacentes" que se encuentren en el mismo host y red. |
Ahora comprobamos cómo obtenemos esta configuración de red, para ello
comprobamos el fichero /etc/network/interfaces
. En este fichero vemos que se
hace un include de todos los ficheros del directorio
/etc/network/interfaces.d
. Aquí únicamente encontramos el fichero:
/etc/network/interfaces.d/50-cloud-init.cfg
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
auto lo
iface lo inet loopback
auto ens3
iface ens3 inet dhcp
Comprobamos que la configuración de red nos la proporcionan vía dhcp. Además vemos en los comentarios que los cambios que se realicen en este fichero no persistirán tras el reinicio y nos dice cómo evitarlo (es lo que haremos después).
Continuaremos viendo el fichero /etc/hosts
proporcionado:
/etc/hosts
por defecto127.0.0.1 localhost
54.37.157.73 vps485070.ovh.net vps485070
127.0.1.1 vps485070.ovh.net vps485070
Obtenemos la configuración dns que nos proporciona OVH:
/etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 213.186.33.99
search openstacklocal
En este punto habremos comprobado que la configuración coincide con el panel y habremos apuntado los siguientes datos:
-
hosname y dominio que tenemos asignados por defecto, en el ejemplo
vps485070.ovh.net
-
la interfaz de red, en el ejemplo
ens3
-
nuestra dirección ipv4, en el ejemplo:
54.37.156.73
-
el gateway que nos está dando, en el ejemplo:
54.37.156.1
-
la máscara de red que tenemos, en el ejemplo:
255.255.255.255
-
servidores dns, en el ejemplo
213.186.33.99
1.3. Configurar nuestra zona DNS y registro inverso
Deberemos de tener evidentemente el control de una zona dns (en mi ejemplo
luisguillen.com
) y decidiremos el nombre de nuestro host.
Yo generalmente utilizo criterios para dar nombres a los host que nada
tiene que ver con el servicio que van a proporcionar (hablaré de esto
posiblemente en otro artículo). En mi ejemplo he seleccionado el nombre vps01
y luego creo los alias www , mail , etc con los servicios apuntando al nombre
de host.
|
Una vez que sabemos el nombre del host, crearemos en el dns:
-
registro
A
con la dirección ipv4 del host. En el ejemplovps01
ip54.37.156.73
-
registro
AAAA
con la dirección ipv6. En el ejemplovps01
ip2001:41d0:0302:2200:0000:0000:0000:3e6b
-
registros
CN
de servicios apuntando al nombre de host. En el ejemplowww
apunta avps01
.
Una vez modificada nuestra zona dns, modificaremos el registro inverso desde
nuestro panel de OVH en la opción Cambiar el registro inverso
. El registro
inverso apuntará al fqdn de nuestro host, en nuestro ejemplo apuntaría a:
vps01.luisguillen.com
.
El cambio del registro inverso es especialmente importante si pretendemos dar servicio de envío de correo o utilizar protocolos de autenticación como kerberos. |
En este punto podremos continuar con el proceso, no es necesaria la propagación DNS.
2. Configurando el servidor
En primer lugar desactivamos la configuración automática de red y de hostname que hace cluster-init
.
Para ello creamos los siguientes ficheros con el contenido:
/etc/cloud/cloud.cfg.d/99-preserve-hostname.cfg
preserve_hostname: true
manage_etc_hosts: false
/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
network: {config: disabled}
Crearemos un nuevo fichero hostname y hosts con nuestro nuevo hostname
/etc/hosts
127.0.0.1 localhost
54.37.157.73 vps01.luisguillen.com vps01
2001:41d0:0302:2200:0000:0000:0000:3e6b vps01.luisguillen.com vps01
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
/etc/hostname
vps01
Renombramos la configuración por defecto sin la extensión cfg
para que así no se aplique:
root@vps485070:~# mv /etc/network/interfaces.d/50-cloud-init.cfg /etc/network/interfaces.d/50-cloud-init.cfg.ovh-default
Crearemos nuestro nuevo fichero de configuración del host estático sustituyendo por nuestras ips configuración:
/etc/network/interfaces.d/10-static-ifaces.cfg
auto TU_INTERFAZ
iface TU_INTERFAZ inet static
address TU_IPV4
netmask TU_MASCARA
post-up /sbin/ip route add TU_GATEWAY dev TU_INTERFAZ scope link
post-up /sbin/ip route add default via TU_GATEWAY
pre-down /sbin/ip route del default via TU_GATEWAY
pre-down /sbin/ip route del TU_GATEWAY dev TU_INTERFAZ scope link
iface TU_INTERFAZ inet6 static
address TU_IPV6
netmask 24
post-up /sbin/ip -f inet6 route add TU_GATEWAYIPV6 dev TU_INTERFAZ scope link
post-up /sbin/ip -f inet6 route add default via TU_GATEWAYIPV6
pre-down /sbin/ip -f inet6 route del default via TU_GATEWAYIPV6
pre-down /sbin/ip -f inet6 route del TU_GATEWAYIPV6 dev TU_INTERFAZ scope link
Como ejemplo te pongo también mi fichero de configuración para que lo tengas más claro, pero recuerda que esto es el ejemplo con MIS datos, debes sustituir toda la información con los datos que correspondan a to servidor. |
/etc/network/interfaces.d/10-static-ifaces.cfg
auto ens3
iface ens3 inet static
address 54.37.157.73
netmask 255.255.255.255
post-up /sbin/ip route add 54.37.156.1 dev ens3 scope link
post-up /sbin/ip route add default via 54.37.156.1
pre-down /sbin/ip route del default via 54.37.156.1
pre-down /sbin/ip route del 54.37.156.1 dev ens3 scope link
iface ens3 inet6 static
address 2001:41d0:0302:2200:0000:0000:0000:3e6b
netmask 24
post-up /sbin/ip -f inet6 route add 2001:41d0:0302:2200:0000:0000:0000:0001 dev ens3 scope link
post-up /sbin/ip -f inet6 route add default via 2001:41d0:0302:2200:0000:0000:0000:0001
pre-down /sbin/ip -f inet6 route del default via 2001:41d0:0302:2200:0000:0000:0000:0001
pre-down /sbin/ip -f inet6 route del 2001:41d0:0302:2200:0000:0000:0000:0001 dev ens3 scope link
A continuación deshabilitamos la autoconfiguración ipv6 creando el fichero:
/etc/sysctl.d/80-disable-autoconf-ipv6.conf
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
Finalmente nos queda realizar la configuración DNS del resolvedor, la configuración como vimos
en los comentarios del /etc/resolv.conf
se realiza vía resolvconf
. Para ello tenemos que modificar el contenido del siguiente fichero:
/etc/resolvconf/resolv.conf.d/base
search luisguillen.com
nameserver 213.186.33.99
nameserver 8.8.8.8
nameserver 2001:4860:4860::8844
En mi configuración he optado por agregar un dns de google como secundario y un dns de ipv6 de google. Se libre de configurarlo como quieras, pero yo podría el que te suministra ovh como el primero en la lista. |
Podríamos reiniciar las interfaces, hacer el hostname
, el sysctl
y el
resolvconf
oportunos, pero dado que todavía no proporcionamos ningún
servicio… lo mejor es que reiniciemos el equipo con un reboot
.
Recuerda que si tras reiniciar no puedes conectar es que probablemente has hecho algo mal, aun así puedes conectarte vía el KVM del panel de OVH. |
3. Probando la configuración
Si podemos conectarnos por ssh es que el ipv4 funciona ok. Para testear
la conectividad ipv6 nos basta con hacer un ping6
:
root@vps01:~# ping6 -c 3 2001:4860:4860::8844
PING 2001:4860:4860::8844(2001:4860:4860::8844) 56 data bytes
64 bytes from 2001:4860:4860::8844: icmp_seq=1 ttl=55 time=4.55 ms
64 bytes from 2001:4860:4860::8844: icmp_seq=2 ttl=55 time=4.61 ms
64 bytes from 2001:4860:4860::8844: icmp_seq=3 ttl=55 time=4.59 ms
--- 2001:4860:4860::8844 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 4.554/4.586/4.611/0.081 ms
Finalmente comprobaría que resuelve correctamente los nombres lanzando
un ping www.google.com
.
4. Postconfiguración
Ahora ya es todo tuyo, te toca pilotar a ti. Yo lo primero que haría sería:
-
Hacer un
dist-upgrade
para poner todo al día -
Crear otro usuario administrador (grupo sudo) y deshabilitar la password de
root
-
Eliminar al usuario
ubuntu
que crea el despliegue de OVH de los grupos de sistema -
Configurar un cortafuegos
-
Instalar fail2ban para todos los chinos y rusos que están todo el día con el ssh a fuerza bruta.
Referencias