Как включить транспорт аудита журналов в systemd?

Я изучал журналирование в Linux, но я наткнулся на дорожный блок, который застрял в последние несколько дней. Моя цель - переслать журналы с двух Raspberry Pi 3 под управлением OpenSUSE Tumbleweed (aarch64) на мой ноутбук с Ubuntu 17.04. я использую rsyslog чтобы достичь этого, который использует imjournal в качестве источника, потому что я хочу хранить журналы в формате json со всеми дополнительными метаданными, предоставленными systemd-journal, и поиграть с ними позже.

Проблема, которую я пытаюсь решить, - это отсутствие _TRANSPORT=audit на моей малиновой пи. Я перекомпилировал systemd с audit поддержка одного из моих мыслей Пи, который решит проблему, но это не так. Я также добавил audit=1 в командной строке ядра на пи и перезагрузил их. Мой ноутбук поддерживает audit транспорт.

Вот вывод journalctl --version, sudo journalctl --field _TRANSPORT, а также cat /proc/cmdline на моих различных системах.

ноутбук:

$ journalctl --version
systemd 232
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP 
+LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS 
+KMOD +IDN

$ sudo journalctl --field _TRANSPORT
syslog
stdout
journal
audit
driver
kernel

$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.10.0-33-generic.efi.signed 
root=UUID=cf4dc10b-511a-4369-ad5c-637833244929 ro apparmor=1 
security=apparmor 

rpi1 (перенастроен systemd с audit служба поддержки):

$ journalctl --version
systemd 234
+PAM +AUDIT +SELINUX -IMA +APPARMOR -SMACK +SYSVINIT +UTMP 
+LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID -ELFUTILS 
+KMOD -IDN2 -IDN default-hierarchy=hybrid

$ sudo journalctl --field _TRANSPORT
stdout
kernel
journal
syslog
driver

$ cat /proc/cmdline
BOOT_IMAGE=/boot/Image-4.4.83-5-default root=UUID=30bbe534-b90f-4de6-
a0e6-1e2b60088461 root=/dev/disk/by-id/mmc-ACLCD_0xd02f42e5-part2 
disk=/dev/disk/by-id/mmc-ACLCD_0xd02f42e5 resume=/dev/disk/by-id/mmc-
ACLCD_0xd02f42e5-part3 quiet splash=silent plymouth.enable=0 
swiotlb=512,force cma=384M console=ttyS0,115200n8 console=tty quiet 
audit=1

rpi2 (с оригиналом systemd настроил дистрибутив):

$ journalctl --version
systemd 234
+PAM -AUDIT +SELINUX -IMA +APPARMOR -SMACK +SYSVINIT +UTMP 
+LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL+XZ +LZ4 +SECCOMP +BLKID -ELFUTILS 
+KMOD -IDN2 -IDN default-hierarchy=hybrid

$ sudo journalctl --field _TRANSPORT
stdout
kernel
journal
syslog
driver

cat /proc/cmdline
BOOT_IMAGE=/boot/Image-4.4.83-5-default root=UUID=30bbe534-b90f-4de6-
a0e6-1e2b60088461 root=/dev/disk/by-id/mmc-ACLCD_0xcaf643ee-part2 
disk=/dev/disk/by-id/mmc-ACLCD_0xcaf643ee resume=/dev/disk/by-id/mmc-
ACLCD_0xcaf643ee-part3 quiet splash=silent plymouth.enable=0 
swiotlb=512,force cma=384M console=ttyS0,115200n8 console=tty quiet 
audit=1

Я не уверен, что мне нужно сделать, чтобы транспорт для аудита был доступен для systemd-journald на моем RPI. у меня есть auditd.service а также systemd-journald-audit.socket включен и активен на всех моих системах. Если вам нужна другая информация, просто дайте мне знать, спасибо.

1 ответ

Я бы проверил вот эти вещи:

  • Он настроен на прослушивание сокета с помощьюAF_NETLINKпротокол. Еслиsystemctl status systemd-journald-audit.socketне активен, то не использует его.

  • Гарантироватьsystemd-journald-audit.socketвключен вSockets=systemd-journald.socket systemd-journald-dev-log.socket systemd-journald-audit.socketв определении.

    Если отсутствует в вашем стандартномsystemd-journald.service, создайте переопределение в/etc/systemd/system/systemd-journald.service.d/override.conf:

            # systemctl edit systemd-journald.service
    [Service]
    Sockets=
    Sockets=systemd-journald.socket systemd-journald-dev-log.socket systemd-journald-audit.socket
    # systemctl restart systemd-journald.service
    
  • audit=0не был установлен как параметр ядра. Проверить сcat /proc/cmdline.

Убедитесь, что аудит теперь находится в вашем наборе типов полей._TRANSPORT

      # journalctl --field _TRANSPORT
stdout
kernel
syslog
journal
audit
driver
Другие вопросы по тегам