După ce am trecut în revistă Security-Enhanced Linux (SELinux), a sosit și timpul unui exercițiu practic, asemănător cu ceea ce se poate da în timpul examinării în vederea obținerii certificării RHCSA. Trebuie reținut că o cerință din cadrul examinării RHCSA poate fi îndeplinită în mai multe moduri - alegeți-o pe cea pe care o cunoașteți cel mai bine (în cazul în care nu se specifică în mod special o anumită metodă); de asemenea, toate modificările trebuie să reziste unui restart al sistemului (la fel, dacă nu se specifică altceva).
1. Descărcați și instalați serverul web Apache
# yum install httpd
2. Modificați fișierul de configurare /etc/httpd/conf/httpd.conf și înlocuiți /var/www/html cu /content. Creați directorul /content și apoi creați un fișier static numit index.html în directorul /content cu conținutul "This is my website".
# sed -i 's/\/var\/www\/html/\/content/' /etc/httpd/conf/httpd.conf
sau
# vi /etc/httpd/conf/httpd.conf
apoi căutați și înlocuiți șirul de caractere /var/www/html cu /content
Atenție! Sunt 2 linii care trebuie înlocuite:
# cat /etc/httpd/conf/httpd.conf | grep "/var/www/html"
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
Creăm noul director content în directorul rădăcină al sistemului:
# mkdir -p /content
În directorul /content, vom crea fișierul static index.html cu conținutul cerut:
# echo "This is my website" > /content/index.html
3. Folosind sed, modificați conținutul fișierului /etc/httpd/conf.d/userdir.conf și înlocuiți UserDir disabled cu UserDir public_html
# sed -i 's/disabled/public_html/' /etc/httpd/conf.d/userdir.conf
Atenție! Deși acest fișier se poate modifica și manual (folosind vi/vim sau nano), cerința specifică în mod clar modificarea lui cu sed.
4. Creați un director public_html în directorul /home/user. Cu comanda echo
, scrieți "This is my website" într-un fișier simplu html /home/user/public_html/index.html
# mkdir -p /home/bobses/public_html
# echo "This is my website" > /home/bobses/public_html/index.html
5. Setați permisiunile pentru user și grup ale directorului /home/user/public_html pentru userul "user". Setați permisiuni 711 pentru directorul /home/user și 755 recursiv pentru /home/user/public_html
# chown -R bobses. /home/bobses/public_html
# chmod 711 /home/bobses
# chmod 755 -R /home/bobses/public_html
Executarea comenzilor de la acest punct (precum și modificările făcute) pot fi urmărite în imaginea de mai jos:
6. Restartați serviciul httpd:
# systemctl restart httpd
7. Instalați pachetul corect SELinux pentru depanarea politicilor de interzicere și violarea accesului
# yum install -y setroubleshoot-server
8. Copiați adresa IP a serverului și încercați să accesați fișierul index.html din directorul /content în browser (notă - veți primi un mesaj de eroare: Forbidden You don't have permission to access /index.html on this server). Depanați eroarea folosind pachetul SELinux troubleshooting și vedeți care ar putea fi cauza. După ce ați determinat cauza, implementați o soluție pentru a remedia violarea politicii SELinux.
# sealert -a /var/log/audit/audit.log
# semanage fcontext -a -t httpd_sys_content_t '/content(/.*)?'
# restorecon -Rv /content
restorecon reset /content context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /content/index.html context
unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
La următoarea încercare de accesare a fișierului index.html în browser, va fi afișat conținutul său:
9. Modificați fișierul /etc/httpd/conf/httpd.conf și înlocuiți /content cu /home/bobses/public_html. Restartați serverul httpd și repetați pașii de mai sus: accesare fișier index.html, depanare probleme SELinux.
Lasă un răspuns