13 votos

Obtener notificaciones cuando alguien inicia sesión en un servidor mediante SSH o Escritorio Remoto

Tengo un mac mini server ejecutando OS X Lion Server 10.7.3. Funciona prácticamente desatendida sin problemas. Sin embargo, el servidor está bajo constante "ataque" de acuerdo a los registros. El cortafuegos y de seguridad que está llevando a cabo lo que parece.

¿Hay alguna aplicación o script que me puede enviar un correo electrónico cada vez que alguien/alguien inicia sesión en el servidor mediante SSH, Herramientas de Administración o ARD?

Desde la máquina desatendida, sin cabeza en un centro de datos en una ciudad diferente, estoy preocupado de que alguien pueda (por pura persistencia) se las arregla para romper una contraseña o encontrar un punto de equilibrio en el sistema. Sabiendo que yo te notificará va a poner mi mente en la facilidad.

4voto

shsteimer Puntos 8749

Tu mejor defensa es siempre para desactivar los servicios innecesarios. Si usted no está utilizando el escritorio remoto: la apague. Si usted no está usando los servidores HTTP o FTP: apagarlos. El número de servicios en ejecución, con menos puntos de entrada a posibles intrusos a explotar.

Aparte de bloqueo hacia abajo, hay algo de código abierto y gratuito de los productos que se OS X, usted puede mirar para hacer la detección de intrusiones en su máquina.

Snort

Aunque no he dirigido personalmente, tengo colegas que conocen y confían en él para la detección de intrusiones. Es compatible con BSD por lo que hace a un buen ajuste para OS X. Otra ventaja de ir con Snort está disponible como un Homebrew paquete:

> brew info snort
snort 2.9.0.5
http://www.snort.org
Depends on: daq, libdnet, pcre
Not installed
https://github.com/mxcl/homebrew/commits/master/Library/Formula/snort.rb

==> Caveats
For snort to be functional, you need to update the permissions for /dev/bpf*
so that they can be read by non-root users.  This can be done manually using:
    sudo chmod 644 /dev/bpf*
or you could create a startup item to do this for you.

Así se obtiene una ruta simplificada para la instalación y algo de confianza en el hecho de que los puertos bien para OS X y se ejecuta allí. Con Homebrew instalado, usted sólo necesita hacer:

> brew install snort

Y usted está listo para empezar a trabajar con él.

Echa un vistazo a este Snort para OS X Lion Server guía de configuración que el Resoplido de la comunidad proporciona a empezar con la regla de la escritura para su sistema operativo X de la máquina. Eso es un gran documento y, además de caminar a través de la instalación de Snort desde la fuente (que usted no tiene que hacer), se habla de todas las cosas que usted debe hacer su OS X Lion Server instancia para ayudar a protegerla. Si instala a través de Homebrew, de inicio en la Sección 5 (página 13) en el PDF, ya que usted no necesita preocuparse acerca de la instalación desde el código fuente.

Tripwire

He de ejecutar Tripwire en máquinas linux para hacer una rápida detección de intrusión y de alerta. Es eficaz, pero es un poco de una bestia de configurar. Puede realizar acciones cuando las reglas se comparan con los archivos de registro. Por supuesto, una experta hacker va a saber a deshabilitar Tripwire tan pronto como entran en lo que no acaben con su sesión de cortarse.

La MacWorld sugerencia habla acerca de la configuración de Tripwire en OS X. No es sencillo, y el artículo termina con mencionar que no ha sido probado.

4voto

sss Puntos 41

Usted puede endurecer ssh e instalar denyhosts, sshguard, y Snort, el Corral, la Base y la Muestra.

Consulte los siguientes enlaces para obtener más detalles:

https://discussions.apple.com/thread/3565475 https://discussions.apple.com/thread/4473229?tstart=0

  1. Desactivar root y la contraseña de inicios de sesión:

    vi /etc/sshd_config

    PermitRootLogin no
    PasswordAuthentication no
    ChallengeResponseAuthenticatio no

    A continuación, utilice ssh-keygen en el cliente remoto para generar las claves públicas/privadas que se puede utilizar de forma remota de inicio de sesión para el servidor:

    client$ ssh-keygen -t rsa -b 2048 -C client_name [Securely copy ~/.ssh/id_rsa.pub from client to server.] server$ cat id_rsa.pub > ~/.ssh/known_hosts

  2. Instalar denyhosts y sshguard.

    • sudo port install denyhosts sshguard
    • sudo port load denyhosts
    • sudo port load sshguard

    Usted puede configurar denyhosts para bloquear todo el tráfico, no sólo el tráfico ssh.

  3. Snort, con un mapa del mundo de los ataques:

    https://discussions.apple.com/thread/4473229?tstart=0

3voto

zippy Puntos 1215

Para responder directamente a la pregunta planteada. Tengo otro script que los correos electrónicos de mí, de nuevo, alrededor de la medianoche, si alguien inicia sesión correctamente en via ssh.

#!/usr/bin/env bash

mm=`date +%b`
dd=`date $1 +%d`
dd=`expr $dd`
if [ "$dd" -ge "10" ]
  then 
    dt=`echo "$mm $dd"` 
  else 
    dt=`echo "$mm  $dd"` 
fi

cat /var/log/secure.log | grep -E '(Accepted|SUCCEEDED)'| grep -E -v '(my.ip.address|192.168.1)' | grep "$dt" >> /tmp/access_granted

/usr/bin/mail -E -s "Access granted" email@myserver.com < /tmp/access_granted
rm /tmp/access_granted

Editar el grep por encima de excluir a su propia IP fija, si quieres, y a utilizar su dirección de correo electrónico. Usted puede combinar algunos de los códigos en mi otra respuesta para agregar fracasos para VNC.

2voto

zippy Puntos 1215

Para expandir un poco Fail2ban, una vez que está configurado y funcionando tengo un script que ejecuta justo antes de la medianoche que raspa y de los registros de los correos electrónicos que me lo Fail2ban ha estado haciendo durante el día anterior.

La secuencia de comandos es la siguiente y se puede ejecutar desde cron o un launchd plist.

#!/usr/bin/env bash

mm=`date +%b`
dd=`date $1 +%d`
dd=`expr $dd`
if [ "$dd" -ge "10" ]
  then 
    dt=`echo "$mm $dd"` 
  else 
    dt=`echo "$mm  $dd"` 
fi

cat /var/log/system.log | grep "$dt" | grep org.fail2ban | grep -v COMMAND > /tmp/fail2ban_deny
cat /var/log/fail2ban.log | grep -E '(WARN|ERR|rotation|target)' | grep `date $1 +%Y-%m-%d` >> /tmp/fail2ban_deny
cat /var/log/ipfw.log | grep TCP | grep "$dt" >> /tmp/fail2ban_deny
cat /var/log/secure.log | grep VNC | grep FAILED | grep "$dt" >> /tmp/fail2ban_deny


/usr/bin/mail -E -s "Fail2ban ipfw" email@yourserver.com < /tmp/fail2ban_deny
rm /tmp/fail2ban_deny

Obviamente se necesita para utilizar la dirección de correo electrónico de su elección.

La configuración de Fail2ban es un asunto completamente diferente. He escrito mucho sobre él.

0voto

science Puntos 107

Es bastante simple de instalar Google Authenticator PAM plugin en Mac OS X si X código de la línea de comandos del compilador instalado. El código y las instrucciones están aquí:

https://code.google.com/p/google-authenticator/wiki/PamModuleInstructions

Una vez que usted inicializa el token (generar un código de alimentar a la aplicación en su teléfono), usted tendrá la autenticación de dos factores para proteger su máquina. Cualquier cuenta sin un inicializado token no será capaz de iniciar sesión, así que si usted no desea permitir el acceso de root, no inicializar una clave para que se de cuenta.

Pero en serio, algo así como DenyHosts sólo tiene sentido si usted tiene que mantener SSH abierto en internet. Por desgracia, ya que Mac OS X V10.8, Apple ha eliminado tcpwrappers el apoyo de el demonio SSH, por lo que ignora /etc/negar.los ejércitos, que era un tonto mover, si usted me pregunta, la eliminación de una característica de seguridad.

Para evitar esto, he utilizado MacPorts para instalar un up-to-fecha de openssh demonio, y restablecer la plena tcpwrappers funcionalidad, editado y utilizar DenyHosts demonio a monitor /var/log/system.registro y prohibición de las IPs que están adivinando los inicios de sesión y contraseñas. Y no te olvides de actualizar MacPorts y verificación/instalar openssh/DenyHosts cada vez que se actualice el sistema operativo.

Buena Suerte!

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