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.
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
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"
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
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 /
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
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
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.
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)
.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.