Virtualizar un servidor es básicamente crear mediante software una aglomeración de los recursos para que posteriormente poder crear instancias o entornos.
Mi recomendación es que si eres una empresa o no tienes conocimientos de informática (Virtualización, redes y subredes) mandes un correo o llames a una empresa especializada. En este caso hay una empresa en Valencia especializada y con un gran soporte en Virtualización VMWARE que es similar a ProxMox pero más profesional.
Para este articulo he utilizado todas las posibilidades. He quemado la imagen de proxmox en un usb de 8 gb y lo he instalado en un usb de 16 gb, en un disco duro externo y en un disco duro.
Nota: Si lo instalas sobre el sistema operativo Debian, debe ser la ISO de amd64, la de i384 te dará error.
Tabla de contenidos:
Resumen del artículo
Verificar que el procesador sea virtualizable
Lo primero es comprobar que nuestro procesador nos permite la virtualización. Para ello antes de comprarlo entramos en la página de especificaciones y buscamos en el caso de Intel: Tecnología de virtualización Intel® y en el caso de AMD: Virtualización AMD.
Si no sabemos por lo que sea cuál es nuestro procesador podremos comprobarlo escribiendo en el Símbolo de sistema el siguiente código:
Para procesadores de la familia AMD:
grep --color svm /proc/cpuinfo
Para procesadores de la familia INTEL:
grep --color vmx /proc/cpuinfo
Dara algo así (ejemplo de procesador AMD):
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs sse5 skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb
Según la cantidad de veces que aparezca SVM (en el caso de Amd) o VMX (en el caso de un procesador de Intel) será la cantidad de núcleos.
También podemos comprobarlo en el administrador de tareas. Yendo a la pestaña de Rendimiento, en CPU.
Una vez comprobado si el procesador nos permite la virtualización procedemos a instalar ProxMox.
Instalar ProxMox:
Si no tenemos ningún sistema operativo instalado lo más sencillo es descargar la ISO.
El programa estrella es CDBurnerXP si usas un Windows antiguo. Si usas Windows 10 o Windows 7 entonces es mejor Balena Etcher.
Para grabar la ISO sin programas:
Una vez descargues la ISO y el programa tan solo tenemos que seleccionar el USB a grabar y la ISO de Proxmox que acabamos de descargar.
Esto nos creara un USB ejecutable que introduciremos en la máquina a instalar Proxmox.
Para instalar ProxMox a partir de Debian:
Solo funcionaria en este sistema operativo. Ningún otro.
Si ya tenemos Debian (en la instalación debieron seleccionar “fixed IP”) instalado podemos instalar ProxMox con unos sencillos comandos:
echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
apt update && apt dist-upgrade
apt install proxmox-ve postfix open-iscsi
apt remove os-prober
apt remove linux-image-amd64 linux-image-4.9.0-3-amd64
update-grub
hostname --ip-address
Tutorial de uso de ProxMox:
Una vez instalado ya nos sale la pantalla de que se ha iniciado correctamente y la ip en la que podemos acceder mediante cualquier navegador.
IMPORTANTE: Según se actualicen tanto Proxmox como Debian los nombres de las versiones cambian, pero los comandos son los mismos. Leer con atención antes de ejecutar.
Lo primero es que si usamos la versión sin suscripción tenemos que quitar los repositorios enterprise y poner los No-Subscription.
nano /etc/apt/sources.list.d/pve-enterprise.list
Y delante de todo ponemos una almohadilla:
#
Nos debe quedar como en la siguiente imagen:
Salimos pulsando [Ctlr] + [X], se nos pregunta si queremos guardar [S] y sin cambiar el nombre del archivo pulsamos ya Intro.
Ahora añadimos el repositorio:
nano /etc/apt/sources.list
Y añadimos dejando el resto de repositorios. Aquí cambia según se actualicen. Tan solo tenemos que cambiar buster por la palabra clave de Debian en ese momento para la versión. Cuando tengamos abierto el archivo los otros enlaces la tienen en color rojo.
deb http://download.proxmox.com/debian/pve buster pve-no-subscription
Salimos del editor de texto nano igual que hicimos en el anterior paso. Y por último añadimos la key. Aquí también puede cambiar. Volvemos a la página de descarga de la ISO y comprobamos la versión. Solo tenemos que cambiar el primer número, la x no.
wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
Y ahora comprobamos que todo ha salido bien actualizando el servidor con el comando:
apt-get update && apt-get dist-upgrade
Luego entramos en la url:
https://IP-SERVIDOR:8006/
Y ponemos como usuario:
root
Y la contraseña la cual introducimos al instalar proxmox.
Vamos a subir la ISO del sistema operativo que queramos. Para ello vamos al almacenamiento local ➡ Contenido ➡ Cargar.
Para crear una máquina virtual en ProxMox solo tenemos que pulsar en la pestaña con el nombre que pusimos a nuestro nodo de servidor y en la parte derecha, zona de arriba, ya podemos ver “Crear VM“.
¿Que es un RAID?
La traducción es: grupo redundante de discos independientes.
Los beneficios de esta configuración es una mayor tolerancia a fallos o mayor tasa de transferencia y capacidad total.
No es una configuración exclusivamente de servidores. Cualquier ordenador que tenga varios discos duros pueden hacerlo. Se recomienda eso si que los discos duros sean iguales.
Entre los RAID más populares están:
RAID 0
Para hacer este tipo de configuración se necesita un mínimo de dos discos duros. Se basa en escribir los datos de forma paralela pero solo una vez. Esta aumenta la velocidad de escritura y aparecería en el ordenador como un solo disco duro.
No es redundante. Esto significa que no hay copias de los archivos. Solo es como si se hiciera un disco duro de mayor tamaño.
RAID 1
Crea una copia exacta de los archivos de un disco en otro. El rendimiento se duplica pero la capacidad se divide a la mitad. Solo será usable la capacidad de 1 disco.
RAID 2, RAID 3, RAID 4
Estos RAID no son utilizados en la actualidad.
RAID 5
El más popular. Los discos duros se dividen en bloques y la información se distribuye en forma de códigos de paridad (muy seguro). Es la mezcla de RAID 0 y RAID 1. Guarda todos los archivos en todas los discos duros, un cuarto de cada unidad es destinada a fallos y el resto (tres cuartos) es para el almacenamiento.
Hay más tipos de RAID.
Como hacer RAID de discos duros
Como hemos visto se pueden hacer varios tipos de RAID.
Para hacer un RAID 0:
Entramos en la BIOS pulsando F2 o F1 o la tecla 🔙 (borrar) mientras encendemos el ordenador. Pulsamos una por una en cada intento. Si no funciona con uno intentamos el siguiente reiniciando el servidor o cargará el sistema operativo que tengamos.
En la pestaña Advanced (esto puede cambiar según la BIOS) vamos a la pestaña “Devices” y luego entramos en “SATA”. Cambiamos la opción “Chipset SATA mode” de AHCI a RAID.
Guardamos la configuración.
Reiniciamos el servidor. Pulsamos “Ctrl+I” mientras encendemos el ordenador.
En la opción 1: “Create RAID Volume”.
Seleccionamos el tipo de RAID que queramos en “RAID level”. Por último pulsamos “Create Volume”. Y al aceptar que se borraran todos los datos del disco ya tendremos las unidades en RAID.
Importar el certificado SSL
Para descargar el archivo voy a usar el programa: WinSCP
Una vez instalado, accedemos a la consola con la Ip de la máquina Proxmox, la contraseña y el usuario. Abrimos el directorio /etc/pve y descargamos el archivo pve-root-ca.pem
Una vez con el certificado SSL de Proxmox lo importamos en nuestro navegador Chrome:
Al entrar en el navegador , vamos a los tres puntos de la derecha para abrir Configuración. En ese menú bajamos a Avanzada y al pulsar se abren nuevas configuraciones con lo que iremos a Gestionar Certificados (Administrar la configuración y los certificados HTTPS/SSL) allí abriremos la pestaña Entidades de certificación raíz de confianza e importamos el certificado.
En Firefox simplemente al acceder a la ip ya nos permite añadir la excepción.
Autentificación en dos factores (2FA) en Proxmox
En la consola de Proxmox escribirnos
date
Y comprobamos que la fecha y hora son correctas si no tendríamos que cambiarlas. Ahoram generamos el código (la llave) OATH:
oathkeygen
Copiamos y guardamos los 16 caracteres que nos acaba de devolver la consola. Entramos a el panel de Proxmox con nuestra ip y contraseña. Vamos a la pestaña de Centro de datos ➡ Usuarios ➡ Editar. Una vez ahí vamos a la sección “Llaves IDs” y pegamos el código (la llave) que nos devolvió la consola y habíamos guardado, sin espacios. Le damos a aceptar y tres pestañas debajo de Usuarios se encuentra Autentificación. Seleccionamos el ámbito “pve” y pulsamos editar. Una vez ahí vamos a la sección “Factor-Dos de autentificación” y seleccionamos OATH. No cambiamos los parámetros y pulsamos Aceptar.
Para añadir la autenticación de dos factores usaremos nuestro dispositivo móvil en donde descargamos la aplicación de Google Authenticator.
Solo añadiremos el código (la llave) que tenemos guardada en la sección Your Key y el resto de parámetros no los modificamos.
Hacer seguro el servidor
Lo primero es instalar un antivirus. Que en Linux también hay malware. Desde la consola del nodo de Proxmox escribirnos:
apt-get install clamav clamav-daemon -y
De este antivirus también hay una version GUI (clamtk) pero como solo usamos el terminal en Proxmox no lo necesitamos. Vamos a actualizar todos los paquetes con:
apt-get update -y && apt-get upgrade -y
Ahora activaremos dos procesos para que se ejecute se forma autónoma. Escribimos primero uno y después el otro (copiando y pegando en la terminal):
/etc/init.d/clamav-daemon start
/etc/init.d/clamav-freshclam start
Por último si queremos analizar todo el sistema escribimos:
clamscan -r /
También vamos a instalar un servicio para prohibir la entrada a atacantes que han intentado entrar por fuerza bruta en nuestro servidor. Vamos a actualizar e instalar Fail2Ban:
apt-get update && apt-get -y upgrade && apt-get install fail2ban -y
Ahora vamos a copiar el archivo de configuración de Fail2Ban (jail.conf) y crear uno nuevo llamado jail.local que será el que modificaremos para adaptar las reglas:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Ahora con el editor “nano” vamos a modificar algunos aspectos aunque ya estaría en funcionamiento:
nano /etc/fail2ban/jail.local
Pulsamos [Ctrl + W] para buscar:
ignoreip
Después del igual (=) podemos añadir las ip´s que por muchos intentos que tengan no queremos que sean baneadas. La ip que muestra por defecto es la del servidor. Podemos añadir ip´s individuales o rangos de ip.
bantime
Es el tiempo que estará baneada una ip que a fallado al entrar en el servidor. Se mide en segundos, por defecto trae 600 segundos que son 10 minutos. Si aumentamos o disminuimos el tiempo sería:
5 horas ∙ 60 (ya que una hora son 60 minutos) ∙ 60 (ya que un minuto son 60 segundos) = 18000
maxretry
Es el máximo de intentos que una ip puede intentar acceder antes de ser baneada. Por defecto son 5 pero se puede aumentar o disminuir.
Hay más número de configuraciones pero esas son las principales. Ahora pulsamos [Ctrl + X] y luego Y para salir y guardar los cambios.Ahora solo queda reiniciar el servicio:
service fail2ban restart
Usar el Firewall (cortafuegos)
Lo primero que tenemos que hacer es activarlo. Para ello vamos a Centro de datos ➡ Firewall ➡ Opciones ➡ Firewall Si. Realizamos el mismo recorrido para activarlo en el nodo. Luego podemos activarlo o desactivarlo en las maquinas virtuales o contenedores que queramos en las opciones de firewall de cada una.
El Firewall funciona con reglas. Estas permiten o niegan el tráfico hacia un punto determinado de la red. Para añadirlo vamos a la máquina virtual y en la parte superior de Firewall podemos ver el botón Añadir.
Dirección: Es el sentido del trafico. IN (Dentro). OUT (Fuera).
Acción: Podemos permitir (ACCEPT), negar (DROP) o rechazar (REJECT)
Luego la interfaz. Que es el nombre de la tarjeta de red de la máquina. Suele ser net0 pero se puede ver en cada maquina en Hardware. No es el nombre del puente (bridge). Es el nombre del dispositivo de red de la máquina virtual. No del nodo.
El Origen y Destino es la IP o el rango que queremos bloquear. Por ejemplo para bloquear el acceso al router de una maquina concreta ponemos el origen la ip de dicha maquina y el destino la IP del router. Podemos usar rangos para bloquear muchas ips al mismo tiempo. Aquí hay que saber un poco de redes. Un ejemplo seria 192.168.1.0/16. Donde la mascara de subred es 255.255.0.0. Entonces bloquearíamos todas las ips 192.168.X.X. Donde cada X puede ser cualquier numero. Cada bloque de 255 se pone como /8. Por lo tanto si queremos bloquear 3 seria /24.
Esta el botón activar. Que hay que pulsar para activar.
Por ultimo nos da la opción de seleccionar los puertos a bloquear e incluso nos deja poner por defecto algunos. Como bloquear el acceso web (HTTP + HTTPS).
Aquí una imagen para que quede mas claro lo de IN y OUT:
Añadir un segundo disco duro a Proxmox
Para aumentar el almacenamiento de nuestro servidor vamos a añadir uno o más discos duros. Una vez añadidos físicamente (conectados) vamos a el panel en https://IP-SERVIDOR:8006/ y Centro de datos ➡ Nodo (mostrará pve si no lo cambiamos en la instalación) ➡ Disks. En Dispositivo podemos ver la ruta de nuestro nuevo disco.
Ahora tenemos que escribir lo siguiente en la terminal del nodo (Cambiando /dev/sda por la ruta de nuestro nuevo disco y primerzpool por cualquier nombre):
zpool create -f primerzpool /dev/sda
Ahora volvemos a el panel y en Centro de datos ➡ Almacenamiento. Le damos a la pestaña Añadir ⬇ ZFS. En ID ponemos lo que queramos y en ZFS al pulsar ya nos sale el nombre de primerzpool. Podemos elegir el contenido que almacenará.
Borrar cualquier paquete o dependencia
Cuando instalas muchos programas o paquetes nos podemos quedar sin espacio o que consuman demasiados recursos por ellos hay dos comandos para limpiar completamente de esa dependencia nuestro servidor:
apt-get purge nombredelpaquete -y && apt-get autoremove -y
Y eso es todo por ahora. Si tienes alguna duda puedes ponerla en los comentarios un poco mas abajo.
[yasr_overall_rating]