LFCA: Wéi verbessert Linux System Sécherheet - Deel 20


Wéi mir all wëssen, ass de Root Benotzer Kinnek an huet onlimitéiert Privilegien iwwer de Linux System. Wéi och ëmmer Net-root Benotzer si limitéiert op Basisaufgaben. Zousätzlech ginn sudo Benotzer nëmmen e gewësse Grad vu Root-Privilegien ausgezeechent wéi de Root-Benotzer fit ugesi fir spezifesch erhöhte Aufgaben auszeféieren.

Themen entstinn wann regelméisseg Benotzer onkontrolléiert Zougang zu Ressourcen hunn oder eskaléiert ginn fir onbewosst ze root. Dëst ass e seriöse Sécherheetsrisiko, dee Verstéiss, ongewollt Ännerunge verursaache kann, an am schlëmmste Fall Szenario, Crash vum System. En anere potenzielle Risiko ass wann Dateien manner sécher Dateierechter hunn. Zum Beispill, Bootdateien mat Schreifrechter fir global Benotzer kënnen einfach geännert oder korrupt ginn, wat zu engem futtis System resultéiert.

[ Dir kënnt och gär hunn: Nëtzlech Tipps fir Daten a Linux ze sécheren]

Wärend mir kierperlech, Netzwierk- an Datesécherheet implementéiere kënnen, kann e béiswëlleg Benotzer d'Sécherheetsmoossnamen ëmgoen a vun esou Sécherheetsschleifen profitéieren. Et ass aus dësem Grond datt Dateisystem Sécherheet eescht geholl soll ginn. Et bitt eng extra Schicht vun der Verteidegung vis-à-vis vun Attacken oder Insider Bedrohungen vu béiswëlleg Mataarbechter, déi net déi schwéier Ophiewe musse maachen fir Sécherheetsmoossnamen z'ënnerhalen fir Zougang zu Dateien ze kréien.

A System Sécherheet konzentréiere mir eis op déi folgend Schlësselpunkte:

  • Zougangsrechter - Benotzer- a Grupperechter.
  • Passwuertpolitik mat dem PAM Modul ëmsetzen.

Zougang Rechter - Benotzer a Grupp Trennung

Dir musst wahrscheinlech héieren hunn datt alles am Linux als Datei ugesi gëtt. A wann et net ass, ass et e Prozess. All Datei op engem Linux System ass Besëtz vun engem Benotzer an engem Grupp Benotzer. Et huet och Dateierechter fir 3 Benotzerkategorien: Benotzer (u), Grupp (g), an Aner (o). D'Permissiounen sinn am Liesen, Schreiwen an Ausféieren (rwx) fir all Benotzerkategorie vertrueden.

rwx        rwx	     rwx
User       Group     Others

Wéi virdru gesinn, am ls Kommando wéi gewisen.

$ ls -l

Just fir ze widderhuelen, sinn d'Permissiounen normalerweis duerch néng Charaktere vertrueden. Déi éischt dräi Zeechen representéieren d'Zougangsrechter vum aktuellen Benotzer deen d'Datei besëtzt. Déi zweet Satz vun Zeechen representéiert d'Permissiounen vum Gruppbesëtzer vun der Datei. Endlech, de leschte Set fir aner oder global Benotzer. Dës Charaktere sinn ëmmer an der liesen, schreiwen, ausféieren (rwx) Uerdnung.

No de Permissiounen hu mir Benotzer- a Gruppebesëtzer, gefollegt vun der Datei- oder Verzeechnesgréisst, den Datum vun der Ännerung, a schliisslech den Numm vun der Datei.

Änneren Datei/Verzeechnes Permissiounen a Besëtzer

Benotzer Permissiounen vun Fichieren an Verzeechnes kënnen geännert ginn wéi fit ugesi. D'Faumregel ass de Prinzip vun der mannst Privileg Sécherheet ze benotzen. Einfach gesot, sécherzestellen datt d'Benotzer déi Minimum Zougangsrechter oder Permissiounen kréien déi néideg sinn fir d'Aarbecht gemaach ze kréien.

De Prinzip vun de mannsten Privilegien beschränkt d'Benotzer nëmme op bestëmmte Rollen an doduerch miniméiert de Risiko datt Ugräifer kritesch Donnéeën zougräifen an änneren andeems se e Low-Hevel Benotzerkont benotzen. Et reduzéiert och d'Attackfläch & limitéiert d'Verbreedung vu Malware am Fall wou den Ugräifer d'Kontroll iwwer Äre System iwwerhëlt.

Dofir, wann e Benotzer nëmmen d'Inhalter vun enger Datei oder Verzeechnes muss gesinn, sollten se keng Ausféierungs- oder Schreifrechter kréien. Um ganz Basisniveau, gitt nëmmen déi mannst Permissiounen a Besëtzer erfuerderlech vum Benotzer fir Aufgaben z'erreechen. Mir hunn ugepaakt wéi d'Benotzerpermissiounen a Besëtzer op Dateien/Verzeichnungen änneren mat chmod a chown Kommandoen am Basis Linux Kommandoen Thema.

Fir de Systemadministrator eng méi einfach Zäit ze verwalten Permissiounen, kënne speziell Permissiounen oder Zougangsrechter u ganz Verzeichnisser ginn. Ee vun de spezielle Permissiounen déi applizéiert kënne ginn fir d'Läschen an d'Ännerung vun enger Datei oder Verzeechnes ze beschränken ass de Sticky Bit.

An engem Szenario wou e gemeinsame Verzeechnes vun all de Benotzer am System oder Netzwierk zougänglech ka ginn, besteet e potenzielle Risiko datt verschidde Benotzer d'Dateien am Verzeechnes läschen oder änneren. Dëst ass ongewollt wann Dir d'Integritéit vum Verzeechnesinhalt behalen wëllt. An dat ass wou de klebrige Stéck era kënnt.

E Sticky Bit ass eng speziell Dateierlaabnes op enger Datei oder ganze Verzeechnes. Et gëtt nëmmen dem Besëtzer vun deem Fichier/Verzeechnes d'Erlaabnis fir d'Datei oder d'Verzeechnesinhalt ze läschen oder Ännerungen ze maachen. Keen anere Benotzer kann d'Datei/Verzeichnis läschen oder änneren. Et huet de symbolesche Wäert vun t an en numeresche Wäert vun 1000.

Fir e Sticky Bit op engem Verzeechnes z'aktivéieren, benotzt de chmod Kommando wéi follegt:

$ chmod +t directory_name

Am Beispill hei drënner hu mir e Sticky Bit op de Verzeechnes genannt Test applizéiert. Am Fall vun engem Verzeechnes, all den Inhalt ierft déi Sticky Bit Permissiounen. Dir kënnt d'Sticky Bit Permissiounen iwwerpréiwen mat dem ls -ld Kommando. Gitt sécher d't Symbol um Enn vun de Dateierechten ze bemierken.

$ ls -ld test

Wann en anere Benotzer probéiert de Verzeechnes ze läschen oder d'Datei am Verzeechnes z'änneren, gi se mat engem Erlaabnes refuséiert Feeler begréisst.

An dat ass de Kär vun der Stick Bit Datei Erlaabnis.

De SUID (Set User ID) ass eng aner speziell Dateierlaabnes, déi en anere reguläre Benotzer erlaabt eng Datei mat de Dateierechter vum Dateiebesëtzer auszeféieren. Et gëtt normalerweis mat engem symbolesche Wäert s um Benotzerdeel vun de Dateierechter gezeechent amplaz vun engem x deen d'Ausféierungsrechter duerstellt. De SUID huet en numeresche Wäert vu 4000.

De SGID, (Set Group ID) erlaabt e reguläre Benotzer d'Grupperechter vum Dateiegruppbesëtzer ze ierwen. Anstatt den x fir Ausféierungsrechter, gesitt Dir e s am Gruppepartie vun de Dateierechter. De SGID huet en numeresche Wäert vun 2000.

Wéi och ëmmer praktesch se sech erausstellen, d'SUID an d'SGID Permissiounen si mat Sécherheetsrisiken assoziéiert a solle bei all Käschten vermeit ginn. Dëst ass well se regelméisseg Benotzer speziell Privilegien ginn. Wann en Andréngen, deen sech als reguläre Benotzer poséiert, op eng ausführbar Datei am Besëtz vum Root-Benotzer mat engem SUID-Bit drop gesat gëtt, kënnen se dat Schleifen benotzen an de System ausnotzen.

Fir all d'Dateien mat SUID Bit a Linux ze fannen, fuert de Find Kommando als root Benotzer.

$ find / -perm -4000 type -f

Fir Verzeichnisser lafen:

$ find / -perm -4000 type -d

Fir all Dateie mat SGID Bit Set ze fannen, lafen:

$ find / -perm -2000 type -f

Fir Verzeichnungen ausféieren:

$ find / -perm -2000 type -d

Fir den SUID Bit op enger Datei ze läschen, fuert de chmod Kommando wéi gewisen:

$ chmod u-s /path/to/file

Fir de SGID Bit op enger Datei ze läschen, fuert de Kommando aus:

$ chmod g-s filename /path/to/file

Et ass net ongewéinlech fir Benotzer schwaach Passwierder ze setzen. Eng gutt Zuel setzt kuerz, einfach a liicht guessable Passwierder fir ze vermeiden datt se beim Login vergiessen. Wärend praktesch, schwaach Passwierder kënne ganz einfach duerch brute-force Attack Scripte verletzt ginn.

De PAM Modul (Pluggable Authentication Module) ass e Modul deen Systemadministratoren erlaabt Passwuertpolitiken op Linux Systemer ëmzesetzen. Fir dëst z'erreechen, braucht Dir de pam_pwquality Modul deen vun der libpam_pwquality Bibliothéik geliwwert gëtt. De pam_pwquality Modul kontrolléiert d'Stäerkt vun engem Passwuert géint eng Rei vu Regelen & e Systemwörterbuch a präziséiert schwaach Passwuertwahlen.

Fir de pam_pwquality Modul op Ubuntu 18.04 a spéider Versiounen z'installéieren, lafen:

$ sudo apt install libpam_pwquality

Fir RHEL/CentOS 8, fuert de Kommando:

$ sudo dnf install libpwquality

D'Konfiguratiounsdatei gëtt op der folgender Plaz fonnt:

  • Op Debian-Systems – /etc/pam.d/common-password
  • Op RedHat Systemer – /etc/pam.d/system-auth

Ier mir ufänken d'PAM Konfiguratiounsdatei z'änneren, loosst eis fir d'éischt betruechten Abléck iwwer d'Passwuertalterungskontrollen ze sammelen.

Dës kënnen an der Datei /etc/login.defs fonnt ginn.

De Fichier enthält déi folgend Schlëssel Passwuert Kontrollen:

  • PASS_MAX_DAYS: Maximal Unzuel u Deeg e Passwuert ka benotzt ginn.
  • PASS_MIN_DAYS: Minimum Zuel. vun Deeg erlaabt tëscht Passwuert Ännerungen.
  • PASS_WARN_AGE: Unzuel vun Deeg Warnung, déi virun engem Passwuert ausgeet.

D'Default Wäerter sinn ënnendrënner uginn.

D'PASS_MAX_DAYS Attribut limitéiert d'Zuel vun Deeg datt e Benotzer säi Passwuert benotze kann. Wann dëse Wäert erreecht gëtt oder d'Passwuert ofleeft, ass de Benotzer gezwongen säi Passwuert z'änneren fir sech an de System aloggen. Par défaut ass dëse Wäert op 99999 gesat, wat op 273 Joer iwwersetzt. Dëst mécht net vill Sënn wat d'Sécherheet ubelaangt well de Benotzer säi Passwuert fir hir ganz Liewensdauer weider benotze kann.

Dir kënnt dëst op e sënnvoll Wäert setzen, sot 30 Deeg wéi gewisen.

PASS_MAX_DAYS  30

No 30 Deeg ass de Benotzer gezwongen säi Passwuert op en anert z'änneren.

D'PASS_MIN_DAYS Attribut schreift d'Mindestdauer aus, déi d'Benotzer hiert Passwuert benotze kënnen ier se se änneren. Wat heescht dat? Wann zum Beispill dëse Wäert op 15 Deeg gesat gëtt, kann de Benotzer säi Passwuert net méi änneren ier 15 Deeg sinn.

PASS_MAX_DAYS  15

D'PASS_WARN_AGE Attribut spezifizéiert d'Zuel vun den Deeg wou e Benotzer eng Warnung iwwer den impendéierten Oflaf vun hirem Passwuert kritt ier et ofleeft. Zum Beispill kënnt Dir dëst op 7 Deeg setzen wéi gewisen.

PASS_MAX_DAYS  7

NOTÉIERT: Dës Passwuert Kontrollen Aarbecht net mat pre-bestehend Konte. Si ginn nëmmen op nei Konten applizéiert, déi erstallt ginn nodeems d'Regele definéiert goufen.

Ier Dir d'Datei /etc/pam.d/common-password ännert, erstellt eng Backupkopie. An dësem Beispill hu mir d'Common-password.bak Backupsatellit Datei erstallt.

$ sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.bak

Da öffnen d'Datei.

$ sudo vim /etc/pam.d/common-password 

Fannt d'Linn hei ënnendrënner.

password        requisite          pam_pwquality.so retry=3

D'Wiederprobéieren Optioun setzt déi maximal Unzuel vun Mol Dir musst dat richtegt Passwuert aginn ier Dir e Feeler kritt. Par défaut ass dëst op 3 gesat. Dëst ass just eng Optioun a mir wäerte verschidde Méiglechkeeten enthalen.

Füügt déi folgend Attributer op d'Linn:

minlen=10 difok=3 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 reject_username 

Loosst eis dës Attributer ausféieren.

  • minlen=10: Setzt déi minimal akzeptabel Gréisst fir d'Passwuert. An dësem Fall, 10 Zeechen.
  • difok=3: Dëst ass déi maximal Unzuel vun Zeechen, déi am virege Passwuert präsent sinn.
  • lcredit=-1: Dëst ass d'Mindestzuel u kleng Buschtawen, déi am Passwuert solle sinn.
  • ucredit=-1: Dat ass déi maximal Unzuel u kleng Buschtawen, déi am Passwuert präsent sinn.
  • dcredit=-1: D'Mindestzuel un numeresch Zeechen, déi am Passwuert definéiert solle ginn.
  • ocredit=-1: D'Mindestzuel vu Spezialzeechen z.B. @, #, & déi soll am Passwuert definéiert ginn.
  • reject_username: Dës Optioun léist d'Oflehnung vum Passwuert aus, wann d'Passwuert de Benotzernumm entweder am riichtaus oder ëmgedréint Format ass.

Wann Dir probéiert en neie Benotzer ze kreéieren deen net un d'Passwuert-Politik fällt, gitt Dir esou Feeler wéi gewisen.

Dëst schléisst d'Thema iwwer Systemsécherheet a Sécherheetsfundamenter am Allgemengen of. Am ganze Kapitel hu mir d'Liicht iwwer d'Basis Sécherheetsmoossname beliicht déi Dir implementéiere kënnt fir Äre Linux System vu béiswëlleg Benotzer wéi Hacker oder onzefridden Mataarbechter ze schützen.