Evita ataques SSH de Bots directos contra tu cuenta en Mac OS X

Mi máquina estaba siendo atacada por muchos ataques automatizados que intentan adivinar los nombres y contraseñas vía sshd. (este problema ha sido comentado en esta truco) Gracias a Little Snitch, es muy fácil ver cuando esto pasa. De cualquier manera, es molesto, y quería añadir una regla ipfw para bloquear estas máquinas que no pueden conectarse después de 15 intentos o más. Así que escribí un script para hacer esto.

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>Label</key>

<string>se.sics.lra.denyhosts</string>

<key>ProgramArguments</key>

<array>

<string>/usr/bin/awk</string>

<string>

substr( $5, 0, 4) == "sshd" && $6 == "Failed" {

ip = $13

count[ip] += 1

}

END {

s = "ipfw delete 101; "

sep = "ipfw add 101 deny src-ip "

for (ip in count) {

if (count[ip] > 15) {

s = s sep ip

sep = ", "

print count[ip] " failed attempts from " ip

}

}

print

system(s)

}

</string>

<string>/var/log/secure.log</string>

</array>

<key>StartInterval</key>

<integer>20</integer>

<key>UserName</key>

<string>root</string>

<key>StandardOutPath</key>

<string>/tmp/denyhosts.out</string>

</dict>

</plist>

Puse el script terminado en: /Library/LaunchAgents/se.sics.lra.denyhosts.plist

y puse el propietario del script como Root:

# chmod root:wheel /Library/LaunchAgents/se.sics.lra.denyhosts.plist

Para iniciarlo (sin reiniciar) sólo haz esto (en la Terminal como root)

# launchctl load /Library/LaunchAgents/se.sics.lra.denyhosts.plist

El script escanea /var/log/system.log cada 20 segundos para buscar intentos de autentificación ssh. Si encuentra más de 15 de una dirección en particular, esa dirección es deshabilitada por ipfw. Haz sudo ipfw list para ver las reglas activas. Nota que cuando las entradas desaparezcan del registro las reglas ipwf son eliminadas. El script desafortunadamente debe ejecutarse como root, pues sólo root tiene permiso de leer /var/log/system.log y modificar las reglas ipwf.

Fuente: Mac OS X Hints

0 0 votos
Article Rating
Subscribe
Notify of
3 Comments
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
Anónimo
Anónimo
15 years ago

Si te están llegando peticiones contra el ssh de tu ordenador, creo que estás tomando medidas demasiado tarde. ¿No será mejor (además de tener el firewall de mac os x activado) cerrar el acceso ANTES de que llegue al ordenador? Los routers adsl tienen una bonita funcionalidad de firewall que desgraciadamente muy poca gente utiliza. Muchos de ellos tienen el famoso iptables y puedes configurar reglas en modo duro (línea de comandos) o con la interfaz web, con la que es tan sencillo como elegir origen, destino, puerto y protocolo.

Si configuras bien una única regla que permita el ssh desde la ip que tú le digas (si es que realmente necesitas acceso ssh desde internet a tu mac) no tienes que preocuparte de cargar de un trabajo extra y poco valioso a tu mac.

Administrador
15 years ago

MI cablemodem no tiene ninguna posibilidad de ese tipo … y hay muchos Modem-routers-etc que tampoco disponen de esas características y/o no tienes acceso a su firmware por diferentes motivos, así que no queda otro remedio que poner las ametralladoras en la segunda linea de defensa.

Anónimo
Anónimo
15 years ago

Hace unos días que estoy recibiendo este tipo de ataques, pero no logro que funcione el script el “property list editor” me comenta que hay errores en el código que no se solucionar

3
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x