FreeBSD handboek
Terug | Hoofdstuk 17. Verplichte Toegangscontrole (MAC) | Volgende

# 17.15. Nagios in een MAC-jail

De volgende demonstratie zal een veilige omgeving implementeren door verschillende MAC-modules te gebruiken met juist ingestelde beleiden. Dit is slechts een test en dient niet gezien te worden als het volledige antwoord op de beveiligingszorgen van iedereen. Gewoon een beleid implementeren en het verder negeren werkt nooit en kan rampzalig zijn in een productieomgeving.

Voordat met dit proces wordt begonnen, moet de optie `multilabel` zijn geactiveerd op elk bestandssysteem zoals vermeld aan het begin van dit hoofdstuk. Nalatigheid zal in fouten resulteren. Zorg er ook voor dat de ports `net-mgmt/nagios-plugins`, `net-mgmt/nagios`, en `www/apache22` allemaal geïnstalleerde en geconfigureerd zijn en correct werken.

## 17.15.1. Gebruikersklasse `insecure` maken

Begin de procedure door de volgende gebruikersklasse toe te voegen aan het bestand `/etc/login.conf`:

    insecure:\
            :copyright=/etc/COPYRIGHT:\
            :welcome=/etc/motd:\
            :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
            :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
            :manpath=/usr/share/man /usr/local/man:\
            :nologin=/usr/sbin/nologin:\
            :cputime=1h30m:\
            :datasize=8M:\
            :vmemoryuse=100M:\
            :stacksize=2M:\
            :memorylocked=4M:\
            :memoryuse=8M:\
            :filesize=8M:\
            :coredumpsize=8M:\
            :openfiles=24:\
            :maxproc=32:\
            :priority=0:\
            :requirehome:\
            :passwordtime=91d:\
            :umask=022:\
            :ignoretime@:\
            :label=biba/10(10-10):

Voeg de volgende regel toe aan de standaard gebruikersklasse:

    :label=biba/high:

Wanneer dit voltooid is, moet het volgende commando gedraaid worden om de database te herbouwen:

    # cap_mkdb /etc/login.conf

## 17.15.2. Opstartinstellingen

Start nog niet opnieuw op, voeg alleen de volgende regels toe aan `/boot/loader.conf` zodat de benodigde modules worden geladen tijdens systeeminitialisatie:

    mac_biba_load="YES"
    mac_seeotheruids_load="YES"

## 17.15.3. Gebruikers instellen

Stel de gebruiker `root` in op de standaardklasse met:

    # pw usermod root -L default

Alle gebruikersaccounts die geen `root` of systeemgebruikers zijn hebben nu een aanmeldklasse nodig. De aanmeldklasse is nodig om te voorkomen dat gebruikers geen toegang hebben tot gewone commando's als vi(1). Het volgende `sh`-script zou moeten werken:

    # for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \
    	/etc/passwd`; do pw usermod $x -L default; done;

Laat de gebruikers `nagios` en `www` in de klasse insecure vallen:

    # pw usermod nagios -L insecure

    # pw usermod www -L insecure

## 17.15.4. Het contextbestand aanmaken

Nu dient een contextbestand aangemaakt te worden; het volgende voorbeeld dient geplaatst te worden in `/etc/policy.contexts`.

    # Dit is het standaard-BIBA-beleid voor dit systeem.
    # Systeem:
    /var/run                        biba/equal
    /var/run/*                      biba/equal

    /dev                            biba/equal
    /dev/*                          biba/equal

    /var                            biba/equal
    /var/spool                      biba/equal
    /var/spool/*                    biba/equal

    /var/log                        biba/equal
    /var/log/*                      biba/equal

    /tmp                            biba/equal
    /tmp/*                          biba/equal
    /var/tmp                        biba/equal
    /var/tmp/*                      biba/equal

    /var/spool/mqueue               biba/equal
    /var/spool/clientmqueue         biba/equal

    #Voor Nagios:
    /usr/local/etc/nagios
    /usr/local/etc/nagios/*         biba/10
    /var/spool/nagios               biba/10
    /var/spool/nagios/*             biba/10

    #Voor Apache:
    /usr/local/etc/apache           biba/10
    /usr/local/etc/apache/*         biba/10

Dit beleid zal beveiliging afdwingen door beperkingen aan de informatiestroom te stellen. In deze specifieke configuratie mogen gebruikers, inclusief `root`, nooit toegang hebben tot Nagios. Instellingenbestanden en processen die deel zijn van Nagios zullen geheel in zichzelf of in een jail zitten.

Dit bestand kan nu in ons systeem worden gelezen door ons systeem door het volgende commando uit te voeren:

    # setfsmac -ef /etc/policy.contexts /
    # setfsmac -ef /etc/policy.contexts /

> Opmerking: De bovenstaande indeling van het bestandssysteem kan afhankelijk van de omgeving verschillen; het moet echter op elk bestandssysteem gedraaid worden.

Het bestand `/etc/mac.conf` dient als volgt in de hoofdsectie gewijzigd te worden:

    default_labels file ?biba
    default_labels ifnet ?biba
    default_labels process ?biba
    default_labels socket ?biba

## 17.15.5. Het netwerk activeren

Voeg de volgende regel toe aan `/boot/loader.conf`:

    security.mac.biba.trust_all_interfaces=1

En voeg het volgende toe aan de instellingen van de netwerkkaart opgeslagen in `rc.conf`. Als de primaire Internetconfiguratie via DHCP wordt gedaan, kan het nodig zijn om dit handmatig te configureren telkens nadat het systeem is opgestart:

    maclabel biba/equal

## 17.15.6. De configuratie testen

Controleer dat de webserver en Nagios niet tijdens de systeeminitialisatie worden gestart, en start opnieuw op. Controleer dat de gebruiker `root` geen enkel bestand in de instellingenmap van Nagios kan benaderen. Als `root` het commando ls(1) op `/var/spool/nagios` kan uitvoeren, is er iets verkeerd. Anders zou er een fout “Permission denied” teruggegeven moeten worden.

Als alles er goed uitziet, kunnen Nagios, Apache, en Sendmail nu gestart worden op een manier die past in het beveiligingsbeleid. De volgende commando's zorgen hiervoor:

    # cd /etc/mail &↦ make stop && \
    setpmac biba/equal make start && setpmac biba/10\(10-10\) apachectl start && \
    setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestart

Controleer nogmaals om er zeker van te zijn dat alles juist werkt. Indien niet, controleer dan de logbestanden of de foutmeldingen. Gebruik het hulpprogramma sysctl(8) om de beveiligingsbeleidsmodule mac_biba(4) uit te schakelen en probeer om alles opnieuw op te starten, zoals gewoonlijk.

> Opmerking: De gebruiker `root` kan zonder angst de afgedwongen beveiliging veranderen en de instellingenbestanden bewerken. Het volgende commando staat toe om het beveiligingsbeleid naar een lagere graad te degraderen voor een nieuw voortgebrachte shell:

>     # setpmac biba/10 csh

> Om te voorkomen dat dit gebeurt, kan de gebruiker via login.conf(5) in een bereik worden gedwongen. Als setpmac(8) probeert om een commando buiten het bereik van het compartiment te draaien, zal er een fout worden teruggegeven en wordt het commando niet uitgevoerd. Zet in dit geval root op `biba/high(high-high)`.

Terug | Begin | Volgende
MAC-module LOMAC | Omhoog | Gebruikers afsluiten