2 votos

¿Existen herramientas de firewall para OS X Mavericks para evitar ataques de fuerza bruta?

Este es el trato:

En las últimas semanas, he observado un gran número de fallos de autenticación tanto para el sshd servicio y el screensharingd en mi servidor Mac OS X Mavericks (con 10.9.2 (Build 13C64), Server v3.1.1 (Build 13S4140), Apache v2.2.26, y OpenSSL v1.0.1g (sin Heartbleed para mí, jaja)). Una muestra rápida de algunos registros del servidor:

Apr 21 08:08:45 [myhost] sshd[6558]: Invalid user fls from 83.222.230.90
Apr 21 08:08:45 [myhost] sshd[6558]: input_userauth_request: invalid user fls [preauth]
Apr 21 08:08:45 [myhost] sshd[6558]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:47 [myhost] sshd[6560]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:48 [myhost] sshd[6568]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:49 [myhost] sshd[6571]: Invalid user x from 83.222.230.90
Apr 21 08:08:49 [myhost] sshd[6571]: input_userauth_request: invalid user x [preauth]
Apr 21 08:08:50 [myhost] sshd[6571]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:51 [myhost] sshd[6573]: Invalid user http from 83.222.230.90
Apr 21 08:08:51 [myhost] sshd[6573]: input_userauth_request: invalid user http [preauth]
Apr 21 08:08:51 [myhost] sshd[6573]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:52 [myhost] sshd[6578]: Invalid user mp3 from 83.222.230.90
Apr 21 08:08:52 [myhost] sshd[6578]: input_userauth_request: invalid user mp3 [preauth]
Apr 21 08:08:53 [myhost] sshd[6578]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:54 [myhost] sshd[6581]: Invalid user oracle from 83.222.230.90
Apr 21 08:08:54 [myhost] sshd[6581]: input_userauth_request: invalid user oracle [preauth]
Apr 21 08:08:54 [myhost] sshd[6581]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:55 [myhost] sshd[6584]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:57 [myhost] sshd[6589]: Invalid user r00t from 83.222.230.90
Apr 21 08:08:57 [myhost] sshd[6589]: input_userauth_request: invalid user r00t [preauth]
Apr 21 08:08:57 [myhost] sshd[6589]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:08:58 [myhost] sshd[6595]: Invalid user bin from 83.222.230.90
Apr 21 08:08:58 [myhost] sshd[6595]: input_userauth_request: invalid user bin [preauth]
Apr 21 08:08:59 [myhost] sshd[6595]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:09:00 [myhost] sshd[6597]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:09:01 [myhost] sshd[6600]: Invalid user sm0k3y from 83.222.230.90
Apr 21 08:09:01 [myhost] sshd[6600]: input_userauth_request: invalid user sm0k3y [preauth]
Apr 21 08:09:02 [myhost] sshd[6600]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]
Apr 21 08:09:03 [myhost] sshd[6604]: Invalid user cgi from 83.222.230.90
Apr 21 08:09:03 [myhost] sshd[6604]: input_userauth_request: invalid user cgi [preauth]
Apr 21 08:09:03 [myhost] sshd[6604]: Received disconnect from 83.222.230.90: 11: Bye Bye [preauth]

El screensharingd Los registros son los siguientes:

Apr 21 08:02:38 [myhost] screensharingd[5553]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 174.47.177.235 :: Type: VNC DES
Apr 21 08:02:57 --- last message repeated 7 times ---
Apr 21 08:28:42 [myhost] screensharingd[8520]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 208.71.217.153 :: Type: VNC DES
Apr 21 08:36:14 [myhost] screensharingd[9232]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 173.165.178.100 :: Type: VNC DES
Apr 21 08:43:34 [myhost] screensharingd[9928]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 5.135.101.206 :: Type: VNC DES
Apr 21 08:56:13 [myhost] screensharingd[11240]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 24.197.239.70 :: Type: VNC DES
Apr 21 08:56:34 [myhost] screensharingd[11273]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 24.197.239.70 :: Type: VNC DES
Apr 21 08:56:51 [myhost] screensharingd[11300]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 24.197.239.70 :: Type: VNC DES
Apr 21 08:56:58 --- last message repeated 1 time ---
Apr 21 09:29:15 [myhost] screensharingd[14752]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 75.150.95.108 :: Type: VNC DES
Apr 21 09:29:23 --- last message repeated 2 times ---
Apr 21 09:29:27 [myhost] screensharingd[14752]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 75.150.95.108 :: Type: VNC DES
Apr 21 09:29:33 --- last message repeated 1 time ---
Apr 21 09:29:59 [myhost] screensharingd[14819]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 75.150.95.108 :: Type: VNC DES
Apr 21 09:30:03 [myhost] screensharingd[14819]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 75.150.95.108 :: Type: VNC DES
Apr 21 09:30:13 --- last message repeated 2 times ---
Apr 21 09:30:14 [myhost] screensharingd[14819]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 75.150.95.108 :: Type: VNC DES
Apr 21 09:30:23 --- last message repeated 2 times ---
Apr 21 09:32:48 [myhost] screensharingd[15094]: Authentication: FAILED :: User Name: N/A :: Viewer Address: 61.160.201.25 :: Type: VNC DES

