Jak wyłączyć SELinux w CentOS 7?
Przy stawianiu prostego odizolowanego środowiska testowego opartego o CentOS 7 czasem zachodzi potrzeba wyłączenia usług zabezpieczających. Ostatnio pisałem o tym jak wyłączyć firewall w CentOS 7, dziś pora na kolejny system zabezpieczeń – SELinux.
Oczywiście firewall i SELinux należy wyłączać tylko wtedy kiedy wiadomo po co się to robi. Nie zalecam zatrzymywania tych usług w systemach produkcyjnych.
Aby sprawdzić czy SELinux bardziej przeszkadza niż pomaga w konkretnym środowisku warto sprawdzić czy w ogóle jest uruchomiony. Wydanie polecenia sestatus pozwoli to określić:
[root@localhost /]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
Jak widać SELinux jest włączony i działa. Kolejny krok to wydanie polecenia getenforce:
[root@localhost /]# getenforce
Enforcing
Mamy więc potwierdzenie, że zabezpieczenia działają. Jeśli chcemy wyłączyć SELinux tylko na chwilę wystarczy wydać polecenie setenforce 0, to polecenie przełączy SELinux w mniej restrykcyjny tryb – permissive.
[root@localhost /]# setenforce 0
[root@localhost /]# getenforce
Permissive
[root@localhost /]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
Jak widać zmienił się tylko tryb pracy usługi. Niestety całkowite jej wyłączenie może nastąpić po restarcie całego serwera. Jednak należy najpierw dokonać zmian w pliku /etc/selinux/config, gdzie należy zmienić linię:
SELINUX=enforcing
na:
SELINUX=disabled
I wykonać restart. Tak oto pozbywamy się kolejnego zabezpieczenia maszyny.
Ostatnio spędziłem z godzinę na rozkminieniu dlaczego samba w CentOS 6.6 nie pozwalała na zapis plików pomimo odpowiednich uprawnień folderów i konfiguracji zasobu. W końcu znalazłem gdzieś na necie że to jakieś ustawienie od SELinux blokuje domyślnie. W starszych Slackware i Debianach/Ubuntu się z tym nie spotkałem dotychczas i to była dla mnie nowość.
Nie chcę być złośliwy, ale tak wszyscy zawsze zachwalali jaki to Linux bezpieczny, czyżby praca na uprawnieniach zwykłego usera już nie wystarczała i trzeba robić sobie kolejne warstwy zabezpieczeń?
W starszych Slackware’ach i Debianach/Ubuntu SELinuksa albo nie ma, albo jest domyślnie wyłączony.
Linuksy są m.in. dlatego względnie bezpieczne, bo zawierają narzędzia jak powyższe. Sama ich idea do nowych również nie należy.
Jasne, że nie jest ot żadne nowum, jednak np. w konkretnej dystrybucji jaką jest CentOS SELinux jest domyślnie włączony. Jest to dobre narzędzie pod warunkiem, że zostanie prawidłowo skonfigurowane.
Pierwszy kontakt miałem na Fedorze dobrych kilka lat temu i też był domyślnie włączony.
Swoją drogą, planowany jest jakiś tekst poświęcony konfiguracji SELinuksa?
Szczerze powiem, że nie korzystam z tego na żadnej maszynie. Więc moja wiedza w tym zakresie jest mocno ograniczona. Po prostu nie spotkałem się z tym nigdy w mojej pracy, a do zabaw amatorskich na domowych wirtualkach zawsze to wyłączam.
Mogę poświęcić też ograniczoną liczbę czasu na zdobywanie wiedzy w takim zakresie. Spece.IT jest projektem hobbystycznym i czym możemy to się dzielimy.
Nie wykluczam jednak, że w ramach włąsnej nauki kiedyś wpis o SELinux powstanie 😉