it-swarm-es.com

Asegurar un nuevo servidor Ubuntu

Digamos que tengo una nueva instalación de Ubuntu, ¿qué pasos debo seguir para protegerlo para usarlo como un servidor de aplicaciones Rails?

37
Codebeef

No puedo pensar en ningún ajuste específico de Ubuntu, pero aquí hay algunos que se aplican a todas las distribuciones:

  1. Desinstale todos los paquetes innecesarios
  2. Utilice la autenticación de clave pública solo en SSH
  3. Desactiva los inicios de sesión de raíz a través de SSH (no se aplica a Ubuntu)
  4. Use la configuración de producción para PHP (recomendado por php.ini)
  5. Configure MySQL para usar solo sockets

Por supuesto, esta lista no está completa, y nunca estará completamente seguro, pero cubre todos los exploits I que he visto en la vida real.

Además, los exploits que he visto casi siempre estaban relacionados con un código de usuario no seguro, no con una configuración insegura. Las configuraciones predeterminadas en distribuciones mínimas de servidor tienden a ser bastante seguras.

25
Can Berk Güder

Una cosa rápida que hago al principio es instalar DenyHosts . Regularmente buscará en/var/log/secure, buscando inicios de sesión fallidos y, después de un par de fallas, bloqueará la IP. Lo configuré para que se bloquee después del primer no-tal-usuario, en el segundo intento de root, y después de un par de intentos para usuarios reales (en caso de que se equivoque, pero debería usar una clave pública SSH para iniciar sesión).

17
Alister Bulman

Ubuntu se basa en Debian y he encontrado que Asegurar el Manual de Debian es muy útil en las distribuciones basadas en Debian para guiarlo completamente a través de su sistema y verificar cada parte. Básicamente es una respuesta muy, muy completa a su pregunta.

10
Mike McQuaid

Normalmente instalo RKHunter, que busca rootkits y realiza verificaciones de integridad de varios binarios importantes del sistema. Está en el repositorio estándar y se ejecutará diariamente desde cron. No es perfecto, por seguridad, pero es un elemento de bajo esfuerzo para agregar, y proporciona una medida de protección.

5
Tim Howland

Instale logcheck, pero Tweak para que nunca reciba mensajes de eventos regulares, de lo contrario, tendrá la costumbre de ignorar los correos electrónicos.

Compruebe qué procesos están escuchando usando netstat y asegúrese de que no se ejecute nada que no sea necesario. Muchos demonios se pueden configurar solo para escuchar en la IP interna (o localhost) en lugar de todas las interfaces.

4
Mikeage

Haz lo que Can sugiere ...

Nmap el Host y deshabilite todos los servicios no esenciales. Use iptables si es necesario.

3
Jauder Ho

Use particiones separadas para varios directorios como /tmp o /var y móntelos con nosuid, nodev y noexec si es posible.

3
Cristian Ciupitu

Si va a acercarse a Internet con el servidor, instale un sistema de detección de intrusos como Snort.

3
Timo Geusch

Algunas sugerencias de firewall.

Aprenda a usar un firewall y los conceptos de bloquear correctamente una caja. Cambiar los puertos predeterminados es en gran medida inútil; La aplicación adecuada y la configuración del firewall son mucho más importantes.

Ambos están en los repositorios de Ubuntu:

FireHOL

tiene una excelente documentación y una sintaxis muy fácil de aprender. Pude configurar una puerta de enlace/firewall en veinte minutos. La única razón por la que me he alejado de esto es que no parece mantenerse (última versión hace 2 años). No significa que no funcione, pero ...

Ferm

es otro. Más sintaxis tipo iptables, pero el mismo concepto. Se mantiene más comunidad que FireHOL, pero lleva más tiempo recogerla.

Muro costero

es lo que uso actualmente. Su documentación es extensa y su formato de configuración es tabular. Me llevó aproximadamente una hora y media comprender todos los archivos necesarios (6) para ejecutar una configuración de firewall/puerta de enlace en funcionamiento. Es bastante poderoso CONSEJO: ¡Las páginas de manual para los diferentes archivos de configuración son REALMENTE útiles!

Todas estas configuraciones de firewall de carga desde un archivo de configuración. Muy eficaz, más fácil de usar que iptables directamente y (en mi opinión) más fácil de usar y administrar que ufw.

Otro:

  • Secundo las recomendaciones para el uso de la clave SSH.

  • Configurar un IDS.

  • Aprenda sobre AppArmor. Restringe el acceso a los archivos ejecutables solo a directorios y archivos específicos que necesita. Similar a SELinux en el mundo RHEL. Está instalado y habilitado con 'perfiles' preconfigurados para muchos programas bien utilizados.

3
Luke has no name

Además de otras sugerencias aquí, mencionaré tres que son obvias pero que quizás valga la pena mencionar para completar:

  1. Si no cree que necesita un firewall, piense de nuevo. ufw es simple pero está diseñado para Ubuntu y está basado en iptables
  2. Actualice los paquetes: como mínimo aplique todos los parches de seguridad
  3. Documente lo que ha hecho para proteger el servidor y por qué. Incluya procesos de configuración (automatizados) para monitorear registros, probar la configuración e informar las actualizaciones de seguridad que se necesitan.
2
mas