Asegurar un nuevo servidor Ubuntu [cerrado]


Respuestas:


25

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. Usar autenticación de clave pública solo en SSH
  3. Deshabilitar los inicios de sesión de raíz a través de SSH (no se aplica a Ubuntu)
  4. Utilice la configuración de producción para PHP (se recomienda php.ini)
  5. Configure MySQL para usar solo sockets

Por supuesto, esta lista no está completa, y nunca estarás completamente seguro, pero cubre todas las hazañas 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.


1
Cambie el puerto para servicios como MySQL (inútil si configurarlo para usar solo sockets), FTP (aunque, si está seguro, no debería usar FTP en absoluto), SSH y todo tipo.
Josh Hunt el

3
"Desinstalar todos los paquetes innecesarios". OKAY. Eso es bastante vago. ¿Qué paquetes 'innecesarios'?
Lucas

2
@Luke: Cualquier cosa que no estés usando es innecesaria. Los servicios en ejecución más específicos que no necesita ponen a las máquinas en un riesgo innecesario.
Andrioid

@Luke: cat / etc / services debería darte algunas ideas.
jeshurun

17

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).


3
mientras se vincula a la página de inicio de sourceforge: denyhosts también está disponible en el repositorio (universo) a través de "sudo aptitude install denyhosts"
Olaf

buen punto @olaf. La mayoría de los servidores en los que lo instalé eran RHEL, donde también está en el repositorio de DAG.
Alister Bulman

+1 para denyhosts
wimvds

2
DenyHosts parece solo detectar y bloquear ataques de fuerza bruta ssh. Una mejor opción sería fail2ban (también está disponible en los repositorios), que monitorea una variedad de cosas, incluidos los registros de apache, entre otras cosas. Consulte el wiki de la comunidad en help.ubuntu.com/community/Fail2ban
jeshurun


5

Por lo general, 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.


4

Instale logcheck, pero modifique 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.


3

Haz lo que Can te sugiera ...

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


2
En cualquier servidor al que se pueda acceder a través de Internet, siempre es necesario iptables . ;-)
Christopher Cashell

3

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


3

Use particiones separadas para varios directorios como /tmpo /vary móntelos con nosuid, nodevy noexecsi es posible.


3

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 una cosa 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 se tarda más en recoger.

Shorewall

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.


2

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.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.