1

Onderwerp: audit.log/ rsyslogd + Gui

De volgende uitdaging heb ik en ik vroeg mij af of iemand hier mee gedeald heeft (vast wel).

Ik heb een N aantal servers. Deze sturen via Rsyslog naar Rsyslog proxy server log files, vervolgens worden deze weer door gezet op een omgeving die zeer strak afgeregeld staat en alleen maar logfiles vergaard. Nu, daar in zitten per server een audit.log file. Deze logfiles gooien soms wel eens een error eruit, zoals deze. In dit geval gaat het om een policy die ik nog mag bakken voor rsyslogd en audit.log.

Nov 21 19:01:17 example  tag_audit_log: type=AVC msg=audit(1479751267.745:37145): avc:  denied  { getattr } for  pid=10987 comm="in:imfile" path="/var/log/audit/audit.log" dev="dm-2" ino=34296864 scontext=system_u:system_r:syslogd_t:s0 tcontext=system_u:object_r:auditd_log_t:s0 tclass=file

De vraag is: Is hier een programma voor die remote deze audit.log files kan fetchen en dan een warning kan geven bij een AVC denied. Een ELK stack voor zoiets vind ik teveel overkill. Ik kan natuurlijk ook een regexp progseltje schrijven, maar mijn hart gaat meer uit naar:  SELinux Administration GUI, Policy Generation Tool (polgengui). Toevallig iemand een antwoord?

Leuk feitje: Sinds deze maand heb ik al mijn vm's (60+) onderworpen aan SElinux in enforcing mode.

ACAB: All computers are broken. https://medium.com/message/everything-i … e5f33a24e1 "I've decided that you need gray hair and hemorrhoids to be a consultant.
The gray hair makes you look distinguished & the hemorrhoids make you look concerned."

2 Laatst bewerkt door linuxnewb (21 Nov 2016 19:57:44)

Re: audit.log/ rsyslogd + Gui

Er zijn verschillende opties. Een beetje redelijke SIEM kan overweg met Linux audit. Jaren geleden, toen Prelude IDS, nog open was, gebruikte ik dat voor log agregatie. Prelude had toen ook een GUI notificatie widget. Prelude is not niet open meer geloof ik.

SEtroubleshoot is een RedHat oplossing voor notificaties. Alleen gaat deze iets verder door te proberen met oplossingen te komen (vaak slecht advies) SEtroubleshoot kan ook notificaties sturen naar de desktop.

Audit zelf heeft een audit-dispatcher. Hiermee kun je relatief gemakkelijk een audit dispatcher plugin maken die zodra er iets te melden valt iets met de notificatie doet. Kan van alles zijn. Bijvoorbeeld Xcowsay met een notificatie.

Er zijn vast nog andere mogelijkheden. Persoonlijk heb ik hiet niet zo op die notificaties. Ik kijk (meestal) een keer per dag mijn audit logs in met aureport/ausearch vaak via OpenSSH en dat is het dan voor mij.

The best things in life are free.
TE RBAC MLS
ontwerp, attributen, beleid en context

3

Re: audit.log/ rsyslogd + Gui

Maikel ik ken die polgengui tool niet (begrijp wel waarom je dat prefereert) maar zelf zou ik uiteraard het snelste met een perlscriptje met een paar regexp klaar zijn.

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

4 Laatst bewerkt door devtroll (04 Dec 2016 10:43:47)

Re: audit.log/ rsyslogd + Gui

Ik heb nu een forward rsyslog server opgezet. Deze server staat op de workstation. Zodra deze met een vpn verbind aan het moederschip, begint deze de logfiles door te sturen. Hierdoor heb ik nog een extra service kunnen toepassen: Ossec. Een network intrusion systeem. Deze zal later haar eigen server krijgen, maar for the time being werkt dit perfect. De volgende dingen wil ik waarschijnlijk in 1 server opzetten:

1. Rsyslog
2. Ossec
3. ELK stack
3.1 De ELK stack zal waarschuwing geven als Audit.log errors begint uit te spugen.

Ik wil niet 1x per dag over al mijn servers wandelen en dan re-actief gaan reageren op foutmeldingen. Ik wil deze in realtime te 'horen' krijgen en daar op kunnen handelen.  Deze hele setup klinkt als veel werk en dat is het ook, maar Rome is ook niet in 1 dag gebouwd. Bedankt voor het meedenken!

ACAB: All computers are broken. https://medium.com/message/everything-i … e5f33a24e1 "I've decided that you need gray hair and hemorrhoids to be a consultant.
The gray hair makes you look distinguished & the hemorrhoids make you look concerned."

Re: audit.log/ rsyslogd + Gui

Ik reageer hiermee niet re-actief op "foutmeldingen". Zolang alles zijn werk doet vertrouw ik op het beleid en een keer per dag kijk ik even. In real-time meldingen krijgen over gebeurtenissen kan heel irritant zijn met SELinux.

The best things in life are free.
TE RBAC MLS
ontwerp, attributen, beleid en context

Re: audit.log/ rsyslogd + Gui

Ding is, ik wil niet tijd kwijt zijn aan het nodeloos door scannen van logwatch,ossec,Zabbix,nginx,audit,rsyslog,auth.log enz enz. Ik wil graag reageren op afwijkende waarden. Voorbeeld: Deze week is er een nieuwe point release uitgekomen van Centos 7 1611. Hierbij beschrijft Centos:

SElinux received major changes in this release, which might break certain functionality on your system

Lekker abstract dus. Natuurlijk is er een acceptatie omgeving, maar die heb ik niet bestaand voor interne servers, zoals Confluence. Dankzij de AVC Denied's te pompen in Zabbix krijg ik nu een alert op mijn telefoon als een service geraakt wordt. Overigens was dit het geval met de Zabbix Agent. Het verbaasd mij enigszins dat ik hier geen goed artikel op internet kan vinden hoe Engineers dit tackelen.

ACAB: All computers are broken. https://medium.com/message/everything-i … e5f33a24e1 "I've decided that you need gray hair and hemorrhoids to be a consultant.
The gray hair makes you look distinguished & the hemorrhoids make you look concerned."

7 Laatst bewerkt door devtroll (17 Dec 2016 19:56:26)

Re: audit.log/ rsyslogd + Gui

Effies nog een update, aangezien het een en ander opgelost is. Los van Rsyslog, gebruik ik nu setroubleshoot. Fantastisch. Ik liep wel weer tegen systemd problemen aan (https://bugzilla.redhat.com/show_bug.cgi?id=973697).
Achtergrond informatie: https://major.io/2011/09/15/receive-e-m … c-denials/

De Ansible code die het mogelijk maakt:

Variable die je moet defineren in je playbook

    selinux_mail_from: selinux@voorbeeld.nl
    selinux_mail_to: tech@voorbeeld.nl
---
    - name: Install SElinux related packages
      yum: name={{item}} state=installed
      with_items:
          - policycoreutils-python
          - setroubleshoot-server
          - setroubleshoot-plugins
          - selinux-policy-devel
      register: selinuxpackage

    - name: update manpages when Selinux packages are installed
      shell: /usr/bin/mandb
      when: selinuxpackage.changed

    - name: Setting from adres of selinux send mail
      lineinfile: dest=/etc/setroubleshoot/setroubleshoot.conf regexp="^from_address = " line="from_address =  {{selinux_mail_from}}" backrefs="yes" backup=yes
      register: setroubleshoot

    - name: Set SElinux AVC failed mails recipient
      blockinfile:
        dest: /var/lib/setroubleshoot/email_alert_recipients
        create: yes
        owner: setroubleshoot
        group: setroubleshoot
        mode: 0600
        block: |
          {{selinux_mail_to}}
      register: setroubleshoot

    - name: restarting auditd after change
      shell: service auditd restart
      when: setroubleshoot.changed
ACAB: All computers are broken. https://medium.com/message/everything-i … e5f33a24e1 "I've decided that you need gray hair and hemorrhoids to be a consultant.
The gray hair makes you look distinguished & the hemorrhoids make you look concerned."