Recomendaciones generales de seguridad (linux)

  • Siempre actualizar el kernel cuando sale un bug de seguridad.
  • Estar apuntado a la lista de seguridad de Debian/RH/MDK y hacer updates en cuanto salen avisos.
  • Estar apuntado a otras listas de seguridad, y si sale un bug en ellas y aun no ha llegado el aviso de Debian/RH/MDK, comprobar si tenemos el bug y si hace falta cortar el servicio.
  • Tener un kernel, si es posible, estático, es decir: las opciones que necesito las tengo integradas como Y (nunca como modulos), y en la segunda opcion del make menuconfig (las de los modulos), quito el soporte de modulos: como no se pueden cargar modulos, no me pueden cargar los modulos de los rootkits. En determinados casos no se podrá dejar sin soporte de módulos (si necesitamos vmware, lmsensors, bluetooth …), pero en un servidor que no tenga nada de esto, es prácticamente obligatorio.
  • Cambiar diferentes opciones de PHP:
    • Activar el safe_mode = on de php.ini para PHP4. Eso hace que cuando se ejecuta un script que es de usuario:grupo, ese script sólo puede acceder a ficheros de usuario:grupo. Es decir, no podria hacer un cat del /etc/passwd aunque tenga permiso de lectura para todos. El safemode tampoco permite ejecutar comandos (para que no te hagan via fallos de apache ids, uname -a, y demás). A veces no es posible activar el safemode, depende de si tenemos alguna aplicación que sea incompatible con él o no (por ejemplo, algunos webmails no funcionan si activas safe_mode) (http://es2.php.net/features.safe-mode).
    • Desactivar Register_globals (a Off) si las aplicaciones PHP que usemos están bien realizadas (es decir, deben acceder a las variables de los formularios mediante $_POST[‘VARIABLE’] . Conviene que leas el manual de PHP relativo a register_globals para saber qué hace antes de tocar nada (http://es.php.net/register_globals). Al respecto del safe_mode y register_globals, minskog nos comenta lo siguiente: “Solo un apunte, si necesitas safe_mode off o globas_register a on para alguna aplicacion en concreto, y sabes que esa aplicacion está bien hecha y que el acceso a ese directorio lo controlas tú, por ejemplo gallery o vhcs , hay una directiva que te permite sobreescribir la conf de php (evidentemente por seguridad no funciona en .htaccess). Sería php_admin_flag:

      php_admin_flag safe_mode off
      php_admin_flag register_global on

      Esto te permite dejar el server con safe_mode y register_globals a nivel de server, y desactivarlos donde necesites/quieras. Reitero que NO funciona en .htaccess por seguridad, tiene que ir en la conf de apache.”

    • Desactivar el Error Reporting de forma que no aparezcan por pantalla errores de PHP/Base de datos (no dando pistas de nombres de tablas, bases de datos, etc.). Para ello, cambiar las opciones display_errors, y/o error_reporting de php.ini. (http://es.php.net/error_reporting).
  • Mi servidor de correo es qmail (sin fallos de seguridad desde 1997 y aun esperando que alguien lo reviente por un premio de 100.000 $). Es infinitamente más seguro que un sendmail. Otra gran opción es postfix, o no correr ningún servidor de correo si no es necesario.
  • Si no necesitamos ningún servidor de correo abierto al exterior, reconfigurar el que usemos para que sólo escuche en 127.0.0.1.
  • Si no vamos a utilizar remotamente mysql, añadir la opción del skip-networking en el /etc/my.cnf. Con esto conectaremos vía socket local y se dejarán de aceptar conexiones en el puerto 3306.
  • Si no es necesario, desinstalar portmap y servicios asociados (rpc, statd, nfs-kernel-server, etc.).
  • Los directorios /tmp y /var/tmp montados aparte como particiones con opciones nosuid, noexec y nodev. Estas opciones evitan que los usuarios puedan ejecutar scripts o binarios en esas particiones.
  • Binarios de compilación y descarga con permisos restringidos (gcc, make, wget, lynx…).
  • Instalar algún software de control de binarios como tripwire, aide y algún chequeador de rootkits como chkrootkit y rkhunter. (Nota, una vez instalado, basta con añadir estas 2 líneas al /etc/crontab:
    00 4 * * * root rkhunter –update > /dev/null 2>&1
    30 4 * * * root rkhunter -c –nocolors –cronjob –report-mode –createlogfile –skip-keypress –quiet
    )
  • Los logs de los analizadores (tripwire, rkhunter, etc.), no dejarlos nunca en el sistema, enviarlos por email a una máquina externa (para evitar que los “juackers” los falseen y nos engañen).
  • Cambiar SSH de puerto, por ejemplo al 26 (editando el /etc/services y luego el /etc/init.d/inetd.conf o xinetd).
  • Finalmente, un buen firewall (por ejemplo, shorewall) debe cerrar el acceso a todos los puertos que no debieran estar permitidos por debajo de 1024. Pese a disponer del firewall, quitar todos los

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: