🔧 Configuración Post Instalación
1. Acceso al Sistema
Primero, debemos introducir el usuario y la contraseña que hemos creado. En este caso, el usuario es meghribe
y la contraseña es 42Password-
.
2. Instalación de sudo
y Configuración de Usuarios y Grupos 👤
-
Para instalar
sudo
, primero debemos estar en el usuario root. Ejecutamossu
en el terminal e introducimos la contraseña, en este caso42Barcelona-
. Luego, instalamossudo
con el siguiente comando:apt update -y && apt install sudo -y && sudo reboot
apt update -y
: Actualiza la lista de paquetes disponibles en el sistema. La opción-y
confirma automáticamente la actualización.apt install sudo -y
: Instala el paquetesudo
. La opción-y
confirma automáticamente la instalación.sudo reboot
: Reinicia el sistema para aplicar cambios.
-
Después del reinicio, volvemos a entrar con nuestro usuario (
meghribe
) y accedemos aroot
consu
y la contraseña. -
Creamos un nuevo grupo llamado
user42
:sudo addgroup user42
sudo addgroup user42
: Crea un nuevo grupo llamadouser42
. El comandoaddgroup
es utilizado para gestionar grupos en el sistema.
GID es el identificador del grupo, que es una abreviatura de Group ID. Para verificar si el grupo se ha creado correctamente, podemos usar el comando
getent group nombre_grupo
ocat /etc/group
. -
Añadimos nuestro usuario al grupo
user42
y asudo
:sudo adduser meghribe user42 sudo adduser meghribe sudo
sudo adduser meghribe user42
: Añade el usuariomeghribe
al grupouser42
.sudo adduser meghribe sudo
: Añade el usuariomeghribe
al gruposudo
, otorgándole permisos administrativos.
Para verificar que se ha hecho correctamente:
getent group sudo getent group user42
getent group sudo
: Muestra los miembros del gruposudo
.getent group user42
: Muestra los miembros del grupouser42
.
3. Instalación y Configuración de SSH
-
Instalamos el protocolo SSH:
sudo apt install openssh-server -y
sudo apt install openssh-server -y
: Instala el servidor SSH. La opción-y
confirma automáticamente la instalación.
-
Verificamos el estado del servicio SSH:
sudo service ssh status
sudo service ssh status
: Muestra el estado del servicio SSH para asegurarse de que esté corriendo.
-
Instalamos el editor de texto
vim
:sudo apt install vim -y
sudo apt install vim -y
: Instala el editor de textovim
. La opción-y
confirma automáticamente la instalación.
-
Configuramos el protocolo SSH:
-
Editamos el archivo
/etc/ssh/sshd_config
para definir el puerto 4242 y desactivar el login de root. Verificamos los valores actuales con:cat /etc/ssh/sshd_config | grep Port cat /etc/ssh/sshd_config | grep PermitRootLogin
cat /etc/ssh/sshd_config | grep Port
: Muestra la línea que define el puerto en el archivo de configuración SSH.cat /etc/ssh/sshd_config | grep PermitRootLogin
: Muestra la línea que define el permiso de login para el usuario root.
Editamos el archivo con
vim
:vim /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
: Abre el archivo de configuración del servidor SSH en el editorvim
.
Descomentamos
#Port 22
y cambiamos el número a4242
, y descomentamos#PermitRootLogin prohibit-password
y lo cambiamos aPermitRootLogin no
.
-
Ahora, editamos el archivo
/etc/ssh/ssh_config
para definir el mismo puerto:vim /etc/ssh/ssh_config
vim /etc/ssh/ssh_config
: Abre el archivo de configuración del cliente SSH en el editorvim
.
Cambiamos el puerto a
4242
.
-
Reiniciamos el servicio SSH:
sudo service ssh restart
sudo service ssh restart
: Reinicia el servicio SSH para aplicar los cambios de configuración.
-
Instalamos y configuramos el firewall
ufw
:sudo apt install ufw -y sudo ufw enable sudo ufw status sudo ufw allow 4242 sudo ufw status ip -c a
sudo apt install ufw -y
: Instala el firewallufw
. La opción-y
confirma automáticamente la instalación.sudo ufw enable
: Habilita el firewall.sudo ufw status
: Muestra el estado actual del firewall.sudo ufw allow 4242
: Permite el tráfico en el puerto4242
.ip -c a
: Muestra la configuración de red, incluyendo direcciones IP.
-
Finalmente, probamos la conexión SSH:
ssh LA_IP_DE_LA_MAQUINA_VIRTUAL -p 4242
ssh LA_IP_DE_LA_MAQUINA_VIRTUAL -p 4242
: Conecta a la máquina virtual mediante SSH en el puerto4242
.
-
4. Configuración Adicional de sudo
-
Configuramos
sudo
para registrar intentos de acceso y otras configuraciones:sudo su touch /etc/sudoers.d/sudo_config mkdir /var/log/sudo
sudo su
: Cambia al usuario root para realizar tareas administrativas.touch /etc/sudoers.d/sudo_config
: Crea un nuevo archivo de configuración parasudo
en el directorio/etc/sudoers.d
.mkdir /var/log/sudo
: Crea un directorio para almacenar los logs desudo
.
Editamos el archivo
/etc/sudoers.d/sudo_config
:Defaults passwd_tries=3 Defaults badpass_message="Mensaje de error personalizado" Defaults logfile="/var/log/sudo/sudo_config" Defaults log_input, log_output Defaults iolog_dir="/var/log/sudo" Defaults requiretty Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
Defaults passwd_tries=3
: Establece el número máximo de intentos de contraseña parasudo
.Defaults badpass_message="Mensaje de error personalizado"
: Mensaje personalizado que se muestra cuando la contraseña es incorrecta.Defaults logfile="/var/log/sudo/sudo_config"
: Archivo de log parasudo
.Defaults log_input, log_output
: Registra la entrada y salida de comandos ejecutados consudo
.Defaults iolog_dir="/var/log/sudo"
: Directorio donde se almacenan los logs de entrada/salida.Defaults requiretty
: Requiere quesudo
se ejecute en una terminal.Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
: Define el path seguro para la ejecución de comandos consudo
.
5. Configuración de Políticas de Contraseña
-
Editamos el archivo
/etc/login.defs
para definir políticas de contraseñas:vim /etc/login.defs
vim /etc/login.defs
: Abre el archivo de configuración de políticas de contraseñas en el editorvim
.
Ajustamos los valores para la expiración y advertencia de contraseñas:
PASS_MAX_DAYS 30 PASS_MIN_DAYS 2 PASS_WARN_AGE 7
PASS_MAX_DAYS 30
: Establece el número máximo de días que una contraseña puede ser utilizada antes de que sea necesario cambiarla.PASS_MIN_DAYS 2
: Establece el número mínimo de días que debe pasar antes de que una contraseña pueda ser cambiada nuevamente.PASS_WARN_AGE 7
: Número de días antes de la expiración de la contraseña en los que se debe advertir al usuario.
-
Instalamos el módulo
libpam-pwquality
para mejorar la calidad de las contraseñas:sudo apt install libpam-pwquality -y
sudo apt install libpam-pwquality -y
: Instala el módulolibpam-pwquality
, que proporciona políticas de calidad para contraseñas. La opción-y
confirma automáticamente la instalación.
-
Editamos el archivo
/etc/pam.d/common-password
para establecer políticas de calidad de contraseñas:vim /etc/pam.d/common-password
vim /etc/pam.d/common-password
: Abre el archivo de configuración de contraseñas en el editorvim
.
Cambiamos la configuración a:
minlen=10 ucredit=-1 dcredit=-1 lcredit=-1 maxrepeat=3 reject_username difok=7 enforce_for_root
minlen=10
: Establece el número mínimo de caracteres en una contraseña.ucredit=-1
: Requiere al menos una letra mayúscula.dcredit=-1
: Requiere al menos un dígito.lcredit=-1
: Requiere al menos una letra minúscula.maxrepeat=3
: Permite que un carácter se repita un máximo de 3 veces consecutivas.reject_username
: No permite que la contraseña sea igual al nombre de usuario.difok=7
: Requiere que las nuevas contraseñas sean diferentes de al menos 7 caracteres de la contraseña anterior.enforce_for_root
: Aplica estas políticas también para el usuario root.
-
Revisamos la configuración de expiración de contraseñas para el usuario root:
sudo chage -l root sudo chage -m 2 root sudo chage -M 30 root sudo chage -l root
sudo chage -l root
: Muestra la configuración actual de expiración de contraseñas para el usuario root.sudo chage -m 2 root
: Establece el número mínimo de días entre cambios de contraseña para el usuario root.sudo chage -M 30 root
: Establece el número máximo de días antes de que sea necesario cambiar la contraseña del usuario root.
6. Información del Sistema
Finalmente, obtenemos información sobre el sistema:
uname -a
uname -a
: Muestra información detallada sobre el núcleo del sistema y el sistema operativo.