Donde comenzar, asegure un AWS Ubuntu 14.04 [cerrado]

3

Ok, esta es probablemente una pregunta básica, pero me gustaría ampliar mi conocimiento.

He creado un servidor AWS Ubuntu EC2. Estoy ejecutando software en el servidor que proporciona 2 servicios, en primer lugar, un sitio web que estará disponible para Internet. En segundo lugar, un entorno de usuario protegido por contraseña donde los proveedores pueden ver cosas como facturas y crear nuevos usuarios, etc.

Entonces, lo que básicamente estoy preguntando es dónde empiezo a proteger este entorno. ¿Cuáles serían los mejores pasos para asegurar el servidor. Se ejecuta Nginx, Python y PHP.

Cualquier aportación sería muy apreciada, tengo una comprensión básica de la seguridad al haber estudiado la seguridad en honores en la universidad, pero eso fue hace un tiempo y el conocimiento teórico es inútil comparado con el conocimiento práctico del que carezco.

    
pregunta wwalford 19.04.2015 - 10:30
fuente

1 respuesta

2

Algunos puntos de inicio que no son de ninguna manera una lista exhaustiva (editaré la publicación como la gente comenta y también les daré crédito):

  • Firewall : solo permite el acceso a puertos que lo requieren explícitamente (en su caso, probablemente solo SSH y HTTP / S). Me he vinculado a UFW porque es fácil.
  • Deshabilitar el inicio de sesión de root - Además, considere limitarse a un conjunto particular de usuarios. Deberá usar sudo (información aquí y aquí ) y asegúrese de que se requieren las contraseñas (consulte man visudo )
  • SSH PubKey Authentication : en lugar de iniciar sesión con una contraseña, el servidor SSH tiene una lista de claves públicas que están autorizados para el acceso.
  • Asegúrese de actualizar regularmente el software: sudo apt-get update; sudo apt-get upgrade;
  • Mi preferencia sería instalar NGINX desde la fuente, ya que los repositorios se retrasan en las correcciones de errores (incluida la seguridad).
  • Force HTTPS (un certificado no supera los $ 15 por año) con HSTS . No deshabilite HTTP por completo, sino que cree un bloque HTTP server (es decir, el puerto 80) en NGINX y use return 301 https://yourdomain.tld; . No incluya ninguna de las variables $uri o $request_path , ya que pueden manipularse a través de HTTP.
respondido por el Arran Schlosberg 19.04.2015 - 11:11
fuente

Lea otras preguntas en las etiquetas