Tengo un servidor mini mac con OS X Lion Server 10.7.3. Funciona prácticamente sin supervisión sin problemas. Sin embargo, el servidor está bajo "ataque" constante según los registros. El cortafuegos y la seguridad se mantienen al parecer.
¿Hay alguna aplicación / script que pueda enviarme un correo electrónico cada vez que alguien / alguien inicie sesión en el servidor utilizando SSH, Herramientas de administración o ARD?
Dado que la máquina funciona sin supervisión, sin cabeza en un centro de datos en una ciudad diferente, me preocupa que alguien (por pura persistencia) logre descifrar una contraseña o comprometer el sistema. Saber que me alertarán me tranquilizará.
osx-server
remote-desktop
ssh
script
server.app
bloudraak
fuente
fuente
Respuestas:
Su mejor defensa es siempre desactivar los servicios innecesarios. Si no está utilizando el escritorio remoto: apáguelo. Si no está utilizando los servidores HTTP o FTP: apáguelos. Menos servicios en funcionamiento, menos puntos de entrada para posibles intrusos para explotar.
Además de bloquearlo, hay algunos productos gratuitos y de código abierto que son compatibles con OS X que puede observar para detectar intrusiones en su máquina.
Bufido
Aunque no lo he ejecutado personalmente, tengo colegas que lo conocen y confían en él para la detección de intrusiones. Es compatible con BSD, por lo que es una buena opción para OS X. Otra ventaja de Snort es que está disponible como un paquete Homebrew :
Entonces obtienes una ruta simplificada para la instalación y algo de confianza en el hecho de que se adapta bien a OS X y se ejecuta allí. Con Homebrew instalado solo necesitas hacer:
Y ya está listo para comenzar.
Consulte esta guía de configuración de Snort para OS X Lion Server que la comunidad de Snort proporciona para comenzar a escribir reglas para su máquina con OS X. Es un documento excelente y, además de explicar cómo instalar Snort desde el origen (que no es necesario que hagas), habla sobre todas las cosas que debes hacer en tu instancia de OS X Lion Server para ayudar a protegerlo. Si instala a través de Homebrew, comience en la Sección 5 (página 13) en el PDF, ya que no necesita preocuparse por instalarlo desde el código fuente.
Tripwire
Me he encontrado Tripwire en máquinas Linux para hacer una rápida detección de intrusiones y alertas. Es efectivo pero es un poco una bestia para configurar. Puede realizar acciones cuando las reglas coinciden con los archivos de registro. Por supuesto, un hacker inteligente sabrá deshabilitar Tripwire tan pronto como intervenga para que no terminen con su sesión interrumpida.
La sugerencia de conversaciones MacWorld sobre la configuración de Tripwire en OS X . No es simple y el artículo termina mencionando que no ha sido probado.
fuente
Puede endurecer ssh e instalar denyhosts, sshguard y Snort, Barnyard, Base y Swatch.
Vea estos enlaces para más detalles:
https://discussions.apple.com/thread/3565475 https://discussions.apple.com/thread/4473229?tstart=0
Desactiva los inicios de sesión de root y contraseña:
vi /etc/sshd_config
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthenticatio no
Luego, use
ssh-keygen
en el cliente remoto para generar claves públicas / privadas que se pueden usar para iniciar sesión de forma remota en 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
Instalar denyhosts y sshguard.
sudo port install denyhosts sshguard
sudo port load denyhosts
sudo port load sshguard
Puede configurar denyhosts para bloquear todo el tráfico, no solo el tráfico ssh.
Snort, con un mapa mundial de ataques:
https://discussions.apple.com/thread/4473229?tstart=0
fuente
Para responder directamente a la pregunta planteada. Tengo otra secuencia de comandos que me envía un correo electrónico, nuevamente, alrededor de la medianoche, si alguien inicia sesión con éxito a través de ssh.
Edite lo
grep
anterior para excluir su propia IP fija, si lo desea, y para usar su dirección de correo electrónico. Puede combinar parte del código en mi otra respuesta para agregar fallas para VNC.fuente
Para ampliar un poco en Fail2ban , una vez que está configurado y en ejecución, tengo un script que ejecuté justo antes de la medianoche que borra los registros y me envía un correo electrónico de lo que Fail2ban ha estado haciendo el día anterior.
El script es el siguiente y puede ejecutarse desde cron o desde una lista de inicio.
Obviamente, deberá utilizar la dirección de correo electrónico que elija.
Configurar Fail2ban es un problema completamente diferente. He escrito mucho sobre eso.
fuente
Es bastante sencillo instalar el complemento PAM de Google Authenticator en Mac OS X si tiene instalado el compilador de la línea de comandos del código X. El código y las instrucciones están aquí:
https://code.google.com/p/google-authenticator/wiki/PamModuleInstructions
Una vez que inicialice su token (genere un código que alimenta a la aplicación en su teléfono), tendrá autenticación de dos factores para proteger su máquina. Cualquier cuenta sin un token inicializado no podrá iniciar sesión, por lo que si no desea permitir el inicio de sesión raíz, no inicialice una clave para esa cuenta.
Pero en serio, algo como DenyHosts simplemente tiene sentido si tienes que mantener SSH abierto en Internet. Desafortunadamente, desde Mac OS X V10.8, Apple eliminó la compatibilidad con tcpwrappers del demonio SSH, por lo que ignora /etc/deny.hosts, que fue un movimiento tonto, si me preguntas, eliminando una característica de seguridad.
Para evitar eso, utilicé MacPorts para instalar un demonio openssh actualizado y restaurar la funcionalidad completa de tcpwrappers, edité y utilicé el demonio DenyHosts para monitorear /var/log/system.log y prohibir IP que adivinan inicios de sesión y contraseñas . Y no olvide actualizar MacPorts y verificar / reinstalar openssh / DenyHosts cada vez que actualice el sistema operativo.
¡Buena suerte!
fuente
Me doy cuenta de que esta es una publicación antigua, pero pensé que esto podría ayudar a alguien que no puede programar o ahorrarles tiempo recorriendo la web. Acabo de escribir esto en mi hora de almuerzo y enviará correos electrónicos con intentos exitosos y fallidos, así como IP bloqueadas a través de intentos fallidos. El programa está escrito en Ruby. Sendmail se instala junto con el correo y las gemas de cola de archivo.
Código fuente a continuación:
fuente