Servidor VPS

Configuración de un dominio y un alojamiento en Internet

Se desea disponer de un alojamiento en Internet configurado con un servidor ssh, servidor web y servidor de correo. Se añadirán medidas de seguridad y de monitorización.

Para ello se utilizará un dominio y un servidor VPS. Se puede usar el pack de Github.

– Registrar un dominio en Namecheap (o Name, Hostalia, Piensa Solutions,  . . . )

Configurar los DNS del alojamiento que se va a utilizar.

– Utilizar un VPS en DigitalOcean ( o PiensaSolutionsContabo, OVH, Clouding,  . . . )

How To Install Linux, Nginx, MySQL, PHP (LEMP stack) on Ubuntu 22.04

  • Añadir el dominio y crear un registro tipo A

Conectarse por ssh

ssh root@your_server_ip

Crear un nuevo usuario y añadirlo al grupo sudo

adduser nombre_usuario

usermod -aG sudo nombre_usuario

Abrir el fichero de configuración del servidor ssh

sudo nano /etc/ssh/sshd_config

Modificar la opción PermitRootLogin y guardar el archivo

PermitRootLogin no

Reiniiciar el servidor ssh

sudo systemctl restart ssh
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com

Comprobación de renovación automática (2 veces al día):

sudo systemctl status certbot.timer sudo certbot renew –dry-run

Renovación del certificado SSL

Instalar y configurar Fail2Ban

Configura Fail2ban para evitar ataques SASL en Postfix

Installing on Debian

curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
sudo sh setup-repos.sh
sudo apt-get install webmin --install-recommends

Abrir puerto 10000 en el cortafuegos

sudo ufw allow 10000

Acceso desde el navegador (introducir un user y password de un usuario en el equipo):
midominio.es:10000/

Instalar el módulo para administrar Nginx desde Webmin:

En Ubuntu 20.04 da error en el módulo:

sudo apt install libhtml-parser-perl
  • Crear un servidor virtual con Webmin

How To Set Up Nginx Server Blocks

server {
 listen 80;
 # sustituir usuario por el nombre de usuario usado
 root /home/usuario/ejemplo;
 # Add index.php to the list if you are using PHP
 index index.php index.html;
 # sustituir alumno.me por el dominio usado
 server_name laravel.alumno.me;
 location / {
            # First attempt to serve request as file, then as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
            }
}

dar permiso de acceso a la carpeta usuario al resto de usuarios:

sudo chmod 755 /home/usuario

configurar el DNS en el droplet: añadir un registro tipo A

Crear el fichero /home/usuario/ejemplo/index.html:

cd ~
mkdir ejemplo
// sustituir alumno.me por el dominio usado
echo "Servidor virtual laravel.alumno.me" > ejemplo/index.html

instalar un certificado ssl:

// sustituir alumno.me por el dominio usado
sudo certbot --nginx -d laravel.alumno.me

Comprobar el acceso desdse el navegador:

https://laravel.alumno.me

  • Usar netdata para monitorizar el funcionamiento del servidor:

Configurar Netdata

Recomendable:

– Instalar Midnight Commander (en el VPS)

sudo apt install mc

– Instalar Filezilla (en el equipo local)

sudo apt install filezilla

– Montar el sistema de ficheros remoto del VPS en una carpeta en el equipo local:

cd ~
mkdir servidor
sudo apt install sshfs

sshfs  usuario@alumno.me:/home/usuario  servidor

y desmontarlo al terminar

fusermount -u servidor

Deja una respuesta