La seguridad
Aspectos básicos de la seguridad
Los principales objetivos de la seguridad informática son:
-
Seguridad de la conexión: consiste en comprobar que los usuarios que se conectan pueden hacerlo y denegarles el acceso al sistema en caso contrario.
-
Integridad de los datos: garantizar que los archivos y las bases de datos no se corrompan y mantener la coherencia entre los datos.
-
Confidencialidad de los datos: el acceso a los datos para su consulta y modificación debe limitarse únicamente a los usuarios autorizados.
Para hacer esto, Linux cuenta con varias funcionalidades, entre las que destacan:
-
la identificación de los usuarios mediante una cuenta de usuario definida por un nombre de usuario y su UID,
-
la autenticación de usuarios mediante contraseña,
-
el cifrado de datos,
-
los módulos PAM (Pluggable Authentication Modules), que permiten configurar y aplicar métodos de identificación y autenticación.
La activación de SELinux, el módulo de seguridad del kernel, aumenta significativamente la seguridad del sistema, pero a costa de aumentar la complejidad de la configuración.
De manera más general, los siguientes aspectos ayudan a fortalecer la seguridad de los sistemas Linux:
-
control frecuente de los permisos de acceso a archivos y bases de datos,
-
control de acceso a servidores y software,
-
comprobación de las “checksum” de los archivos para garantizar su integridad,
-
copia de seguridad periódica de los datos,
-
auditoria de los principales eventos del sistema,
-
instalación de firewalls que controlan el acceso al sistema informático desde el exterior y limitan el acceso a servicios externos,
-
uso de firewalls de aplicaciones, para analizar flujos de datos (por ejemplo, para detectar ataques a servidores web),
-
uso de herramientas de detección y prevención de intrusiones (mediante la correlación de trazas) y la prohibición de direcciones o personas implicadas,
-
uso de bastiones, para un mejor filtrado y seguimiento de los accesos,
-
desactivación de los servicios innecesarios en el servidor y en el cliente.
1. Controlar los permisos especiales SUID y SGID
Los permisos especiales (bits SUID y SGID) pueden suponer un riesgo para la seguridad del sistema. Un usuario malintencionado se puede aprovechar del acceso temporal o malicioso al sistema como administrador root o miembro del grupo...
Seguridad de servicios y redes
Normalmente, se accede a los servicios de red del servidor de un sistema desde otros sistemas. Estos servicios pueden tener fallos de seguridad, por lo que es importante habilitar solo lo que sea realmente esencial y controlar su actividad.
1. Comprobar puertos abiertos
Se pueden usar varios comandos para saber qué puertos están esperando en qué servicios de red.
a. Información de netstat
El comando netstat, descrito en el capítulo La red, proporciona información y estadísticas de red sobre el sistema local. En concreto, permite identificar los puertos a los que están accediendo los servicios, las conexiones que se están usando y los procesos locales que están escuchando.
Sintaxis
netstat -apnt -A inet
Con:
-
-a: conexiones activas o en espera en un puerto
-
-p: muestra el proceso local (PID, ejecutable)
-
-n: muestra los valores numéricos en lugar de los nombres
-
-t: protocolo de transporte TCP
-
-A inet: solo conexiones IPv4
Ejemplo
# netstat -apnt -A inet
Conexiones a Internet activas (servidores y establecidos)
Proto Recv-Q Send-Q Dirección local Dirección remota Estado PID/Program name
tcp 0 0 127.0.0.1:25 .0.0.0:* LISTEN 999/exim4
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 622/sshd: /usr/sbin
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 655/cupsd
tcp 0 208 192.168.1.140:22 192.168.1.142:65008 ESTABLISHED 2067/sshd: root@pts
tcp 0 0...