Como enviar logs de auditoria com o audisp-remote e recebê-los com o netcat

5

Eu estou tentando configurar um CentOS 7 rodando no VirtualBox para enviar seus logs de auditoria para o host que é o FreeBSD 10.3. Idealmente, eu gostaria de receber os logs com o auditdistd (8) do FreeBSD, mas por enquanto eu gostaria apenas de poder usar o netcat para isso.

Meu problema é que o netcat não recebe nenhum dado.

Detalhes

  1. Quando executo service auditd status , obtenho os seguintes resultados:

    Redirecting to /bin/systemctl status  auditd.service
    auditd.service - Security Auditing Service
       Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
       Active: active (running) since Fri 2016-08-19 11:35:42 CEST; 3s ago
      Process: 2216 ExecStartPost=/sbin/augenrules --load (code=exited, status=1/FAILURE)
     Main PID: 2215 (auditd)
       CGroup: /system.slice/auditd.service
               ├─2215 /sbin/auditd -n
               └─2218 /sbin/audispd
    
    Aug 19 11:35:42 hephaistos audispd[2218]: plugin /sbin/audisp-remote was restarted
    Aug 19 11:35:42 hephaistos audispd[2218]: plugin /sbin/audisp-remote terminated unexpectedly
    Aug 19 11:35:42 hephaistos audispd[2218]: plugin /sbin/audisp-remote was restarted
    Aug 19 11:35:42 hephaistos audispd[2218]: plugin /sbin/audisp-remote terminated unexpectedly
    Aug 19 11:35:42 hephaistos audispd[2218]: plugin /sbin/audisp-remote was restarted
    Aug 19 11:35:42 hephaistos audispd[2218]: plugin /sbin/audisp-remote terminated unexpectedly
    Aug 19 11:35:42 hephaistos audispd[2218]: plugin /sbin/audisp-remote was restarted
    Aug 19 11:35:42 hephaistos audispd[2218]: plugin /sbin/audisp-remote terminated unexpectedly
    Aug 19 11:35:42 hephaistos audispd[2218]: plugin /sbin/audisp-remote has exceeded max_restarts
    Aug 19 11:35:42 hephaistos audispd[2218]: plugin /sbin/audisp-remote was restarted
    

Configuração

Configuração de Rede

  1. O CentOS e o FreeBSD estão conectados em uma rede somente de host. Eu atribuí a eles os seguintes IP's:

    • CentOS: 192.168.56.101
    • FreeBSD: 192.168.56.1

Instalação do FreeBSD

  1. Eu tenho o netcat ouvindo na porta 60:

    nc -lk 60
    

    A conexão funciona. Eu posso usar nc 192.168.56.1 60 no CentOS para enviar dados para o FreeBSD.

Configuração do CentOS

  1. A versão do kernel é: 4.7.0-1.el7.elrepo.x86_64 #1 SMP Sun Jul 24 18:15:29 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux .
  2. A versão do userspace do Linux Audit é 2.6.6.
  3. o auditd está em execução e está fazendo login ativamente em /var/log/audit.log .
  4. As regras de auditoria em /etc/audit/rules.d/ estão bem configuradas.
  5. A configuração de /etc/audisp/audisp-remote.conf é semelhante a:

    remote-server = 192.168.56.1
    port = 60
    local_port = any
    transport = tcp
    mode = immediate
    
  6. Eu tenho dois arquivos padrão em /etc/audisp/plugins.d/ : syslog.conf e af_unix.conf e ambos não estão ativos. Eu adicionei af-remote.conf e é assim:

    # This file controls the audispd data path to the
    # remote event logger. This plugin will send events to
    # a remote machine (Central Logger).
    
    active = yes
    direction = out
    path = /sbin/audisp-remote
    type = always
    #args =
    format = string
    

    Este é um exemplo modificado do repositório oficial (link) .

  7. Este é o conteúdo de /etc/audisp/audispd.conf :

    q_depth = 150
    overflow_action = SYSLOG
    priority_boost = 4
    max_restarts = 10
    name_format = HOSTNAME
    

Terei prazer em fornecer mais detalhes, se necessário.

    
por Mateusz Piotrowski 18.08.2016 / 17:26

1 resposta

3

Não tenho certeza se tudo aqui é necessário para ter sucesso. No entanto, esta é uma configuração que funciona para que eu possa receber logs do Linux Audit com um netcat no FreeBSD.

  1. CentOS: /etc/audisp/audisp-remote.conf :

    remote_server = 192.168.56.1
    port = 60
    local_port = 60
    transport = tcp
    mode = immediate
    queue_depth = 200
    format = managed
    
  2. CentOS: /etc/audisp/plugins.d/au-remote.conf :

    active = yes
    direction = out
    path = /sbin/audisp-remote
    type = always
    args = /etc/audisp/audisp-remote.conf
    format = string
    
  3. CentOS: /etc/audit/auditd.conf :

    local_events = yes
    log_file = /var/log/audit/audit.log
    # Send logs to the server.  Don't save them.
    write_logs = no
    log_format = RAW
    log_group = root
    priority_boost = 8
    num_logs = 5
    disp_qos = lossy
    dispatcher = /sbin/audispd
    name_format = hostname
    max_log_file = 6
    max_log_file_action = ROTATE
    action_mail_acct = root
    space_left = 75
    space_left_action = SYSLOG
    admin_space_left = 50
    admin_space_left_action = SUSPEND
    disk_full_action = SUSPEND
    disk_error_action = SUSPEND
    
    ##tcp_listen_port =
    tcp_listen_queue = 5
    tcp_max_per_addr = 1
    use_libwrap = yes
    ##tcp_client_ports = 1024-65535
    tcp_client_max_idle = 0
    
    enable_krb5 = no
    krb5_principal = auditd
    ##krb5_key_file = /etc/audit/audit.key
    distribute_network = no
    
  4. FreeBSD: /etc/hosts.allow :

     ALL : ALL : allow
    

    Eu não sei se isso é necessário embora + possa ser uma má ideia.

É isso. Agora você só precisa executar nc -lk 60 no FreeBSD e service auditd restart no CentOS. No meu caso, no entanto, o netcat parece estar recebendo / imprimindo cada registro pelo menos duas vezes, o que parece bastante incomum.

    
por 22.08.2016 / 02:55