{"id":36280,"date":"2019-10-31T22:10:39","date_gmt":"2019-10-31T19:10:39","guid":{"rendered":"https:\/\/prohoster.info\/blog\/rukovodstvo-dlya-nachinayushhih-po-selinux\/"},"modified":"2019-10-31T22:10:39","modified_gmt":"2019-10-31T19:10:39","slug":"rukovodstvo-dlya-nachinayushhih-po-selinux","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-po-selinux","title":{"rendered":"Przewodnik dla pocz\u0105tkuj\u0105cych po SELinux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Przewodnik dla pocz\u0105tkuj\u0105cych po SELinux\" src=\"\/wp-content\/uploads\/2019\/07\/4e1443c8b79a8dfa1b28fb6b6d0666bb.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><em>T\u0142umaczenie artyku\u0142u przygotowane dla student\u00f3w kursu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/31Eb\/\">\u201eBezpiecze\u0144stwo Linux\u201d<\/a><\/noindex><\/em><\/p>\n<p>SELinux, czyli Security Enhanced Linux, to zaawansowany mechanizm zarz\u0105dzania dost\u0119pem, opracowany przez Agencj\u0119 Bezpiecze\u0144stwa Narodowego USA (NSA) w celu zapobiegania z\u0142o\u015bliwym atakom. Wdra\u017ca on przymusowy (lub mandatuj\u0105cy) model zarz\u0105dzania dost\u0119pem (ang. Mandatory Access Control, MAC) na szczycie istniej\u0105cego dyskrecjonalnego (lub wybi\u00f3rczego) modelu (ang. Discretionary Access Control, DAC), czyli uprawnie\u0144 do odczytu, zapisu i wykonania.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><\/p>\n<p>SELinux ma trzy tryby:<\/p>\n<p><\/p>\n<ol>\n<li><strong>Wymuszaj\u0105cy<\/strong> \u2014 zabrania dost\u0119pu na podstawie regu\u0142 polityki.<\/li>\n<li><strong>Zezwalaj\u0105cy<\/strong> \u2014 prowadzi dziennik dzia\u0142a\u0144 naruszaj\u0105cych polityk\u0119, kt\u00f3re w trybie wymuszaj\u0105cym by\u0142yby zabronione.<\/li>\n<li><strong>Wy\u0142\u0105czony<\/strong> \u2014 ca\u0142kowite wy\u0142\u0105czenie SELinux.<\/li>\n<\/ol>\n<p><\/p>\n<p>Domy\u015blnie ustawienia znajduj\u0105 si\u0119 w <code>\/etc\/selinux\/config<\/code><\/p>\n<p><\/p>\n<h1 id=\"izmenenie-rezhimov-selinux\">Zmiana tryb\u00f3w SELinux<\/h1>\n<p><\/p>\n<p>Aby sprawdzi\u0107 bie\u017c\u0105cy tryb, uruchom <\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ getenforce<\/code><\/pre>\n<p><\/p>\n<p>Aby zmieni\u0107 tryb na zezwalaj\u0105cy, uruchom nast\u0119puj\u0105ce polecenie <\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ setenforce 0<\/code><\/pre>\n<p><\/p>\n<p>lub, aby zmieni\u0107 tryb z <strong>zezwalaj\u0105cego<\/strong> na <strong>na wymuszaj\u0105cy<\/strong>, wykonaj <\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ setenforce 1<\/code><\/pre>\n<p><\/p>\n<p>Je\u015bli chcesz ca\u0142kowicie wy\u0142\u0105czy\u0107 SELinux, mo\u017cna to zrobi\u0107 tylko poprzez plik konfiguracyjny <\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ vi \/etc\/selinux\/config<\/code><\/pre>\n<p><\/p>\n<p>Aby wy\u0142\u0105czy\u0107, zmie\u0144 parametr SELINUX w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">SELINUX=disabled<\/code><\/pre>\n<p><\/p>\n<h1 id=\"nastroyka-selinux\">Konfiguracja SELinux<\/h1>\n<p><\/p>\n<p>Ka\u017cdy plik i proces jest oznaczony kontekstem SELinux, kt\u00f3ry zawiera dodatkowe informacje, takie jak u\u017cytkownik, rola, typ itp. Je\u015bli w\u0142\u0105czasz SELinux po raz pierwszy, musisz najpierw skonfigurowa\u0107 konteksty i etykiety. Proces przypisywania etykiet i kontekstu znany jest jako etykietowanie. Aby rozpocz\u0105\u0107 etykietowanie, w pliku konfiguracyjnym zmieniamy tryb na <strong>zezwalaj\u0105cego<\/strong>.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ vi \/etc\/selinux\/config\nSELINUX=permissive<\/code><\/pre>\n<p><\/p>\n<p>Po ustawieniu trybu <strong>zezwalaj\u0105cego<\/strong>, stw\u00f3rz w katalogu g\u0142\u00f3wnym pusty ukryty plik o nazwie <code>.autorelabel<\/code><\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ touch \/.autorelabel<\/code><\/pre>\n<p><\/p>\n<p>a uruchom ponownie komputer<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ init 6<\/code><\/pre>\n<p><\/p>\n<p>Uwaga: u\u017cywamy trybu <strong>zezwalaj\u0105cego<\/strong> do etykietowania, poniewa\u017c u\u017cycie trybu <strong>na wymuszaj\u0105cy<\/strong> mo\u017ce prowadzi\u0107 do awarii systemu podczas uruchamiania.<\/p>\n<p><\/p>\n<p>Nie martw si\u0119, je\u015bli start utknie na jakim\u015b pliku, etykietowanie zajmuje troch\u0119 czasu. Po zako\u0144czeniu etykietowania i uruchomieniu systemu mo\u017cesz przej\u015b\u0107 do pliku konfiguracyjnego i ustawi\u0107 tryb <strong>na wymuszaj\u0105cy<\/strong>, a tak\u017ce uruchomi\u0107:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ setenforce 1<\/code><\/pre>\n<p><\/p>\n<p>Teraz pomy\u015blnie w\u0142\u0105czy\u0142e\u015b SELinux na swoim komputerze. <\/p>\n<p><\/p>\n<h1 id=\"monitorim-logi\">Monitorujemy dzienniki<\/h1>\n<p><\/p>\n<p>Mo\u017cliwe, \u017ce wyst\u0105pi\u0142y jakie\u015b b\u0142\u0119dy podczas oznaczania lub pracy systemu. Aby sprawdzi\u0107, czy SELinux dzia\u0142a poprawnie i czy nie blokuje dost\u0119pu do jakiego\u015b portu, aplikacji itp., nale\u017cy sprawdzi\u0107 logi. Log SELinux znajduje si\u0119 w <code>\/var\/log\/audit\/audit.log<\/code>, ale nie musisz go czyta\u0107 w ca\u0142o\u015bci, aby znale\u017a\u0107 b\u0142\u0119dy. Mo\u017cna u\u017cy\u0107 narz\u0119dzia audit2why do wyszukiwania b\u0142\u0119d\u00f3w. Uruchom nast\u0119puj\u0105c\u0105 komend\u0119:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ audit2why &lt; \/var\/log\/audit\/audit.log<\/code><\/pre>\n<p><\/p>\n<p>W rezultacie otrzymasz list\u0119 b\u0142\u0119d\u00f3w. Je\u015bli w logu nie by\u0142o b\u0142\u0119d\u00f3w, nie b\u0119d\u0105 wy\u015bwietlane \u017cadne komunikaty.<\/p>\n<p><\/p>\n<h1 id=\"nastroyka-politiki-selinux\">Konfiguracja polityki SELinux<\/h1>\n<p><\/p>\n<p>Polityka SELinux to zbi\u00f3r regu\u0142, kt\u00f3rymi kieruje si\u0119 mechanizm bezpiecze\u0144stwa SELinux. Polityka okre\u015bla zestaw regu\u0142 dla konkretnego \u015brodowiska. Teraz przyjrzymy si\u0119, jak konfigurowa\u0107 polityki, aby zezwoli\u0107 na dost\u0119p do zabronionych us\u0142ug.<\/p>\n<p><\/p>\n<h4 id=\"1-logicheskie-znacheniya-pereklyuchateli\">1. Warto\u015bci logiczne (prze\u0142\u0105czniki)<\/h4>\n<p><\/p>\n<p>Prze\u0142\u0105czniki (booleany) pozwalaj\u0105 na zmian\u0119 cz\u0119\u015bci polityki w czasie rzeczywistym, bez potrzeby tworzenia nowych polityk. Umo\u017cliwiaj\u0105 wprowadzanie zmian bez restartu lub rekompilacji polityk SELinux.<\/p>\n<p><\/p>\n<p><strong>Przyk\u0142ad<\/strong><br \/>\nZa\u0142\u00f3\u017cmy, \u017ce chcemy umo\u017cliwi\u0107 wsp\u00f3lny dost\u0119p do katalogu domowego u\u017cytkownika przez FTP w trybie odczytu i zapisu, i ju\u017c go udost\u0119pnili\u015bmy, ale przy pr\u00f3bie dost\u0119pu nic nie widzimy. Jest to spowodowane tym, \u017ce polityka SELinux zabrania serwerowi FTP odczytywania i zapisywania w katalogu domowym u\u017cytkownika. Musimy zmieni\u0107 polityk\u0119, aby serwer FTP m\u00f3g\u0142 uzyskiwa\u0107 dost\u0119p do katalog\u00f3w domowych. Sprawd\u017amy, czy istniej\u0105 jakie\u015b prze\u0142\u0105czniki do tego, wykonuj\u0105c<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ semanage boolean -l<\/code><\/pre>\n<p><\/p>\n<p>Ta komenda wy\u015bwietli list\u0119 dost\u0119pnych prze\u0142\u0105cznik\u00f3w z ich aktualnym stanem (w\u0142\u0105czone\/on lub wy\u0142\u0105czone\/off) oraz opisem. Mo\u017cesz doprecyzowa\u0107 wyszukiwanie, dodaj\u0105c grep, aby znale\u017a\u0107 wyniki, kt\u00f3re dotycz\u0105 tylko FTP:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ semanage boolean -l | grep ftp<\/code><\/pre>\n<p><\/p>\n<p>i znajdziesz nast\u0119pne<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">ftp_home_dir -&gt; off       Allow ftp to read &amp; write file in user home directory<\/code><\/pre>\n<p><\/p>\n<p>Ten prze\u0142\u0105cznik jest wy\u0142\u0105czony, wi\u0119c aktywujemy go za pomoc\u0105 <code>setsebool ftp_home_dir on<\/code><\/p>\n<p><\/p>\n<p>Teraz nasz demon FTP b\u0119dzie m\u00f3g\u0142 uzyska\u0107 dost\u0119p do katalogu domowego u\u017cytkownika.<br \/>\nUwaga: mo\u017cesz tak\u017ce uzyska\u0107 list\u0119 dost\u0119pnych prze\u0142\u0105cznik\u00f3w bez opisu, wykonuj\u0105c <code>getsebool -a<\/code><\/p>\n<p><\/p>\n<h4 id=\"2-metki-i-kontekst\">2. Etykiety i kontekst<\/h4>\n<p><\/p>\n<p>To najcz\u0119\u015bciej stosowany spos\u00f3b realizacji polityki SELinux. Ka\u017cdy plik, katalog, proces i port s\u0105 oznaczane kontekstem SELinux:<\/p>\n<p><\/p>\n<ul>\n<li>Dla plik\u00f3w i folder\u00f3w etykiety s\u0105 przechowywane jako atrybuty rozszerzone w systemie plik\u00f3w i mo\u017cna je przegl\u0105da\u0107 nast\u0119puj\u0105cym poleceniem:\n<pre><code class=\"plaintext\">$ ls -Z \/etc\/httpd<\/code><\/pre>\n<\/li>\n<li>Dla proces\u00f3w i port\u00f3w etykietowanie jest zarz\u0105dzane przez j\u0105dro, a etykiety mo\u017cna zobaczy\u0107 w nast\u0119puj\u0105cy spos\u00f3b:<\/li>\n<\/ul>\n<p><\/p>\n<p>proces<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ ps \u2013auxZ | grep httpd<\/code><\/pre>\n<p><\/p>\n<p>port<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ netstat -anpZ | grep httpd<\/code><\/pre>\n<p><\/p>\n<p><strong>Przyk\u0142ad<\/strong><br \/>\nTeraz przyjrzyjmy si\u0119 przyk\u0142adzie, aby lepiej zrozumie\u0107 etykiety i kontekst. Za\u0142\u00f3\u017cmy, \u017ce mamy <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pl\/server\/\"   title=\"serwer www\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1142\">serwer www<\/a>, kt\u00f3ry zamiast katalogu <code>\/var\/www\/html\/ \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \/home\/dan\/html\/<\/code>. SELinux uzna to za naruszenie polityki, a ty nie b\u0119dziesz m\u00f3g\u0142 przegl\u0105da\u0107 swoich stron internetowych. Dzieje si\u0119 tak, poniewa\u017c nie ustawili\u015bmy kontekstu zabezpiecze\u0144 zwi\u0105zanego z plikami HTML. Aby zobaczy\u0107 kontekst zabezpiecze\u0144 domy\u015blnie, u\u017cyj nast\u0119puj\u0105cego polecenia:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ ls \u2013lz \/var\/www\/html\n -rw-r\u2014r\u2014. root root unconfined_u:object_r:httpd_sys_content_t:s0 \/var\/www\/html\/<\/code><\/pre>\n<p><\/p>\n<p>Tutaj otrzymali\u015bmy <code>httpd_sys_content_t<\/code> jako kontekst dla plik\u00f3w html. Musimy ustawi\u0107 ten kontekst zabezpiecze\u0144 dla naszego bie\u017c\u0105cego katalogu, kt\u00f3ry obecnie ma nast\u0119puj\u0105cy kontekst:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">-rw-r\u2014r\u2014. dan dan system_u:object_r:user_home_t:s0 \/home\/dan\/html\/<\/code><\/pre>\n<p><\/p>\n<p>Alternatywne polecenie do sprawdzenia kontekstu zabezpiecze\u0144 pliku lub katalogu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ semanage fcontext -l | grep '\/var\/www'<\/code><\/pre>\n<p><\/p>\n<p>B\u0119dziemy tak\u017ce u\u017cywa\u0107 semanage do zmiany kontekstu, po tym jak znajdziemy odpowiedni kontekst zabezpiecze\u0144. Aby zmieni\u0107 kontekst \/home\/dan\/html, wykonaj nast\u0119puj\u0105ce polecenia:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ semanage fcontext -a -t httpd_sys_content_t '\/home\/dan\/html(\\\/.*)?'\n$ semanage fcontext -l | grep '\/home\/dan\/html'\n\/home\/dan\/html(\\\/.*)? all files system_u:object_r:httpd_sys_content_t:s0\n$ restorecon -Rv \/home\/dan\/html<\/code><\/pre>\n<p><\/p>\n<p>Po zmianie kontekstu za pomoc\u0105 semanage, polecenie restorecon za\u0142aduje kontekst domy\u015blny dla plik\u00f3w i katalog\u00f3w. Nasz serwer WWW teraz b\u0119dzie m\u00f3g\u0142 czyta\u0107 pliki z folderu <code>\/home\/dan\/html<\/code>, poniewa\u017c kontekst zabezpiecze\u0144 dla tego folderu zosta\u0142 zmieniony na <code>httpd_sys_content_t<\/code>.<\/p>\n<p><\/p>\n<h4 id=\"3-sozdanie-lokalnyh-politik\">3. Tworzenie lokalnych polityk<\/h4>\n<p><\/p>\n<p>Mog\u0105 wyst\u0105pi\u0107 sytuacje, w kt\u00f3rych powy\u017csze metody b\u0119d\u0105 dla Ciebie bezu\u017cyteczne, a Ty otrzymujesz b\u0142\u0119dy (avc\/denial) w audit.log. Gdy takie co\u015b si\u0119 wydarza, nale\u017cy stworzy\u0107 lokaln\u0105 polityk\u0119.<\/p>\n<p><\/p>\n<p>Aby usun\u0105\u0107 b\u0142\u0119dy, mo\u017cna stworzy\u0107 lokaln\u0105 polityk\u0119. Na przyk\u0142ad, otrzymuj\u0105c b\u0142\u0105d zwi\u0105zany z httpd (apache) lub smbd (samba), przeszukujemy b\u0142\u0119dy i tworzymy polityk\u0119:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">apache\n$ grep httpd_t \/var\/log\/audit\/audit.log | audit2allow -M http_policy\nsamba\n$ grep smbd_t \/var\/log\/audit\/audit.log | audit2allow -M smb_policy<\/code><\/pre>\n<p><\/p>\n<p>Tutaj <code>http_policy<\/code> i <code>smb_policy<\/code> \u2014 to nazwy lokalnych polityk, kt\u00f3re stworzyli\u015bmy. Teraz musimy za\u0142adowa\u0107 te stworzone lokalne polityki do bie\u017c\u0105cej polityki SELinux. Mo\u017cna to zrobi\u0107 w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ semodule \u2013I http_policy.pp\n$ semodule \u2013I smb_policy.pp<\/code><\/pre>\n<p><\/p>\n<p>Nasze lokalne polityki zosta\u0142y za\u0142adowane i nie powinni\u015bmy ju\u017c otrzymywa\u0107 \u017cadnych avc ani denail w audit.log.<\/p>\n<p><em>To by\u0142a moja pr\u00f3ba pom\u00f3c ci zrozumie\u0107 SELinux. Mam nadziej\u0119, \u017ce po przeczytaniu tego artyku\u0142u poczujesz si\u0119 bardziej komfortowo z SELinux.<\/em><\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/460387\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c Linux\u00bb SELinux \u0438\u043b\u0438 Security Enhanced Linux \u2014 \u044d\u0442\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 \u0410\u0433\u0435\u043d\u0442\u0441\u0442\u0432\u043e\u043c \u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0421\u0428\u0410 (\u0410\u041d\u0411 \u0421\u0428\u0410) \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0437\u043b\u043e\u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u044b\u0445 \u0432\u0442\u043e\u0440\u0436\u0435\u043d\u0438\u0439. \u041e\u043d \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e (\u0438\u043b\u0438 \u043c\u0430\u043d\u0434\u0430\u0442\u043d\u0443\u044e) \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c (\u0430\u043d\u0433\u043b. Mandatory Access Control, MAC) \u043f\u043e\u0432\u0435\u0440\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0434\u0438\u0441\u043a\u0440\u0435\u0446\u0438\u043e\u043d\u043d\u043e\u0439 (\u0438\u043b\u0438 \u0438\u0437\u0431\u0438\u0440\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439) \u043c\u043e\u0434\u0435\u043b\u0438 (\u0430\u043d\u0433\u043b. Discretionary Access Control, DAC), \u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27140,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36280","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-po-selinux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u043f\u043e SELinux | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-po-selinux\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:10:39+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:10:39+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Przewodnik dla pocz\u0105tkuj\u0105cych po SELinux | ProHoster","description":"T\u0142umaczenie artyku\u0142u przygotowane dla student\u00f3w.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-po-selinux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u043f\u043e SELinux | ProHoster","og:description":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-po-selinux","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:10:39+00:00","article:modified_time":"2019-10-31T19:10:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36280","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-09 15:05:39","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:47:35","updated":"2026-02-09 15:05:39","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/36280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=36280"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/36280\/revisions"}],"predecessor-version":[{"id":158345,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/36280\/revisions\/158345"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/27140"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=36280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=36280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=36280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}