Chuleta para configurar un servidor personal con CentOS (parte 1)
En este artículo describo como he configurado mi propio servidor privado virtual.
Lo uso principalmente para alojar páginas estáticas y algún que otro experimento. Ni la configuración ni el procedimiento es especialmente novedoso pero sí que hay algunos pasos que me parece interesante compartir.
Espero que le sirve a alguien, puede que incluso a mi yo del futuro.
En mi caso he contratado un VPS en DigitalOcean pero este procedimiento sirve para cualquier servidor CentOS.
Vamos allá.
Creación del usuario administrador
Accedo a través de ssh tecleando en mi ordenador ssh root@SERVER_IP_ADDRESS
.
Lo primero es configurar un usuario con el que administraré el sistema. No es una buena práctica usar root
para el día a día. Es más recomendable tener un usuario con menos privilegios y recurrir al comando sudo
cuando es necesario.
En el SERVIDOR como root ejecuto los siguientes pasos para crear el usuario demo
, asignarle una contraseña muy segura y enrolarlo en el grupo de administradores wheel
.
# adduser demo
# passwd demo
# gpasswd -a demo wheel
Opcionalmente, para evitar teclear la contraseña cada vez que invoco sudo
, voy a retocar el archivo /etc/sudoers
# visudo
Y configuro esta línea:
%wheel ALL=(ALL) NOPASSWD: ALL
A partir de ahora usaré el usario demo siempre, incluso para acceder al servidor.
Desactivar acceso ssh a root
Vuelvo a acceder al SERVIDOR pero esta vez como usuario demo:
$ sudo vi /etc/ssh/sshd_config
…
PermitRootLogin no
…
Reinicio el servicio ssh y compruebo que esta levantado.
$ sudo systemctl reload sshd
$ ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is a1:b2:c3:d4:e5:f6:10:20:30:40:50.
Are you sure you want to continue connecting (yes/no)? ^C
Activar firewall
$ sudo systemctl start firewalld
$ sudo firewall-cmd --permanent --add-service=ssh
$ sudo firewall-cmd --reload
$ sudo systemctl enable firewalld
Sincronización de hora
$ sudo timedatectl set-local-rtc 0
$ sudo yum install chrony
$ sudo systemctl start chronyd
$ sudo systemctl enable chronyd
Activación de SElinux
$ sudo vi /etc/selinux/config
...
SELINUX=enforcing
...
Repositorios extra
sudo yum install epel-release
sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
Espero poder documentar próximamente como instalar nginx y configurar un sitio web estático.
Referencias: