Fórum Root.cz
Ostatní => Odkladiště => Téma založeno: okur_pytel 19. 01. 2016, 19:25:15
-
Jak je rozšířený SELinux, přiznejte se kdo to používá na produkci?
V okolí znám jen velmi málo lidí, kteří ho aktivně provozují.
-
Začnu u sebe, nepoužívám, tam kde o něco jde mám grsec, dříve jsem ještě používal PaX a hovně dávno ProPolice.
-
-
IMHO grsec je pokročilejší, takže když už něco konfigurovat, tak to.
-
přiznejte se kdo to používá na produkci?
Ano, na "produkčních" mobilech, páč to tam je defaultně zapnutý. ;D ::)
-
No jo, nekecal. :-) https://source.android.com/security/selinux/
Tak to uz nemame kam moc uniknout, BB to taky zabalilo a skocilo do naruce Androidu, Apple ma svuj svet a Windows Phone uz zase loni ztratil dech, https://www.google.cz/trends/explore#q=windows%20phone
-
Tak kdo bude mit odvahu a otestuje SELinux at vime jestli je to k necemu, mame unikatni prilezitost.
https://gist.github.com/PerceptionPointTeam/18b1e86d1c0f8531ff8f
-
Jo pouzivame SELinux uplne vsude (mame PCI-DSS a dalsi audity). Musim rict je to neskutecnej oser - zejmena u Apache je to velka lahudka.
Nemel bych s tim celkem problem, kdyby byly pravidla rozumne managovatelny puppetem, ale semanage (i jenom blbej listing) trva neskutecne dlouho - neni mozny, aby kazdej puppet run trval dve minuty a vytizil vsechny jadra jenom kvuli kontrole pravidel.
Takze mame bud neprakticky binarni moduly, ktery puppet prdne do /tmp a pak nainstaluje (nic moc reseni), nebo davame semanage pravidla do aplikacnich RPM do postinstal.
-
Napise niekto konkretne pripady, kedy mu SELinux alebo grsecurity pomohol bud k zabraneniu prieniku, alebo k jeho zmierneniu?
-
Jo pouzivame SELinux uplne vsude (mame PCI-DSS a dalsi audity). Musim rict je to neskutecnej oser - zejmena u Apache je to velka lahudka.
Je, byla a bude to zoufalost a neposunulo se z hlediska správy absolutně nikam... Např. Synology místo SELinuxu začala cpát do NAS firmwarů AppArmor a to je na administraci úplně jiný kafe.
-
Zaujimala by ma implementacia pre Apache + PHP-FPM + ProFTPd.
-
Odpovedám si sám, jedným z tých lepších riešení je vlastný modul, ktorý umožní FTP serveru zapisovať do kontextov httpd_sys_content_t a httpd_sys_rw_content_t.
Predpokladám, že niečo podobné máte už nastavené:
semanage fcontext -a -t httpd_sys_content_t "/srv/www/data(/.*)?"
restorecon -Rv /srv/www/data
module my_ftp_http 1.0;
require {
type ftpd_t;
type httpd_sys_content_t;
type httpd_sys_rw_content_t;
class dir read;
class dir write;
class dir add_name;
class dir create;
class dir rmdir;
class dir rename;
class dir remove_name;
class dir unlink;
class file getattr;
class file read;
class file open;
class file write;
class file create;
class file rename;
class file unlink;
}
#============= ftpd_t ==============
allow ftpd_t httpd_sys_content_t:dir read;
allow ftpd_t httpd_sys_content_t:dir write;
allow ftpd_t httpd_sys_content_t:dir add_name;
allow ftpd_t httpd_sys_content_t:dir create;
allow ftpd_t httpd_sys_content_t:dir rmdir;
allow ftpd_t httpd_sys_content_t:dir rename;
allow ftpd_t httpd_sys_content_t:dir remove_name;
allow ftpd_t httpd_sys_content_t:dir unlink;
allow ftpd_t httpd_sys_content_t:file getattr;
allow ftpd_t httpd_sys_content_t:file read;
allow ftpd_t httpd_sys_content_t:file open;
allow ftpd_t httpd_sys_content_t:file write;
allow ftpd_t httpd_sys_content_t:file create;
allow ftpd_t httpd_sys_content_t:file rename;
allow ftpd_t httpd_sys_content_t:file unlink;
allow ftpd_t httpd_sys_rw_content_t:dir read;
allow ftpd_t httpd_sys_rw_content_t:dir write;
allow ftpd_t httpd_sys_rw_content_t:dir add_name;
allow ftpd_t httpd_sys_rw_content_t:dir create;
allow ftpd_t httpd_sys_rw_content_t:dir rmdir;
allow ftpd_t httpd_sys_rw_content_t:dir rename;
allow ftpd_t httpd_sys_rw_content_t:dir remove_name;
allow ftpd_t httpd_sys_rw_content_t:dir unlink;
allow ftpd_t httpd_sys_rw_content_t:file getattr;
allow ftpd_t httpd_sys_rw_content_t:file read;
allow ftpd_t httpd_sys_rw_content_t:file open;
allow ftpd_t httpd_sys_rw_content_t:file write;
allow ftpd_t httpd_sys_rw_content_t:file create;
allow ftpd_t httpd_sys_rw_content_t:file rename;
allow ftpd_t httpd_sys_rw_content_t:file unlink;
Kontrola, kompilácia a zaradenie modulu do systému
checkmodule -M -m -o my_ftp_http.mod my_ftp_http.te
semodule_package -o my_ftp_http.pp -m my_ftp_http.mod
semodule -i my_ftp_http.pp
Ak bude PHP-FPM počúvať na inom než štandardnom porte 9000 (napr. 33333):
semanage port -a -t http_port_t -p tcp 33333
-
A to je moc pěkná ukázka toho, proč je obvyklým univerzálním "řešením" problémů SELinux vypnout. ::)
-
Pokud se nepletu, tak ve fabrice je na produkci zapnuty.
Doma radeji grsecurity (a na ubuntu laptopu alespon AppArmor pripadne pokud se s necim nechci patlat tak firejail)