Chuleta para configurar un servidor personal con CentOS (parte 1)

Written by Miguel González on 2016-10-27

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:

Links

Social