AppArmor

Debian AppArmor-veiledning

Debian AppArmor-veiledning
AppArmor er et obligatorisk tilgangskontrollsystem for Linux. I et obligatorisk tilgangskontrollsystem (MAC) pålegger kjernen restriksjoner på baner, stikkontakter, porter og forskjellige inngangs- / utgangsmekanismer. Den ble utviklet av Immunex og vedlikeholdes nå av SUSE. Det har vært en del av Linux-kjernen siden versjon 2.6.36.

Mens Linux-kjernen gir god isolering av brukere og sterk filtillatelseskontroll, gir en MAC som AppArmor mer finkornede tillatelser og beskyttelse mot mange ukjente trusler. Hvis det finnes et sikkerhetsproblem i Linux-kjernen eller annen systemdememon, kan et godt konfigurert AppArmor-system forhindre tilgang til kritiske baner som kan være sårbare for problemet.

AppArmor kan jobbe effektivt i to moduser - håndheve og klage. Enforce er standard produksjonsstatus for AppArmor, mens klage er nyttig for å utvikle et regelsett basert på reelle driftsmønstre og for loggbrudd. Den er konfigurert via vanlige tekstfiler i et relativt vennlig format og har en kortere læringskurve enn de fleste andre obligatoriske tilgangskontrollsystemer.

Installasjon

For å installere AppArmor på Debian, kjør (som root):

apt install apparmor apparmor-utils auditd

Du kan utelate auditd hvis du ikke trenger verktøy for profilgenerering.

Hvis du ønsker å installere start- og tilleggsprofiler, kan du kjøre:

apt install apparmor-profiles apparmor-profiles-extra

Siden AppArmor er en Linux-kjernemodul, må du aktivere den med følgende kommandoer:

mkdir -p / etc / default / grub.d

Opprett filen / etc / default / grub.d / apparmor.cfg med følgende innhold:

GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 1 sikkerhet = apparmor"

Lagre og avslutt, og kjør deretter:

oppdatering-grub

Start deretter på nytt.

Det er debatt om dette skal gjøres automatisk. Det kan være lurt å konsultere slutten av denne feilrapporten for å se om dette er endret siden dette skrives.

Når du har startet om på nytt, kan du sjekke om AppArmor er aktivert ved å kjøre:

aa-status

Denne kommandoen viser en liste over innlastede AppArmor-profiler og en liste over gjeldende tilstand for samsvar (håndhevet, klaget osv.)

Hvis du løper:

ps auxZ | grep -v '^ unconfined'

Du ser en liste over programmer som er begrenset av en AppArmor-profil. Et begrenset program er et som påvirkes og begrenses (enten passivt, i klagemodus eller aktivt i håndhevet modus) av AppArmor.

Endre modus / deaktivere AppArmor

Hvis du ønsker å deaktivere AppArmor fordi et program ikke fungerer, kan du vurdere å plassere profilen i klagemodus i stedet for håndhevet modus. For å gjøre dette, kjør (som root eller via sudo):

aa-klage / sti / til / program

For eksempel, hvis ping ikke fungerer som den skal, bruk:

aa-klage / usr / bin / ping

Når en profil er i klagemodus, kan du undersøke loggingen via / var / log / syslog eller med journalctl -xe på systemd-systemer (Debian 8.x, Jessie og høyere).

Når du har redigert profilen for å fjerne eller justere begrensningen, kan du slå på tvangsmodus igjen for binærprogrammet med:

aa-håndheve / sti / til / program

I eksemplet ovenfor erstatter du / path / to / program med den fullstendige banen til den binære som er berørt av den aktuelle profilen.

Hvis du har et problem med et program og det er i klagemodus, vil loggene gi spesifikk informasjon om hvilken handling som ble nektet. Operasjonsfeltet vil forklare hva programmet prøvde å gjøre, profilfeltet den spesifikke profilen som ble berørt, navnet vil spesifisere målet for handlingen (i.e. hvilken fil som ble stoppet fra en lese- eller skriveoperasjon), og den forespurte og nektet masken indikerer om operasjonen, både forespurt av programmet og nektet per profil, ble lest eller lest-skrevet.

Du kan deaktivere en profil helt ved å kjøre:

aa-deaktiver / sti / til / program

Eller du kan deaktivere AppArmor fullstendig ved å redigere filen: / etc / default / grub.d / apparmor.cfg å inneholde:

