Estoy instalando un servidor Debian que está conectado directamente a Internet. Obviamente quiero que sea lo más seguro posible. Me gustaría que chicos / chicas agreguen sus ideas para asegurarlo y qué programas utilizan para ello.
¿Quiero que parte de esta pregunta cubra qué utiliza como firewall? ¿Solo iptables configurado manualmente o utiliza algún tipo de software para ayudarlo? Cual es la mejor manera? ¿Bloquear todo y permitir solo lo que se necesita? ¿Hay quizás buenos tutoriales para principiantes sobre este tema?
¿Cambias tu puerto SSH? ¿Utiliza software como Fail2Ban para prevenir ataques de fuerza bruta?
Respuestas:
Obligatorio:
Dependiendo del nivel de paranoia adicionalmente:
integrit
para verificar si algunas partes del sistema de archivos no están modificadas [con la suma de verificación mantenida fuera de la máquina], por ejemplo Tripwire/etc/passwd
agregar nuevos usuarios es un poco más difícil-m state --satete ESTABLISHED
se encarga de permitir el flujo de paquetes siempre que use una sola sesión SSH]Cosas que no hago yo mismo pero que tienen sentido:
fuente
Solo una nota sobre cortafuegos de su máquina ...
amap
, ynmap
la-A
opción de. Dicho esto, puedes (y probablemente deberías si estás preocupado) modificar tus servicios para esconderse de miradas indiscretas, por ejemplo, lo siguiente le permitiría al atacante saber la versión exacta de loOpenSSH
que estás ejecutando, luego pueden buscar exploits para Esa versión exacta. Si ocultas esas cosas, las harás más difíciles.La conclusión es que nunca tendrá éxito en hacer algo 100% seguro, eso simplemente no es posible, por lo que el objetivo es hacer que sea lo más seguro posible, si es demasiado esfuerzo para romper su sistema, es lo suficientemente bueno, y más flojo script-kiddies pasará al siguiente sistema.
iptables
es el camino a seguir para cualquier sistema Linux, pero configúrelo usted mismo.Nunca use ningún "software de seguridad" que no esté basado en estándares abiertos: están condenados a estar mal escritos y serán pirateados (no es cuestión de "si", sino de "cuándo"). El código abierto y los protocolos abiertos están abiertos al escrutinio público y convergen para convertirse en un producto maduro y confiable; El software de código cerrado se basa principalmente en la autoconfianza de los autores de cuán grande / seguro es un producto que creen que es, es decir, una pequeña cantidad de ojos frente a una tierra llena de ojos.
Espero que ayude :)
fuente
use denyhosts (o similar)
escriba su propio script de iptbles (para que controle exactamente qué permitir y pueda eliminar todo lo demás)
forzar el uso de comunicaciones seguras SSL / TLS y asegurarse de tener certificados válidos, no caducados y firmados
fuente
Empieza aqui:
http://www.debian.org/doc/manuals/securing-debian-howto/
fuente
Como punto de partida general, sigo los puntos de referencia / guías del Centro de Seguridad de Internet , que son compilaciones completas de las mejores prácticas de seguridad. No parece que su referencia de Debian se haya actualizado en algún tiempo, pero una descripción general de los pasos es:
Hay muchos recursos en todas estas configuraciones, incluidos los comandos específicos y los archivos de configuración para implementar en el sistema en los puntos de referencia de CISecurity.
fuente
Sugeriría no conectar una máquina directamente a Internet. Coloque algún tipo de firewall entre la máquina e Internet. Esto le permite hacer monitoreo de seguridad y de red sin poner más carga en el servidor. Personalmente, creo que la segmentación de redes y funciones con frecuencia simplifica la resolución de problemas de la red, aunque en ocasiones, la complejidad adicional dificulta el análisis.
La política de firewall más segura, pero más molesta de administrar, es negar todo y permitir explícitamente solo el tráfico que debe permitir. Esto es molesto, porque con frecuencia se necesita actualizar la política del firewall a medida que la red necesita cambiar.
También sugeriría utilizar algún tipo de firewall de interfaz en el servidor: la defensa en profundidad es la clave. El uso de puertos no estándar para servicios relacionados con la administración no hace daño. fail2ban está bien. Siga las preguntas más específicas sobre las aplicaciones de seguridad en Serverfault para encontrar más ideas.
La seguridad es como la broma sobre los dos excursionistas y el oso: aunque uno nunca puede lograr la seguridad perfecta, es útil ser un objetivo más difícil que los otros muchachos.
fuente
Algunas personas han señalado el Manual de seguridad de Debian . Esto debería ser perfectamente adecuado para todo menos para requisitos militares.
Muchas personas piensan que ser ridículamente paranoico es genial o profesional o algo así. Es no , es sólo molesto para otros administradores de plano y represiva para sus usuarios. La mayoría de las cosas que verá recomendadas son solo trabajo falso para sentirse útil para el administrador paranoico, pero en realidad no son útiles, ya que la violación de seguridad real probablemente sea causada por un sistema no suficientemente actualizado y / o de una fuente interna.
Dicho esto, considero que uno de mis principios es no confiar en nada en la red local más que nada en Internet. Por lo tanto, configuro todo para requerir autenticación incluso en la red local. Encripto y autentico todo el tráfico entre cada computadora usando IPsec.
Estoy en el proceso de convertir al cifrado de disco completo para todos mis servidores.
Instalo solo los servicios que uso. No tengo un firewall; Configuro los servicios que necesito para requerir autenticación o limitarlos (por la propia configuración del programa o por envoltorios TCP) a ciertas IP. Lo único que necesitaba bloquear usando iptables era
memcached
que no tenía ningún archivo de configuración y no usaba envoltorios TCP.Utilizo buenas contraseñas generadas aleatoriamente para mis cuentas y confío en mi servidor SSH (y en todos los demás servicios) para mantener a los que no conocen la contraseña.
fail2ban
es solo para aquellos con espacio limitado para archivos de registro, IMO. (Debería tener contraseñas lo suficientemente buenas como para poder confiar en ellas).fuente
Revise este buen tutorial en www.debian.org/doc/manuals/securing-debian-howto/
Personalmente, cambio el puerto ssh y uso fail2ban + denyhosts. Y bloqueo todo lo que no es necesario. Cuanto más bloquees, menos tendrás que preocuparte.
fuente