Obviamente, podría añadir manualmente reglas de firewall utilizando /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -a [ip-address] pero eso lleva mucho tiempo y es bastante tonto. He intentado utilizar algunas de las herramientas que ofrece mi árbol MacPorts, pero no parecen funcionar, y me preocupa que cualquier cosa que instale pueda entrar en conflicto con el cortafuegos incorporado.

¿Existe un software para OS X que automatice los cambios en el cortafuegos en respuesta a repetidos intentos fallidos o quizás alguna otra forma de reducir el riesgo de que los intentos de entrada por fuerza bruta tengan éxito?

4voto

Oskar Puntos 1242

Si su servidor está en la Internet pública, recibirá cientos de intentos de inicio de sesión automáticos en cualquier puerto que escuche. Usted querrá o bien configurar un firewall externo, utilizar el existente ipfw / pfctl herramientas que envía Apple o quizás conseguir un paquete como fail2ban que se puede instalar fácilmente si ya tiene el homebrew herramienta.

Puede probar con ipfw y pfctl a ti mismo y bloquear una IP de prueba de ssh y verificar que no hay interferencia de las reglas de firewall de Apple, pero no he experimentado a nadie que sabe cómo utilizar la línea de comandos de romper las cosas si tienen acceso local y saber cómo desconfigurar un conjunto de reglas que tiene consecuencias no deseadas.

Eso te permitiría que el firewall bloqueara los intentos repetidos después de un umbral de intentos fallidos en un rango de tiempo. No es perfecto, pero puede reducir el tamaño de sus archivos de registro y reducir el cambio de que alguien haga fuerza bruta en una cuenta o adivine una contraseña común.

Esta sería una buena manera de asegurar las cosas si no puedes usar VPN u otro firewall para reducir el número de puertos de escucha que tu servidor OS X expone a Internet en general.

0voto

Respuesta corta: No hay ninguna opción en ninguna herramienta de cortafuegos para evitar los ataques de fuerza bruta. Una herramienta de cortafuegos sólo puede bloquear/permitir/alternar una conexión (según sé).

Una respuesta un poco más larga: Para evitar un ataque de fuerza bruta se necesita una herramienta que pueda medir la frecuencia (y la brevedad de las pausas entre cada intento) con la que una fuente biunívoca se conectará a un destino especial en su servidor. Una de estas herramientas es fail2ban como escribí en (mi/la) primera respuesta (convertida de bmike en un comentario).

Todas las demás respuestas que ya he dado son siempre válidas - por favor, compruebe primero si será necesario que conecte su servidor directamente a Internet.

0voto

No sé qué quieres exactamente, así que sólo puedo darte algunos consejos:

  1. No conectes un servidor directamente a internet - instala un cortafuegos delante del servidor (sistema diferente, sistema operativo diferente) y sólo permite los puertos que quieres que sean accesibles desde internet.

  2. Si necesita conectar su servidor directamente a Internet (de nuevo: mala decisión) configure su cortafuegos como Apple describe en su archivo de soporte

  3. Si usted necesita para obtener el puerto ssh y screensharing (por ejemplo) de Internet vamos a echar un vistazo a fail2ban - tienen un entrada de la wiki para el servidor OSX

Y por favor: edite su pregunta para hacernos saber qué quiere exactamente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X