GRUB_CMDLINE_LINUX_DEFAULT = ”$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 0”

Så løper:

oppdatering-grub

Og starte systemet på nytt.

Arbeide med AppArmor-profiler

AppArmor-profilene ligger i / etc / apparmor.d / katalog. Hvis du installerer pakken apparmor-profiler og apparmor-profiler-ekstra, finner du profiler i / usr / share / doc / apparmor-profiles og / usr / share / doc / apparmor-profiles / extra. For å aktivere dem, kopier filene til / etc / apparmor.d rediger dem for å sikre at de inneholder verdiene du vil ha, lagre og kjør:

service apparmor reload

Hvis du ønsker å laste inn bare én profil, kan du kjøre:

apparmor_parser -r / etc / apparmor.d / profil

Hvor “profil” er navnet på den aktuelle profilen.

Det anbefales ikke å bare kopiere profilene og ekstra profilene til / etc / apparmor.katalog uten å håndredigere dem. Noen profiler kan være gamle, og noen inneholder absolutt ikke verdiene du vil ha. Hvis du kopierer dem alle, må du i det minste stille dem til å klage slik at du kan overvåke brudd uten å bryte programmer i produksjonen:

cd / etc / apparmor.d
for f i *.*; gjør aa-klage / etc / apparmor.d / $ f; ferdig

Du kan bruke kommandoen aa-enforce hver for å aktivere profiler du vil beholde, stille inn de som forårsaker problemer og håndheve dem, eller fjerne de du ikke trenger ved å kjøre aa-deaktivere eller fjerne profilfilen fra / etc / apparmor.d.

Opprette en AppArmor-profil

Før du oppretter en tilpasset profil, vil du søke i / etc / apparmor.d og / usr / share / doc / apparmor-profiles kataloger for en eksisterende profil som dekker den aktuelle binæren. For å søke i disse, kjør:

finn / usr / del / doc / apparmor-profiler | grep “program” -i

Erstatte program med programmet du vil beskytte med AppArmor. Hvis du finner en, kopier den til / etc / apparmor.d og rediger deretter filen i din favoritt tekstredigerer.

Hver profil består av tre hoveddeler: inkluderer, evner og stier. Du kan finne en nyttig referanse i SuSEs dokumentasjon.

Inkluderer

Inkluderer gi syntaks som du kan bruke inne i filen. De bruker C / C ++ #include <> syntaksen og refererer vanligvis til abstraksjoner som finnes i / etc / apparmor.d / abstraksjonskatalog.

Evner

Funksjonsseksjonen, vanligvis funnet etter inkluderer, viser spesifikke funksjoner som programmet kan utføre. For eksempel kan du la et program utføre en setuid-operasjon med:

evne setuid

Funksjonen net_bind_service lar et program binde seg til en nettverksport. Hvis du ikke gir dette, kan en serverdemon som Apache ikke åpne port 80 og lytte. Å utelate denne muligheten kan imidlertid gi utmerket sikkerhet for prosesser du ikke stoler på på nettverket.

Stier

Du kan liste opp stier som programmet kan lese (og muligens skrive). Hvis du for eksempel vil la programmet få tilgang til / etc / passwd-filen, legger du til:

/ etc / passwd r

I profilen. Legg merke til “r” - dette betyr skrivebeskyttet. Hvis du endrer dette til “w”, kan du skrive til denne banen eller filen.

Selv om du tillater en bane i AppArmor, er den fortsatt underlagt Linux-filsystembegrensninger (i.e. sett med chmod, chgrp og chown). AppArmor vil imidlertid fremdeles tilby et ekstra beskyttelseslag hvis disse mekanismene kompromitteres.

Konklusjon

Nøkkelen til en vellykket AppArmor-distribusjon er å sette profiler for å klage, og deretter håndheve. En nøye loggundersøkelse gir deg de minimale stiene og mulighetene som trengs for vellykket programdrift. Ved å tildele disse og ikke mer vil du øke systemets sikkerhet dramatisk.

Hvordan øke FPS i Linux?
FPS står for Bilder per sekund. FPSs oppgave er å måle bildefrekvensen i videoavspilling eller spillprestasjoner. Med enkle ord betegnes antall uavbru...
Topp Oculus App Lab-spill
Hvis du er Oculus-hodesettinnehaver, må du være klar over sideloading. Sidelading er prosessen med å installere ikke-butikkinnhold på hodesettet. Side...
Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...