Cuando tengo que administrar un servidor Linux existente, ¿cuál es la mejor manera de verificar si es seguro?

9

Hay muchos tutoriales sobre cómo configurar un nuevo servidor seguro.

Pero, ¿qué sucede si tengo que administrar un servidor que otra persona había configurado hace algún tiempo y todavía no sé mucho sobre su configuración?

¿Existe alguna herramienta que verifique automáticamente a los "sospechosos habituales" o alguna lista de verificación que pueda revisar para asegurarme de que no existan agujeros de seguridad obvios? ¿Hay servicios web que verifiquen remotamente las vulnerabilidades?

Daniel Rikowski
fuente

Respuestas:

13

Descargue Nessus y realice una verificación de red en él. Le informará sobre vulnerabilidades explotables de forma remota.

Además, instale Ossec ; aunque no es su propósito principal, encontrará algunas configuraciones erróneas comunes (por ejemplo, cuentas mal configuradas). Y su función principal, la detección de intrusos basada en el host, ayudará a determinar si alguien está tratando de explotar vulnerabilidades.

niXar
fuente
55
Nessus ya no es de código abierto. Su bifurcación de código abierto se llama openvas.
Anónimo
1
Lo sé. Pero todavía es gratis como en la cerveza IIRC, y el cartel nunca dijo que solo quería F / OSS.
niXar
+1 Nessus es muy bueno, también lo llevaría a cabo y el escaneo de Nmap cargando los resultados en Nessus podría ayudarlo a detectar algunas vulnerabilidades más en algunos casos.
Mark Davidson
1
+1 para OSSEC. También tiene un módulo de auditoría de rootkit / sistema que puede ejecutar de forma independiente: ossec.net/rootcheck
sucuri
5

Comenzaría con las listas de verificación "de referencia" del Centro de Seguridad de Internet . Estas son listas de verificación basadas en el consenso compiladas por profesionales de seguridad para una variedad de plataformas y paquetes de software. Algunas herramientas mencionadas en las listas de verificación, o recomendadas de otro modo que lo ayudarán en su búsqueda de problemas de seguridad:

  • Nessus / OpenVAS (escáner de vulnerabilidades)
  • Nmap (escáner de puertos)
  • TCPdump / Wireshark (captura de paquetes libpcap)
  • SNORT (sistema de detección de intrusos)

(tcpdump se instala en muchos sistemas Linux de forma predeterminada, o puede instalarse fácilmente desde un repositorio de paquetes y tiene una página de manual completa)

Si esto es para la empresa para la que trabaja, asegúrese de que el análisis de seguridad esté autorizado por la administración y que los escaneos no causen interrupciones o tonterías en la aplicación. Sí, un simple escaneo de puertos puede causar problemas: los puertos pueden escanear impresoras HP Laserjet más antiguas y escupirán montones de papel.

jtimberman
fuente
4

Como primer chequeo muy rápido:

correr

netstat -ltnp

como raíz Eso le mostrará todos los servicios que escuchan en la red:

Esto podría mostrarle cosas que desea cerrar de inmediato. Luego puede continuar con las soluciones en las otras respuestas.

Para los servicios que necesitan ejecutarse, pero que no son accesibles desde el exterior (como un servidor de base de datos local), considere cambiar la configuración para que solo escuche en localhost / 127.0.0.1. De esa manera solo pueden acceder los usuarios locales.

sleske
fuente
4

Verificaría Bastille-Linux en http://www.bastille-unix.org/ , es un conjunto de scripts que puede ejecutar y verificará la configuración del sistema, los permisos de archivos, la configuración del usuario, etc. Lo he usado una o dos veces en mis propios cuadros, y si encuentra problemas en las instalaciones predeterminadas (principalmente r_x en rsh / rsync utils). Se muestra como html / java + curses / flat text.

Jimsmithkka
fuente
3

¿Qué distribución?

General:

  • Revise las configuraciones de iptables y / o firewall
  • Revisar configuraciones SSHD
  • Revise todas las configuraciones de servicio accesibles externamente
  • Asegúrese de estar ejecutando el último software disponible
  • Verifique las vulnerabilidades del kernel (uname -a y luego google)
  • Revise los permisos de usuario y los permisos de grupo en archivos editables
