Comment envoyer des journaux d'audit avec audisp-remote et les recevoir avec netcat

J'essaye de configurer un CentOS 7 fonctionnant dans VirtualBox pour envoyer ses journaux d'audit à l'hôte qui est FreeBSD 10.3. Idéalement, j'aimerais recevoir les logs avec auditdistd (8) de FreeBSD, mais pour l'instant je voudrais juste pouvoir utiliser netcat pour ça.

Mon problème est que netcat n'obtient aucune donnée.

Détails

  1. Lorsque service auditd status les résultats suivants:

     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 

Installer

Configuration du réseau

  1. CentOS et FreeBSD sont connectés sur un réseau hôte uniquement. Je leur ai assigné les adresses IP suivantes:

    • CentOS: 192.168.56.101
    • FreeBSD: 192.168.56.1

Configuration de FreeBSD

  1. J'ai Netcat écoute sur le port 60:

     nc -lk 60 

    La connection fonctionne. Je peux utiliser nc 192.168.56.1 60 sur CentOS pour envoyer des données à FreeBSD.

CentOS Setup

  1. La version du kernel est la suivante: 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. La version de l'espace user Linux Audit est 2.6.6.
  3. auditd est en cours d'exécution et se connecte activement à /var/log/audit.log .
  4. Les règles d'audit de /etc/audit/rules.d/ sont bien configurées.
  5. La configuration de /etc/audisp/audisp-remote.conf ressemble à ceci:

     remote-server = 192.168.56.1 port = 60 local_port = any transport = tcp mode = immediate 
  6. J'ai deux files par défaut dans /etc/audisp/plugins.d/ : syslog.conf et af_unix.conf et les deux ne sont pas actifs. J'ai ajouté af-remote.conf et il ressemble à ceci:

     # 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 = ssortingng 

    C'est un exemple modifié du référentiel officiel (lien) .

  7. Voici le contenu de /etc/audisp/audispd.conf :

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

Je serai heureux de fournir plus de détails si nécessaire.

Je ne suis pas sûr que tout soit nécessaire pour réussir. Néanless, il s'agit d'une configuration qui fonctionne pour que je puisse recevoir des journaux Linux Audit avec un netcat sur 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 = ssortingng 
  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_listn_port = tcp_listn_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 dissortingbute_network = no 
  4. FreeBSD: /etc/hosts.allow :

      ALL : ALL : allow 

    Je ne sais pas si celui-ci est nécessaire cependant + ce pourrait être une mauvaise idée.


C'est tout. Maintenant, il vous suffit d'exécuter nc -lk 60 sur FreeBSD et le service auditd restart sur CentOS. Dans mon cas cependant netcat semble recevoir / imprimer chaque logging au less deux fois ce qui semble plutôt inhabituel.