Práctica recomendada de seguridad VPS

15

Acabo de registrarme en un VPS de Linux para alojar un sitio web que he estado creando y necesito algunos consejos sobre el mejor enfoque para protegerlo.

Anteriormente lo he estado alojando en una máquina virtual en la casa, pero quiero deshacerme de eso. La seguridad se ha manejado por el hecho de que tengo NAT y solo algunos puertos abiertos / reenviados a la máquina.

¿Ahora me encuentro en una situación en la que la máquina está esencialmente completamente abierta a Internet, por lo que estoy pensando que debo comenzar a hacer algo con las tablas de IP? Esto es algo completamente nuevo para mí.

Estaba pensando que podría haber una solución más elegante, que involucra conectarlo a mi vpn en una interfaz separada para conectarse a través de eso, pero no estoy seguro de por dónde empezar.

Necesito:

  1. acceso SSH desde cualquier lugar (utilizando un puerto no estándar que ya está configurado)
  2. Acceso a Postgres desde una única ubicación
  3. Acceso web (http / https) desde cualquier lugar
  4. acceso FTP desde una única ubicación

Preguntas:

  1. ¿Cuál es la mejor práctica para asegurar una máquina Linux como esta? es es iptables?
  2. ¿Puedes indicarme la dirección de los recursos (los decentes) para aprender cómo hacerlo?

Mi nivel de Linux es bastante alto, puedo escribir / depurar scripts de bash, editar configuraciones desde cero, etc., y entiendo bastante de la arquitectura, pero no soy un guru.

    
pregunta Martin 18.01.2012 - 20:39
fuente

3 respuestas

9
  • Limitar el acceso a los servicios. IPtables es una buena manera de manejar eso. Configure reglas de conexión que apliquen lo que describió para cada servicio y elimine todo lo demás.
  • Limita tus demonios a través de la configuración adecuada. Si solo se autentica con una clave pública a través de ssh (y tiene la suficiente confianza de que no la perderá ni se negará el acceso), desactive la contraseña y la autenticación del teclado. Fail2Ban es útil para intentos de fuerza bruta, pero el rechazo instantáneo también es bastante satisfactorio. Configure su servidor FTP para exportar solo el árbol de directorios relacionado.
  • Supongamos que cada uno de tus demonios está comprometido ahora ... excepto quizás SSH porque esa es solo una de esas cosas. Use recursos externos para limitar lo que el demonio puede hacer en su host.

Soy un gran fan de AppArmor en Linux porque la configuración es algo que se puede entender razonablemente y es muy potente para las aplicaciones de caja de arena. Por ejemplo, puede limitar Postgres y cualquier cosa que haya ejecutado para que solo afecte al campo de almacenamiento de la base de datos. Lo mismo se aplica a los servidores web y FTP: nunca necesitan leer nada de datos que estén fuera de sus directorios operativos y nunca necesitan abrir otro puerto de red. Obtenga una alerta por correo electrónico ante cualquier violación de esos conjuntos de reglas.

Aislar sus servicios así le dará confianza en la integridad de la máquina como un todo, incluso si un servicio individual está comprometido.

    
respondido por el Jeff Ferland 19.01.2012 - 15:23
fuente
6

dependiendo del proveedor de host VPS, pueden ofrecer una solución de firewall que le permitirá configurar lo que puede y no se puede acceder desde el mundo exterior.

para darle un ejemplo, recientemente trabajé en un host de VPS para un cliente que solo tenía acceso HTTP / HTTPS a Internet, pero el panel de control para el VPS (parte del paquete de hosts) proporcionó un sistema para configurar el Firewall que estaba enfrente del VPS, esto me permitió abrir SSH, MYSQL y amp; Acceso de FTP a una sola dirección IP estática que forma parte de mi propio paquete de banda ancha para el hogar.

Las tablas de IP le permitirán hacer mucho trabajo para asegurarse de que la caja esté segura del mundo exterior e incluso puede proporcionar conjuntos de reglas para ayudar a reducir los ataques en los que las personas tratan de forzar las contraseñas de SSH (básicamente, se podría decir de la regla) , si esta dirección IP obtiene un inicio de sesión ssh incorrecto 5 veces en un período de tiempo, incluya en la lista negra la IP durante un período de tiempo determinado o perminentemente).

Algo que sugeriría que mires es la configuración de SSH para que no permita el inicio de sesión ROOT (esto se puede hacer en el archivo de configuración de SSH, en la parte superior de mi cabeza no puedo recordar dónde está almacenado este archivo)

Otra cosa que debe configurarse para el acceso SSH es configurar la autenticación basada en clave, esto significa que SOLAMENTE la PC para la que el servidor Linux tiene la clave pública podrá conectarse al sistema, en ese momento puede apagar autenticación de contraseña para ayudar a mitigar los ataques de Bruteforce en el servidor.

Si, en su caso, el host no proporciona ninguna opción de cortafuegos y la caja está completamente abierta a Internet, entonces podrá observar mejor la configuración de IPTables

aquí hay un enlace a información relacionada con IPTables, lamentablemente no he tenido mucha información con IPTables, por lo que no puedo garantizar su valor.

enlace

espero que esto ayude.

    
respondido por el Kristiaan 18.01.2012 - 21:00
fuente
3

Tratarás este cuadro como cualquier cuadro físico que tenga una IP pública. Debe seguir las pautas básicas de fortalecimiento de Linux, tales como:

  1. Mantener la actualización de la caja.
  2. Eliminar programas innecesarios.
  3. Tenga iptables funcionando y bloqueado lo más apretado posible.
    • Puede hacer cualquier regla específica basada en la fuente que desee con estos, como su requisito de FTP y Postgres.
  4. Ejecute SSH en un puerto no estándar y no permita inicios de sesión de raíz.
    • También puede realizar la autenticación basada en clave para hacerla más segura.
    • También recomendaría ejecutar denyhosts y / o fail2ban para que puedan monitorear sus registros en caso de intentos fallidos de inicio de sesión y luego bloquear las IP a través de /etc/hosts.deny. Es solo otra capa que te hará sentir mucho mejor acerca de la apertura de SSH.
  5. Ejecutar un HIDS en el cuadro. Recomendaría OSSEC tanto para algunas alertas de mal funcionamiento en su caja, posibles ataques, como también para la integridad del archivo y la detección del kit raíz.
  6. Supervise sus servicios para asegurarse de que todos estén funcionando correctamente. Usando un programa como Nagios.
  7. Etc.

También puede configurar una VPN, como usar OpenVPN para ingresar a la caja. De esa manera, puede ejecutar OpenVPN en un puerto no estándar y luego puede configurarlo para la autenticación basada tanto en clave como en contraseña antes de que le permita ingresar.

A continuación hay 2 sitios que recomiendo encarecidamente que visiten.

enlace

enlace

    
respondido por el Eric 19.01.2012 - 15:01
fuente

Lea otras preguntas en las etiquetas