66 votos

¿Qué pasos debe tomar para proteger un servidor con Debian?

Estoy instalando un servidor Debian que está conectado directamente a Internet. Obviamente quiero que sea lo más segura posible. Me gustaría que los chicos/chicas para agregar sus ideas para asegurarlo y lo que los programas que uso para él.

Quiero parte de esta pregunta para cubrir żqué usa como un firewall? Sólo iptables configurado manualmente o utilizar algún tipo de software para ayudar a usted? ¿Cuál es la mejor manera? Todo el bloque y permitir que sólo lo que se necesita? Hay tal vez buenos tutoriales para principiantes en este tema?

¿Cambia su puerto SSH? ¿Usar un software como Fail2Ban para evitar ataques de fuerza bruta?

50voto

Steve Mould Puntos 141

Obligatorio:

  • instalación de sistema con el modo experto, sólo los paquetes que necesito
  • escrito a mano firewall con política por defecto en iptables'input: gota, permitir el acceso SSH, HTTP, o cualquier otra cosa que dado servidor se está ejecutando
  • Fail2Ban para SSH [ y a veces FTP / HTTP / otros - dependiendo del contexto ]
  • deshabilitar las conexiones de root, forzar el uso de un usuario normal, y sudo
  • kernel personalizado [ sólo los viejos hábitos ]
  • programado actualización del sistema

Dependiendo del nivel de paranoia además:

  • colocar la política en la salida, excepto un par de destinos / puertos
  • integrit para comprobar si algunas de las partes del sistema de archivos de la vajilla no se modifica con la suma de comprobación fuera de la máquina], por ejemplo Tripwire
  • exploración programada, al menos con nmap de sistema desde el exterior
  • automatizado de registro de cheques para el desconocido patrones [pero eso es sobre todo para detectar el mal funcionamiento del hardware o algunos pequeños accidentes]
  • ejecución programada de chkrootkit
  • inmutable en el atributo /etc/passwd por lo que la adición de nuevos usuarios es un poco más difícil
  • /tmp montado con noexec
  • puerto aldaba o de otra manera no estándar de la apertura de puertos SSH [por ejemplo, visitas a 'secreto' de la página web en el servidor web permite a los entrantes de una conexión SSH por un período limitado de tiempo a partir de una dirección IP, que ven en la página. Si se conecta, -m state --satete ESTABLISHED encarga de permitir el flujo de paquetes tan largo como el uso de una única sesión de SSH]

Cosas que no me hago a mí mismo, pero tienen sentido:

  • grsecurity para el kernel
  • syslog remoto de modo que los registros no se pueden sobrescribir cuando el sistema se ve comprometida
  • alertar sobre cualquier inicios de sesión SSH
  • configurar rkhunter y configurarlo para que se ejecute a partir de tiempo al tiempo

18voto

Xerxes Puntos 3005

Sólo una nota sobre los cortafuegos de tu máquina...

  • El uso de una lista blanca, no una "lista negra" - es decir, todo el bloque, y permitir sólo lo que necesita, a negar todo lo demás.
  • No utilizar interfaces gráficas de usuario/ncurses o de cualquier otra forma el software que intenta hacer la tarea de escribir su firewall para usted. Si usted lo hace, usted estará permitiendo que el software para hacer suposiciones para usted, no hay necesidad de tomar ese riesgo, y no debería. Configure usted mismo, si usted no está seguro, deshabilitar vas a encontrar muy pronto, si es necesario. Si ya es un sistema en ejecución y no se puede interrumpir el tráfico (por el accidente de bloqueo), a continuación, ejecutar tcpdump (volcado de archivo) y tomar muestras de estudio con ellos más tarde, y luego de averiguar lo que es válido y lo que no.
  • Yo personalmente no veo ningún punto en la ejecución de un servicio en un puerto no estándar, las herramientas no son tan tontos estos días de asumir que porque algo se está ejecutando en el puerto 22 por ejemplo, entonces debe ser ssh, y no de otra manera - por ejemplo amapy nmap's -A opción. Habiendo dicho esto, usted puede (y debe probablemente si preocupado) modificar sus servicios para esconderse de las miradas indiscretas, por ejemplo, el siguiente iba a dejar que el atacante saber la versión exacta de OpenSSH que se está ejecutando, se puede entonces buscar exploits para que versión exacta. Si usted ocultar estas cosas, usted estaría haciendo más difícil para ellos.
 [root@ud-olis-1 uhtbin]# telnet localhost 22
 Trying 127.0.0.1...
 Connected to localhost.localdomain (127.0.0.1).
 Escape character is '^]'.
