12 de mayo de 2015

GNU/LINUX . Sugerencias de seguridad para estos sistemas

Esto es una recopilación de normas de seguridad básicas para los administradores de sistemas, de redes/sistemas basados en GNU/Linux.
1.   Mantener actualizados nuestros sistemas con los últimos updates de seguridad.
1.1.   Listas de correo de actualizaciones críticas [Slackware Security Advisor, Debian Security Advisor]
2.   Cero acceso físico a los servers por parte de personal no autorizado.
2.1.   Aplicar password al BIOS de nuestros servers
2.2.   No boot por CD/DVD
2.3.   Password en el GRUB/Lilo
3.   Buena política de passwords, caracteres alfanuméricos y otros.
3.1.    Envejecimiento de los passwords[Password Aging] con el comando “chage”, así como número de días entre cambio de password y última fecha de cambio.
3.2.    Evitar el uso de password anteriores en:   /etc/pam.d/common-password
3.3.   Así cambias el password y te recuerda los ultimos 10 passwords que tenía el usuario: password sufficient pam_unix.so use_auth ok md5 shadow remember 10
4. Buena política de gestión/segmentación de nuestra red[routers, switches, vlans] y firewall, así como reglas de filtrado INPUT, OUTPUT, FORWARD[NAT, SNAT,DNAT]
5.  Habilitar el uso de shells[/etc/shells]. Los usuarios que no deban loguearse en el sistema les toca /bin/false o /bin/nologin.
5.1.   Bloquear usuarios cuando el login falla[faillog], así como controlar la cuenta de usuario del sistema. Ejemplos: passwd -l pepe -> (para bloquear al usuario pepe)  y passwd -v pepe ->  (para desbloquear al usuario pepe )
6.   Habilitar el uso de “sudo”, NUNCA loguearnos como root por ssh, “NUNCA”. De hecho se debe editar la configuración de ssh para lograr este propósito. Use llaves públicas/privadas en sus servers con sudo.
7.   Aplicar en nustros sistemas el “Principio del privilegio mínimo“.
8.   Chequear nuestros servicios cada cierto tiempo[netstat -lptun], para cada uno de nuestros servers. Agregar herramientas de monitoreo que nos puedan ayudar en esta tarea[Nagios, Cacti, Munin, Monit, Ntop, Zabbix].
9.   Instalar IDSs, Snort/AcidBase, Snotby, Barnyard, OSSEC.
10.  Nmap es tu amigo, úsalo para verificar tu subred/subredes.
11. Buenas prácticas de seguridad en OpenSSH, Apache2, Nginx, MySQL, PostgreSQL, Postfix, Squid, Samba, LDAP[los que la mayoría usa] y algún que otro servicio que necesites en tu red.
12.  Encriptar toda comunicación mientras sea posible en nuestros sistemas, SSL, gnuTLS, StarTTLS, digest, etc… Y si manejas información sensible, encripta tu disco duro!!!
13.Actualizar nuestros servidores de correo con las últimas reglas de seguridad, listas negras y antispam.
14.   Logueo de actividad en nuestros sistemas con logwatch y logcheck.
15.  Conocimiento y uso de herramientas como top, sar, vmstat, free, entre otras.
-        sar -> system activity report
-        vmstat -> procesos, memoria, systema, i/o, actividad del cpu, etc
-        iostat -> cpu i/o status
-        mpstat -> multiprocessor status and usage
-        pmap -> uso de memoria por los procesos
-        free -> memoria
-        iptraf ->  tráfico en tiempo real de nuestra red
-        ethstatus -> console-based ethernet statistics monitor
-        etherape -> graphical network monitor
-        ss -> socket status[tcp socket info, udp, raw sockets, DCCP Sockets]
-        tcpdump -> Análisis detallados de tráfico
-        vnstat -> network traffic monitor of selected interfaces
-        mtr -> herramienta de diagnóstico y análisis de sobrecarga en las redes
-        ethtool -> stats about network cards
Fuente: blog.desdelinux.net