Newsgroup: it.comp.os.linux.sys
Titolo: selinux vs. nextcloud

Salve,
 
ho installato "nextcloud" su un
server Fedora 31.
Dopo aver litigato un poco con
SELinux sono riuscito a far
funzionare tutto... O quasi...
 
La app di "nextcloud" che gestisce
le email si porta appresso un
programma, "kitinerary-extractor",
che pare sia utilizzato in qualche
modo dalla app. Non chiaro come,
almeno non a me.
 
Il problema e` che il log e` pieno
di "warning" sul fatto che tale
"kitinerary-extractor" non funziona.
 
Per prima cosa non era eseguibili,
cambiato, non funziona ancora.
 
Pare che SELinux ne impedisca l'esecuzione.
"ausearch --raw | grep kiti" ritorna
 
avc:  denied  { execute } for  pid=XXX comm="sh" 
name="kitinerary-extractor" dev="XXX" ino=XXX 
scontext=system_u:system_r:httpd_t:s0 
tcontext=system_u:object_r:httpd_sys_rw_content_t:s0 tclass=file 
permissive=0
 
Che, ovviamente, io leggo a malapena
(nel senso che non parlo selinux).
 
Ora, la cosa strana e` che se faccio
partire (da shell) "bin/kitinerary-extractor"
funziona, mentre "kitinerary-extractor"
viene bloccato da SELinux.
In tutti e due i casi come utente "apache",
non come "root".
 
Detto altrimenti, pare che il path
abbia i permessi, l'eseguibile da
solo no.
 
Qualcuno sa come vedere / modificare e
sistemare tale problema?
 
Grazie anticipatamente,
 
bye,
 
-- 
 
piergiorgio

 name="kitinerary-extractor" dev="XXX" ino=XXX
]zac[
 
Lo scopo di selinux è proprio quello di impedire qualsiasi operazione che 
non sia stata esplicitamente concessa.
 
Se cerchi gli how-to per selinux troverai come usare dei programmi per 
prendere i log di errori e trasformali in regole di selinux, compilarli e 
aggiungerle a selinux.

 aggiungerle a selinux.
 
Questo so come si fa, ma fare le cose
senza capire non mi piace.
Voglio dire, le regole di solito
_autorizzano_ qualcosa.
 
C'e` pero` anche il discorso del
contesto, cioe` il fatto che il
programma in questione ("kitinerary...")
si puo` eseguire nel contesto di "httpd",
solo non in maniera diretta, pare.
 
Comunque provero` a vedere cosa mi
dice l'eventuale regola...
 
Grazie per il suggerimento!
 
bye,
 
-- 
 
piergiorgio

 sistemare tale problema?
 
# setenforce 0
 
Può non piacere, ma risolve sempre il problema
 
Enrico


Uhm...:
 
https://kernsec.org/files/lss2015/giant-bags-of-mostly-water.pdf
 
 
bye,
 
-- 
 
piergiorgio

 
https://kernsec.org/files/lss2015/giant-bags-of-mostly-water.pdf
 
 
Tutto bello, tutto figo ma... 
https://imgur.com/6g5SQq8
 
 
A latere, ancora oggi sistemi abbastanza importanti (e.g. Kubernetes)
richiedono Selinux disabilitato (o, al massimo, in permissive mode)
 
Enrico

 richiedono Selinux disabilitato (o, al massimo, in permissive mode)
 
Il che sarebbe gia` un buon motivo
per non usare tali sistemi...
 
bye,
 
-- 
 
piergiorgio

 richiedono Selinux disabilitato (o, al massimo, in permissive mode)
 
Tra l'altro, "kubernetes" c'e` in Fedora
che default selinux _on_.
 
Non ho mai provato, ma dubito fortemente
che disabilitino selinux per fare un
favore a kubernetes.
Avranno le regole specifiche, immagino...
 
bye,
 
-- 
 
piergiorgio

 per non usare tali sistemi...
 
Dici che dovremo tornare ad installare moduli Perl in giro per il file
system? No, perché a me Docker (e Podman) fa comodo, e usarlo tramite
orchestratori mi semplifica la vita. E posso assicurarti che avere Selinux
tra le scatole in questo contesto è una rottura immane
 
Enrico

 Avranno le regole specifiche, immagino...
 
Sinceramente non so, come ho detto non ho mai usato i pacchetti di Fedora
(ho usato quelli di Google, molto più aggiornati) e non penso di usarli
(ok che k8s e il mondo dei container è roba nuova, ma Fedora in produzione
no, grazie)
 
Enrico

 tra le scatole in questo contesto è una rottura immane
 
Lo scopo di selinux e` rendere il sistema
piu` "resistente".
 
Ovviamente uno puo` rinunciarvi, ma e`
come dire che conviene avere l'utente
root con password vuota, cosi` e` piu`
facile loggarsi per far manutenzione.
 
Bisogna decidere se si vuole avere un
sistema piu` sicuro, difficile e scomodo,
oppure si preferisce avere comodita`, ma
un sistema piu` "debole".
 
Il link al pdf che ho postato spiega
proprio come porsi il problema della
sicurezza in maniera piu` ampia.
 
bye,
 
-- 
 
piergiorgio

 a permissive) Selinux, perché non supportato
 
Se Fedora rende disponibile kubernetes,
io credo, mai provato, debba funzionare
con selinux.
 
Come scritto, puo` essere che abbiano
regole specifiche che, di fatto, rendano
kubernetes "unconfined".
 
D'altro canto, se kubernetes, unconfined, ha
un bug di sicurezza, ci si trova nei guai...
 
Che poi, gia` scritto, uno possa essere
contento con un sistema meno sicuro,
questo e` un'altra faccenda.
 
bye,
 
-- 
 
piergiorgio