Cómo mantener tu computadora con Sistema Operativo Linux segura
Cómo mantener tu computadora con SO. Linux segura
Sugerencias para proteger tu computadora con SO Linux.
Este bosquejo es una guía básica para mantenimiento de una computadora o servidor Linux seguro. Se enfocará en las versiones de Ubuntu/Debian, pero en general es aplicable a otro sabor de Linux.
1. Actualiza la computadora
La primera medida será la de actualizar las aplicaciones, servicios instalados, tanto como la versión o parches del sistema operativo.
En Ubuntu y Debian:
$ sudo apt update
&& sudo apt upgrade
-y
En Fedora, CentOS, y RHEL:
$ sudo dnf upgrade
2. Generar un usuario con privilegios de root
Generar un nuevo usuario. No deberás ingresar remotamente a la computadora como root, en su lugar deberás crear un nuevo usuario con privilegios de root y úsalo para ingresar al equipo
Crear un nuevo usuario:
$ adduser
<username
>
Proveer a este nuevo usuario los privilegios de root por vía del comando siguiente.
$ usermod
-a -G sudo <username
>
3. Genera y descarga la llave (key) del servicio SSH (Secure Shell)
Deberás generar y descargar la llave del servicio SSH para ingresar remotamente y de manera segura a la computadora.
$ ssh-copy-id –i identidad-archivo
<username
>@ip_address
Ahora podrás accede al servidor sin tener que ingresar/escribir la contraseña en el teclado.
4. Asegurar SSH
Para asegurar el servicio SSH se deberán hacer los siguientes cambios:
- Deshabilitar la autenticación de contraseña en el servicio de SSH
- Restringir el acceso remoto a través de root
- Restringir también el acceso para IPv4 o IPv6
Editar el archivo “/etc/ssh/sshd_config” usando cualquier editor de texto y configurar las siguientes líneas
PasswordAuthentication yes
PermitRootLogin yes
Deberá quedar como:
PasswordAuthentication no
PermitRootLogin no
Restringir el acceso al servicio SSH vía IPv4 o IPv6, por medio de la modificación a la opción AddressFamily. Cambiándolo para el uso exclusivo de IPv4, configurándolo mediante el siguiente cambio.
AddressFamily inet
Reinicializar el servicio de SSH con el fin de habilitar los cambios recién editados. Precaución: Sería recomendable tener dos conexiones activas al servidor previo al reinicio del servicio SSH. Considerar una conexión extra, permitirá corregir cualquier detalle o incidente generado en la configuración.
En Ubuntu:
$ sudo service sshd restart
En Fedora o CentOS:
$ sudo systemctl restart sshd
5. Habilitar un firewall o equivalente.
Ahora requerirá instalar un firewall, activarlo y configurarlo solamente para permitir tráfico de red permisible. El programa “UnComplicated Firewall” (UFW) es un programa muy amigable y similar en funciones a iptables.
Instalar UFW con el comando:
$ sudo apt
install ufw
Por defecto, UFW negará todo tipo de conexiones de entrada y permitirá todo tipo de conexiones de salida. Esto significa que cualquier aplicación o programa en la computadora podrá acceder a Internet sin problema alguno, por el contrario, cualquier aplicación que pretenda alcanzar a la computadora, no podrá.
Primero habrá que garantizar el acceso a la computadora por medio de los servicios de SSH, HTTP y HTTPS.
$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https
Luego habilitar la aplicación UFW:
$ sudo ufw
enable
Determinar qué servicios se permitirán y qué otros se negarán y así proceder en consecuencia.
$ sudo ufw status
Si en un momento dado, se pretende deshabilitar por completo el firewall, solamente habrá que emitir el comando:
$ sudo ufw disable
También puede usarse el comando “firewall-cmd” en algunas otras distribuciones de Linux.
6. Eliminar servicios visibles, pero sin actividad.
La mayoría de las versiones de Linux, traen una aplicación de monitoreo de servicios, para así determinar cuáles de estos mantener. Sin embargo, habrá algunos que podríamos eliminar. Para visualizar y determinar estos servicios de red que están activos, usar el comando “ss”.
$ sudo ss
-atpu
El resultado de este comando dependerá de la versión del sistema operativo. El siguiente es un ejemplo de lo que podría generarse. Muestra que el demonio de SSH (sshd) y de NGNIX (ngnix) son servicios activos y están listos para conexión:
tcp LISTEN 0 128 *:http *:* users:(("nginx",pid=22563,fd=7))
tcp LISTEN 0 128 *:ssh *:* users:(("sshd",pid=685,fd=3))
El método o manera de eliminar algunos de esos servicios dependerá directamente de la versión del sistema operativo y del Administrador de paquetes.
Por ejemplo, eliminar algún servicio en Debian/Ubuntu:
$ sudo apt purge
<service_name
>
Para eliminar en Red Hat/CentOS:
$ sudo yum remove <service_name
>
3545