Post-instalación Debian

Después de una instalación limpia de una versión de Debian Linux para servidor hay algunos pasos a realizar para que funcione bien la cosa.

Instalar sudo

Por defecto Debian no viene con el comando sudo instalado.

$ su
# apt update
# apt upgrade
# apt install sudo
# /usr/sbin/usermod -aG sudo elmakanico
# systemctl reboot

Establecer IP fija (máquinas virtuales)

A la hora de hacer pruebas con máquinas virtuales es necesario que estas tenga un IP fija para que el comando de acceso sea siempre el mismo.

Por defecto nuestro arhivo /etc/network/interfaces tendrá este formato:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet dhcp

Debemos comentar la línea que establece la interfaz como DHCP

# iface enp0s3 inet dhcp

Seguidamente creamos nuestro archivo de configuración en el directorio /etc/network/interfaces con el nombre de la interfaz de nuestra tarjeta de red:

$ sudo nano /etc/network/interfaces.d/enp0s3

Y escribimos en él la configuración de nuestra tarjeta de red:

# IPv4 address
iface enp0s3 inet static
	address 192.168.0.101
	netmask 255.255.255.0
	network 192.168.0.0
	broadcast 192.168.0.255
	gateway 192.168.0.1
	dns-nameservers 1.1.1.1 9.9.9.9

Para que los cambios tengan efecto reiniciamos el servicios de red. Pero vamos, que lo que mejor funciona es reiniciar el sistema.

$ sudo systemctl restart networking
$ sudo systemctl restart NetworkManager.service [Ubuntu]
$ sudo shutdown --reboot now

Configura SSH local y remoto

Para que un equipo sea accesible mediante ssh, este debe tener instalado un servidor ssh.

$ sudo apt-get install openssh-server
$ sudo systemctl status sshd

Para acceder a nuestra máquina virtual de forma rápida lo mejor es instalar certificados. De forma que, tanto en el equipo local como en el equipo remoto crearemos estos certificados con el siguiente comando:

$ ssh-keygen -t rsa

Ahora desde el equipo local copio la clave pública en el equipo remoto e intento acceder directamente:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub elmakanico@192.168.1.101
$ ssh elmakanico@192.168.1.101

Para mayor seguridad cambio algunos parámetros de configuración del servidor remoto:

$ sudo nano /etc/ssh/sshd_config
...
Port 22 -> Port 1900
PermitRootLogin yes -> PermitRootLogin without-password
...

Reiniciamos el servidor SSH. Y de esta forma tendré que acceder al equipo remoto por el puerto 1900 y no se permitirá el acceso root con usuario y contraseña.

$ sudo systemctl reload sshd
$ ssh -p 1900 elmakanico@192.168.1.101

Cambiar el color del prompt

Para evitar confusiones de terminal cada vez que accedo a un equipo remoto, es buena idea cambiar el color del prompt, de esta forma es más fácil ver si estamos trabajando en el equipo local o en el remoto. Para ello editamos el archivo .bashrc del directorio de usuario.

$ nano ~/.bashrc

Buscamos el siguiente código y cambiamos el valor que está en negrita:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

Los código de color son los siguientes:

30 – Black
31 – Red
32 – Green
33 – Yellow
34 – Blue
35 – Purple
36 – Cyan
37 – White

Quedando diferenciado cuando estoy en una máquina y cuando estoy en otra:

elmakanico@debian:~$
equipo_local@ubuntu:~$