7,540
edits
Changes
Created page with "=SELinux= http://wiki.centos.org/HowTos/SELinux {{warning|Fontos hogy a legújabb policy-t használjuk, különben a ClamAV futtatásához szükséges boolean-ek nem lesznek..."
=SELinux=
http://wiki.centos.org/HowTos/SELinux
{{warning|Fontos hogy a legújabb policy-t használjuk, különben a ClamAV futtatásához szükséges boolean-ek nem lesznek benne. Tehát ha nem az alábbi az SELInux-unk verziója, akkor a teljes rendszeren futtassunk egy update-t.
selinux-policy-3.7.19-292.el6.noarch
<pre>
# yum update
</pre>
De legalább ezt:
<pre>
# yum update selinux\* policycoreutils libsepol
</pre>
}}
Elsőként fel kell tenni a SELinux log modult:
<pre>
# yum install setroubleshoot* setools
</pre>
Itt az idő, hogy visszakapcsoljuk a SELinux-ot. A SELinux egyrészt nem fogja megengedni, hogy a Dovecot hozzáférjen a /var/spool/postfix/virtual mappákhoz, hogy ott fájlokat, mappákat hozzon létre, vagy töröljön. Másrészt a postfix_virtual_t kontextusú procesznek meg kell szintén engedjük, hogy írja a fent említett spool mappákat, vagyis a postfix_spool_t kontextusú mappákat és fájlokat.
A SELinuxban lehetőség van a policy-ba egyedi modulokat betölteni, ezzel módosítani a gyári beállításokat. A audit2allow program az audit log alapján tud ajánlatokat tenni az egyes SELinux problémák megoldására, úgy hogy legyárt az adott problémára egy megfelelő modult.
Egy .te kiterjesztésű fájlban legyártja a polocy fájlt, amiben leírja a szerinte alkalmazandó policy módosításokat.
A /var/log/messages fájlban megjelenő SELinux riasztások (For complete SELinux messages. run sealert -l 543e1f54-ddee-48ad-88a1-14854a9e887d ) jobb híján az audit2allow program segítségével legyártható modul használatára tesznek ajánlatot.
Pl. a dovecot által okozott riasztásokban leírt hozzáférések engedélyezésére az alábbi parancsot javasolja:
<pre>
# grep doveconf /var/log/audit/audit.log | audit2allow -M dovecotMyPol
</pre>
Ezt futtatva a jelenlegi mappában, ahol épp állunk, létrehoz egy .te fájlt, és generál belőle egy .pp betölthető modul fájlt.
A .pp kiterjesztésű modult így tölthetjük be:
<pre>
# semodule -i dovecotMyPol.pp
</pre>
Fontos, hogy amit a audit2allow -M után emgadunk, az lesz a modul neve. Egyszerre csak egy ilyen nevű modul lehet betöltve a policy-ba, tehát ha létrehozunk egy másik .pp modult ugyan ilyen névvel, és a semodul -i vel betöltjük, akkor a régit felül fogja írni, és ami abban volt, az elveszik. Tehát mindig egyedi modul neveket adjunk meg a audit2allow -M parancs használatakor.
A audit2allow -M nem tett bele mindent a virtuális mappát használó email rendszer működéséhez szükséges engedélyekből. A audit2allow -M által legyártott .te fájl kiváló kiindulási alap. Én a három különböző SELinux riasztásból generált .te fájl tartalmát másoltam össze egy .te fájlba:
<pre>
module dovecotVirtualMailbox 1.0;
require {
type dovecot_t;
type postfix_virtual_t;
type postfix_spool_t;
type postfix_qmgr_t;
type postfix_private_t;
class file { rename read lock create write getattr link unlink open append };
class dir { write read create add_name remove_name search };
}
#============= dovecot_t ==============
#!!!! The source type 'dovecot_t' can write to a 'dir' of the following types:
# user_home_dir_t, postfix_private_t, mail_spool_t, tmp_t, dovecot_tmp_t, user_home_t, var_run_t, var_log_t, dovecot_spool_t, mail_home_rw_t, dovecot_var_log_t, dovecot_var_lib_t, dovecot_var_run_t, nfs_t, cluster_var_lib_t, cluster_var_run_t, root_t, cluster_conf_t
allow dovecot_t postfix_spool_t:dir { write add_name };
allow dovecot_t postfix_spool_t:dir { read remove_name create };
allow dovecot_t postfix_spool_t:file { rename read lock create write getattr link unlink open append };
#============= dovecot_t on httpd ==============
#allow dovecot_t httpd_config_t:dir search;
#allow dovecot_t httpd_config_t:file { read open };
#============= postfix_virtual_t ==============
#!!!! The source type 'postfix_virtual_t' can write to a 'dir' of the following types:
# user_home_dir_t, mail_spool_t, user_home_t, postfix_virtual_tmp_t, mail_home_rw_t, user_home_type, nfs_t
allow postfix_virtual_t postfix_spool_t:dir { write remove_name create add_name };
allow postfix_virtual_t postfix_spool_t:file { create unlink link };
#============= postfix_qmgr_t ==============
#!!!! The source type 'postfix_qmgr_t' can write to a 'dir' of the following types:
# var_run_t, postfix_spool_t, tmp_t, postfix_qmgr_tmp_t, var_spool_t, postfix_spool_maildrop_t
allow postfix_qmgr_t postfix_private_t:dir write;
</pre>
Ebből elsőként készíteni kell egy .mod fájlt, majd a .mod fálból a .pp policy fájlt. Majd a semoudl -i vel betöltjük az új .pp fájlt.
# checkmodule -M -m -o virualMailPolicy.mod virualMailPolicy.te
# semodule_package -o virualMailPolicy.pp -m virualMailPolicy.mod
# semodule -i virualMailPolicy.pp
A modul betöltése boot perzisztens. A modult a -r kapcsolóval el lehet távolítani a policy-ből, és a -d kapcsolóval ki lehet kapcsolni.
http://wiki.centos.org/HowTos/SELinux
{{warning|Fontos hogy a legújabb policy-t használjuk, különben a ClamAV futtatásához szükséges boolean-ek nem lesznek benne. Tehát ha nem az alábbi az SELInux-unk verziója, akkor a teljes rendszeren futtassunk egy update-t.
selinux-policy-3.7.19-292.el6.noarch
<pre>
# yum update
</pre>
De legalább ezt:
<pre>
# yum update selinux\* policycoreutils libsepol
</pre>
}}
Elsőként fel kell tenni a SELinux log modult:
<pre>
# yum install setroubleshoot* setools
</pre>
Itt az idő, hogy visszakapcsoljuk a SELinux-ot. A SELinux egyrészt nem fogja megengedni, hogy a Dovecot hozzáférjen a /var/spool/postfix/virtual mappákhoz, hogy ott fájlokat, mappákat hozzon létre, vagy töröljön. Másrészt a postfix_virtual_t kontextusú procesznek meg kell szintén engedjük, hogy írja a fent említett spool mappákat, vagyis a postfix_spool_t kontextusú mappákat és fájlokat.
A SELinuxban lehetőség van a policy-ba egyedi modulokat betölteni, ezzel módosítani a gyári beállításokat. A audit2allow program az audit log alapján tud ajánlatokat tenni az egyes SELinux problémák megoldására, úgy hogy legyárt az adott problémára egy megfelelő modult.
Egy .te kiterjesztésű fájlban legyártja a polocy fájlt, amiben leírja a szerinte alkalmazandó policy módosításokat.
A /var/log/messages fájlban megjelenő SELinux riasztások (For complete SELinux messages. run sealert -l 543e1f54-ddee-48ad-88a1-14854a9e887d ) jobb híján az audit2allow program segítségével legyártható modul használatára tesznek ajánlatot.
Pl. a dovecot által okozott riasztásokban leírt hozzáférések engedélyezésére az alábbi parancsot javasolja:
<pre>
# grep doveconf /var/log/audit/audit.log | audit2allow -M dovecotMyPol
</pre>
Ezt futtatva a jelenlegi mappában, ahol épp állunk, létrehoz egy .te fájlt, és generál belőle egy .pp betölthető modul fájlt.
A .pp kiterjesztésű modult így tölthetjük be:
<pre>
# semodule -i dovecotMyPol.pp
</pre>
Fontos, hogy amit a audit2allow -M után emgadunk, az lesz a modul neve. Egyszerre csak egy ilyen nevű modul lehet betöltve a policy-ba, tehát ha létrehozunk egy másik .pp modult ugyan ilyen névvel, és a semodul -i vel betöltjük, akkor a régit felül fogja írni, és ami abban volt, az elveszik. Tehát mindig egyedi modul neveket adjunk meg a audit2allow -M parancs használatakor.
A audit2allow -M nem tett bele mindent a virtuális mappát használó email rendszer működéséhez szükséges engedélyekből. A audit2allow -M által legyártott .te fájl kiváló kiindulási alap. Én a három különböző SELinux riasztásból generált .te fájl tartalmát másoltam össze egy .te fájlba:
<pre>
module dovecotVirtualMailbox 1.0;
require {
type dovecot_t;
type postfix_virtual_t;
type postfix_spool_t;
type postfix_qmgr_t;
type postfix_private_t;
class file { rename read lock create write getattr link unlink open append };
class dir { write read create add_name remove_name search };
}
#============= dovecot_t ==============
#!!!! The source type 'dovecot_t' can write to a 'dir' of the following types:
# user_home_dir_t, postfix_private_t, mail_spool_t, tmp_t, dovecot_tmp_t, user_home_t, var_run_t, var_log_t, dovecot_spool_t, mail_home_rw_t, dovecot_var_log_t, dovecot_var_lib_t, dovecot_var_run_t, nfs_t, cluster_var_lib_t, cluster_var_run_t, root_t, cluster_conf_t
allow dovecot_t postfix_spool_t:dir { write add_name };
allow dovecot_t postfix_spool_t:dir { read remove_name create };
allow dovecot_t postfix_spool_t:file { rename read lock create write getattr link unlink open append };
#============= dovecot_t on httpd ==============
#allow dovecot_t httpd_config_t:dir search;
#allow dovecot_t httpd_config_t:file { read open };
#============= postfix_virtual_t ==============
#!!!! The source type 'postfix_virtual_t' can write to a 'dir' of the following types:
# user_home_dir_t, mail_spool_t, user_home_t, postfix_virtual_tmp_t, mail_home_rw_t, user_home_type, nfs_t
allow postfix_virtual_t postfix_spool_t:dir { write remove_name create add_name };
allow postfix_virtual_t postfix_spool_t:file { create unlink link };
#============= postfix_qmgr_t ==============
#!!!! The source type 'postfix_qmgr_t' can write to a 'dir' of the following types:
# var_run_t, postfix_spool_t, tmp_t, postfix_qmgr_tmp_t, var_spool_t, postfix_spool_maildrop_t
allow postfix_qmgr_t postfix_private_t:dir write;
</pre>
Ebből elsőként készíteni kell egy .mod fájlt, majd a .mod fálból a .pp policy fájlt. Majd a semoudl -i vel betöltjük az új .pp fájlt.
# checkmodule -M -m -o virualMailPolicy.mod virualMailPolicy.te
# semodule_package -o virualMailPolicy.pp -m virualMailPolicy.mod
# semodule -i virualMailPolicy.pp
A modul betöltése boot perzisztens. A modult a -r kapcsolóval el lehet távolítani a policy-ből, és a -d kapcsolóval ki lehet kapcsolni.