David Rickman
fuente
Sin distribución especial / todas las distribuciones
Daniel Rikowski
Además, es posible que desee obtener una lista de los paquetes instalados. Algo así como dpkg --get-selections> installed_pkgs.txt para las distribuciones de Debian.
David Rickman
2
También es posible que deba verificar los archivos setuid / setgid inusuales, qué cuentas tienen configuradas las contraseñas, cuál es su shell de inicio de sesión, etc. para eliminar las puertas traseras fáciles.
mas
Gran sugerencia mas, olvidé por completo esa, que es potencialmente un gran agujero.
David Rickman
3

Otra buena primera comprobación es ejecutar nmap hostname desde otro host en la red. Esto proporciona una visión externa de lo que netstat mostró en el host.

kmarsh
fuente
3

Si está preocupado, recomendaría seguir los tutoriales que mencionó y reconstruir el servidor. Especialmente si crees que el otro administrador podría haber dejado algo malo. Como nuevo administrador, debe saber cómo implementar cualquier servicio que esté ejecutando de todos modos.

Solo asegúrate de hacer una copia de seguridad de todo primero, puedes crear una imagen de todas las particiones para asegurarte de que realmente lo haces bien.

Si tu jefe no te deja, las recomendaciones de todos los demás me parecen buenas :-)

Kyle Brandt
fuente
+1: Si su creación / configuración no está documentada y tienes tiempo, quizás aproveches la oportunidad para reconstruirla. En lugar de tener que hacerlo bajo presión en una fecha posterior. Entonces puede estar seguro de que es seguro y se documentará para futuras referencias.
Dan Carley
2

Además de algunas de las muy buenas respuestas aquí, visite http://www.sans.org/ . Tienen algunos documentos muy buenos si estás dispuesto a leer un poco para comprender mejor la "defensa en profundidad".

Algunas de las premisas muy básicas aunque:

  • mantenga sus servidores parcheados
  • ejecutar solo aquellos servicios que necesitan ejecutarse
  • limitar el acceso del usuario al servidor
Greeblesnort
fuente
1
Recuerde limitar también el acceso físico, no solo desde la red.
iny
1

También pruebe chkrootkit , viene en el repositorio estándar de la mayoría de las distribuciones y de todos modos es muy fácil de instalar. Verificará su sistema en busca de muchas vulnerabilidades conocidas, rootkit y gusanos.

wazoox
fuente
1

Una cosa que puede hacer para tener una idea del sistema es diferenciar la carpeta / etc contra una nueva instalación (con las mismas actualizaciones aplicadas). Esto le dirá qué ha cambiado para que pueda enfocar sus preocupaciones de seguridad allí.

Chris Nava
fuente
1

Para ampliar lo que dijo Mas, aquí hay un simple comando de búsqueda para enumerar todos los archivos setuid y setgid en el sistema para su revisión.

find / -type f \( -perm -4000 -o -perm -2000 \) -print

Por supuesto, como han dicho otros, todo esto supone que la máquina ya no tiene un rootkit ...

Puntilla
fuente
1

Chrootkit / rkhunter son la fruta que cuelga durante mucho tiempo. Si instaló un rootkit, todo lo que se informe se verá comprometido y, por lo tanto, no será de mucha ayuda, así que descárguelo de una fuente conocida, no use los que ya están en la caja. Otro buen truco es instalar un kernel que sabes que es bueno (ya sea desde paquetes o rodar el tuyo). Verifique las puertas traseras (lsof -i y 0 uid cuentas no root). La inspección de las reglas del firewall generalmente puede informarle mucho sobre los hábitos de los administradores anteriores. Pon un wirehark / snort sobre él, trata de detectar algo inusual. Mira a dónde van los troncos. Consulte todos los tipos de archivos .profile / .bashrc para ver si hay comandos inusuales. Busque en .ssh / known_hosts cualquier host dudoso.

Marcin
fuente