SSH-2.0-OpenSSH_3.9p1
  • Mantener todos los servicios públicos hasta la fecha y parcheado con los últimos parches de seguridad.
  • No almacene los DATOS en el servidor de puerta de enlace en sí, por lo menos usted va a comprar el tiempo cuando se las arreglan para entrar en esta máquina, y usted perderá un servicio o dos, y un poco de tiempo, pero no los datos.

Línea de fondo es que usted nunca tendrá éxito en hacer algo 100% seguro de que no es posible - por lo que el objetivo es hacer que sea lo más segura posible - si es demasiado esfuerzo para romper su sistema, es bastante bueno, y la mayoría de lamer script-kiddies se moverá hacia el siguiente sistema.

  • iptables es el camino a seguir para cualquier sistema Linux - pero configurar usted mismo.

No siempre el uso de cualquier "software de seguridad", que no está basada en estándares abiertos que estamos destinados a estar mal escrito y hackeado (no es una cuestión de "si", sino "cuando"). De código abierto y protocolos abiertos están abiertos al escrutinio público y convergen para convertirse en una madura y fiable de los productos; fuente cerrada software se basa principalmente en los autores de la auto-confianza de cuán grande/seguro-de un producto que creo que es - es decir, un número pequeño de ojos vs una tierra llena de ojos.

Espero que ayude :)

12voto

x-way Puntos 196
  • deshabilitar el inicio de sesión root
  • deshabilitar el inicio de sesión, contraseña (sólo permitir el inicio de sesión con clave pública)
  • cambiar el puerto de SSH
  • el uso de denyhosts (o similar)

  • escribir su propio iptbles script (para controlar exactamente qué permitir y pueden soltar todo lo demás)

  • forzar el uso de SSL/TLS comunicación segura y asegúrese de tener validez, no caducado y certificados firmados

  • gire en el estricto certificado de verificación para todos los servicios externos (por ejemplo a la hora de autenticar a los usuarios con un servidor LDAP en otra máquina)

9voto

KPWINC Puntos 8349

6voto

BrewinBombers Puntos 1122

Como un punto de partida general, yo sigo en el punto de referencia/guía del Centro para la Seguridad en Internet, que son integrales a las compilaciones de las mejores prácticas de seguridad. No se parecen a sus Debian de referencia ha sido actualizado en algún tiempo, pero una visión general de los pasos es:

  • Aplicar los últimos parches del sistema operativo y paquetes
  • Habilitar el sistema / kernel / proceso de contabilidad.
  • Activar MAC (por ejemplo, SELinux o AppArmor).
  • Habilitar el firewall basado en host (iptables).
  • Verificar las fuentes de APT.lista (teclas son correctos, las fuentes son de confianza).
  • Minimizar servicios de red, desactivar todo lo que no es necesario, y el firewall de lo que es.
  • El uso de TCPWrappers para restringir aún más el acceso al sistema.
  • Sólo el uso de cifrado de los protocolos de red, deshabilite sin cifrar servicios (telnet, ftp, etc).
  • Configurar el acceso remoto a sólo SSH.
  • Deshabilitar el inicio de sesión de usuario contraseñas y requieren de autenticación basado en claves.
  • Deshabilitar el sistema de ficheros compartido (NFS, SMB).
  • Habilitar remoto / sistema centralizado de registro (y revisar periódicamente los registros!).
  • Establecer una BIOS/firmware contraseña de nivel.
  • Establecer una contraseña del gestor de arranque.
  • Configurar copias de seguridad del sistema, tienen un plan de recuperación de desastres y la PRUEBA de que las copias de seguridad son válidas, y que el personal sepa procedimientos de recuperación de desastres!

Hay muchos recursos en todos estos diversos ámbitos, como el específico de comandos y archivos de configuración para poner en práctica en el sistema en el CISecurity puntos de referencia.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X