Aker es una herramienta con la que podremos configurar nuestro propio gateway ssh/bastion de Linux. El nombre viene de una deidad de la mitología egipcia que custodiaba las fronteras.
Aker actuaría como un punto a través del cual todos los administradores de sistemas y el personal de soporte accede a los servidores Linux en producción. La puerta de enlace SSH de Aker registra todas las sesiones de los usuarios, ayudando a conocer todos los detalles sobre quién hizo qué en cada servidor, e incluye muchas características de seguridad que permiten administrar miles de servidores Linux fácilmente.
El logging tradicional de SSH intenta registrar la actividad del usuario en los endpoints (servidores Linux) y enviar los logs a un servidor centralizado, pero hay un problema en este enfoque, en la mayoría de los casos un subconjunto de usuarios tiene acceso con privilegios a los servidores, por lo tanto, pueden tener la capacidad de:
- manipular el registro.
- Enrutar el tráfico registrado a otro servidor.
- Dejar de loggear en general.
Aker intenta abordar las necesidades y los desafíos de la auditoría de accesos SSH de una manera diferente, agregando puertas de enlace SSH para proteger tanto el entorno como una ubicación centralizada para capturar, mantener y auditar la sesiones SSH.
Los usuarios de Aker no tienen privilegios de root ni una shell en bash, sino que obtienen una ventana intuitiva basada en texto, listando los servidores a los que tienen acceso.
El origen de Aker es la posibilidad de tener una herramienta código abierto similar a CryptoAuditor y fudo, muy útiles para PCI-DSS o ser compatible con HIPAA.
Características actuales:
- Admite FreeIPA 4.2, 4.3 y 4.4 (opcional)
- Extensible, permite personalizar módulos
- Reproducción de sesiones
- Extracción de comandos de sesión
- Logs de sesión SIEM-Ready en json
- Integración con Elasticsearch
Requisitos
Software:
- Linux (Probado en CentOS, Fedora y ubuntu)
- Python 2.7
- (Opcional) FreeIPA, (probado en FreeIPA 4.2 y 4.3)
- redis
Módulos de Python:
- configparser
- urwid
- paramiko
- wcwidth
- pyte
- redis
Instalación
Automático:
ansible playbook
Manualmente:
Aker se puede instalar en un cliente FreeIPA o de forma independiente usado un fichero de configuración json.
Clonar el repo:
$ git clone https://github.com/aker-gateway/Aker.git /usr/bin/aker/
Instalar dependencias (adaptar para Ubuntu)
$ yum -y install epel-release
$ yum -y install python2-paramiko python-configparser python-redis python-urwid python2-wcwidth redis
Permisos de ejecución
$ chmod 755 /usr/bin/aker/aker.py
$ chmod 755 /usr/bin/aker/akerctl.py
Instalar logdir y configurar permisos
$ mkdir /var/log/aker
$ chmod 777 /var/log/aker
$ touch /var/log/aker/aker.log
$ chmod 777 /var/log/aker/aker.log
Forzar aker a todos los usuarios excepto a root, editar sshd_config:
Match Group *,!root
ForceCommand /usr/bin/aker/aker.py
Reiniciar ssh
Reiniciar redis
Opción 1 FreeIPA:
Nota: Se asume que el servidor Akerya pertenece al dominio FreeIPA
Crea /etc/aker y copia /usr/bin/aker/aker.ini editando:
Opción 2 Json:
Crea /etc/aker y copia /usr/bin/aker/aker.ini editando:
Editar /etc/aker/hosts.json y añadir los usuarios y host (echar un vistazo al fichero hosts.json de ejemplo).
Demo
Proyecto: https://github.com/aker-gateway/Aker
Aker actuaría como un punto a través del cual todos los administradores de sistemas y el personal de soporte accede a los servidores Linux en producción. La puerta de enlace SSH de Aker registra todas las sesiones de los usuarios, ayudando a conocer todos los detalles sobre quién hizo qué en cada servidor, e incluye muchas características de seguridad que permiten administrar miles de servidores Linux fácilmente.
El logging tradicional de SSH intenta registrar la actividad del usuario en los endpoints (servidores Linux) y enviar los logs a un servidor centralizado, pero hay un problema en este enfoque, en la mayoría de los casos un subconjunto de usuarios tiene acceso con privilegios a los servidores, por lo tanto, pueden tener la capacidad de:
- manipular el registro.
- Enrutar el tráfico registrado a otro servidor.
- Dejar de loggear en general.
Aker intenta abordar las necesidades y los desafíos de la auditoría de accesos SSH de una manera diferente, agregando puertas de enlace SSH para proteger tanto el entorno como una ubicación centralizada para capturar, mantener y auditar la sesiones SSH.
Los usuarios de Aker no tienen privilegios de root ni una shell en bash, sino que obtienen una ventana intuitiva basada en texto, listando los servidores a los que tienen acceso.
El origen de Aker es la posibilidad de tener una herramienta código abierto similar a CryptoAuditor y fudo, muy útiles para PCI-DSS o ser compatible con HIPAA.
Características actuales:
- Admite FreeIPA 4.2, 4.3 y 4.4 (opcional)
- Extensible, permite personalizar módulos
- Reproducción de sesiones
- Extracción de comandos de sesión
- Logs de sesión SIEM-Ready en json
- Integración con Elasticsearch
Requisitos
Software:
- Linux (Probado en CentOS, Fedora y ubuntu)
- Python 2.7
- (Opcional) FreeIPA, (probado en FreeIPA 4.2 y 4.3)
- redis
Módulos de Python:
- configparser
- urwid
- paramiko
- wcwidth
- pyte
- redis
Instalación
Automático:
ansible playbook
Manualmente:
Aker se puede instalar en un cliente FreeIPA o de forma independiente usado un fichero de configuración json.
Clonar el repo:
$ git clone https://github.com/aker-gateway/Aker.git /usr/bin/aker/
Instalar dependencias (adaptar para Ubuntu)
$ yum -y install epel-release
$ yum -y install python2-paramiko python-configparser python-redis python-urwid python2-wcwidth redis
Permisos de ejecución
$ chmod 755 /usr/bin/aker/aker.py
$ chmod 755 /usr/bin/aker/akerctl.py
Instalar logdir y configurar permisos
$ mkdir /var/log/aker
$ chmod 777 /var/log/aker
$ touch /var/log/aker/aker.log
$ chmod 777 /var/log/aker/aker.log
Forzar aker a todos los usuarios excepto a root, editar sshd_config:
Match Group *,!root
ForceCommand /usr/bin/aker/aker.py
Reiniciar ssh
Reiniciar redis
Opción 1 FreeIPA:
Nota: Se asume que el servidor Akerya pertenece al dominio FreeIPA
Crea /etc/aker y copia /usr/bin/aker/aker.ini editando:
[General]
log_level = INFO
ssh_port = 22
# Identity Provider to determine the list of available hosts
# options shipped are IPA, Json. Default is IPA
idp = IPA
hosts_file = /etc/aker/hosts.json
# FreeIPA hostgroup name contatining Aker gateways
# to be excluded from hosts presented to user
gateway_group = gateways
Opción 2 Json:
Crea /etc/aker y copia /usr/bin/aker/aker.ini editando:
[General]
log_level = INFO
ssh_port = 22
# Identity Provider to determine the list of available hosts
# options shipped are IPA, Json. Default is IPA
idp = Json
hosts_file = /etc/aker/hosts.json
# FreeIPA hostgroup name contatining Aker gateways
# to be excluded from hosts presented to user
gateway_group = gateways
Editar /etc/aker/hosts.json y añadir los usuarios y host (echar un vistazo al fichero hosts.json de ejemplo).
Demo
Url del video: https://youtu.be/H6dCCw666Xw
Proyecto: https://github.com/aker-gateway/Aker
Comentarios
Publicar un comentario