¿Qué hacer después de instalar Debian en un VPS o servidor?

2 minutos

Logo Debian

Estos son todos los pasos que realizo cuando creo un VPS o servidor en Debian. A lo largo del tiempo he ido añadiendo puntos, modificando y quitando elementos innecesarios; por lo que no lo percibáis como “La guía definitiva”. Sino más bien como unos “apuntes de apoyo”. Personalmente ejecuto todo, aunque cada proyecto es un desafío diferente.

1. Actualizar a la última versión y estable

apt update
apt upgrade -y
apt dist-upgrade

2. Instalar software mínimo

apt install -y build-essential fail2ban iptables-persistent msmtp-mta python3-dev python3-pip libcurl4-openssl-dev libssl-dev htop git neovim wget curl tmux
apt autoremove -y

3. Configurar el cortafuegos

Dejamos pasar 80 y 443 para permitir los protocolos http y https.

iptables -A INPUT -p tcp --dport 80 -j ACCEPT &&
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

4. Cambiar editor por defecto

update-alternatives --config editor

5. Ajustar la hora

En este ejemplo configura la hora a Madrid (España).

ln -fs /usr/share/zoneinfo/Europe/Madrid /etc/localtime
dpkg-reconfigure -f noninteractive tzdata

6. Activa las actualizaciones automáticas de seguridad no atendidas

apt install -y unattended-upgrades apt-listchanges
echo unattended-upgrades unattended-upgrades/enable_auto_updates boolean true | debconf-set-selections
dpkg-reconfigure -f noninteractive unattended-upgrades

7. Crea un usuario

Se llamará debian, aunque puedes llamarlo como desees.

useradd --shell /bin/zsh -m debian

Ahora nos metemos en el usuario.

su debian

Configurarmos las claves ssh y oh-my-zsh.

ssh-keygen -t rsa
exit

Lo añadimos al grupo de sudo.

usermod -a -G sudo debian

Entramos en visudo para permitirle ejecutar sudo.

visudo

Editando la siguente línea.

%sudo   ALL=(ALL:ALL) NOPASSWD:ALL

Generamos la keygen de ssh para entrar en un futuro.

Copiamos las autorizaciones actuales asociadas con root.

cp /root/.ssh/authorized_keys /home/debian/.ssh/
chown debian:debian /home/debian/.ssh/authorized_keys

8. Medida de seguridad ante disco lleno

Añadimos una archivo con contenido aleatorio de, por ejemplo, 1Gb. En caso que se llene el disco, podremos borrarlo para tener un margen de acción.

dd if=/dev/urandom of=balloon.txt bs=1MB count=1000

9. Limita el espacio de los logs

Editas

nano /etc/systemd/journald.conf

Descomentas (quitas la #) a la vez que modificas la siguiente línea.

SystemMaxUse=1Gb

Para terminar reinicia el servicio.

systemctl restart systemd-journald

Extras

Instalar docker

apt update
apt install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release && \
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt update && \
apt -y install docker-ce docker-ce-cli containerd.io docker-compose

Activar Swap

Habilitamos un espacio reservado en el disco en caso de que la RAM se llene.

Instalamos zram.

sudo apt install zram-tools

Editamos su configuración.

sudo nano /etc/default/zramswap

Le marcamos que su capacidad sea la mitad de la RAM.

PERCENTAGE=50
ALLOCATION=4096 #4Mb
ALLOCATION=8192 #8Mb

Instalar snap

sudo apt install snapd

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me ayudas?

No te sientas obligado a realizarme una donación, pero cada aportación me ayuda a mantener el sitio en activo para que continúe existiendo y me motiva a continuar creando nuevo contenido.

Comprame un café
Pulsa sobre la imagen
  • 1 café: Se mantiene el dominio durante 4 meses.
  • 2 cafés: Se liquida 1 mes del Servidor Web.
  • 3 cafés: Se paga 1 mes de Newsletter.

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario

Tal vez también te interese...