Saltar al contenido

Configurando un servidor VPS de OVH desde cero

Introducción

Este artículo te puede interesar si necesitas:

  • contratar un servidor VPS en OVH
  • acceso por SSH para controlar el servidor desde tu ordenador
  • instalar Apache para poder mostrar paginas web
  • instalar PHP para poder trabajar con páginas web dinámicas (wordpress, prestashop…)
  • instalar MariaDB para poder usar bases de datos MySQL

Si no te interesa el por qué hago esta guía para gente que no tenga prácticamente conocimientos de servidores, puedes saltártelo y pasar al siguiente apartado para empezar directamente.

Hoy he tenido que contratar un servidor VPS para hacer unas pruebas y al elegir el proveedor OVH me toca configurarlo prácticamente desde cero, a excepción del sistema operativo que OVH te permite preinstalarlo al contratar el VPS.

Por tanto y como suele ser habitual encontrar información “fácil”, aprovecharé para documentar el proceso explicándolo de una forma fácil y que alguien “no experto” en estos temas pueda conseguir echar el VPS a andar con lo básico.

Yo estoy bien lejos de ser un experto en administración de servidores, de hecho aunque en su día estudiase Técnico Superior en administración de sistemas informáticos, de eso hace 20 años y desde entonces no he necesitado hacer este tipo de instalación ya que para ello siempre he contratado a expertos en el tema para que lo hicieran por mi.

Administrar un servidor es algo crítico si te importa la seguridad de tus proyectos web y como digo, esta guía que voy a hacer es para instalar lo básico y no se debería tener en cuenta como algo definitivo o seguro para proyectos web reales. Si vas a crear o administrar un proyecto web, te recomiendo que para la administración del servidor contrates a un profesional que configure todo lo necesario para garantizas una buena seguridad frente a posibles ataques, que mantenga el servidor actualizado y que esté al tanto de posibles problemas de seguridad, bugs… que puedan surgir en los distintos programas / servicios que utiliza un servidor.

Contratación del servidor VPS en OVH

Yo he elegido el proveedor OVH y el producto es un VPS, que no es más que un servidor privado “virtual”. Es decir que en lugar de tener un ordenador entero para ti, usas un ordenador de OVH pero lo compartes con otros usuarios.

Al estar “virtualizado” realmente estás aislado de los otros usuarios y será como si tienes un servidor propio, pero compartiendo los recursos (procesador, memoria RAM etc…) con más usuarios. Ni tu puedes acceder a los otros servidores virtuales de esa máquina, ni ellos pueden acceder al tuyo.

En definitiva es como tener tu propio ordenador dentro de un ordenador, con el sistema operativo y el software que tu quieras instalarle.

Para contratar el VPS en OVH, crea una cuenta de usuario con tus datos y luego ve al siguiente este enlace: https://www.ovhcloud.com/es-es/vps/

Yo he elegido el producto “COMFORT” que a día de hoy cuesta 24,20 euros cada mes (IVA incluido) sin compromiso de permanencia. Si eliges un compromiso de permanencia o pagas por adelantado uno o dos años, te hacen descuentos que es interesante considerar.

Por tanto elige el producto que quieras y dale a “contratar” y te llevará a una página donde se configura inicialmente el VPS.

En esa página hay 3 opciones que puedes editar, la primera “Configure su instancia VPS” yo he elegido dejarla como estaba ya que no pretendo utilizar más recursos como RAM disco duro que los que trae la opción COMFORT por defecto.

La siguiente opción “Seleccione sus imágenes” te permite elegir la imagen que vendrá preinstalada en tu VPS. En mi caso he elegido “solo la distribución” Debian.

Y por último en la opción “Conserve o modifique la cantidad y la localización de su datacenter” he dejado la que venía por defecto, en mi caso Europa Occidental, Francia, Estrasburgo (SBG). Cuidado de no poner más de 1 pues eso hará que contratéis varios servidores, pagando por cada uno de ellos.

Una vez elegido esto, seguir el proceso hasta terminar y pagar, en mi caso he usado Paypal.

En pocos minutos recibirás un correo con los datos de acceso y ya podrás manejar el servidor VPS que has contratado.

Controlar el servidor por SSH

