Hvordan sette AppArmor-modus for en tjeneste i Ubuntu Server

Bilde: Jack Wallen

AppArmor (forkortelse av Application Armor) er et obligatorisk tilgangskontroll (MAC) -system (brukt av Ubuntu Linux, dets derivater og andre Linux-distribusjoner), som lar en administrator begrense muligheten til et program på et system. Begrensning håndteres ved hjelp av profiler, som kan tillate eller nekte et program tilgang til systemressurser (for eksempel nettverkstilgang, rå socket tilgang, lese / skrive / utføre tillatelser og mer).

Mer om cybersecurity

  • Cybersikkerhet i 2020: Åtte skremmende spådommer
  • De ti viktigste cyberangrepene i tiåret
  • Slik blir du en cybersecurity-proff: Et jukseark
  • Famous con man Frank Abagnale: Kriminalitet er 4000 ganger enklere i dag

Med AppArmor kan en administrator stille et bestemt program (for eksempel MySQL-databaseserverprofilen) til en av to moduser:

  • Håndhevelse - System håndhever reglene og rapporterer eventuelle brudd i syslog. Ytterligere drift vil ikke være tillatt.
  • Klag - Systemet håndhever ikke noen regler, men vil bare registrere brudd.

Som standard er noen profiler satt til Håndheving og andre til Klager. For å finne ut hvilke modusprofiler som er satt til, gir du kommandoen:

 sudo apparmor_status 

Utgangen ( figur A ), viser modus brukt av hver profil.

Figur A: Utgang som viser hvordan hver profil er satt.

Eksempelmaskinen min inneholder ikke en LAMP-server. La oss si at jeg installerer LAMP-serveren (med kommandoen sudo apt-get install lamp-server ^ -y), og etter vellykket installasjon, sjekker jeg for å se hvilken modus AppArmor har satt MySQL til. En rask kjøring av sudo apparmor_status-kommandoen viser nå at mysqld er satt til å håndheve modus.

Hva skjer når du oppretter en tjeneste på en server, der MySQL trenger tilgang til deler av filsystemet utenfor normen? AppArmor vil ikke like dette og vil nekte å gi MySQL tilgang.

Endre modus

Under normale omstendigheter vil du ikke finne på noe som AppArmor MySQL-profilen er godt konfigurert. Men det er under normale omstendigheter. Hvis du holder på med intern intern utvikling i et prosjekt som har en tendens til å fargelegge utenfor linjene, kan det hende du må gjøre en av to ting:

  • Endre konfigurasjonen av MySQL-apparmor.
  • Sett MySQL-profilen til klagemodus.

Avhengig av hvorfor du gjør dette vil diktere hvordan du går fremover. La oss si at du ganske enkelt feilsøker og trenger å forstå hva som skjer med MySQL. Først skal du se på MySQL-loggfilene. Hvis det ikke forteller deg noe, kan du stille MySQL AppArmor-profilen til å klage modus slik:

 sudo aa-klage / usr / sbin / mysqld 

På dette tidspunktet vil AppArmor svare at den har satt MySQL-profilen til klagemodus ( figur B ).


Figur B: MySQL er nå i klagemodus.

Det viktige å huske er at når du er ferdig med å feilsøke problemet, må du returnere profilen til håndhevingsmodus. For å gjøre dette, gi kommandoen:

 sudo aa-force / usr / sbin / mysqld 

AppArmor vil returnere MySQL til håndhevingsmodus ( figur C ).

Figur C: Tilbake til håndhevingsmodus.

Endre konfigurasjonen

Her er en bedre måte å håndtere ting på. Si for eksempel at du vil endre datakatalogen for MySQL, men AppArmor forhindrer deg i å gjøre det. I stedet for å bruke / var / lib / mysql, vil du ha alt i / data / mysql . Du har allerede tatt vare på MySQL-konfigurasjonen (endre datadiroppføringen i /etc/mysql/mysql.conf.d/my.cnf til / data / mysql og kopiere alle dataene fra den opprinnelige katalogen til det nye stedet), og likevel fungerer ikke serveren riktig. Du plasserer MySQL-profilen i klagemodus, og bratsj !, den fungerer. Du kan imidlertid ikke la profilen være satt til klagemodus (ellers er det et sikkerhetsproblem). Hva gjør du?

Du legger til den nye katalogen slik at AppArmor er klar over den. Hvordan? Enkel. Gi kommandoen:

 sudo nano /etc/apparmor.d/local/usr.sbin.mysqld 

Lim inn følgende linjer i den tomme filen:

 / data / mysql r, / data / mysql / ** rwk, 

Merk: rwk er lese-, skrive- og låsetillatelser.

Lagre og lukk den filen. Start AppArmor på nytt med kommandoen:

 sudo systemctl start apparmor på nytt 

Forsikre deg om at MySQL-profilen er satt til å håndheve, og at alt nå skal fungere som forventet.

Ikke for svakhet i hjertet

Jeg anbefaler ikke å jobbe med AppArmor for svakhet i hjertet. Du må virkelig forstå hva du gjør før du dykker ned i dette - eller i det minste forstå hvordan du flytter profiler frem og tilbake mellom håndheving og klagemodus. Uansett må du huske å lese AppArmor man-siden (med kommandomannen apparmor) før du tar noen handling.

Cybersecurity Insider Nyhetsbrev

Styrke organisasjonens IT-sikkerhetsforsvar ved å holde deg oppdatert om de siste nettbaserte sikkerhetsnyhetene, løsningene og beste praksis. Leveres tirsdager og torsdager

Registrer deg i dag

© Copyright 2021 | mobilegn.com