¿Cómo se debe asegurar un servidor?

Hablando de Ubuntu 10.04, edición de servidor, ¿qué herramientas / prácticas recomendaría para asegurar el servidor?

Esto es un poco no específico, pero en general necesitará

  • Ejecute un firewall como iptables o ufw para administrar la conexión y abrir los puertos.

  • Solo instale el software que requiera.

  • Solo ejecute servicios que son esenciales para la ejecución del servidor.

  • Mantenga ese software actualizado con todos los parches de seguridad.

  • Configure nuevos usuarios con los privilegios mínimos que necesitan para realizar sus tareas.

  • Ejecute denyhosts o fail2ban para verificar los ataques de fuerza bruta.

  • Ejecute logwatch para enviarle por correo electrónico cualquier anomalía en los archivos de registro.

  • Revise sus registros a menudo para las actividades sospechosas.

  • Use sudo siempre y use contraseñas seguras.

  • Deshabilite los cifrados débiles y medios en SSL para apache, exim, proftpd, dovecot, etc.

  • Configure los servicios para que solo escuchen a localhost (cuando sea apropiado).

  • Ejecutar chkrootkit diariamente.

  • Ejecute clamscan tan a menudo como sea necesario para verificar si hay virus de Windows (si corresponde).

  • Esté atento, conozca su servidor, sepa qué debería estar haciendo y qué no debería estar haciendo.

Solo mantendrás las cosas seguras revisando y asegurando constantemente. Si no sabe qué hace algo o cómo o por qué, o si algo parece sospechoso, solo pida consejo a otros.

Impresionante respuesta por Richard Holloway. Si está buscando una guía paso a paso específica, consulte la siguiente guía de 2 partes de la biblioteca de Slicehost.

  1. http://articles.slicehost.com/2010/4/30/ubuntu-lucid-setup-part-1
  2. http://articles.slicehost.com/2010/4/30/ubuntu-lucid-setup-part-2

Lo uso en casi todas partes cuando tengo que configurar una instancia de Ubuntu Server. Estoy seguro de que te encantaría.

Otra gran fuente es la biblioteca de Linode en http://library.linode.com/

Echa un vistazo a los artículos en ambos lugares. Hay un montón de información disponible allí y estará armado con el conocimiento suficiente para manejar su servidor sin problemas.

PD: De ninguna manera, una biblioteca puede ser un sustituto para las capacidades de intuición, conocimiento y toma de decisiones de un gran administrador de sistemas.

Algo que no veo mencionado es “use 64bit”. Esto asegura que tengas protecciones de memoria NX, entre otras cosas.

Tres cosas que tiendo a recomendar son:

  • Monte todas las áreas de escritura global (/ tmp, / var / tmp) como ‘noexec’: esto es en su mayor parte seguro sin inconvenientes, excepto (en el momento de la escritura) a menos que elija actualizar su sistema. Ver error # 572723 en Launchpad para más detalles allí.

  • No instale ningún comstackdor o ensamblador a menos que sea absolutamente necesario: creo que esto se explica por sí mismo.

  • Comience con AppArmor: AppArmor se puede ver como una alternativa a SELinux, y es una gran característica de Ubuntu para el uso de aplicaciones de sandbox para garantizar que no tengan más acceso del que necesitan. Recomiendo revisar la guía en los foros si está interesado. http://ubuntuforums.org/showthread.php?t=1008906

  • Instale y configure iptables con un conjunto de reglas apropiado para su entorno. Filtrado de tráfico tanto entrante como saliente.
  • psad para detectar y alertar sobre cualquier escaneo de puertos contra su sistema.
  • Utilice fail2ban para evitar bashs de inicio de sesión de fuerza bruta contra SSH.
  • No permitir el acceso remoto utilizando la cuenta raíz, ya que esto significa que entre otras cosas, si un atacante intentará restringir el acceso forzoso a su servidor, deberá entrenar el nombre de usuario y la contraseña.
  • Utilice contraseñas seguras para todas las cuentas de usuario.
  • Limite el acceso SSH para que solo esté disponible desde ciertas direcciones IP si es posible.
  • Utilice Tripwire de otro sistema de detección de intrusiones basado en host.
  • Monitoree el servidor con un progtwig de monitoreo de red como nagios.

Si fuera usted, buscaría iptables (firewall estándar de Linux) y vería qué servicios se están ejecutando. Básicamente, solo desea ejecutar los servicios que necesita, es decir, no ejecutar un servidor web cuando solo desea configurar un servidor de correo electrónico y tener solo los puertos abiertos que realmente necesita. ¡Todo lo demás debería estar cerrado!

Guía para iptables: https://help.ubuntu.com/community/IptablesHowTo

¡Espero que esto ayude!

ps Si necesita más ayuda, acceda a irc y pulse el canal # ubuntu-server en freenode

Para los cortafuegos, puede ver @ Firestarter o ufw con gufw .