From 0f8282bf8f8ae44a7cc6826a97673349991f22d6 Mon Sep 17 00:00:00 2001 From: Remko Lodder Date: Sat, 18 Oct 2008 14:40:47 +0000 Subject: [PATCH] MFen mac -> 1.73 * This really translates the entire chapter! Submitted by: Rene Ladan Obtained from: The FreeBSD Dutch Documentation Project Facilitated by: Snow B.V. at EuroBSDCon 2008 --- .../books/handbook/mac/chapter.sgml | 2456 ++++++++--------- 1 file changed, 1134 insertions(+), 1322 deletions(-) diff --git a/nl_NL.ISO8859-1/books/handbook/mac/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/mac/chapter.sgml index 92b324a617..809bdf6321 100644 --- a/nl_NL.ISO8859-1/books/handbook/mac/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/mac/chapter.sgml @@ -3,7 +3,9 @@ $FreeBSD$ $FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/mac/chapter.sgml,v 1.22 2006/01/05 21:13:23 siebrand Exp $ - Gebaseerd op: 1.49 + + %SOURCE% en_US.ISO8859-1/books/handbook/mac/chapter.sgml + %SRCID% 1.73 --> @@ -15,6 +17,20 @@ Geschreven door + + + Siebrand + Mazeland + Vertaald door + + + + + René + Ladan + Vertaling voortgezet door + + Verplichte Toegangscontrole (MAC) @@ -32,66 +48,67 @@ mandatory access control - In &os; 5.X worden nieuwe beveiligingsuitbreidingen + In &os; 5.X werden nieuwe beveiligingsuitbreidingen geïntroduceerd uit het TrustedBSD project, dat is gebaseerd op de &posix;.1e draft. Twee van de meest significante nieuwe - beveiligingsmechanismen zijn bestandssysteem - Toegangscontrolelijsten (ACL's) en - Verplichte Toegangscontrole (Mandatory Access Control of - MAC) facilities. Met Verplichte - Toegangscontrole kunnen nieuwe toegangscontrolemodules geladen - worden, waarmee nieuw beveiligingsbeleid opgelegd kan worden. - Een aantal daarvan bieden beveiliging aan hele kleine onderdelen - van het systeem, waardoor een bepaalde dienst weerbaarder wordt, - terwijl andere allesomvattende gelabelde beveiliging bieden op - alle vlakken en objecten. Het verplichte deel van de definitie - komt van het feit dat het opleggen van de controle wordt gedaan - door beheerders en het systeem en niet wordt overgelaten aan - de nukken van gebruikers, zoals wel wordt gedaan met - toegangscontrole naar goeddunken (discretionary access control of - DAC, de standaard bestands- en System V - IPC rechten in &os;). + beveiligingsmechanismen zijn faciliteiten voor + Toegangscontrolelijsten voor bestandssystemen + (ACLs) en Verplichte Toegangscontrole + (Mandatory Access Control of MAC). Met + Verplichte Toegangscontrole kunnen nieuwe toegangscontrolemodules + geladen worden, waarmee nieuw beveiligingsbeleid opgelegd kan + worden. Een aantal daarvan bieden beveiliging aan hele kleine + onderdelen van het systeem, waardoor een bepaalde dienst + weerbaarder wordt. Andere bieden allesomvattende gelabelde + beveiliging op alle vlakken en objecten. Het verplichte deel van + de definitie komt van het feit dat het opleggen van de controle + wordt gedaan door beheerders en het systeem en niet wordt + overgelaten aan de nukken van gebruikers, zoals wel wordt gedaan + met toegangscontrole naar goeddunken (discretionary access control + of DAC, de standaardrechten voor bestanden en + System V IPC rechten in &os;). In dit hoofdstuk wordt de nadruk gelegd op het - Verplichte Toegangscontrole Framework (MAC Framework) en een set - van te activeren beveiligingsbeleidsmodules waarmee verschillende - soorten beveiligingmechanismen wordt ingeschakeld. + Verplichte Toegangscontrole Raamwerk (MAC + Framework) en een verzameling van te activeren + beveiligingsbeleidsmodules waarmee verschillende soorten + beveiligingsmechanismen wordt ingeschakeld. - Na het lezen van dit hoofdstuk weet de lezer: + Na het lezen van dit hoofdstuk weet u: Welke MAC beveiligingsbeleidsmodules op dit moment in &os; beschikbaar zijn en welke mechanismen - daarbij horen; + daarbij horen. Wat MAC beveiligingsbeleidsmodules implementeren en het verschil tussen gelabeld en - niet-gelabeld beleid; + niet-gelabeld beleid. Hoe een systeem efficiënt ingesteld kan worden om - met het MAC framework te werken; + met het MAC-raamwerk te werken. Hoe het beleid van de verschillende - beveiligingsbeleidsmodules die in het MAC - framework zitten ingesteld kunnen worden; + beveiligingsbeleidsmodules die in het + MAC-raamwerk zitten ingesteld kunnen + worden. - Hoe een veiliger omgeving gemaakt kan worden met het - MAC framework en de getoonde - voorbeelden; + Hoe een veiligere omgeving gemaakt kan worden met het + MAC-raamwerk en de getoonde voorbeelden; - Hoe de MAC instellingen getest - kunnen worden om er zeker van te zijn dat het framework juist + Hoe de MAC-instellingen getest + kunnen worden om er zeker van te zijn dat het raamwerk juist is geïmplementeerd. @@ -106,8 +123,7 @@ Bekend zijn met de beginselen van het instellen en - compileren van de kernel (); + compileren van de kernel (); @@ -117,26 +133,25 @@ - Het verkeerd gebruiken van de informatie in dit hoofdstuk + Het verkeerd gebruiken van de informatie die hierin staat kan leiden tot het niet langer toegang hebben tot een systeem, - grote ergernis bij gebruikers of het niet langer kunnen - gebruiken van de mogelijkheden die X11 biedt. Nog belangrijker - is dat niet alleen op MAC vertrouwd moet - worden voor de beveiliging van een systeem. Het - MAC framework vergroot alleen het bestaande - beveiligingsbeleid. Zonder goede beveiligingsprocedures en + ergernis bij gebruikers, of het niet langer kunnen gebruiken van + de mogelijkheden die X11 biedt. Nog belangrijker is dat niet + alleen op MAC vertrouwd moet worden voor de + beveiliging van een systeem. Het + MAC-raamwerk vergroot alleen het bestaande + beveiligingsbeleid; zonder goede beveiligingsprocedures en regelmatige beveiligingscontroles is een systeem nooit helemaal veilig. Het is ook van belang op te merken dat de voorbeelden in dit hoofdstuk alleen voorbeelden zijn. Het is niet aan te raden ze uit te rollen op een productiesysteem. Het - implementeren van de verschillende beveiligingsbeleidmodules - dient goed overdacht te worden. Iemand die niet helemaal - begrijpt hoe alles werkt, komt er waarschijnlijk achter dat die - het complete systeem van voor naar achter en weer terug - doorloopt en heel erg veel bestanden en mappen opnieuw moet - instellen. + implementeren van de verschillende beveiligingsbeleidsmodules + dient goed overdacht en getest te worden. Iemand die niet + helemaal begrijpt hoe alles werkt, komt er waarschijnlijk achter + dat die het complete systeem van voor naar achter en weer terug + doorloopt en vele bestanden en mappen opnieuw moet instellen. @@ -144,13 +159,13 @@ In dit hoofdstuk wordt een brede reeks beveiligingsonderwerpen met betrekking tot het - MAC framework behandeld. De ontwikkeling - van nieuwe MAC beveiligingsbeleidmodules + MAC-raamwerk behandeld. De ontwikkeling + van nieuwe MAC-beveiligingsbeleidsmodules wordt niet behandeld. Een aantal modules die bij het - MAC framework zitten hebben specifieke - eigenschappen voor het testen en ontwikkelen van (nieuwe) - modules. Daaronder vallen &man.mac.test.4;, &man.mac.stub.4; - en &man.mac.none.4;. Meer informatie over deze + MAC-raamwerk zitten hebben specifieke + eigenschappen voor het testen en ontwikkelen van nieuwe modules. + Daaronder vallen &man.mac.test.4;, &man.mac.stub.4; en + &man.mac.none.4;. Meer informatie over deze beveiligingsbeleidsmodules en de mogelijkheden die ze bieden staan in de hulppagina's. @@ -159,30 +174,40 @@ Sleuteltermen in dit hoofdstuk - Voordat het lezen van dit hoofdstuk zonder voorkennis - mogelijk is, moeten er eerst een aantal sleuteltermen toegelicht - worden. Hiermee wordt hopelijk mogelijke verwarring en de - abrupte introductie van nieuwe termen en informatie - voorkomen. + Voordat dit hoofdstuk gelezen wordt, moeten er een aantal + sleuteltermen toegelicht worden. Hiermee wordt hopelijk mogelijke + verwarring en de abrupte introductie van nieuwe termen en + informatie voorkomen. - compartiment: een compartiment is - een verzameling van programma's en data die gepartitioneerd - of gescheiden dient te worden en waartoe gebruikers expliciet - toegang moeten krijgen op een systeem. Een compartiment - staat ook voor een groep - werkgroep, afdeling, project of + compartiment: een compartiment is een + verzameling van programma's en gegevens die gepartitioneerd of + gescheiden dient te worden en waartoe gebruikers expliciet + toegang moeten krijgen op een systeem. Een compartiment staat + ook voor een groep, zoals een werkgroep, afdeling, project, of onderwerp. Door gebruik te maken van compartimenten is het - mogelijk om need-to-know beveiligingsbeleid in - te stellen. + mogelijk om een need-to-know beveiligingsbeleid + in te stellen. + + + + hoogwatermarkering: Een + hoogwatermarkeringsbeleid is een beleid dat toestaat om + beveiligingsniveaus te verhogen met het doel informatie dat op + een hoger niveau aanwezig is te benaderen. In de meeste + gevallen wordt het originele niveau hersteld nadat het proces + voltooid is. Momenteel heeft het + MAC-raamwerk van &os; hier geen beleid + voor, maar de definitie is voor de volledigheid opgenomen. integriteit: integriteit, als - sleutelconcept, is het niveau van vertrouwen dat in data - gesteld kan worden. Als de integriteit van data wordt + sleutelconcept, is het niveau van vertrouwen dat in gegevens + gesteld kan worden. Als de integriteit van gegevens wordt vergroot, dan geldt dat ook voor het vertrouwen dat in die - data gesteld kan worden. + gegevens gesteld kan worden. @@ -193,13 +218,13 @@ een bestand is geplaatst, beschrijft dat de beveiligingseigenschappen voor dat specifieke bestand en is daarop alleen toegang voor bestanden, gebruikers, bronnen, - enzovoort, met gelijke beveiligingsinstellingen. De - betekenis en interpretatie van labelwaarden hangt af van de - instelling van de beleidseeneheid: hoewel sommige + enzovoort, met gelijke beveiligingsinstellingen. De betekenis + en interpretatie van labelwaarden hangt af van de + beleidsinstellingen: hoewel sommige beleidseenheden een label beschouwen als representatie van de - integriteit of het geheimhoudingsniveau van een object, - kunnen andere beleidseenheden label gebruik om regels voor - toegang in op te slaan. + integriteit of het geheimhoudingsniveau van een object, kunnen + andere beleidseenheden labels gebruiken om regels voor toegang + in op te slaan. @@ -209,30 +234,41 @@ stijgt. + + laagwatermarkering: Een + laagwatermarkeringsbeleid is een beleid dat toestaat om de + beveiligingsniveaus te verlagen met het doel informatie te + benaderen die minder veilig is. In de meeste gevallen wordt + het originele beveiligingsniveau van de gebruiker hersteld + nadat het proces voltooid is. De enige + beveiligingsbeleidsmodule in &os; die dit gebruikt is + &man.mac.lomac.4;. + + meervoudig label: de eigenschap is een optie van het - bestandssysteem die in single user modus met &man.tunefs.8;, - tijdens het opstarten via het bestand &man.fstab.5; of - tijdens het maken van een nieuw bestandssysteem ingesteld kan - worden. Met deze optie wordt het voor een beheerder mogelijk - om verschillende MAC labels op - verschillende objecten toe te passen. Deze optie is alleen - van toepassing op beveiligingsbeleidsmodules die labels - ondersteunen. + bestandssysteem die in enkelegebruikersmodus met + &man.tunefs.8;, tijdens het opstarten via het bestand + &man.fstab.5; of tijdens het maken van een nieuw + bestandssysteem ingesteld kan worden. Met deze optie wordt + het voor een beheerder mogelijk om verschillende + MAC-labels op verschillende objecten toe te + passen. Deze optie is alleen van toepassing op + beveiligingsbeleidsmodules die labels ondersteunen. object: een object of systeemobject is een entiteit waar informatie doorheen stroomt op aanwijzing van een subject. Hieronder - valleen mappen, bestanden, velden, schermen, toetsenborden, - geheugen, maganetische opslag, printers en alle andere - denkbare apparaten waarmee data kan worden vervoerd of data - op kan worden opgeslagen. In de basis is een object een - opslageenheid voor data of een systeembron; toegang tot een - object betekent in feite toegang tot de - data. + vallen mappen, bestanden, velden, schermen, toetsenborden, + geheugen, magnetische opslag, printers en alle andere + denkbare apparaten waarmee gegevens kunnen worden vervoerd of + kunnen worden opgeslagen. In de basis is een object een + opslageenheid voor gegevens of een systeembron; toegang tot + een object betekent in feite toegang tot + de gegevens. @@ -244,38 +280,37 @@ beleidseenheid in deze context gezien als een beveiligingsbeleidseenheid, wat zoveel wil zeggen als een verzameling regels die bepaalt hoe - data en informatie stroomt en aangeeft wie toegang tot welke - data en informatie heeft. + gegevens en informatie stroomt en aangeeft wie toegang tot + welke gegevens en informatie heeft. gevoeligheid: meestal gebruikt bij - het bespreken vna MLS. Een + het bespreken van MLS. Een gevoeligheidsniveau is een term die gebruikt wordt om te - beschrijven hoe belangrijk of geheim de data hoort te zijn. - Met het stijgen van het gevoeligheidsniveau stijgt ook het - belang van de geheimhouding of de confidentialiteit van de - data. + beschrijven hoe belangrijk of geheim de gegevens horen te + zijn. Met het stijgen van het gevoeligheidsniveau stijgt ook + het belang van de geheimhouding of de vertrouwelijkheid van de + gegevens. enkelvoudig label: een enkelvoudig label wordt gebruikt als een heel bestandssysteem gebruik maakt van één label om het toegangsbeleid over - de datastromen af te dwingen. Als dit voor een + de gegevensstromen af te dwingen. Als dit voor een bestandssysteem is ingesteld, wat geldt als er geen gebruik gemaakt wordt van de optie , dan - gehoorzamen alle bestanden aan dezelfde - labelinstelling. + gehoorzamen alle bestanden aan dezelfde labelinstelling. subject: een subject is een gegeven actieve entiteit die het stromen van informatie tussen - objects veroorzaakt, bijvoorbeekd een - gebruiker, gebruikersprocessortijd, systeemproces, enzovoort. - Op &os; is dit bijna altijd een thread die in een proces - namens een gebruiker optreedt. + objecten veroorzaakt, bijvoorbeeld een + gebruiker, gebruikersprocessor, systeemproces, enzovoort. Op + &os; is dit bijna altijd een thread die in een proces namens + een gebruiker optreedt. @@ -284,107 +319,104 @@ Uitleg over MAC Met al deze nieuwe termen in gedachten, kan overdacht worden - het MAC framework de complete beveiliging van - een systeem kan vergroten. De verschillende - beveiligingsbeleidsmodules die het MAC - framework biedt zouden gebruikt kunnen worden om het netwerk en + hoe het MAC-raamwerk de complete beveiliging + van een systeem kan vergroten. De verschillende + beveiligingsbeleidsmodules die het MAC-raamwerk + biedt zouden gebruikt kunnen worden om het netwerk en bestandssystemen te beschermen, gebruikers toegang tot bepaalde - poorten en sockets kunnen ontzeggen en nog veel meer. Misschien + poorten en sockets kunnen ontzeggen, en nog veel meer. Misschien kunnen de beleidsmodules het beste gebruikt worden door ze samen - in te zetten, door meerdere beveiligingsbeleidsmodules te laden - om te komen tot een omgeving waarin de beveiliging uit meerdere - lagen is opgebouwd. In een omgeving waarin de beveiliging uit - meerdere lagen is opgebouwd zijn meedere beleidsmodules actief - om de beveiliging in de hand te houden. Deze aanpak is anders - dan een beleid om de beveiliging sec beter te maken, omdat - daarmee in het algemeen elementen in een systeem beveiligd worden - dat voor een specifiek doel wordt gebruikt. Het enige nadeel is - het benodigde beheer in het geval van meervoudige - bestandssysteemlabels, het instellen van toegang tot het netwerk - per gebruiker, enzovoort. + in te zetten, door meerdere beveiligingsbeleidsmodules te laden om + te komen tot een omgeving waarin de beveiliging uit meerdere lagen + is opgebouwd. In een omgeving waarin de beveiliging uit meerdere + lagen is opgebouwd zijn meerdere beleidsmodules actief om de + beveiliging in de hand te houden. Deze aanpak is anders dan een + beleid om de beveiliging sec beter te maken, omdat daarmee in het + algemeen elementen in een systeem beveiligd worden dat voor een + specifiek doel wordt gebruikt. Het enige nadeel is het benodigde + beheer in het geval van meervoudige bestandssysteemlabels, het + instellen van toegang tot het netwerk per gebruiker, enzovoort. - De nadelen zijn wel minimaal als ze worden vergeleken met - het immer durende effect van het framework. Zo zorgt - bijvoorbeeld de mogelijkheid om te kiezen welke beleidseenheden - voor een specifiek gebruik nodig zijn voor het zo laag mogelijk - houden van de beheerslast. Het terugdringen van ondersteuning - voor onnodige beleidseenheden kan de beschikbaarheid van systemen - verhogen en ook de keuzevrijheid vergroten. Voor een goede - implementatie worden alle beveiligingseisen in beschouwing - genomen en daarna worden de verschillende - beveiligingsbeleidsmodules effectief door het framework - geïmplementeerd. + De nadelen zijn wel minimaal als ze worden vergeleken met het + immer durende effect van het raamwerk. Zo zorgt bijvoorbeeld de + mogelijkheid om te kiezen welke beleidseenheden voor een specifiek + gebruik nodig zijn voor het zo laag mogelijk houden van de + beheerslast. Het terugdringen van ondersteuning voor onnodige + beleidseenheden kan de beschikbaarheid van systemen verhogen en + ook de keuzevrijheid vergroten. Voor een goede implementatie + worden alle beveiligingseisen in beschouwing genomen en daarna + worden de verschillende beveiligingsbeleidsmodules effectief door + het raamwerk geïmplementeerd. Een systeem dat gebruik maakt van de mogelijkheden van - MAC dient dus tenminste de garantie te hebben + MAC dient dus tenminste de garantie te bieden dat een gebruiker niet de mogelijkheid heeft naar eigen inzicht - beveiligingsattributen te wijzigen. Alle gebruikersprogramma's - en scripts moeten werken binnen de beperkingen die de - toegangsregels voorschrijven volgens de geselecteerde - beveiligingsbeleidsmodules. Het voorgaande impliceert ook dat de - volledige controle over de MAC toegangsregels - bij de systeembeheerder ligt. + beveiligingsattributen te wijzigen. Alle gebruikersprogramma's en + scripts moeten werken binnen de beperkingen die de toegangsregels + voorschrijven volgens de geselecteerde beveiligingsbeleidsmodules. + Het voorgaande impliceert ook dat de volledige controle over de + MAC-toegangsregels bij de systeembeheerder + ligt. - Het is de taak van de systeembeheerder om zorgvuldig de - juiste beveiligingsbeleidsmodules te kiezen. Voor sommige - omgevingen kan het nodig zijn dat de toegang tot het netwerk - wordt beperkt. In dat soort gevallen zijn de beleidsmodules - &man.mac.portacl.4;, &man.mac.ifoff.4; en zelfs &man.mac.biba.4; - goede startpunten. In andere gevallen kan het nodig zijn dat - alleen de vertrouwelijkheid van bestandssysteemobjecten van - belang is. Dan zijn beleidsmodules zoals &man.mac.bsdextended.4; - en &man.mac.mls.4; voor dit doel gemaakt. + Het is de taak van de systeembeheerder om zorgvuldig de juiste + beveiligingsbeleidsmodules te kiezen. Voor sommige omgevingen kan + het nodig zijn dat de toegang tot het netwerk wordt beperkt. In + dat soort gevallen zijn de beleidsmodules &man.mac.portacl.4;, + &man.mac.ifoff.4; en zelfs &man.mac.biba.4; goede startpunten. In + andere gevallen kan de strikte vertrouwelijkheid van + bestandssysteemobjecten van belang zijn. Dan zijn beleidsmodules + zoals &man.mac.bsdextended.4; en &man.mac.mls.4; voor dit doel + gemaakt. - Beslissingen over beleid zouden gemaakt kunnen worden op - basis van het netwerkontwerp. Wellicht wordt alleen bepaalde - gebruikers toegestaan gebruik te maken van de mogelijkheden van - &man.ssh.1; om toegang te krijgen tot het netwerk of internet. - In dat geval is de juiste beleidsmodule &man.mac.portacl.4;. - Maar wat te doen voor bestandssystemen? Moet alle toegang tot - bepaalde mappen worden afgesneeden van andere gebruikersgroepen - of specifieke gebruikers, of moeten de toegang voor gebruikers - of programma's tot bespaalde bestanden worden ingesteld door - bepaalde objecten als geheim te bestempelen? + Beslissingen over beleid zouden gemaakt kunnen worden op basis + van het netwerkontwerp. Wellicht wordt alleen bepaalde gebruikers + toegestaan gebruik te maken van de mogelijkheden van &man.ssh.1; + om toegang te krijgen tot het netwerk of Internet. In dat geval + is de juiste beleidsmodule &man.mac.portacl.4;. Maar wat te doen + voor bestandssystemen? Moet alle toegang tot bepaalde mappen + worden afgesneden van andere gebruikersgroepen of specifieke + gebruikers, of moeten de toegang voor gebruikers of programma's + tot bepaalde bestanden worden ingesteld door bepaalde objecten + als geheim te bestempelen? In het geval van het bestandssysteem, kan ervoor gekozen worden om de toegang voor sommige objecten voor bepaalde gebruikers als geheim te bestempelen, maar voor andere niet. - Bijvoorbeeld: een groot ontwikkelteam wordt opgedeeld in - kleinere eenheden individuen. Ontwikkelaars in project A horen - geen toegang te hebben tot objecten die zijn geschreven door + Bijvoorbeeld: een groot ontwikkelteam wordt opgedeeld in kleinere + eenheden van individuen. Ontwikkelaars in project A horen geen + toegang te hebben tot objecten die zijn geschreven door ontwikkelaars in project B. Maar misschien moeten ze wel toegang hebben tot objecten die zijn geschreven door ontwikkelaars in project C. Dat is nogal wat. Door gebruik te maken van de verschillende beveiligingsbeleidsmodules in het - MAC framework kunnen gebruikers in hun groepen + MAC-raamwerk kunnen gebruikers in hun groepen worden opgedeeld en kan ze toegang gegeven worden tot de juiste locaties zonder dat er angst hoeft te zijn voor het lekken van informatie. - Zo heeft dus iedere beveiligingsbeleidsmodule een unieke - wijze om om te gaan met de totale beveiliging van een systeem. - Het kiezen van modules hoort gebaseerd te zijn op een zorgvuldig + Zo heeft dus iedere beveiligingsbeleidsmodule een unieke wijze + om om te gaan met de totale beveiliging van een systeem. Het + kiezen van modules hoort gebaseerd te zijn op een zorgvuldig uitgedacht beveiligingsbeleid. In veel gevallen wordt het totale - beveiligingsbeleid aangepast en opnieuw toegepast op een systeem. + beveiligingsbeleid aangepast en opnieuw toegepast op het systeem. Een goed begrip van de verschillende beveiligingsbeleidsmodules - die het MAC framework biedt helpt beheerders - bij het kiezen van de juiste beleidseenheden voor hun - situatie. + die het MAC-raamwerk biedt helpt beheerders bij + het kiezen van de juiste beleidseenheden voor hun situatie. - De standaard &os; kernel kent geen ondersteuning voor het - MAC framework en daarom dient de volgende + De standaard &os;-kernel kent geen ondersteuning voor het + MAC-raamwerk en daarom dient de volgende kerneloptie toegevoegd te worden voordat op basis van de voorbeelden of informatie uit dit hoofdstuk wijzigen worden gemaakt: options MAC - Hierna dient de kernel herbouwd en geïnstalleerd te - worden. + Hierna dient de kernel herbouwd en opnieuw geïnstalleerd + te worden. Hoewel in de verschillende hulppagina's voor - MAC beleidsmodules staat dat ze in de kernel + MAC-beleidsmodules staat dat ze in de kernel gebouwd kunnen worden, is het mogelijk het systeem van het netwerk af te sluiten en meer. Het implementeren van MAC is net zoiets als het implementeren van @@ -397,10 +429,10 @@ - MAC labels begrijpen + MAC-labels begrijpen - Een MAC label is een beveiligingsattribuut - dat toegepast kan worden op subjects en objecten die door het + Een MAC-label is een beveiligingsattribuut + dat toegepast kan worden op subjecten en objecten die door het systeem gaan. Bij het instellen van een label moet de gebruiker in staat @@ -408,16 +440,15 @@ voor een object beschikbaar zijn hangen af van de geladen beleidsmodule en die interpreteren hun attributen op nogal verschillende manieren. Het resultaat kan resulteren in - onverwacht en wellicht ongewenst gedrag van een systeem als - het beleid door een gebrek aan begrip verkeerd is - ingesteld. + onverwacht en wellicht ongewenst gedrag van een systeem als het + beleid door een gebrek aan begrip verkeerd is ingesteld. - Het beveiligingslaven op een object wordt gebruikt als + Het beveiligingslabel op een object wordt gebruikt als onderdeel van een beveiligingstoegangscontrolebeslissing door een - beleidseenheid. Voor sommige beleidseenheden bevat het label - zelf alle informatie die nodig is voor het maken van een - beslissing; in andere modellen kunnen de labels als onderdeel van - een grotere set verwerkt worden, enzovoort. + beleidseenheid. Voor sommige beleidseenheden bevat het label zelf + alle informatie die nodig is voor het maken van een beslissing; + in andere modellen kunnen de labels als onderdeel van een grotere + verzameling verwerkt worden, enzovoort. Zo staat bijvoorbeeld het instellen van het label biba/low op een bestand voor een label dat @@ -437,21 +468,21 @@ Binnen een bestandssysteemomgeving met een enkelvoudig label kan er maar één label gebruikt worden op objecten. - Hiermee wordt een set van toegangsrechten op het hele systeem - opgelegd en dat is voor veel omgevingen voldoende. Er zijn - echter een aantal gevallen waarin het wenselijk is meervoudige - label in te stellen op subject of objecten in het + Hiermee wordt een verzameling van toegangsrechten op het hele + systeem opgelegd en dat is voor veel omgevingen voldoende. Er + zijn echter een aantal gevallen waarin het wenselijk is + meervoudige labels in te stellen op subjecten of objecten in het bestandssysteem. In die gevallen kan de optie - meergegeven worden aan + meegegeven worden aan &man.tunefs.8;. - In het geval van Biba en MLS, kan er een + In het geval van Biba en MLS kan er een numeriek label gezet worden om het precieze niveau van de - hiërarchische controle kan worden aangegeven. Dit - numerieke niveau wordt gebruikt om informatie in verschillende - groepen te partitioneren of te sorteren voor het klassificeren - voor het geven van toegang voor een bepaalde groep of een groep - van een hoger niveau. + hiërarchische controle aan te geven. Dit numerieke niveau + wordt gebruikt om informatie in verschillende groepen te + partitioneren of te sorteren voor het classificeren voor het geven + van toegang voor een bepaalde groep of een groep van een hoger + niveau. In de meeste gevallen stelt een beheerder alleen maar een enkelvoudig label in dat door het hele bestandssysteem wordt @@ -461,15 +492,15 @@ DAC! MAC gaf de controle toch strikt aan de beheerder? Dat klopt nog steeds, root heeft nog steeds de controle in handen - en is degene die het beleid instelt zodat gebruikers in de - juiste categorie en/of toegangsniveau's worden geplaatst. - Daarnaast kunnen veel beleidsmodules ook de gebruiker + en is degene die het beleid instelt zodat gebruikers in de juiste + categorie en/of toegangsniveaus worden geplaatst. Daarnaast + kunnen veel beleidsmodules ook de gebruiker root beperkingen opleggen. Dan wordt de controle overgedragen aan een groep, maar kan - root de instellingen op ieder gewenst - moment intrekken of wijzigen. Dit is het - hiërarchische/toegangsmodel dat wordt afgedekt door - beleidseenheden zoals Biba en MLS. + root de instellingen op ieder gewenst moment + intrekken of wijzigen. Dit is het hiërarchische of + toegangsmodel dat wordt afgedekt door beleidseenheden zoals Biba + en MLS. Labelinstellingen @@ -481,35 +512,34 @@ instellingen. Alle instellingen kunnen gemaakt worden met de - hulpprogramma's &man.setfmac.8; and &man.setpmac.8;. + hulpprogramma's &man.setfmac.8; en &man.setpmac.8;. Het commando setfmac wordt gebruikt om MAC labels op systeemobjecten in te stellen en setpmac voor het instellen van de labels - op on systeemsubjects: + op systeemsubjecten: &prompt.root; setfmac biba/high test Als het bovenstaande commando geen foutmeldingen heeft veroorzaakt, dan komt er een prompt terug. Deze commando's - geven altijd geen uitvoer, tenzij er een fout is tegengekomen; - net als bij &man.chmod.1; en &man.chown.8;. In sommige + geven nooit uitvoer, tenzij er een fout is opgetreden; net als + bij de commando's &man.chmod.1; en &man.chown.8;. In sommige gevallen kan de foutmelding Permission - denied zijn en deze ontstaat meestal als het - label wordt ingesteld of gewijzigd op een object dat is - beperkt. - + denied zijn en deze treedt meestal op als het label + wordt ingesteld of gewijzigd op een object dat is beperkt. + Andere condities kunnen andere foutmeldingen veroorzaken. De gebruiker die het object probeert te - herlabelen kan bijvoorbeeld niet de eigenaar zijn, het - object kan niet bestaan of alleen-lezen zijn. Een - verplichte beleidsinstelling kan het proces niet toestaan - om een bestand te herlabelen, misschien om een + herlabelen kan bijvoorbeeld niet de eigenaar zijn van het + bestand, het object kan niet bestaan of alleen-lezen zijn. + Een verplichte beleidsinstelling zal het proces niet + toestaan om een bestand te herlabelen, misschien om een eigenschap van het bestand, een eigenschap van het proces of een eigenschap van de voorgestelde nieuwe waarde van het label. Een gebruiker die met een lage integriteit draait, - probeert bijvoorbeeld het label van een bestand met een - hoge integriteit te veranderen of diezelfde gebruiker kan + probeert bijvoorbeeld het label van een bestand met een hoge + integriteit te veranderen of zo'n zelfde gebruiker kan proberen het label van een bestand met lage integriteit te wijzigen in een label van een hoge integriteit. @@ -523,34 +553,34 @@ &prompt.root; getfmac test test: biba/high - Hierboven is te zien dat setpmac - gebruikt kan worden om aan de instellingen van een - beleidsmodules voorbij te gaan door een ander label toe te - wijzen aan het aangeroepen proces. Het hulpprogramma - getpmac wordt meestal toegepast op processen - die al draaien, zoals sendmail: - hoewel er een proces ID nodig is in plaats van een commando, is - de logica gelijk. Als gebruikers proberen een bestand te - manipuleren waar ze geen toegang to hebben, onderhevig aan de - regels van een geladen beleidsmodule, dan wordt de foutmelding - Operation not permitted weergegeven door - de functie mac_set_link. + Hierboven is te zien dat setpmac gebruikt + kan worden om aan de instellingen van een beleidsmodules voorbij + te gaan door een ander label toe te wijzen aan het aangeroepen + proces. Het hulpprogramma getpmac wordt + meestal toegepast op processen die al draaien, zoals + sendmail: hoewel er een proces-ID + nodig is in plaats van een commando, is de logica gelijk. Als + gebruikers proberen een bestand te manipuleren waar ze geen + toegang tot hebben, onderhevig aan de regels van de geladen + beleidsmodules, dan wordt de foutmelding Operation + not permitted weergegeven door de functie + mac_set_link. Labeltypen - Met de beleidsmodules &man.mac.biba.4;, &man.mac.mls.4; - en &man.mac.lomac.4; is het mogelijk eenvoudige labels toe te + Met de beleidsmodules &man.mac.biba.4;, &man.mac.mls.4; en + &man.mac.lomac.4; is het mogelijk eenvoudige labels toe te wijzen. Die kunnen hoog, gelijk aan en laag zijn. Hieronder een beschrijving van wat die labels betekenen: Het label low is de laagst - mogelijke labelinstellingen die een object of subject kan - hebben. Deze instelling op objecten of subjects blokkeert - hun toegang tot objecten or subjects met de markering - hoog. + mogelijke labelinstelling die een object of subject kan + hebben. Deze instelling op objecten of subjecten + blokkeert hun toegang tot objecten of subjecten met de + markering hoog. @@ -571,48 +601,49 @@ test: biba/high inzicht in de precieze eigenschappen van de standaard labelinstellingen. - + Gevorderde labelinstellingen - Dit zijn numerieke graden die gebruikt worden voor - vergelijking:afdeling+afdeling;. + Dit zijn de labels met numerieke graden die gebruikt + worden voor + vergelijking:afdeling+afdeling. biba/10:2+3+6(5:2+3-20:2+3+4+5+6) - Het bovenstaande kan dus geiuml;nterpreteerd worden + Het bovenstaande kan dus geïnterpreteerd worden als: - Biba Policy Label/Graad - 10:Afdelingen 2, 3 en 6: + Biba-beleidslabel/Graad + 10:Afdelingen 2, 3 en 6: (graad 5 ...) In dit voorbeeld is de eerste graad de effectieve graad met de effectieve - afdelingen, de tweede graag is is lage graagd en de + afdelingen, de tweede graad is de lage graad en de laatste is de hoge graad. In de meeste instellingen worden deze instellingen niet gebruikt. Ze zijn inderdaad instellingen voor gevorderden. Als ze worden toegepast op systeemobjecten, hebben ze alleen een huidige graad/afdeling in vergelijking met - systeemsubjects, omdat ze de reikwijdte van rechten in het + systeemsubjecten, omdat ze de reikwijdte van rechten in het systeem en op netwerkinterfaces aangeven, waar ze gebruikt - worden door toegangscontrole. + worden voor toegangscontrole. De graad en afdelingen in een subject en object paar - wordt gebruikt om een relatie te construeren die ook wel + wordt gebruikt om een relatie te construeren die dominantie heet, waar een subject een object domineert, geen van beiden domineert, of beiden elkaar domineren. Het geval beiden domineren komt voor als de twee labels gelijk zijn. Vanwege de natuur van de informatiestroom van Biba, heeft een gebruiker rechten - op een set van afdelingen, need to know, die - overeen zouden kunnen komen met projecten, maar objecten - hebben ook een set van afdelingen. Gebruikers dienen - wellicht hun rechten te subsetten met su - of setpmac om toegang te krijgen tot - objecten in een afdeling die geen verboden terrein voor - ze zijn. + op een verzameling van afdelingen, need to + know, die overeen zouden kunnen komen met projecten, + maar objecten hebben ook een verzameling van afdelingen. + Gebruikers dienen wellicht hun rechten onder te verdelen met + su of setpmac om + toegang te krijgen tot objecten in een afdeling die geen + verboden terrein voor ze zijn. @@ -621,12 +652,11 @@ test: biba/high Gebruikers moeten zelf labels hebben, zodat hun bestanden en processen juist kunnen samenwerken met het - beveiligingsbeleid dat op een systeem is ingesteld. Dit - wordt ingesteld via het bestand - login.conf door gebruik te maken van - aanmeldklassen. Iedere beleidsmodule die labels gebruikt - maakt ook gebruik van de instelling voor - aanmeldklasse. + beveiligingsbeleid dat op een systeem is ingesteld. Dit wordt + ingesteld via het bestand login.conf door + gebruik te maken van aanmeldklassen. Iedere beleidsmodule die + labels gebruikt implementeert ook de instelling van de + gebruikersklasse. Een voorbeeld dat iedere instelling uit de beleidsmodule bevat is hieronder te zien: @@ -653,7 +683,7 @@ test: biba/high :passwordtime=91d:\ :umask=022:\ :ignoretime@:\ - :label=partition/13,mls/5,biba/10(5-15),lomac10[2]: + :label=partition/13,mls/5,biba/10(5-15),lomac/10[2]: De optie label wordt gebruikt om het standaardlabel voor aanmeldklasse in te stellen dat door @@ -667,30 +697,28 @@ test: biba/high implementeren. - Gebruikers kunnen hun label wijzigen na het aanmelden, - maar dit is wel afhankelijk van de beperkingen van een - beleidsinstelling. De instelling in het bovenstaande - voorbeeld is zodanig in de beleidseenheid Biba, dat de - minimale integriteit van een proces 5 en het maximum 15 is. - Standaard is het effectieve label 10. Het proces draait - op niveau 10, totdat het label wordt gewijzigd, misschien - door een gebruiker die setpmac gebruikt, - bij het aanmelden beperkt tot de door Biba ingestelde - reeks. + Gebruikers kunnen hun label wijzigen na het + initiële aanmelden, maar dit is wel afhankelijk van de + beperkingen van een beleidsinstelling. Het bovenstaande + voorbeeld vertelt de beleidseenheid Biba dat de minimale + integriteit van een proces 5 en het maximum 15, maar dat het + effectieve label standaard 10 is. Het proces draait op + niveau 10, totdat het het label wijzigt, misschien door een + gebruiker die setpmac gebruikt, bij het + aanmelden beperkt tot de door Biba ingestelde reeks. - In alle gevallen die de aanmeldklasse mogelijkheden - database opnieuw gebouwd te worden met + In alle gevallen dient de database met + aanmeldklassemogelijkheden opnieuw gebouwd te worden met cap_mkdb na het wijzigen van login.conf. Dit wordt ook in alle - komende voorbeelden en beschijvingen gedaan. + komende voorbeelden en beschrijvingen gedaan. - Het is belangrijk op te merken dat in veel gevallen - implementaties te maken hebben met bijzonder grote aantallen - gebruikers waardoor er een aantal verschillende - aanmeldklassen nodig zijn. Het is dan nodig gedetailleerd - te plannen omdat de implementatie anders bijzonder complex - wordt om te onderhouden. + Het is belangrijk op te merken dat in veel gevallen sites + te maken hebben met bijzonder grote aantallen gebruikers + waardoor er een aantal verschillende aanmeldklassen nodig + zijn. Het is dan nodig gedetailleerd te plannen omdat dit + anders bijzonder complex wordt om te onderhouden. Toekomstige versies van &os; kennen een nieuwe manier om om te gaan met het koppelen van gebruikers aan labels. Dit @@ -701,33 +729,33 @@ test: biba/high Netwerkinterfaces en labelinstellingen - Labels kunnen ook ingesteld worden op netwerkinterfaces - om te assisteren bij het controleren van het stromen van - gegevens over het netwerk. In alle gevallen werken ze op - dezelfde wijze als het beleid werkt ten aanzien van objecten. + Labels kunnen ook ingesteld worden op netwerkinterfaces om + te assisteren bij het controleren van het stromen van gegevens + over het netwerk. In alle gevallen werken ze op dezelfde + wijze als het beleid werkt ten aanzien van objecten. Gebruikers met bijvoorbeeld een hoge instelling in biba krijgen geen toegang tot interfaces met een laag label. Het kan meegegeven worden aan - ifconfig als het MAC - label op netwerkinterfaces wordt ingesteld: + ifconfig als het + MAC-label op netwerkinterfaces wordt + ingesteld: &prompt.root; ifconfig bge0 maclabel biba/equal In het bovenstaande voorbeeld wordt het - MAC label van - biba/equal ingesteld op de &man.bge.4; - interface. Als er een instelling wordt gebruikt die - gelijkvormig is aan biba/high(low-high), - dan moet het volledige label worden ingegeven, anders treedt - er een fout op. + MAC-label biba/equal + ingesteld op de interface &man.bge.4;. Als er een instelling + wordt gebruikt die gelijkvormig is aan + biba/high(low-high), dan moet het volledige + label worden ingegeven, anders treedt er een fout op. - Iedere beleidsmodule die labels ondersteunt een - instelling waarmee het MAC op - netwerkinterfaces kan worden uitgeschakeld. Het label - instellen op heeft hetzelfde effect. - Deze instellingen zijn na te kijken in de uitvoer van + Iedere beleidsmodule die labels ondersteunt een instelling + waarmee het MAC-label op netwerkinterfaces + kan worden uitgeschakeld. Het label instellen op + heeft hetzelfde effect. Deze + instellingen zijn na te kijken in de uitvoer van sysctl, de hulppagina van het beleid en zelfs later in dit hoofdstuk. @@ -737,43 +765,43 @@ test: biba/high Enkelvoudig label of meervoudig label? Standaard gebruikt een systeem de optie - option. Wat betekent dit voor een + . Wat betekent dit voor een beheerder? Er zijn een aantal verschillen die allemaal hun eigen voor- en nadelen hebben voor de flexibiliteit in het beveiligingsmodel voor een systeem. Bij gebruik van kan er maar één label, bijvoorbeeld - biba/high, gebruikt worden voor ieder - subject of object. Hierdoor is er minder beheer nodig, maar de + biba/high, gebruikt worden voor ieder subject + of object. Hierdoor is er minder beheer nodig, maar de flexibiliteit voor beleid dat labels ondersteunt daalt erdoor. Veel beheerders willen de optie gebruiken in hun beveiligingsmodel. De optie staat ieder subject of - object toe om zijn eigen onafhankelijke MAC - label te hebben in plaats van de standaardoptie - , die maar één label - toestaat op een hele partitie. De labelopties - en zijn - alleen verplicht voor de beleidseenheden die de mogelijkheid - bieden om te labelen, waaronder de beleidsmorgelijkheden van - Biba, Lomac, MLS en - SEBSD. + object toe om zijn eigen onafhankelijke + MAC-label te hebben in plaats van de + standaardoptie , die maar + één label toestaat op een hele partitie. De + labelopties en + zijn alleen verplicht voor de + beleidseenheden die de mogelijkheid bieden om te labelen, + waaronder de beleidsmogelijkheden van Biba, Lomac, + MLS en SEBSD. - In veel gevallen hoeft niet\ - eens ingesteld te worden. Stel er is de volgende situatie en + In veel gevallen hoeft niet eens + ingesteld te worden. Stel er is de volgende situatie en beveiligingsmodel: - &os; webserver die gebruik maakt van het - MAC framework en een mengeling van + &os;-webserver die gebruik maakt van het + MAC-raamwerk en een mengeling van verschillende beleidseenheden. - De webserver heeft maar een label nodig, + De webserver heeft maar één label nodig, biba/high, voor alles in het systeem. Hier is de optie voor het bestandssysteem niet nodig, omdat een enkelvoudig label @@ -783,157 +811,137 @@ test: biba/high Maar omdat de machine als webserver dienst gaat doen, dient de webserver te draaien als - biba/low om ****write up capabilities**** - te voorkomen. Later wordt beschreven hoe de Biba - beleidseenheid werkt, dus als de voorgaande opmerking wat - lastig te begrijpen is, lees dan verder en kom later nog - een keer terug. De server zou een aparte partitie kunnen - gebruiken waarop biba/low van toepassing - kan zijn voor de meeste, zo niet alle, runtime statussen. - Er ontbreekt veel in dit voorbeeld, bijvoorbeeld de - restricties op gegevens en (gebruikers)instellingen. Dit - was slechts een snel voorbeeld om de hiervoor aangehaalde - stelling te ondersteunen. + biba/low om administratiemogelijkheden te + voorkomen. Later wordt beschreven hoe de beleidseenheid + Biba werkt, dus als de voorgaande opmerking wat lastig te + begrijpen is, lees dan verder en kom later nog een keer + terug. De server zou een aparte partitie kunnen gebruiken + waarop biba/low van toepassing kan zijn + voor de meeste, zo niet alle, runtime-statussen. Er + ontbreekt veel in dit voorbeeld, bijvoorbeeld de restricties + op gegevens en (gebruikers)instellingen. Dit was slechts + een snel voorbeeld om de hiervoor aangehaalde stelling te + ondersteunen. - Als er een niet-labelende beleidseenheid wordt gebruikt, - dan is de optie nooit verplicht. + Als er een niet-labelende beleidseenheid wordt gebruikt, dan + is de optie nooit verplicht. Hieronder vallen de beleidseenheden seeotheruids, portacl en partition. Bij gebruik van voor een partitie en het neerzetten van een beveiligingsmodel gebaseerd - op functionaliteit gaat de deur - open voor hogere administratieve overhead, omdat alles in een + op functionaliteit gaat de deur open + voor hogere administratieve rompslomp, omdat alles in een bestandssysteem een label krijgt. Hieronder vallen mappen, - bestanden en zelfs apparaatnodes. + bestanden en zelfs apparaatknooppunten. Het volgende commando stelt in - op de bestandssystemen om meerdere labels te kunnen kringen. - Dit kan alleen uitgevoerd worden in single user modus: + op de bestandssystemen om meerdere labels te kunnen krijgen. + Dit kan alleen uitgevoerd worden in enkele gebruikersmodus: &prompt.root; tunefs -l enable / - Dit is geen criterium voor het swap bestandssysteem. + Dit is geen criterium voor het wisselbestandssysteem. Sommige gebruikers hebben problemen ondervonden met het - instelling van de vlag op de + instellen van de vlag op de rootpartitie. Als dit het geval is, kijk dan naar . + linkend="mac-troubleshoot"> van dit hoofdstuk. + - - MAC beheren met tunables + + De beveiligingsconfiguratie plannen - Zonder dat er modules zijn geladen, kunnen er al onderdelen - van MAC ingesteld worden met de - sysctl interface. Deze tunables worden - hieronder beschreven en in alle gevallen betekent het getal een - (1) ingeschakeld en nul (0) betekent uitgeschakeld: + Wanneer een nieuwe technologie wordt geïmplementeerd is + een planningsfase altijd een goed idee. Tijdens de planningsfases + zou een beheerder in het algemeen naar de big + picture moeten kijken, en daarbij minstens het volgende + in de gaten proberen te houden: - - - security.mac.enforce_fs staat - standaard op een (1) en dwingt MAC - bestandssysteembeleid af op bestandssystemen. - + + + De implementatiebenodigdheden; + - - security.mac.enforce_kld staat - standaard op een (1) en dwingt MAC - kernellinkingbeleid af op de dynamische kernellinker (zie - &man.kld.4;). - + + De implementatiedoelen; + + - - security.mac.enforce_network staat - standaard op een (1) en dwingt MAC - netwerkbeleid af. - + Voor MAC-installaties houden deze in: - - security.mac.enforce_pipe staat - standaard op een (1) en dwingt MAC - beleid op pipes af. - + + + Hoe de beschikbare informatie en bronnen die op het + doelsysteem aanwezig zijn te classificeren. + - - security.mac.enforce_process staat - standaard op een (1) en dwingt MAC - beleid af op processen die gebruik maken van inter-proces - communicatie. - + + Voor wat voor soort informatie of bronnen de toegang te + beperken samen met het type van de beperkingen die dienen te + worden toegepast. + - - security.mac.enforce_socket staat - standaard op een (1) en dwingt MAC - beleid op sockets af (zie &man.socket.2;). - + + Welke MAC-module(s) nodig zullen zijn + om dit doel te bereiken. + + - - security.mac.enforce_system staat - standaard op een (1) en dwingt MAC - beleid af op op systeemactiviteit zoals accounting en - herstarten. - + Het is altijd mogelijk om de systeembronnen en de + beveiligingsinstellingen te veranderen en te herconfigureren, het + komt vaak erg ongelegen om het systeem te doorzoeken en bestaande + bestanden en gebruikersaccounts te repareren. Plannen helpt om + zeker te zijn van een probleemloze en efficiënte + systeemimplementatie. Het is vaak vitaal en zeker in uw voordeel + om een proefronde van het vertrouwde systeem, inclusief de + configuratie, te draaien + vóórdat een + MAC-implementatie wordt gebruikt op + productiesystemen. Het idee om een systeem met + MAC gewoon los te laten is als het plannen van + mislukkingen. - - security.mac.enforce_vm staat - standaard op een (1) en dwingt MAC - beleid af op het virtuele geheugensysteem. - - - - - Ieder beleid of MAC optie ondersteunt - tunables. Die zijn in het algemeen te vinden in de - boomstructuur - security.mac.<policyname>. Alle - tunables voor MAC zijn met het volgende - commando zichtbaar te maken: - - &prompt.root; sysctl -da | grep mac - - - Dit moet opgevat worden als dat alle basis - MAC beleidseenheden standaard worden - afgedwonen. Als de modules in de kernel zouden zijn gebouwd, - zou een systeem bijzonder sterk zijn dichtgetimmerd en zeer - waarschijnlijk niet kunnen communiceren met een lokaal netwerk - of verbonden kunnen worden met internet, enzovoort. Om deze - reden is het inbouwen van modules in de kernel niet volledig - aan te raden. Niet omdat het de mogelijkheid om opties direct - uit te schakelen met sysctl limiteert, maar - het stelt een beheerder in staat om beleid direct aan of uit te - schakelen zonder dat een nieuw systeem gebouwd en - geïnstalleerd hoeft te worden. - + Verschillende omgevingen kunnen verschillende behoeften en + benodigdheden nodig hebben. Het opzetten van een diepgaand en + compleet beveiligingsprofiel zal de noodzaak van verandering + verminderen wanneer het systeem in gebruik wordt genomen. + Zodoende zullen de toekomstige secties de verschillende modules + die beschikbaar zijn voor beheerders behandelen; hun gebruik en + configuratie beschrijven; en in sommige gevallen inzicht bieden in + welke situaties ze het beste tot hun recht komen. Een webserver + bijvoorbeeld zou de beleiden &man.mac.biba.4; en + &man.mac.bsdextended.4; in gebruik nemen. In andere gevallen kan + voor een machine met erg weinig lokale gebruikers + &man.mac.partition.4; een goede keuze zijn. Module-instellingen - Iedere module uit het MAC framework kan + Iedere module uit het MAC-raamwerk kan zoals zojuist aangegeven in de kernel worden gecompileerd of als - runtime kernelmodule geladen worden. De geadviseerde methode is + runtime-kernelmodule geladen worden. De geadviseerde methode is de naam van een module toevoegen aan het bestand /boot/loader.conf zodat die wordt geladen tijdens de eerste fase van het starten van een systeem. In de volgende onderdelen worden de verschillende - MAC modules en hun mogelijkheden beschreven. - De implementatie in een specifieke omgeving wordt in dit - hoofdstuk ook meegenomen. Een aantal modules ondersteunt het - gebruik van labelen, wat het beperken van toegang is door een - label als dit is toegestaan en dat niet af te - dwingen. Een labelinstellingenbestand kan bepalen hoe bestanden - kunnen worden benaderd, hoe netwerkcommunicatie wordt - uitgewisseld en meer. In het vorige onderdeel is beschreven hoe - de vlag ingesteld kon worden op + MAC-modules en hun mogelijkheden beschreven. + De implementatie in een specifieke omgeving wordt ook in dit + hoofdstuk beschreven. Een aantal modules ondersteunt het gebruik + van labelen, wat het beperken van toegang is door een label als + dit is toegestaan en dat niet af te dwingen. Een + labelinstellingenbestand kan bepalen hoe bestanden kunnen worden + benaderd, hoe netwerkcommunicatie wordt uitgewisseld, en meer. In + het vorige onderdeel is beschreven hoe de vlag + ingesteld kon worden op bestandssystemen om per bestand of per partitie toegangscontrole in te schakelen. @@ -941,73 +949,71 @@ test: biba/high één label over een heel systeem afdwingen, daarom wordt de optie tunefs genoemd. + - - MAC module seeotheruids + + MAC-module seeotheruids - MAC zie andere UID's beleidsinstelling + MAC zie andere UID's beleidsinstelling - Modulenaam: mac_seeotheruids.ko + Modulenaam: mac_seeotheruids.ko - Kernelinstelling: options - MAC_SEEOTHERUIDS + Kernelinstelling: options + MAC_SEEOTHERUIDS - Bootoptie: - mac_seeotheruids_load="YES" + Opstartoptie: + mac_seeotheruids_load="YES" - De module &man.mac.seeotheruids.4; imiteert de - sysctl tunables - security.bsd.see_other_uids en - security.bsd.see_other_gids en bereidt deze - uit. Voor deze optie hoeven geen labels ingesteld te worden - voor de instelling en hij werkt transparant met de andere - modules. + De module &man.mac.seeotheruids.4; imiteert de + sysctl-tunables + security.bsd.see_other_uids en + security.bsd.see_other_gids en breidt deze + uit. Voor deze optie hoeven geen labels ingesteld te worden voor + de instelling en hij werkt transparant met de andere modules. - Na het laden van de module kunnen de volgende - sysctl tunables gebruikt worden om de opties - in te stellen: + Na het laden van de module kunnen de volgende + sysctl-tunables gebruikt worden om de opties te + beheren: - - - security.mac.seeotheruids.enabled - schakelt de opties van de module in en gebruikt de - standaardinstellingen. Deze standaardinstellingen - ontzeggen gebruikt de mogelijkheid processen en sockets te - zien die in eigendom zijn van andere gebruikers. - + + + security.mac.seeotheruids.enabled + schakelt de opties van de module in en gebruikt de + standaardinstellingen. Deze standaardinstellingen ontzeggen + gebruikt de mogelijkheid processen en sockets te zien die + eigendom zijn van andere gebruikers. + - - security.mac.seeotheruids.specificgid_enabled - staat toe dat een bepaalde groep niet onder dit beleid - valt. Om bepaalde groepen van dit beleid uit te sluiten, - kan de sysctl tunable - security.mac.seeotheruids.specificgid=XXX - gebruikt worden. In het bovenstaande voorbeeld dient - XXX vervangen te worden door het - numerieke ID van een groep die uitgesloten moet worden van - de beleidsinstelling. - + + security.mac.seeotheruids.specificgid_enabled + staat toe dat een bepaalde groep niet onder dit beleid valt. + Om bepaalde groepen van dit beleid uit te sluiten, kan de + sysctl-tunable + security.mac.seeotheruids.specificgid=XXX + gebruikt worden. In het bovenstaande voorbeeld dient + XXX vervangen te worden door het + numerieke ID van een groep die uitgesloten moet worden van de + beleidsinstelling. + - - - security.mac.seeotheruids.primarygroup_enabled - wordt gebruikt om specifieke primaire groepen uit te - sluiten van dit beleid. Als deze tunable wordt gebruikt, - mag - security.mac.seeotheruids.specificgid_enabled - niet gebruikt worden. - - - + + + security.mac.seeotheruids.primarygroup_enabled + wordt gebruikt om specifieke primaire groepen uit te sluiten + van dit beleid. Als deze tunable wordt gebruikt, mag + security.mac.seeotheruids.specificgid_enabled + niet gebruikt worden. + + - MAC module bsdextended + MAC-module bsdextended MAC - bestandssysteem firewall beleidsinstelling + bestandssysteemfirewall beleidsinstelling Modulenaam: mac_bsdextended.ko @@ -1015,25 +1021,34 @@ test: biba/high Kernelinstelling: options MAC_BSDEXTENDED - Bootoptie: + Opstartoptie: mac_bsdextended_load="YES" De module &man.mac.bsdextended.4; dwingt de bestandssysteemfirewall af. Het beleid van deze module biedt een uitbreiding van het standaard rechtenmodel voor bestandssystemen, - waardoor een beheerder een firewallachtige set met regels kan - maken om bestanden, programma's en mappen in de - bestandssysteemhierarchie te beschermen. + waardoor een beheerder een firewallachtige verzameling met regels + kan maken om bestanden, programma's en mappen in de + bestandssysteemhiërarchie te beschermen. Wanneer geprobeerd + wordt om toegang tot een object in het bestandssysteem te krijgen, + wordt de lijst met regels afgelopen totdat er òf een + overeenkomstige regel is gevonden òf het einde van de lijst + is bereikt. Dit gedrag kan veranderd worden door het gebruik van + de &man.sysctl.8;-parameter + security.mac.bsdextended.firstmatch_enabled. Net zoals andere + firewall-modules in &os; kan een bestand dat regels voor + toegangscontrole bevat tijdens het opstarten door het systeem + worden aangemaakt en gelezen door een &man.rc.conf.5;-variabele te + gebruiken. - Het beleid kan gemaakt worden met het hulpprogramma + De lijst met regels kan ingevoerd worden met het hulpprogramma &man.ugidfw.8;, dat een syntaxis heeft die lijkt op die van &man.ipfw.8;. Meer hulpprogramma's kunnen geschreven worden met de functies in de bibliotheek &man.libugidfw.3;. Bij het werken met deze module dient bijzondere voorzichtigheid in acht te worden genomen. Verkeerd gebruik kan - toegang tot bepaalde delen van het bestandssysteem - blokkeren. + toegang tot bepaalde delen van het bestandssysteem blokkeren. Voorbeelden @@ -1045,53 +1060,45 @@ test: biba/high 0 slots, 0 rules Zoals verwacht zijn er geen regels ingesteld. Dit betekent - dat alles nodig steeds volledig toegankelijk is. Om een regel - te maken die alle toegang voor alle gebruikers behalve + dat alles nog steeds volledig toegankelijk is. Om een regel te + maken die alle toegang voor alle gebruikers behalve root ontzegt: &prompt.root; ugidfw add subject not uid root new object not uid root mode n - - In versies voor &os; 5.3 bestond de parameter - add niet. In die gevallen dient in - plaats daarvan set gebruikt te worden - als in het onderstaande voorbeeld. - - Dit is een slecht idee, omdat het voorkomt dat alle gebruikers ook maar het meest eenvoudige commando kunnen - uitvoeren, zoals ls. Een betere lijst van + uitvoeren, zoals ls. Een betere lijst met regels zou kunnen zijn: - &prompt.root; ugidfw set 2 subject uid user1 object uid user2 mode n -&prompt.root; ugidfw set 3 subject uid user1 object gid user2 mode n + &prompt.root; ugidfw set 2 subject uid gebruiker1 object uid gebruiker2 mode n +&prompt.root; ugidfw set 3 subject uid gebruiker1 object gid gebruiker2 mode n Hiermee wordt alle toegang, inclusief het tonen van mapinhoud, tot de thuismap van - user2 ontzegd - voor de gebruikersnaam user1. + gebruiker2 + ontzegd voor de gebruikersnaam gebruiker1. - In plaats van user1, zou kunnen worden - opgegeven. Hierdoor worden dezelfde restricties als hierboven - actief voor alle gebruikers in plaats van voor slechts een - gebruiker. + In plaats van gebruiker1, zou + + kunnen worden opgegeven. Hierdoor worden dezelfde restricties + als hierboven actief voor alle gebruikers in plaats van voor + slechts één gebruiker. De gebruiker root blijft onaangetast door deze wijzigingen. - Met deze informatie zou een basisbegrip moeten zijn - ontstaan over hoe de module &man.mac.bsdextended.4; gebruikt - kan worden om een bestandssysteem te beschermen. Meer - informatie staat in de hulppagina's van &man.mac.bsdextended.4; - en &man.ugidfw.8;. + Met deze informatie zou een basisbegrip moeten zijn ontstaan + over hoe de module &man.mac.bsdextended.4; gebruikt kan worden + om een bestandssysteem te beschermen. Meer informatie staat in + de hulppagina's van &man.mac.bsdextended.4; en &man.ugidfw.8;. - MAC module ifoff + MAC-module ifoff MAC Interface Silencing beleidsinstelling @@ -1100,277 +1107,176 @@ test: biba/high Kernelinstelling: options MAC_IFOFF - Bootoptie: mac_ifoff_load="YES" + Opstartoptie: mac_ifoff_load="YES" - !!!The &man.mac.ifoff.4; module exists solely to disable network - interfaces on the fly and keep network interfaces from being - brought up during the initial system boot. It does not require - any labels to be set up on the system, nor does it have a - dependency on other MAC modules. + De module &man.mac.ifoff.4; bestaat alleen om + netwerkinterfaces tijdens het draaien uit te schakelen en om te + verhinderen dat netwerkinterfaces tijdens het initiële + opstarten worden geactiveerd. Er hoeven geen labels ingesteld te + worden, noch is deze module afhankelijk van andere + MAC-modules. - Most of the control is done through the - sysctl tunables listed below. + Het meeste beheer wordt gedaan met de + sysctl-tunables die hieronder zijn vermeld. - security.mac.ifoff.lo_enabled will - enable/disable all traffic on the loopback (&man.lo.4;) - interface. + security.mac.ifoff.lo_enabled schakelt + alle verkeer op teruglusinterface (&man.lo.4;) in of of uit. - security.mac.ifoff.bpfrecv_enabled will - enable/disable all traffic on the Berkeley Packet Filter - interface (&man.bpf.4;) + security.mac.ifoff.bpfrecv_enabled + schakelt alle verkeer op het Berkeley Packet Filterinterface + (&man.bpf.4;) in of uit. - security.mac.ifoff.other_enabled will - enable/disable traffic on all other interfaces. + security.mac.ifoff.other_enabled + schakelt alle verkeer op alle andere interfaces in of uit. - One of the most common uses of &man.mac.ifoff.4; is network - monitoring in an environment where network traffic should not - be permitted during the boot sequence. Another suggested use - would be to write a script which uses - security/aide to automatically - block network traffic if it finds new or altered files in - protected directories. + &man.mac.ifoff.4; wordt het meest gebruikt om netwerken te + monitoren in een omgeving waar netwerkverkeer niet toegestaan zou + moeten zijn tijdens het opstarten. Een ander voorgesteld gebruik + zou het schrijven van een script zijn dat security/aide gebruikt om automatisch + netwerkverkeer te blokkeren wanneer het nieuwe of veranderde + bestanden in beschermde mappen vindt. - MAC module portacl + MAC-module portacl - MAC poort toegangscontrolelijst beleidsinstelling + MAC poorttoegangscontrolelijst beleidsinstelling Modulenaam: mac_portacl.ko Kernelinstelling: MAC_PORTACL - Bootoptie: mac_portacl_load="YES" + Opstartoptie: mac_portacl_load="YES" - The &man.mac.portacl.4; module is used to limit binding to - local TCP and UDP ports - using a variety of sysctl variables. In - essence &man.mac.portacl.4; makes it possible to allow - non-root users to bind to specified - privileged ports, i.e. ports fewer than 1024. + De module &man.mac.portacl.4; wordt gebruikt om het binden aan + lokale TCP- en UDP-poorten + te begrenzen door een waaier aan + sysctl-variabelen te gebruiken. In essentie + maakt &man.mac.portacl.4; het mogelijk om + niet-root-gebruikers in staat te stellen om + aan gespecificeerde geprivilegieerde poorten te binden, dus + poorten lager dan 1024. - Once loaded, this module will enable the - MAC policy on all sockets. The following - tunables are available: + Eenmaal geladen zal deze module het + MAC-beleid op alle sockets aanzetten. De + volgende tunables zijn beschikbaar: - security.mac.portacl.enabled will - enable/disable the policy completely.Due to - a bug the security.mac.portacl.enabled - sysctl variable will not work on - &os; 5.2.1 or previous releases. + security.mac.portacl.enabled schakelt + het beleid volledig in of uit. - security.mac.portacl.port_high will set - the highest port number that &man.mac.portacl.4; - will enable protection for. + security.mac.portacl.port_high stelt + het hoogste poortnummer in waarvoor &man.mac.portacl.4; + bescherming biedt. - security.mac.portacl.suser_exempt will, - when set to a non-zero value, exempt the - root user from this policy. + security.mac.portacl.suser_exempt sluit + de gebruiker root uit van dit beleid + wanneer het op een waarde anders dan nul wordt ingesteld. - security.mac.portacl.rules will - specify the actual mac_portacl policy; see below. + security.mac.portacl.rules specificeert + het eigenlijke beleid van mac_portacl; zie onder. - The actual mac_portacl policy, as - specified in the security.mac.portacl.rules - sysctl, is a text string of the form: - rule[,rule,...] with as many rules as - needed. Each rule is of the form: - idtype:id:protocol:port. The - idtype parameter can be - uid or gid and used to - interpret the id parameter as either a - user id or group id, respectively. The - protocol parameter is used to determine if - the rule should apply to TCP or - UDP by setting the parameter to - tcp or udp. The final - port parameter is the port number to allow - the specified user or group to bind to. + Het eigenlijke beleid van mac_portacl, + zoals gespecificeerd in de sysctl + security.mac.portacl.rules, is een tekststring + van de vorm: regel[,regel,...] met zoveel + regels als nodig. Elke regel heeft de vorm: + idtype:id:protocol:poort. De parameter + idtype kan uid of + gid zijn en wordt gebruikt om de parameter + + id als respectievelijk een gebruikers-id of + groeps-id te interpreteren. De parameter + protocol wordt gebruikt om te bepalen of de + regel op TCP of UDP moet + worden toegepast door de parameter op tcp of + udp in te stellen. De laatste parameter + poort is het poortnummer waaraan de + gespecificeerde gebruiker of groep zich mag binden. - Since the ruleset is interpreted directly by the kernel - only numeric values can be used for the user ID, group ID, and - port parameters. I.e. user, group, and port service names - cannot be used. + Aangezien de regelverzameling direct door de kernel wordt + geïnterpreteerd kunnen alleen numerieke waarden voor de + parameters voor de gebruikers-ID, groeps-ID, en de poort + gebruikt worden. Namen van gebruikers, groepen, en + poortdiensten kunnen dus niet gebruikt worden. - By default, on &unix;-like systems, ports fewer than 1024 - can only be used by/bound to privileged processes, - i.e. those run as root. For - &man.mac.portacl.4; to allow non-privileged processes to bind - to ports below 1024 this standard &unix; restriction has to be - disabled. This can be accomplished by setting the &man.sysctl.8; - variables net.inet.ip.portrange.reservedlow and - net.inet.ip.portrange.reservedhigh - to zero. + Standaard kunnen op &unix;-achtige systemen poorten lager dan + 1024 alleen aan geprivilegieerde processen gebonden worden, dus + diegenen die als root draaien. Om + &man.mac.portacl.4; toe te laten staan om ongeprivilegieerde + processen aan poorten lager dan 1024 te laten binden moet deze + standaard &unix;-beperking uitgezet worden. Dit kan bereikt + worden door de &man.sysctl.8;-variabelen + net.inet.ip.portange.reservedlow en + net.inet.ip.portrange.reservedhigh op nul te + zetten. - See the examples below or review the &man.mac.portacl.4; - manual page for further information. + Zie de onderstaande voorbeelden of bekijk de handleidingpagina + voor &man.mac.portacl.4; voor meer informatie. Voorbeelden - The following examples should illuminate the above - discussion a little better: + De volgende voorbeelden zouden de bovenstaande discussie wat + moeten toelichten: &prompt.root; sysctl security.mac.portacl.port_high=1023 &prompt.root; sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0 - First we set &man.mac.portacl.4; to cover the standard - privileged ports and disable the normal &unix; bind - restrictions. + Eerst wordt &man.mac.portacl.4; ingesteld om de standaard + geprivilegieerde poorten te dekken en worden de normale + bindbeperkingen van &unix; uitgeschakeld. &prompt.root; sysctl security.mac.portacl.suser_exempt=1 - The root user should not be crippled - by this policy, thus set the - security.mac.portacl.suser_exempt to a - non-zero value. The &man.mac.portacl.4; module - has now been set up to behave the same way &unix;-like systems - behave by default. + De gebruiker root zou niet beperkt + moeten worden door dit beleid, stel + security.mac.portacl.suser_exempt dus in op + een waarde anders dan nul. De module &man.mac.portacl.4; is nu + ingesteld om zich op de zelfde manier te gedragen als + &unix;-achtige systemen zich standaard gedragen. &prompt.root; sysctl security.mac.portacl.rules=uid:80:tcp:80 - Allow the user with UID 80 (normally - the www user) to bind to port 80. - This can be used to allow the www - user to run a web server without ever having - root privilege. + Sta de gebruiker met UID 80 (normaliter + de gebruiker www) toe om zich aan poort 80 + te binden. Dit kan gebruikt worden om de gebruiker + www toe te staan een webserver te draaien + zonder ooit root-rechten te hebben. &prompt.root; sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995 - Permit the user with the UID of - 1001 to bind to the TCP ports 110 - (pop3) and 995 (pop3s). - This will permit this user to start a server that accepts - connections on ports 110 and 995. - - - - - MAC beleidsinstellingen met labelmogelijkheden - - The next few sections will discuss MAC - policies which use labels. - - From here on this chapter will focus on the features - of &man.mac.biba.4;, &man.mac.lomac.4;, - &man.mac.partition.4;, and &man.mac.mls.4;. - - - This is an example configuration only and should not be - considered for a production implementation. The goal is - to document and show the syntax as well as examples for - implementation and testing. - - - For these policies to work correctly several - preparations must be made. - - - Voorbereiding voor labelbeleidsinstellingen - - The following changes are required in the - login.conf file: - - - - An insecure class, or another - class of similar type, must be - added. The login class of insecure - is not required and just used as an example here; different - configurations may use another class name. - - - - The insecure class should have - the following settings and definitions. Several of these - can be altered but the line which defines the default - label is a requirement and must remain. - - 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=partition/13,mls/5,biba/low: - - The &man.cap.mkdb.1; command needs to be ran on - &man.login.conf.5; before any of the - users can be switched over to the new class. - - The root username should also be placed - into a login class; otherwise, almost every command - executed by root will require the - use of setpmac. - - - Rebuilding the login.conf - database may cause some errors later with the daemon - class. Simply uncommenting the daemon account and - rebuilding the database should alleviate these - issues. - - - - - Ensure that all partitions on which - MAC labeling will be implemented support - the . We must do this because - many of the examples here contain different labels for - testing purposes. Review the output from the - mount command as a precautionary - measure. - - - - Switch any users who will have the higher security - mechanisms enforced over to the new user class. A quick - run of &man.pw.8; or &man.vipw.8; should do the - trick. - - + Sta de gebruiker met UID 1001 om zich aan + de TCP-poorten 110 (pop3) en + 995 (pop3s) te binden. Dit staat deze gebruiker + toe om een server te starten die verbindingen accepteert op + poorten 110 en 995. - MAC module partition + MAC-module partition MAC procespartitionering beleidsinstelling @@ -1379,86 +1285,84 @@ test: biba/high Kernelinstelling: options MAC_PARTITION - Bootoptie: + Opstartoptie: mac_partition_load="YES" - The &man.mac.partition.4; policy will drop processes into - specific partitions based on their - MAC label. Think of it as a special - type of &man.jail.8;, though that is hardly a worthy - comparison. + Het beleid &man.mac.partition.4; plaatst processen in + specifieke partities gebaseerd op hun + MAC-label. Zie dit als een speciaal soort + &man.jail.8;, hoewel dit nauwelijks een waardige vergelijking is. - This is one module that should be added to the - &man.loader.conf.5; file so that it loads - and enables the policy during the boot process. + Dit is één module die aan het bestand + &man.loader.conf.5; dient te worden toegevoegd zodat het het + beleid tijdens het opstartproces laadt en aanzet. - Most configuration for this policy is done using - the &man.setpmac.8; utility which will be explained below. - The following sysctl tunable is - available for this policy: + De meeste configuratie van dit beleid wordt gedaan met het + gereedschap &man.setpmac.8;, wat hieronder zal worden uitgelegd. + De volgende sysctl-tunable is beschikbaar voor + dit beleid: - security.mac.partition.enabled will - enable the enforcement of MAC process - partitions. + security.mac.partition.enabled zet het + afdwingen van MAC-procespartities aan. - When this policy is enabled, users will only be permitted - to see their processes but will not be permitted to work with - certain utilities. For instance, a user in the - insecure class above will not be permitted - to access the top command as well as many - other commands that must spawn a process. + Wanneer dit beleid aanstaat, mogen gebruikers alleen hun eigen + processen zien, en elke andere in hun partitie, maar mogen niet + met gereedschappen buiten deze partitie werken. Bijvoorbeeld, een + gebruiker in de klasse insecure heeft geen + toegang tot het commando top noch tot vele + andere commando's die een proces moeten draaien. - To set or drop utilities into a partition label, use the - setpmac utility: + Gebruik het gereedschap setpmac om + gereedschappen in te stellen of ze in een partitielabel te + plaatsen: &prompt.root; setpmac partition/13 top - This will add the top command to the - label set on users in the insecure class. - Note that all processes spawned by users - in the insecure class will stay in the - partition/13 label. + Dit zal het commando top toevoegen aan het + label dat voor gebruikers in de klasse insecure + gebruikt wordt. Merk op dat alle processen gestart door + gebruikers in de klasse insecure in het label + partition/13 zullen blijven. Voorbeelden - The following command will show you the partition label - and the process list: + Het volgende commando laat de partitielabel en de + proceslijst zien: &prompt.root; ps Zax - This next command will allow the viewing of another - user's process partition label and that user's currently - running processes: + Het volgende commando staat toe om het procespartitielabel + van een andere gebruiker en de momenteel draaiende processen van + die gebruiker te zien: &prompt.root; ps -ZU trhodes - Users can see processes in root's - label unless the &man.mac.seeotheruids.4; policy is - loaded. + Gebruikers kunnen processen in het label van + root zien tenzij het beleid + &man.mac.seeotheruids.4; is geladen. - A really crafty implementation could have all of the - services disabled in /etc/rc.conf and - started by a script that starts them with the proper - labeling set. + Een echte vakmansimplementatie zou alle diensten in + /etc/rc.conf uitzetten en deze door een + script met de juiste labeling laten starten. - The following policies support integer settings - in place of the three default labels offered. These options, - including their limitations, are further explained in - the module manual pages. + De volgende beleiden ondersteunen integerinstellingen in + plaats van de drie standaardlabels die aangeboden worden. + Deze opties, inclusief hun beperkingen, worden verder + uitgelegd in de handleidingpagina's van de modules. - MAC module meerlagen beveiliging + MAC-module Multi-Level Security MAC Multi-Level Security Policy @@ -1469,140 +1373,165 @@ test: biba/high Kernelinstelling: options MAC_MLS - Bootoptie: mac_mls_load="YES" + Opstartoptie: mac_mls_load="YES" - The &man.mac.mls.4; policy controls access between subjects - and objects in the system by enforcing a strict information - flow policy. + Het beleid &man.mac.mls.4; beheert toegang tussen subjecten en + objecten in het systeem door een strikt beleid voor + informatiestromen af te dwingen. - In MLS environments, a - clearance level is set in each subject or objects - label, along with compartments. Since these clearance or - sensibility levels can reach numbers greater than six thousand; - it would be a daunting task for any system administrator to - thoroughly configure each subject or object. Thankfully, three - instant labels are already included in this - policy. + In MLS-omgevingen wordt een + toestemming-niveau ingesteld in het label van elk + subject of object, samen met compartimenten. Aangezien deze + toestemmings- of zinnigheidsniveaus getallen groter dan zesduizend + kunnen bereiken; zou het voor elke systeembeheerder een + afschrikwekkende taak zijn om elk subject of object grondig te + configureren. Gelukkig worden er al drie + kant-en-klare bij dit beleid geleverd. - These labels are mls/low, - mls/equal and mls/high. - Since these labels are described in depth in the manual page, - they will only get a brief description here: + Deze labels zijn mls/low, + mls/equal en mls/high. + Aangezien deze labels uitgebreid in de handleidingpagina worden + beschreven, worden ze hier slechts kort beschreven: - The mls/low label contains a low - configuration which permits it to be dominated by all other - objects. Anything labeled with mls/low - will have a low clearance level and not be permitted to access - information of a higher level. In addition, this label will - prevent objects of a higher clearance level from writing or - passing information on to them. + Het label mls/low bevat een lage + configuratie welke het toestaat om door alle andere objecten + te worden gedomineerd. Alles dat met + mls/low is gelabeld heeft een laag + toestemmingsniveau en heeft geen toegang tot informatie van + een hoger niveau. Ook voorkomt dit label dat objecten van een + hoger toestemmingsniveau informatie naar hen schrijven of aan + hen doorgeven. - The mls/equal label should be - placed on objects considered to be exempt from the - policy. + Het label mls/equal dient geplaatst te + worden op objecten die geacht te zijn uitgesloten van het + beleid. - The mls/high label is the highest level - of clearance possible. Objects assigned this label will - hold dominance over all other objects in the system; however, - they will not permit the leaking of information to objects - of a lower class. + Het label mls/high is het hoogst + mogelijke toestemmingsniveau. Objecten waaraan dit label is + toegekend zijn dominant over alle andere objecten in het + systeem; ze mogen echter geen informatie lekken naar objecten + van een lagere klasse. - MLS provides for: + MLS biedt: - A hierarchical security level with a set of non - hierarchical categories; + Een hiërarchisch beveiligingsniveau met een + verzameling niet-hiërarchische categoriën; - Fixed rules: no read up, no write down (a subject can - have read access to objects on its own level or below, but - not above. Similarly, a subject can have write access to - objects on its own level or above but not beneath.); + Vaste regels: niet naar boven lezen, niet naar beneden + schrijven (een subject kan leestoegang hebben naar objecten op + zijn eigen niveau of daaronder, maar niet daarboven. Evenzo + kan een subject schrijftoegang hebben naar objecten op zijn + eigen niveau of daarboven maar niet daaronder.); - Secrecy (preventing inappropriate disclosure - of data); + Geheimhouding (voorkomt ongeschikte openbaarmaking van + gegevens); - Basis for the design of systems that concurrently handle - data at multiple sensitivity levels (without leaking - information between secret and confidential). + Een basis voor het ontwerp van systemen die gelijktijdig + gegevens op verschillende gevoeligheidsniveaus behandelen + (zonder informatie tussen geheim en vertrouwelijk te lekken). - The following sysctl tunables are - available for the configuration of special services and - interfaces: + De volgende sysctl-tunables zijn + beschikbaar voor de configuratie van speciale diensten en + interfaces: - security.mac.mls.enabled is used to - enable/disable the MLS policy. + security.mac.mls.enabled wordt gebruikt + om het MLS-beleid in en uit te schakelen. - security.mac.mls.ptys_equal will label - all &man.pty.4; devices as mls/equal during - creation. + security.mac.mls.ptys_equal labelt alle + &man.pty.4;-apparaten als mls/equal wanneer + ze worden aangemaakt. - security.mac.mls.revocation_enabled is - used to revoke access to objects after their label changes - to a label of a lower grade. + security.mac.mls.revocation_enabled + wordt gebruikt om toegang tot objecten in te trekken nadat hun + label in die van een lagere graad verandert. - security.mac.mls.max_compartments is - used to set the maximum number of compartment levels with - objects; basically the maximum compartment number allowed - on a system. + security.mac.mls.max_compartments wordt + gebruikt om het maximaal aantal compartimentniveaus met + objecten in te stellen; in feite het maximale + compartimentnummer dat op een systeem is toegestaan. - To manipulate the MLS labels, the - &man.setfmac.8; command has been provided. To assign a label - to an object, issue the following command: + Het commando &man.setfmac.8; kan gebruikt worden om de + MLS-labels te manipuleren. Gebruik het + volgende commando om een label aan een object toe te kennen: &prompt.root; setfmac mls/5 test - To get the MLS label for the file - test issue the following command: + Gebruik het volgende commando om het + MLS-label voor het bestand + test te verkrijgen: &prompt.root; getfmac test - This is a summary of the MLS - policy's features. Another approach is to create a master policy - file in /etc which - specifies the MLS policy information and to - feed that file into the setfmac command. This - method will be explained after all policies are covered. + Dit is een samenvatting van de mogelijkheden van het beleid + MLS. Een andere manier is om een + meesterbeleidsbestand in /etc aan te maken dat de + MLS-informatie bevat en om dat bestand aan het + commando setfmac te geven. Deze methode wordt + uitgelegd nadat alle beleiden zijn behandeld. - Observations: an object with lower clearance is unable to - observe higher clearance processes. A basic policy would be - to enforce mls/high on everything not to be - read, even if it needs to be written. Enforce - mls/low on everything not to be written, even - if it needs to be read. And finally enforce - mls/equal on the rest. All users marked - insecure should be set at - mls/low. + + Verplichte Gevoeligheid plannen + + Met de beleidsmodule voor meerlaagse beveiliging plant een + beheerder het beheren van gevoelige informatiestromen. + Standaard zet het systeem met zijn natuur van lezen naar boven + blokkeren en schrijven naar beneden blokkeren alles in een lage + toestand. Alles is beschikbaar en een beheerder verandert dit + langzaam tijdens de configuratiefase; waarbij de + vertrouwelijkheid van de informatie toeneemt. + + Buiten de bovengenoemde drie basisopties voor labels, kan + een beheerder gebruikers en groepen indelen als nodig om de + informatiestroom tussen hun te blokkeren. Het is misschien + gemakkelijker om naar de informatie te kijken in + toestemmingsniveaus waarvoor bekende woorden bestaan, zoals + Vertrouwelijk, Geheim en + Strikt Geheim. Sommige beheerders zullen + verschillende groepen aanmaken gebaseerd op verschillende + projecten. Ongeacht de classificatiemethode moet er een goed + overwogen plan bestaan voordat zo'n berperkend beleid wordt + geïmplementeerd. + + Wat voorbeeldsituaties voor deze beveiligingsbeleidsmodule + kunnen een e-commerce webserver, een bestandsserver die kritieke + bedrijfsinformatie, en omgevingen van financiële + instellingen zijn. De meest onwaarschijnlijke plaats zou een + persoonlijk werkstation met slechts twee of drie gebruikers + zijn. + - MAC module Biba + MAC-module Biba MAC Biba Integrity Policy @@ -1612,187 +1541,237 @@ test: biba/high Kernelinstelling: options MAC_BIBA - Bootoptie: mac_biba_load="YES" + Opstartoptie: mac_biba_load="YES" - The &man.mac.biba.4; module loads the MAC - Biba policy. This policy works much like that of the - MLS policy with the exception that the rules - for information flow - are slightly reversed. This is said to prevent the downward - flow of sensitive information whereas the MLS - policy prevents the upward flow of sensitive information; thus, - much of this section can apply to both policies. + De module &man.mac.biba.4; laadt het beleid + MAC Biba. Dit beleid werkt vaak zoals dat van + MLS behalve dat de regels voor de + informatiestroom lichtelijk zijn omgedraaid. Dit is gezegd om de + neerwaartse stroom van gevoelige informatie te voorkomen terwijl + het beleid MLS de opwaartse stroom van + gevoelige informatie voorkomt; veel van deze sectie is dus op + beide beleiden toepasbaar. - In Biba environments, an integrity label is - set on each subject or object. These labels are made up of - hierarchal grades, and non-hierarchal components. As an object's - or subject's grade ascends, so does its integrity. + In Biba-omgevingen wordt een integriteits-label + op elk subject of object ingesteld. Deze labels bestaan uit + hiërarchische graden, en niet-hiërarchische componenten. + Een graad van een object of subject stijgt samen met de + integriteit. - Supported labels are biba/low, - biba/equal, and biba/high; - as explained below: + Ondersteunde labels zijn biba/low, + biba/equal, en biba/high; + zoals hieronder uitgelegd: - The biba/low label is considered the - lowest integrity an object or subject may have. Setting - this on objects or subjects will block their write access - to objects or subjects marked high. They still have read - access though. + Het label biba/low wordt gezien als de + laagste integriteit die een object of subject kan hebben. Dit + instellen op objecten of subjecten zal hun schrijftoegang tot + objecten of subjecten die als hoog zijn gemarkeerd blokkeren. + Ze hebben echter nog steeds leestoegang. - The biba/equal label should only be - placed on objects considered to be exempt from the - policy. + Het label biba/equal dient alleen + geplaatst te worden op objecten die geacht te zijn uitgesloten + van het beleid. - The biba/high label will permit - writing to objects set at a lower label but not - permit reading that object. It is recommended that this - label be placed on objects that affect the integrity of - the entire system. + Het label biba/high staat schrijven + naar objecten met een lager label toe maar sluit het lezen van + dat object uit. Het wordt aangeraden om dit label te plaatsen + op objecten die de integriteit van het gehele systeem + beïnvloeden. - Biba provides for: + Biba biedt: - Hierarchical integrity level with a set of non - hierarchical integrity categories; + Hiërarchische integriteitsniveaus met een verzameling + niet-hiërarchische integriteitscategoriën; - Fixed rules: no write up, no read down (opposite of - MLS). A subject can have write access - to objects on its own level or below, but not above. Similarly, a - subject can have read access to objects on its own level - or above, but not below; + Vaste regels: niet naar boven schrijven, niet naar beneden + lezen (tegenovergestelde van MLS). Een + subject kan schrijftoegang hebben naar objecten op hetzelfde + niveau of daaronder, maar niet daarboven. Evenzo kan een + subject leestoegang naar objecten op hetzelfde niveau of + daarboven hebben, maar niet daaronder; - Integrity (preventing inappropriate modification of - data); + Integriteit (voorkomt oneigenlijk wijzigen van gegevens); - Integrity levels (instead of MLS sensitivity - levels). + Integriteitsniveaus (in plaats van de gevoeligheidsniveaus + van MLS) - The following sysctl tunables can - be used to manipulate the Biba policy. + De volgende sysctl-tunables kunnen gebruikt + worden om het Biba-beleid te manipuleren. - security.mac.biba.enabled may be used - to enable/disable enforcement of the Biba policy on the - target machine. + security.mac.biba.enabled kan gebruikt + worden om het afdwingen van het Biba-beleid op de doelmachine + aan en uit te zetten. - security.mac.biba.ptys_equal may be - used to disable the Biba policy on &man.pty.4; - devices. + security.mac.biba.ptys_equal kan + gebruikt worden om het Biba-beleid op &man.pty.4;-apparaten + uit te zetten. security.mac.biba.revocation_enabled - will force the revocation of access to objects if the label - is changed to dominate the subject. + dwingt het herroepen van toegang tot objecten af als het label + is veranderd om het subject te domineren. - To access the Biba policy setting on system objects, use - the setfmac and getfmac - commands: + Gebruik de commando's setfmac en + getfmac om de instellingen van het Biba-beleid + op systeemobjecten te benaderen: &prompt.root; setfmac biba/low test &prompt.root; getfmac test test: biba/low - Observations: a lower integrity subject is unable to write - to a higher integrity subject; a higher integrity subject cannot - observe or read a lower integrity object. + + Verplichte Integriteit plannen + + Integriteit, anders dan gevoeligheid, garandeert dat de + informatie nooit door onvertrouwde gebruikers zal worden + gemanipuleerd. Dit geldt ook voor informatie die tussen + subjecten, objecten, of beiden wordt doorgegeven. Het verzekert + dat gebruikers alleen de informatie kunnen wijzigen en in + sommige gevallen zelfs benaderen die ze expliciet nodig hebben. + + De beveiligingsbeleidsmodule &man.mac.biba.4; staat een + beheerder in staat om te bepalen welke bestanden en programma's + een gebruiker of gebruikers mogen zien en draaien terwijl het + verzekert dat de programma's en bestanden vrij zijn van + dreigingen en vertrouwt zijn door het systeem voor die gebruiker + of groep van gebruikers. + + Tijdens de initiële planningsfase moet een beheerder + bereid zijn om gebruikers in gradaties, niveaus, en gebieden in + te delen. Gebruikers zal toegang tot niet alleen gegevens maar + ook tot programma's en hulpmiddelen ontzegt worden zowel voordat + en nadat ze beginnen. Het systeem zal standaard een hoog label + instellen nadat deze beleidsmodule is ingeschakeld, en het is + aan de beheerder om de verschillende gradaties en niveaus voor + gebruikers in te stellen. In plaats van toestemmingsniveaus + zoals boven beschreven te gebruiken, kan een goede + planningsmethode onderwerpen bevatten. Bijvoorbeeld, geef + alleen ontwikkelaars veranderingstoegang tot het + broncoderepository, de broncodecompiler, en andere + ontwikkelgereedschappen. Andere gebruikers zouden in andere + groepen zoals testers, ontwerpers, of gewone gebruikers worden + ingedeeld en zouden alleen leestoegang hebben. + + + Met zijn natuurlijke beveiligingsbeheer kan een subject van + lagere integriteit niet schijven naar een subject van hogere + integriteit; een subject van hogere integriteit kan geen subject + van lagere integriteit observeren of lezen. Een label op de + laagst mogelijke graad instellen kan het ontoegankelijk voor + subjecten maken. Sommige succesvolle omgevingen voor deze + beveiligingsbeheermodule zijn een beperkte webserver, een + ontwikkel- en testmachine, en broncoderepositories. Minder + nuttige implementaties zouden een persoonlijk werkstation, een + machine gebruikt als router, of een netwerkfirewall zijn. + - MAC module LOMAC + MAC-module LOMAC MAC LOMAC Modulenaam: mac_lomac.ko Kernelinstelling: options MAC_LOMAC - Bootoptie: mac_lomac_load="YES" - Unlike the MAC Biba policy, the - &man.mac.lomac.4; policy permits access to lower integrity - objects only after decreasing the integrity level to not disrupt - any integrity rules. + Opstartoptie: mac_lomac_load="YES" - The MAC version of the Low-watermark - integrity policy, not to be confused with the older &man.lomac.4; - implementation, works almost identically to Biba but with the - exception of using floating labels to support subject - demotion via an auxiliary grade compartment. This secondary - compartment takes the form of [auxgrade]. - When assigning a lomac policy with an auxiliary grade, it - should look a little bit like: lomac/10[2] - where the number two (2) is the auxiliary grade. + In tegenstelling tot het beleid MAC Biba, + staat het beleid &man.mac.lomac.4; toegang tot objecten van lagere + integriteit slechts toe nadat het integriteitsniveau is verlaagt + om de integriteitsregels niet te verstoren. - The MAC LOMAC policy relies on the - ubiquitous labeling of all system objects with integrity labels, - permitting subjects to read from low integrity objects and then - downgrading the label on the subject to prevent future writes to - high integrity objects. This is the - [auxgrade] option discussed above, thus the - policy may provide for greater compatibility and require less - initial configuration than Biba. + De MAC-versie van het + laagwatermarkeringsintegreitsbeleid, niet te verwarren met de + oudere implementatie van &man.lomac.4;, werkt bijna hetzelfde als + Biba maar met de uitzondering dat er drijvende labels worden + gebruikt om subjectdegradatie via een hulpcompartiment met graden + te ondersteunen. Dit tweede compartiment heeft de vorm + [hulpgraad]. Wanneer een lomac-beleid met een + hulpgraad wordt toegekend, dient het er ongeveer uit te zien als: + lomac/10[2] waar het getal twee (2) de + hulpgraad is. + + Het beleid MAC LOMAC berust op het overal + labelen van alle systeemobjecten met integriteitslabels, waardoor + subjecten wordt toegestaan om te lezen van objecten van lage + integriteit en om daarna het label op subject te degraderen om + toekomstig schrijven naar objecten van hoge integriteit te + voorkomen. Dit is de hierboven besproken optie + [hulpgraad], dus biedt het beleid grotere + compatibiliteit en vereist het minder initiële configuratie + dan Biba. Voorbeelden - Like the Biba and MLS policies; - the setfmac and setpmac - utilities may be used to place labels on system objects: + Net zoals bij de beleiden Biba en MLS + kunnen de commando's setfmac en + setpmac gebruikt worden om labels op + systeemobjecten te plaatsen: &prompt.root; setfmac /usr/home/trhodes lomac/high[low] &prompt.root; getfmac /usr/home/trhodes lomac/high[low] - Notice the auxiliary grade here is low, - this is a feature provided only by the MAC - LOMAC policy. + Merk op dat de hulpgraad hier low is, dit + is een mogelijkheid die alleen door het beleid + MAC LOMAC wordt geboden. - Instellen van een veilige omgeving met MAC + Nagios in een MAC-jail - MAC voorbeeld implementatie + Nagios in een MAC-jail - The following demonstration will implement a secure - environment using various MAC modules - with properly configured policies. This is only a test and - should not be considered the complete answer to everyone's - security woes. Just implementing a policy and ignoring it - never works and could be disastrous in a production - environment. + De volgende demonstratie zal een veilige omgeving + implementeren door verschillende MAC-modules te + 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. - Before beginning this process, the - multilabel option must be set on each file - system as stated at the beginning of this chapter. Not doing - so will result in errors. + 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/apache13 allemaal + geïnstalleerde en geconfigureerd zijn en correct werken. - <literal>insecure</literal> user class maken - - Begin the procedure by adding the following user class - to the /etc/login.conf file: + Gebruikersklasse <literal>insecure</literal> maken + Begin de procedure door de volgende gebruikersklasse toe te + voegen aan het bestand /etc/login.conf: insecure:\ :copyright=/etc/COPYRIGHT:\ :welcome=/etc/motd:\ @@ -1815,446 +1794,280 @@ test: biba/low :passwordtime=91d:\ :umask=022:\ :ignoretime@:\ - :label=partition/13,mls/5: + :label=biba/10(10-10): - And adding the following line to the default user - class: + Voeg de volgende regel toe aan de standaard + gebruikersklasse: - :label=mls/equal,biba/equal,partition/15: + :label=biba/high: - Once this is completed, the following command must be - issued to rebuild the database: + Wanneer dit voltooid is, moet het volgende commando gedraaid + worden om de database te herbouwen: &prompt.root; cap_mkdb /etc/login.conf - Opstarten met de juiste modules + Opstartinstellingen - Add the following lines to - /boot/loader.conf so the required - modules will load during system initialization: + 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_mls_load="YES" -mac_seeotheruids_load="YES" -mac_partition_load="YES" +mac_seeotheruids_load="YES" - Alle gebruikers naar insecure zetten + Gebruikers instellen - All user accounts that are not root - or system users will now require a login class. The login - class is required otherwise users will be refused access - to common commands such as &man.vi.1;. - The following sh script should do the - trick: + Stel de gebruiker root in op de + standaardklasse met: + + &prompt.root; 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 &man.vi.1;. Het + volgende sh-script zou moeten werken: &prompt.root; for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \ - /etc/passwd`; do pw usermod $x -L insecure; done; + /etc/passwd`; do pw usermod $x -L default; done; - The cap_mkdb command will need to be - run on /etc/master.passwd after this - change. + Laat de gebruikers nagios en + www in de klasse insecure vallen: + + &prompt.root; pw usermod nagios -L insecure + + &prompt.root; pw usermod www -L insecure - Instellingen voltooien + Het contextbestand aanmaken - A contexts file should now be created; the following - example was taken from Robert Watson's example policy and - should be placed in + Nu dient een contextbestand aangemaakt te worden; het + volgende voorbeeld dient geplaatst te worden in /etc/policy.contexts. - # This is the default BIBA/MLS policy for this system. + # Dit is het standaard-BIBA-beleid voor dit systeem. +# Systeem: +/var/run biba/equal +/var/run/* biba/equal -.* biba/high,mls/high -/sbin/dhclient biba/high(low),mls/high(low) -/dev(/.*)? biba/equal,mls/equal -# This is not an exhaustive list of all "privileged" devices. -/dev/mdctl biba/high,mls/high -/dev/pci biba/high,mls/high -/dev/k?mem biba/high,mls/high -/dev/io biba/high,mls/high -/dev/agp.* biba/high,mls/high -(/var)?/tmp(/.*)? biba/equal,mls/equal -/tmp/\.X11-unix biba/high(equal),mls/high(equal) -/tmp/\.X11-unix/.* biba/equal,mls/equal -/proc(/.*)? biba/equal,mls/equal -/mnt.* biba/low,mls/low -(/usr)?/home biba/high(low),mls/high(low) -(/usr)?/home/.* biba/low,mls/low -/var/mail(/.*)? biba/low,mls/low -/var/spool/mqueue(/.*)? biba/low,mls/low -(/mnt)?/cdrom(/.*)? biba/high,mls/high -(/usr)?/home/(ftp|samba)(/.*)? biba/high,mls/high -/var/log/sendmail\.st biba/low,mls/low -/var/run/utmp biba/equal,mls/equal -/var/log/(lastlog|wtmp) biba/equal,mls/equal +/dev biba/equal +/dev/* biba/equal - This policy will enforce security by setting restrictions - on both the downward and upward flow of information with - regards to the directories and utilities listed on the - left. +/var biba/equal +/var/spool biba/equal +/var/spool/* biba/equal - This can now be read into our system by issuing the - following command: +/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: &prompt.root; setfsmac -ef /etc/policy.contexts / -&prompt.root; setfsmac -ef /etc/policy.contexts /usr +&prompt.root; setfsmac -ef /etc/policy.contexts / - The above file system layout may be different depending - on environment. + De bovenstaande indeling van het bestandssysteem kan + afhankelijk van de omgeving verschillen; het moet echter op + elk bestandssysteem gedraaid worden. - The /etc/mac.conf file requires - the following modifications in the main section: + Het bestand /etc/mac.conf dient als + volgt in de hoofdsectie gewijzigd te worden: - default_labels file ?biba,?mls -default_labels ifnet ?biba,?mls -default_labels process ?biba,?mls,?partition -default_labels socket ?biba,?mls + default_labels file ?biba +default_labels ifnet ?biba +default_labels process ?biba +default_labels socket ?biba - Instellingen testen + Het netwerk activeren - MAC instellingen testen + Voeg de volgende regel toe aan + /boot/loader.conf: - Add a user with the adduser command - and place that user in the insecure - class for these tests. + security.mac.biba.trust_all_interfaces=1 - The examples below will show a mix of - root and regular user tests; use the - prompt to distinguish between the two. + 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: - - Basis labeltests + maclabel biba/equal + - &prompt.user; getpmac -biba/15(15-15),mls/15(15-15),partition/15 -&prompt.root; setpmac partition/15,mls/equal top + + De configuratie testen - - The top process will be killed before we start - another top process. - - + MAC-configuratie testen - - MAC seeotheruids tests + 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 &man.ls.1; op + /var/spool/nagios kan uitvoeren, is er iets + verkeerd. Anders zou er een fout Permission + denied teruggegeven moeten worden. - &prompt.user; ps Zax -biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.03 -su (bash) -biba/15(15-15),mls/15(15-15),partition/15 1101 #C: R+ 0:00.01 ps Zax + 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: - We should not be permitted to see any processes - owned by other users. - + &prompt.root; 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 - - MAC partition test + Controleer nogmaals om er zeker van te zijn dat alles juist + werkt. Indien niet, controleer dan de logbestanden of de + foutmeldingen. Gebruik het hulpprogramma &man.sysctl.8; om de + beveiligingsbeleidsmodule &man.mac.biba.4; uit te schakelen en + probeer om alles opnieuw op te starten, zoals gewoonlijk. - Schakel de MAC beleidseenheid - seeotheruids tijdens de rest van de tests - uit: + + 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: - &prompt.root; sysctl security.mac.seeotheruids.enabled=0 -&prompt.user; ps Zax -LABEL PID TT STAT TIME COMMAND - biba/equal(low-high),mls/equal(low-high),partition/15 1122 #C: S+ 0:00.02 top - biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.05 -su (bash) - biba/15(15-15),mls/15(15-15),partition/15 1123 #C: R+ 0:00.01 ps Zax + &prompt.root; setpmac biba/10 csh - Alle gebruikers moet toegestaan worden ieder proces in - zijn partitie te zien. - - - - Biba en MLS labels testen - - &prompt.root; setpmac partition/15,mls/equal,biba/high\(high-high\) top -&prompt.user; ps Zax -LABEL PID TT STAT TIME COMMAND - biba/high(high-high),mls/equal(low-high),partition/15 1251 #C: S+ 0:00.02 top - biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.06 -su (bash) - biba/15(15-15),mls/15(15-15),partition/15 1157 #C: R+ 0:00.00 ps Zax - - De beleidseenheid Biba staat toe hoger gelabelde objecten - te lezen. - - &prompt.root; setpmac partition/15,mls/equal,biba/low top -&prompt.user; ps Zax -LABEL PID TT STAT TIME COMMAND - biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.07 -su (bash) - biba/15(15-15),mls/15(15-15),partition/15 1226 #C: R+ 0:00.01 ps Zax - - De beleidseenheid Biba staat niet toe dat lager gelabelde - objecten worden gelezen. Dit staat MLS - wel toe. - - &prompt.user; ifconfig bge0 | grep maclabel -maclabel biba/low(low-low),mls/low(low-low) -&prompt.user; ping -c 1 192.0.34.166 -PING 192.0.34.166 (192.0.34.166): 56 data bytes -ping: sendto: Permission denied - - Gebruikers kunnen example.com en willekeurig welk - ander domein niet pingen. - - Voer het volgende commando uit om deze fout te - voorkomen: - - &prompt.root; sysctl security.mac.biba.trust_all_interfaces=1 - - Hiermee wordt het standaard interfacelabel insteld in de - modus insecure, zodat het standaard Biba beleidslabel niet - wordt afgedwongen. - - &prompt.root; ifconfig bge0 maclabel biba/equal\(low-high\),mls/equal\(low-high\) -&prompt.user; ping -c 1 192.0.34.166 -PING 192.0.34.166 (192.0.34.166): 56 data bytes -64 bytes from 192.0.34.166: icmp_seq=0 ttl=50 time=204.455 ms ---- 192.0.34.166 ping statistics --- -1 packets transmitted, 1 packets received, 0% packet loss -round-trip min/avg/max/stddev = 204.455/204.455/204.455/0.000 ms - - Door een meer correct label in te stellen kan - ping wel gebruikt worden. - - Maak nu een aantal nieuwe bestanden aan voor wat lees- en - schrijftesten: - - &prompt.root; touch test1 test2 test3 test4 test5 -&prompt.root; getfmac test1 -test1: biba/equal,mls/equal -&prompt.root; setfmac biba/low test1 test2; setfmac biba/high test4 test5; \ - setfmac mls/low test1 test3; setfmac mls/high test2 test4 -&prompt.root; setfmac mls/equal,biba/equal test3 && getfmac test? -test1: biba/low,mls/low -test2: biba/low,mls/high -test3: biba/equal,mls/equal -test4: biba/high,mls/high -test5: biba/high,mls/equal -&prompt.root; chown testuser:testuser test? - - Nu moet testuser eigenaar zijn van - alle bestanden. Nu de leestesten: - - &prompt.user; ls -test1 test2 test3 test4 test5 -&prompt.user; ls test? -ls: test1: Permission denied -ls: test2: Permission denied -ls: test4: Permission denied -test3 test5 - - Paren observeren hoort niet toegestaan te worden, - bijvoorbeeld: - (biba/low,mls/low), - (biba/low,mls/high) en - (biba/high,mls/high). Natuurlijk is - leestoegang ook niet mogelijk. Dan nu de - schrijftesten: - - &prompt.user; for i in `echo test*`; do echo 1 > $i; done --su: test1: Permission denied --su: test4: Permission denied --su: test5: Permission denied - - Net als met de leestesten, hoort schrijftoegang ook niet - toegestaan te worden om paren te schrijven, bijvoorbeeld: - (biba/low,mls/high) en - (biba/equal,mls/equal). - - &prompt.user; cat test? -cat: test1: Permission denied -cat: test2: Permission denied -1 -cat: test4: Permission denied - - En nu als root: - - &prompt.root; cat test2 -1 - + Om te voorkomen dat dit gebeurt, kan de gebruiker via + &man.login.conf.5; in een bereik worden gedwongen. Als + &man.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). + - - Nog een voorbeeld: MAC gebruiken om een webserver in te - perken + + Gebruikers afsluiten - Er wordt een aparte plaats toegewezen voor de webgegevens - waar gebruikers bij moeten kunnen. Dit geeft - biba/high processen toegang tot de - webgegevens. + Dit voorbeeld gaat over een relatief klein opslagsysteem met + minder dan vijftig gebruikers. Gebruikers kunnen zich aanmelden, + en mogen zowel gegevens opslaan als bronnen benaderen. - Begin met het maken van een map om de webgegevens in op te - slaan: + Voor dit scenario kunnen &man.mac.bsdextended.4; gecombineerd + met &man.mac.seeotheruids.4; naast elkaar bestaan en zowel toegang + tot systeemobjecten als tot gebruikersprocessen ontzeggen. - &prompt.root; mkdir /usr/home/cvs + Begin door de volgende regel aan + /boot/loader.conf toe te voegen: - Initialiseer met cvs: + mac_seeotheruids_enabled="YES" - &prompt.root; cvs -d /usr/home/cvs init + Het beveiligingsbeleidsmodule &man.mac.bsdextended.4; kan door + volgende variabele in rc.conf geactiveerd worden: - Het eerste doel is om de beleidseenheid - biba in te schakelen en dus moet - mac_biba_enable="YES" opgenomen worden in - /boot/loader.conf. Er wordt aangenomen dat - ondersteuning voor MAC in de kernel is - ingeschakeld. + ugidfw_enable="YES" - Vanaf dit moment hoort alles in een systeem standaard - ingesteld te staan op biba/high. + De standaardregels in /etc/rc.bsdextended + zullen tijdens de systeeminitialisatie worden geladen; het kan + echter nodig zijn om de standaardregels te wijzigen. Aangezien + van deze machine alleen verwacht wordt dat het gebruikers bedient, + kunnen alle regels uitgecommentarieerd blijven behalve de laatste + twee. Deze forceren het standaard laden van systeemobjecten die + eigendom zijn van gebruikers. - In het bestand login.conf dient onder - de standaard gebruikersklasse de volgende wijziging gemaakt te - worden: + Voeg de benodigde gebruikers toe aan deze machine en start + opnieuw op. Probeer, voor testdoeleinden, u aan te melden als een + andere gebruiker over twee consoles. Draai het commando + ps aux om te zien of processen van andere + gebruikers zichtbaar zijn. Probeer om &man.ls.1; te draaien op de + thuismap van een andere gebruiker, dit zou moeten mislukken. - :ignoretime@:\ -:umask=022:\ -:label=biba/high: - - Iedere gebruiker moet nu in de standaardklasse geplaatst - worden en met een commando als het volgende is dat zo - gedaan: - - &prompt.root; for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \ -/etc/passwd`; do pw usermod $x -L default; done; - - Maak nu een andere klasse, web, een kopie van de - standaardklasse, met een labelinstelling - biba/low. - - Maak een gebruikers die gebruikt wordt om te werken met de - centrale webgegevens die staan opgeslagen in een - cvs repository. Deze gebruiker moet - in de nieuwe aanmeldklasse geplaats worden, - web. - - Omdat overal de standaard biba/high is, - geldt dat ook voor de repository. De webgegevens moeten ook - gelijk zijn zodat gebruikers er lees- en schrijfrechten op - hebben. Maar omdat de webserver gegevens serveert waar - biba/high bij moeten kunnen, moeten de - gegevens in hun geheel gedowngrade worden. - - Hiervoor zijn de perfecte hulpmiddelen &man.sh.1; en - &man.cron.8; als in &os; aanwezig. Het volgende script doet - alles wat nodig is: - - PATH=/bin:/usr/bin:/usr/local/bin; export PATH; -CVSROOT=/home/repo; export CVSROOT; -cd /home/web; -cvs -qR checkout -P htdocs; -exit; + Probeer niet te testen met de gebruiker + root tenzij de specifieke + sysctl's om supergebruikertoegang te blokkeren + zijn aangepast. - In veel gevallen moeten de cvs Id tags - in de databestanden van de website gezet worden. - - - Dit script kan nu in de thuismap van de gebruiker - web geplaatst worden waarna de volgende - regel aan de &man.crontab.1; toegevoegd kan worden: - - # Check de webgegevens iedere twaalf uur uit als biba/low: -0 */12 * * * web /home/web/checkout.sh - - Hiermee wordt de HTML broncode iedere - twaalf uur uitgecheckt. - - De standaard opstartmethode voor de webserver moet ook - aangepast worden om het proces te starten als - biba/low. Dit kan met de volgende - verandering in het script - /usr/local/etc/rc.d/apache.sh: - - command="setpmac biba/low /usr/local/sbin/httpd" - - De instellingen voor Apache moeten - aangepast worden om met het biba/low beleid te - werken. In dit geval moet de software ingesteld worden om - logboekmeldingen weg te schrijven naar een map die ingesteld - staat op biba/low omdat er anders - foutmeldingen van het type access denied - ontstaan. - - - Voor dit voorbeeld is het noodzakelijk dat het directief - docroot wordt ingesteld voor - /home/web/htdocs. Anders faalt - Apache als het probeert de map te - vinden waaruit documenten geserveerd moeten worden. + Wanneer een nieuwe gebruiker is toegevoegd, zit de + &man.mac.bsdextended.4;-regel van die gebruiker niet in de lijst + van regelverzamelingen. Om de regelverzameling snel bij te + werken, kan simpelweg de beveiligingsbeleidsmodule worden + herladen met de gereedschappen &man.kldunload.8; en + &man.kldload.8;. - - Er moeten ook nog andere instellingen gewijzigd worden, - waaronder PID-bestand, - Scoreboardfile, - DocumentRoot, plaatsen voor logboekbestanden - en andere variabelen waarvoor schrijftoegang nodig is. Als - biba wordt gebruikt, wordt iedere vorm van - schrijftoegang aan de server ontzegd waar - geen biba/low is - ingesteld. - - - - Problemen oplossen met het MAC framework + Problemen oplossen met het MAC-raamwerk - MAC problemen oplossen + MAC-problemen oplossen - Tijdens de ontwikkeling hebben een aantal gebruikers - problemen aangegeven met normale instellingen. Hieronder worden - een aantal van die problemen beschreven: + Tijdens de ontwikkeling hebben een aantal gebruikers problemen + aangegeven met normale instellingen. Hieronder worden een aantal + van die problemen beschreven: De optie <option>multilabel</option> kan niet ingeschakeld worden op <filename>/</filename> - De vlag blijft niet - ingeschakeld op de rootpartitie - (/)! + De vlag blijft niet ingeschakeld + op de rootpartitie (/)! Het lijkt er inderdaad op dat een paar procent van de gebruikers dit probleem heeft. Nadere analyse van het probleem doet vermoeden dat deze zogenaamde bug het - resultaat is van ofwel injuiste documentatie ofwel verkeerde - interpretatie van de documentatie. Hoe het probleem ook is - ontstaan, met de volgende stappen is het te verhelpen: + resultaat is van òfwel onjuiste documentatie òfwel + verkeerde interpretatie van de documentatie. Hoe het probleem + ook is ontstaan, met de volgende stappen is het te verhelpen: Wijzig /etc/fstab en stel de - rootpartitie in op voor - alleen-lezen. + rootpartitie in op voor alleen-lezen. - Herstart in single-user modus. + Herstart in enkele-gebruikersmodus. Draai tunefs op /. + enable op /. @@ -2263,29 +2076,29 @@ PROBLEM: CAN THIS WORK? OR SHOULD IT BE start_precmd? More testing need here. Draai mount - / en wijzig terug in - in /etc/fstab en - start het systeem opnieuw. + / en wijzig terug + in in /etc/fstab en + start het systeem opnieuw. Controleer de uitvoer van mount om zeker te zijn dat juist is - ingesteld op het root bestandssysteem. + ingesteld op het rootbestandssysteem. - Kan geen X11 server starten na + <title>Kan geen X11-server starten na <acronym>MAC</acronym> Na het instellen van een beveiligde omgeving met MAC start X niet meer! - Dit kan komen door de MAC beleidseenheid + Dit kan komen door de MAC-beleidseenheid partition of door een verkeerde labeling van - een van de MAC labeling beleidseenheden. + een van de MAC-labeling beleidseenheden. Probeer als volgt te debuggen: @@ -2293,25 +2106,23 @@ PROBLEM: CAN THIS WORK? OR SHOULD IT BE start_precmd? More testing need here. Controleer de foutmelding. Als de gebruiker in de klasse insecure zit, kan de beleidseenheid partition het probleem - zijn. Zet de klasse voor de gebruiker terug naar de - default klasse en herbouw de database - met het commando cap_mkdb command. Ga - naar stap twee als hiermee het probleem niet is - opgelost. + zijn. Zet de klasse voor de gebruiker terug naar de klasse + default en herbouw de database met het + commando cap_mkdb. Ga naar stap twee als + hiermee het probleem niet is opgelost. Controleer de labelbeleidseenheden nog een keer. Stel - zeker dat het beleid voor de bewuste gebruiker, de X11 - applicati en de onderdelen van /dev juist zijn - ingesteld. + zeker dat het beleid voor de bewuste gebruiker, de + X11-applicatie, en de onderdelen van /dev juist zijn ingesteld. - Als geen van beide methodes het probleem oplossen, - stuur dan de foutmelding en een beschrijving van de - omgeving naar de TrustedBSD discussielijsten van de Als geen van beide methodes het probleem oplossen, stuur + dan de foutmelding en een beschrijving van de omgeving naar + de TrustedBSD-discussielijsten van de TrustedBSD website of naar de &a.questions; mailinglijst. @@ -2329,15 +2140,15 @@ PROBLEM: CAN THIS WORK? OR SHOULD IT BE start_precmd? More testing need here. Deze melding komt meestal voor als de gebruiker een hogere labelinstelling heeft dan de gebruiker waarnaar wordt gewisseld. Als bijvoorbeeld gebruiker joe - een standaardlabel , dan kan gebruiker - root, die een label - de thuismap van + een standaardlabel heeft, dan kan + gebruiker root, die een label + heeft, de thuismap van joe niet zien. Dit gebeurt zonder rekening te houden met de mogelijkheid dat root met su de - indentiteit van joe heeft aangenomen. In + identiteit van joe heeft aangenomen. In dit scenario staat het integriteitsmodel van Biba niet toe dat - root objecten kan zien met van een lager + root objecten kan zien van een lager integriteitsniveau. @@ -2345,31 +2156,32 @@ PROBLEM: CAN THIS WORK? OR SHOULD IT BE start_precmd? More testing need here. De gebruikersnaam <username>root</username> is stuk! - In normale, of zelfs in single user modus, wordt + In normale, of zelfs in enkelegebruikersmodus, wordt root niet herkend. Het commando whoami geeft 0 (nul) terug en su heeft als resultaat who are you?. Wat is er aan de hand? Dit kan gebeuren als een labelbeleid is uitgeschakeld, - ofwel door &man.sysctl.8; of doordat de beleidsmodule niet meer - is geladen. Als de beleidseenheid (tijdelijk) is uitgeschakeld - dan moet de aanmeldmogelijkheden database opnieuw worden - ingesteld, waarbij de optie wordt - verwijderd. Er dient voor te worden zorggedragen dat het - bestand login.conf wordt ontdaan van alle - opties met , waarna de database opnieuw - gebouwd kan worden met cap_mkdb. + òfwel door &man.sysctl.8; òf doordat de + beleidsmodule niet meer is geladen. Als de beleidseenheid + (tijdelijk) is uitgeschakeld dan moet de database met + aanmeldmogelijkheden opnieuw worden ingesteld, waarbij de optie + wordt verwijderd. Er dient voor te + worden zorggedragen dat het bestand + login.conf wordt ontdaan van alle opties + met , waarna de database opnieuw gebouwd + kan worden met cap_mkdb. Dit kan ook gebeuren als een beleid toegang verhinderd tot - het master.passwd bestand of database. + het bestand of de database master.passwd. Meestal wordt dit veroorzaakt door een beheerder die het bestand - veranderd onder een label, welke conflicteert met het globale + veranderd onder een label welke conflicteert met het globale beleid dat gebruikt wordt op het systeem. In deze gevallen - wordt de gebruikers informatie gelezen door het systeem en wordt - de toegang geblokkeerd omdat het bestand een nieuw label erft. - Zet het beleid uit doormiddel van &man.sysctl.8; en alles zou - weer terug naar normaal moeten gaan. + wordt de gebruikersinformatie gelezen door het systeem en wordt + de toegang geblokkeerd omdat het bestand het nieuwe label erft. + Zet het beleid uit door middel van &man.sysctl.8; en alles zou + weer normaal moeten zijn.