Seguridad en Debian GNU/Linux
Este documento busca ser una checklist de las cosas que deben ser tenidas en cuenta a la hora de dar seguridad a un servidor (basado en sistema Debian).
Limitar acceso físico en las opciones de arranque
- Habilitar clave en el BIOS
- Deshabilitar arranque de CD y DISQUETE
- Habilitar clave en LILO o GRUB (
/etc/lilo.conf
o/boot/grub/menu.lst
, respectivamente); revisar que los archivos de configuracion de LILO o GRUB sean de solo lectura (chattr +i
)
Particionado
- Separar en sus propias particiones:
- Datos escritos por usuarios
- Datos que no son del sistema operativo
- Datos que cambian rapidamente con el uso
- Configurar
nosuid,noexec,nodev
en las particiones que sea posible, como en/tmp
Sanidad de claves y seguridad de login
- Colocar una buena clave de root
- Ajustar /etc/pam.d/login para permitir acceso root solo local.
- Marcar tambien
authorized tty:s
en/etc/security/access.conf
y tratar de limitar en este archivo los accesos de root lo más posible. - Usar
pam_limits.so
si se desean limitar los accesos por usuario. - Ajustar
/etc/pam.d/passwd
: configurar minimo tamaño de claves (6 caracteres) y habiltiar md5 (ya viene por defecto en Linux nuevos) - Agregar un grupo
wheel
a /etc/group si se desea; agregarpam_wheel.so group=wheel
al archivo/etc/pam.d/su
- Para tener control por usuario, usar el módulo
pam_listfile.so
donde sea apropiado. - Tener un archivo
/etc/pam.d/other
y configurarlo con las opciones de seguridad por defecto. - Configurar límites en
/etc/security/limits.conf
- Revisar
/etc/login.defs
; también.
Hacer cambios también en:
- Diabilitar acceso remoto root en
/etc/ftpusers
- Instalar y configurar sudo para tareas de root.
- Configurar
/etc/sudoers
Otras cosas a asegurar localmente
- Mantener el kernel al día
- Revisar los permisos de los archivos de logs (
/var/log/{last,fail}log
, Apache logs, etc) - Instalar y configurar
checksecurity
y verificar que la revisación desetuid
está habilitada en/etc/checksecurity.conf
- Considerar si algunos archivos de log deben ser solamente de append y algunos archivos de configuración inmutables usando chattr.
- Instalar alguna herramienta de chequeo de integridad: (sXid, AIDE (Advanced Intrusion Detection Environment), TripWire, integrit o samhain.
- Instalar debsums
- Considerar remplazar
locate
conslocate
- Analizar de armar un servidor de syslog e inclusive los logs críticos logearlos en una impresora.
Limitar acceso por red
- Instalar y configurar servidor openssh con:
- PermitRootLogin No
- PermitEmptyPasswords No
- Deshabilitar y remover
in.telnetd
(no viene por defecto) - Deshabilitar servicios en
/etc/inetd.conf
(usandoupdate-inetd –disable
o deshabilitando todo inetd, o usando remplazo como ser xinetd o rlinetd) - Deshabilitar cualquier otro servicio de red que no sea necesario, revisar puertos abiertos con
netstat -atup
- Para los servicios que son necesarios verifique de correr versiones seguras (las puertas abiertas son eso!).
- Colocar en jaulas chrrot los usuarios externos y los daemons.
- Configurar firewall y tcpwrappers (p.ej: hosts_access); revisando
/etc/hosts.deny
- Si corre ftp, configurar para que el servidor siempre esté enjaulado en el home del usuario.
- Si corre ssh para usuarios remotos, considerar
scponly
. - Si se corre X, deshabilitar
xhost authentication
y acceder por ssh para acceso X. Deshabilitar acceso X remoto (agregar-nolisten tcp
en la linea de comando de X para apagar XDMCP en/etc/X11/xdm/xdm-config
configurarndorequestPort
en 0) - Verificar que no tenga servicios de impresion levantados, si no se necesitan. Deshabilitar acceso remoto a impresoras.
- Asegurar protocolos IMAP y POP mediante SSL o con tuneles ssh o zebedee.
- Asegurar BIND, Postfix y otros servicios complejos (si es posible colocándolos en una jaula, o verificar que tengan un usuario propio. Así vienen por defecto)
- Instalar
snort
o una herramienta similar de análisis - Evitar NIS y RPC si se puede (disabilitar portmap).
Políticas
- Educatr a los usuarios sobre las políticas de seguridad. Cuando se prohibe algo que está disponible en otros sistemas entregar documentación de fundamento de las mejoras en seguridad.
- Prohibir el uso de protocolos con claves en texto claro (telnet, rsh, ftp, imap, http, etc.)
- Usar quotas de disco.
Mas información sobre seguridad en Securing Debian Manual