Blog Post

SELinux Adaugă un nou certificat SSL și modifică contextul cu restorecon

Feb. 5, 2016, 3:17 p.m. centos ssl selinux apache


După ce copiem un noul certificat ssl în /etc/httpd/ssl SELinux va bloca accesul la fișier dacă acesta nu are contextul potrivit.

Dacă vedem un mesaj de eroare și Apache nu pornește, aruncăm o privire în log-ul SELinux ca să vedem că asta este problema. Verificăm incă odată local contextul fișierului cu ls -Z, și folosim restorecon ca să asignăm contextul potrivit:

$ pwd
/etc/httpd/ssl

$ ls -Z
-rw-r--r--. root      root      unconfined_u:object_r:httpd_config_t:s0 apache.crt
-rw-r--r--. root      root      unconfined_u:object_r:httpd_config_t:s0 apache.key
-rw-r--r--. raz raz unconfined_u:object_r:user_home_t:s0 spaceport.avproiect.com.crt

$ sudo restorecon -v $PWD/spaceport.avproiect.com.crt
restorecon reset /etc/httpd/ssl/spaceport.avproiect.com.crt context unconfined_u:object_r:httpd_config_t:s0->system_u:object_r:httpd_config_t:s0

$ ls -Z
-rw-r--r--. root      root      unconfined_u:object_r:httpd_config_t:s0 apache.crt
-rw-r--r--. root      root      unconfined_u:object_r:httpd_config_t:s0 apache.key
-rw-r--r--. raz raz system_u:object_r:httpd_config_t:s0 spaceport.avproiect.com.crt

$ sudo chown root:root spaceport.avproiect.com.crt

Uneori nu merge treaba ca la carte și trebuie să forțăm nota cu opțiunea -F - nu îmi e clar de ce.

$ sudo restorecon -RvF $PWD/ssl

Atenție se lucrează întodeauna cu "full-path", de aceea am folosit $PWD mai sus.

Să verificăm și lista de contexte predefinite, care vor fi aplicate de restorecon:

$ semanage fcontext -l | grep httpd_config
/etc/httpd(/.*)?                                   all files          system_u:object_r:httpd_config_t:s0
/etc/nginx(/.*)?                                   all files          system_u:object_r:httpd_config_t:s0
/etc/apache(2)?(/.*)?                              all files          system_u:object_r:httpd_config_t:s0
...
/etc/httpd/ssl(/.*)?                               all files          system_u:object_r:httpd_config_t:s0