En mi caso uso Mac y este, al igual que Linux trae el SSH instalado.

Abre el terminal y para conectar debes usar el siguiente comando:

sudo ssh debian@82.121.217.23

Primero como hemos puesto el comando sudo, nos pedirá la contraseña del usuario administrador del ordenador que estamos usando para conectarnos al servidor VPS.

sudo ssh seguido del nombre de usuario que has recibido por email que en mi caso era “debian”, una arroba y seguida la ip que también has recibido en el email, que la que he puesto yo aquí es inventada (por motivos de seguridad).

Nos pedirá una contraseña, que nuevamente es la que has recibido en el email, cuando la metes te aparecerá algo como:

debian@vps-bxcxxfxx:~$

Y eso indica que ya estás conectado y las órdenes que introduzcas se ejecutarán ya en el VPS y no en tu ordenador.

Para no tener que andar poniendo sudo en cada comando, usaremos

sudo su

Una vez estemos como superusuario (su) ya podemos ejecutar el primer comando que puedes usar y que sirve para instalar las posibles actualizaciones que haya de software

apt-get update

Instalando Apache, servicio para poder mostrar nuestra web

Ejecutando el siguiente comando

tasksel

Se abrirá una interfaz en la que con los cursores nos desplazamos a “web service” y pulsamos la barra espaciadora para que se marque esa opción con una X. Luego le damos a OK.

Con el comando

service apache2 status

Nos debería aparecer que apache ya está instalado y funcionando “active (running)”

Ahora si en un navegador ponemos la ip de nuestro servidor que hemos recibido en el email

http://82.121.217.23 

Nos debería mostrar ya una página web por defecto que tiene Apache.

Instalando servicio para bases de datos MySQL / MariaDB

Si vamos a trabajar con páginas web dinámicas, muchas como wordpress o prestashop necesitan usar bases de datos SQL, y por eso tenemos que instalar el servicio MariaDB (MySQL). Vamos a instalarlo con el siguiente comando:

sudo apt install mariadb-server

Tras la instalación hay que ejecutar otro comando, para evitar accesos indeseados:

sudo mysql_secure_installation

Cuando nos pregunte por la contraseña “root” simplemente le damos a la tecla enter

Ahora nos pedirá que pongamos una contraseña para el usuario “root” de MariaDB, ponemos la que vayamos a usar (ojo con recordarla para cuando haga falta) y le damos a enter

Cuando nos pida si queremos Remove anonymous users ponemos que si (darle a Y)

Disallow root login remotely? [Y/n] también le damos a Y

Remove test database and access to it? [Y/n] otra vez Y

Reload privilege tables now? [Y/n] nuevamente, le damos a Y

El script habrá terminado, ahora vamos a añadir un usuario de administración para MariaDB, ejecutamos

sudo mysql

Y el cursor / prompt del terminal cambiará a

MariaDB [(none)]>

Ahora añadimos un usuario de administración con este comando, pero cambiando en la siguiente línea la palabra password por la contraseña que queramos poner nosotros para el usuario admin:

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';

Y después le damos todos los privilegios para administrar el mysql a ese usuario

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';

Si por cualquier cosa hemos puesto un password incorrecto o queremos cambiarlo, lo haremos con el comando

ALTER USER 'admin'@'localhost' IDENTIFIED BY 'passwordcorrecto';

Obviamente passwordcorrecto lo cambiamos por el password que queramos usar.

Para salir de MariaDB Usamos el comando

exit

Y con eso ya habremos terminado la configuración de MariaDB

Instalando PHP y phpMyAdmin

Igual que antes, si vamos a trabajar con páginas web dinámicas como wordpress o prestashop, estas usan PHP y por tanto necesitamos instalarlo. Usamos el siguiente comando:

sudo apt-get install php

Con eso ya estará instalado el servicio PHP pero necesitaremos la herramienta phpMyAdmin para poder manejar las bases de datos de forma sencilla. Primero descargamos la última versión en el directorio downloads con este comando:

wget -P Downloads https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

Vamos al directorio Downloads con:

cd Downloads

Creamos un directorio donde instalar el phpMyAdmin:

sudo mkdir /var/www/html/phpmyadmin

