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

2

Aquí está el trato:

En las últimas semanas, he notado una gran cantidad de fallas de autenticación tanto para el servicio sshd como para el servicio screensharingd en mi servidor Mac OS X Mavericks (ejecutando 10.9.2 (compilación 13C64), servidor v3.1.1 (compilación 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]

Los registros de screensharingd 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 agregar reglas de firewall manualmente usando /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -a [ip-address] , pero eso requiere mucho tiempo y es bastante tonto. He intentado usar algunas de las herramientas que ofrece mi árbol MacPorts, pero parece que no funcionan, y me preocupa que cualquier cosa que instale pueda estar en conflicto con el firewall incorporado.

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

    
pregunta Matt 21.04.2014 - 21:52

2 respuestas

3

Si su servidor está en la Internet pública, obtendrá cientos de intentos de inicio de sesión automatizados en los puertos que escuche. Usted querrá configurar un firewall externo, usar las herramientas existentes ipfw / pfctl de Apple o quizás obtener un paquete como fail2ban que se puede instalar fácilmente si ya tiene la herramienta homebrew .

Usted puede realizar la prueba con ipfw y pfctl usted mismo y bloquear una IP de prueba de ssh y verificar que no haya interferencias de las reglas de firewall de Apple, pero no he experimentado a nadie que sepa cómo usar la línea de comandos desde rompiendo cosas si tienen acceso local y saben cómo desconfigurar un conjunto de reglas que tiene consecuencias no deseadas.

Eso le permitiría tener el firewall bloqueando 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 que alguien forzará una cuenta o adivinará una contraseña común.

Esta sería una buena manera de proteger las cosas si no puede usar VPN u otro firewall para reducir la cantidad de puertos de escucha que su servidor OS X expone a Internet en general.

    
respondido por el bmike 26.04.2014 - 00:24
0

Respuesta corta: no hay ninguna opción en las herramientas de firewall para prevenir ataques de fuerza bruta. Una herramienta de firewall solo podría bloquear / permitir / destruir una conexión (como sé).

Respuesta un poco más larga: para evitar un ataque de fuerza bruta, necesita una herramienta que pueda medir la frecuencia (y la brevedad de las pausas entre cada intento) que una fuente biunique conectará 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 di son siempre válidas; primero compruebe si es necesario que conecte su servidor directamente a Internet.

    
respondido por el UsersUser 27.04.2014 - 23:10

Lea otras preguntas en las etiquetas