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
{{ comments.length }} comentarios