Descomprimimos el archivo que descargamos antes:

sudo tar xvf phpMyAdmin-latest-all-languages.tar.gz –strip-components=1 -C /var/www/html/phpmyadmin

Creamos un archivo de configuración:

sudo cp /var/www/html/phpmyadmin/config.sample.inc.php /var/www/html/phpmyadmin/config.inc.php

Editamos el archivo:

sudo nano /var/www/html/phpmyadmin/config.inc.php

Buscamos la línea $cfg[‘blowfish_secret’] = ”; y dentro de ” ponemos una frase de al menos 32 caracteres aleatorios y luego guardamos el archivo (teclas control+X, luego pulsamos tecla Y, luego pulsamos tecla Enter).

Si no queremos pensar en dicha cadena de 32 caracteres podemos obtener una con esta web que genera una aleatoria: https://phpsolved.com/phpmyadmin-blowfish-secret-generator/?g=[insert_php]echo%20$code;[/insert_php]

Cambiar permisos del archivo de configuración:

sudo chmod 660 /var/www/html/phpmyadmin/config.inc.php

Cambiar los permisos de propietario del directorio phpmyadmin

sudo chown -R www-data:www-data /var/www/html/phpmyadmin

En las últimas versiones de phpMyAdmin se requiere la extensión mysqli:

sudo apt-get install php-mysql
sudo apt-get install php-mysqlnd

Para activarla editamos el archivo php.ini – OJO el directorio 7.3 puede ser diferente si la versión que se ha instalado de PHP es otra. Si no sabes cual es ve al directorio /etc/php y usa el comando ls para ver que directorio puede ser el tuyo.

cd /etc/php/7.3/apache2

sudo nano php.ini

Localizamos la línea donde pone ;extension=mysqli y borramos el ; inicial. Salvar el fichero con control+X y luego Y

Por último reiniciamos el servicio apache y el servicio mysql:

sudo /etc/init.d/mysql restart

sudo systemctl restart apache2

Con eso deberíamos poder ir en el navegador la ip de nuestro servidor y acceder a phpMyAdmin, por ejemplo si nuestra IP es 82.121.217.23 deberíamos poner http://82.121.217.23/phpmyadmin/ y veremos una web así:

Servidor FTP

Para subir de forma más cómoda los archivos de nuestras páginas web nos vendrá bien tener un servicio de FTP.

Instalaremos el vsftpd

apt-get install vsftpd

Configuramos el servicio para que permita FTP seguro (SFTP) editando el fichero de configuración

nano /etc/vsftpd.conf

En ese archivo buscaremos la línea

ssl_enable=NO

Eliminar el # en las siguientes líneas

write_enable=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

Y cambiamos el NO por YES y guardamos.

Ahora tenemos que crear un fichero con la lista de usuarios

touch /etc/vsftpd.chroot_list

Vamos a crear un usuario admin para que se pueda conectar por FTP a cualquier directorio dentro de /var/www para que pueda subir archivos al directorio donde está la web

nano /etc/vsftpd.chroot_list

Como de momento sólo vamos a tener un usuario, en el archivo que tenemos editado hay que poner

admin

Y guardar el fichero, y después reiniciamos el servicio

systemctl reload vsftpd

Ahora creamos el usuario en el sistema y nos pedirá la contraseña que le queremos poner

useradd admin

Asignamos permisos de la carpeta al usuario admin

chown -R admin /var/www/html

Ahora podremos modificar la carpeta mediante FTP y subir los archivos de nuestra web, de forma que si ahora ponemos en el navegador

la IP del servidor, veremos nuestra web y no la que vimos antes y que aparecía por defecto al instalar Apache.

Otras recomendaciones a tener en cuenta

  • Puedes cambiar el puerto de SSH para que no sea el 22
  • Cambiar la contraseña del usuario root
  • Crear un usuario adicional con menos permisos
  • Instalar fail2ban
  • Si no has contratado el servicio adicional para ello, acuérdate de hacer copias de seguridad con frecuencia

Para seguir todas estas recomendaciones puedes ver la guía que ofrece OVH y que te explica bastante bien como hacer cada una de esas cosas: https://docs.ovh.com/es/vps/consejos-proteccion-vps/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *