ProHoster > Blog > Administratioun > SELinux Cheatsheet fir Systemadministratoren: 42 Äntwerten op wichteg Froen
SELinux Cheatsheet fir Systemadministratoren: 42 Äntwerten op wichteg Froen
D'Iwwersetzung vum Artikel gouf speziell fir d'Schüler vum Cours virbereet "Linux Administrator".
Hei kritt Dir Äntwerten op wichteg Froen iwwer d'Liewen, den Universum an alles am Linux mat verbesserter Sécherheet.
"Déi wichteg Wourecht datt d'Saachen net ëmmer sinn wat se schéngen ass allgemeng Wëssen ..."
-Douglas Adams, Den Hitchhiker's Guide zu der Galaxis
Sécherheet. Méi Zouverlässegkeet. Korrespondenz. Politik. Véier Reider vun der Apokalypse sysadmin. Nieft eisen alldeeglechen Aufgaben - Iwwerwachung, Backup, Ëmsetzung, Konfiguratioun, Aktualiséierung, etc. - si mir och verantwortlech fir d'Sécherheet vun eise Systemer. Och déi Systemer wou den Drëtte-Partei-Provider recommandéiert datt mir verstäerkte Sécherheet auszeschalten. Et fillt sech wéi Aarbecht Ethan Hunt aus "Mission: Impossible."
Konfrontéiert mat dësem Dilemma, decidéiert e puer System Administrateuren ze huelen blo Pille, well se mengen, si wäerten ni d'Äntwert op déi grouss Fro vum Liewen, dem Universum an alles wëssen. A wéi mir all wëssen, ass dës Äntwert 42.
Am Geescht vum The Hitchhiker's Guide to the Galaxy, hei sinn 42 Äntwerten op wichteg Froen iwwer Kontroll a Gebrauch. SELinux op Äre Systemer.
1. SELinux ass e gezwongenen Zougangskontrollsystem, dat heescht datt all Prozess e Label huet. All Datei, Verzeechnes a Systemobjekt huet och Etiketten. Politikregele kontrolléieren den Zougang tëscht tagged Prozesser an Objeten. De Kernel ëmsetzt dës Regelen.
2. Déi zwee wichtegst Konzepter sinn: Etikettéieren - Marquage (Dateien, Prozesser, Häfen, etc.) an Typ Duerchféierung (wat Prozesser vuneneen isoléiert baséiert op Typen).
3. Korrekt Label Format user:role:type:level (optional).
4. Den Zweck fir Multi-Level Sécherheet ze liwweren (Multi-Level Sécherheet - MLS) ass fir Prozesser (Domänen) ze managen baséiert op dem Sécherheetsniveau vun den Donnéeën déi se benotzen. Zum Beispill kann e geheime Prozess net Top geheim Daten liesen.
Prozess Lafen am Kontext httpd_t, kann mat engem markéierten Objet interagéieren httpd_something_t.
13. Vill Kommandoen akzeptéieren en Argument -Z Kontext kucken, erstellen an änneren:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
Kontexter ginn etabléiert wann Dateien erstallt ginn op Basis vum Kontext vun hirem Elterenverzeichnis (mat e puer Ausnahmen). RPMs kënnen Kontexter etabléieren wéi während der Installatioun.
14. Et gi véier Haaptursaachen vu SELinux Feeler, déi méi detailléiert an de Punkten 15-21 hei ënnen beschriwwe ginn:
Etikettéieren Problemer
Wéinst eppes wat SELinux muss wëssen
Feeler an der SELinux Politik / Applikatioun
Är Informatioun kann kompromittéiert ginn
15.Etikettéierungsproblem: wann Är Dateien an /srv/myweb sinn falsch markéiert, Zougang kann refuséiert ginn. Hei sinn e puer Weeër fir dëst ze fixéieren:
Wann Dir de Label kennt: # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
Wann Dir e Fichier mat gläichwäertege Marquage kennt: # semanage fcontext -a -e /srv/myweb /var/www
De Kontext restauréieren (fir béid Fäll): # restorecon -vR /srv/myweb
16.Etikettéierungsproblem: wann Dir d'Datei réckelt anstatt se ze kopéieren, behält d'Datei säin urspréngleche Kontext. Fir dëse Problem ze fixéieren:
Ännert de Kontextbefehl mam Label: # chcon -t httpd_system_content_t /var/www/html/index.html
Ännert de Kontext Kommando mam Link Label: # chcon --reference /var/www/html/ /var/www/html/index.html
De Kontext restauréieren (fir béid Fäll): # restorecon -vR /var/www/html/
17. wann SELinux Dir musst wëssendatt HTTPD um Hafen 8585 lauschtert, sot SELinux:
# semanage port -a -t http_port_t -p tcp 8585
18.SELinux Dir musst wëssen Boolesch Wäerter déi et erlaben Deeler vun der SELinux Politik während der Runtime z'änneren ouni Wësse vun der SELinux Politik ze iwwerschreiwe. Zum Beispill, wann Dir httpd wëllt E-Mail schécken, gitt: # setsebool -P httpd_can_sendmail 1
19.SELinux Dir musst wëssen logesch Wäerter fir SELinux Astellungen z'aktivéieren / auszeschalten:
Fir all boolesch Wäerter ze gesinn: # getsebool -a
Fir eng Beschreiwung vun all eenzel ze gesinn: # semanage boolean -l
Fir e boolesche Wäert ze setzen: # setsebool [_boolean_] [1|0]
Fir eng permanent Installatioun, addéieren -P. Zum Beispill: # setsebool httpd_enable_ftp_server 1 -P
25. Wann e SELinux Feeler geschitt, benotzt de Log setroubleshoot bitt verschidde méiglech Léisungen.
Zum Beispill vun journalctl:
Jun 14 19:41:07 web1 setroubleshoot: SELinux is preventing httpd from getattr access on the file /var/www/html/index.html. For complete message run: sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
# sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
SELinux is preventing httpd from getattr access on the file /var/www/html/index.html.
***** Plugin restorecon (99.5 confidence) suggests ************************
If you want to fix the label,
/var/www/html/index.html default label should be httpd_syscontent_t.
Then you can restorecon.
Do
# /sbin/restorecon -v /var/www/html/index.html
26. Logging: SELinux registréiert Informatioun op ville Plazen:
28. Fir SELinux Access Vector Cache (AVC) Messagen fir e spezifesche Service ze fannen:
# ausearch -m avc -c httpd
29. Utility audit2allow sammelt Informatioun aus Logbicher vu verbuedenen Operatiounen a generéiert dann SELinux Erlaabnis Politik Regelen. Zum Beispill:
Fir eng mënschlech liesbar Beschreiwung ze kreéieren firwat den Zougang verweigert gëtt: # audit2allow -w -a
Fir eng Zort Duerchféierungsregel ze gesinn déi den Zougang verweigert erlaabt: # audit2allow -a
Fir e personaliséierte Modul ze kreéieren: # audit2allow -a -M mypolicy
Optioun -M erstellt en Typ Duerchféierungsdatei (.te) mam spezifizéierten Numm a kompiléiert d'Regel an e Politikpaket (.pp): mypolicy.pp mypolicy.te
Fir e personaliséierte Modul z'installéieren: # semodule -i mypolicy.pp
30. Fir e separaten Prozess (Domain) ze konfiguréieren fir am permissive Modus ze schaffen: # semanage permissive -a httpd_t
31. Wann Dir net méi wëllt datt d'Domain permissiv ass: # semanage permissive -d httpd_t
32. Fir all permissiv Domainen auszeschalten: # semodule -d permissivedomains
33. MLS SELinux Politik aktivéieren: # yum install selinux-policy-mls
в /etc/selinux/config:
SELINUX=permissive
SELINUXTYPE=mls
Vergewëssert Iech datt SELinux am permissive Modus leeft: # setenforce 0
Benotzt e Skript fixfilesFir sécherzestellen datt d'Dateien um nächste Restart nei markéiert ginn:
# fixfiles -F onboot # reboot
34. Erstellt e Benotzer mat enger spezifescher MLS Gamme: # useradd -Z staff_u john
Benotzt de Kommando useradd, map den neie Benotzer op en existente SELinux Benotzer (an dësem Fall, staff_u).
35. Fir d'Mapping tëscht SELinux a Linux Benotzer ze gesinn: # semanage login -l
36. Definéiert eng spezifesch Gamme fir de Benotzer: # semanage login --modify --range s2:c100 john
37. Fir de Benotzer säin Heemverzeichnis Label ze korrigéieren (wann néideg): # chcon -R -l s2:c100 /home/john
38. Fir aktuell Kategorien ze gesinn: # chcat -L
39. Fir Kategorien z'änneren oder Äert eegent ze kreéieren, ännert d'Datei wéi follegt:
/etc/selinux/_<selinuxtype>_/setrans.conf
40. Fir e Kommando oder Skript an enger spezifescher Datei, Roll a Benotzerkontext auszeféieren: