# Gentoo hardened + openVZ

## pastoreerrante

Un saluto a tutti.

Vorrei che utenti più esperti di me rispondessero a questa domanda: è possibile realizzare un'installazione di Gentoo con kernel hardened patchato per open VZ?

In sostanza, vorrei creare un server ultra-sicuro che però mi dia la possibilità di creare server virtuali anch'essi hardened. Inoltre, quale sarebbe, secondo voi, la procedura migliore per ottenere questo risultato? forse partire da un kernel vanilla liscio e patcharlo sia per openVZ che con Grsecurity? oppure partire dai kernel default di Gentoo?

Grazie - pastore

----------

## mrfree

Non posso dire di conoscere a fondo OpenVZ ma nel tree ufficiale abbiamo sys-kernel/openvz-sources potresti iniziare con quello... se le patch grsec si applicano in modo pulito questo non lo so  :Wink: 

Io personalmente, dietro suggerimento di Flameeyes, ho scopero Vservers e devo dire che mi sto trovando bene mi sembra inoltre di capire che uno dei dev di vservers sia anche un gentoo-dev il che non guasta affatto  :Wink: 

----------

## pastoreerrante

 *mrfree wrote:*   

> Non posso dire di conoscere a fondo OpenVZ ma nel tree ufficiale abbiamo sys-kernel/openvz-sources potresti iniziare con quello... se le patch grsec si applicano in modo pulito questo non lo so 
> 
> Io personalmente, dietro suggerimento di Flameeyes, ho scopero Vservers e devo dire che mi sto trovando bene mi sembra inoltre di capire che uno dei dev di vservers sia anche un gentoo-dev il che non guasta affatto 

 

Grazie per le info, non conoscevo vservers. Che tu sappia, vserver (che mi pare simile a openVZ) si può integrare in un kernel hardened?

----------

## djinnZ

se proprio vuoi provare meglio pezzottare manualmente il kernel hardened con openvz che il contrario (o se parti dal vanilla, scelta tutt'altro che sbagliata, applica prima le patch per l'hardening e poi le altre), anche se mi pare che grsec dovrebbe essere incluso in openvz-sources ed selinux te lo sconsiglio per ragioni di prestazioni (persino rsbac, con tutte le sua complicazioni è più performante) che il contrario. Ovviamente avrai una serie di .rej che dovrebbero essere abbastanza facili da risolvere.

Bada piuttosto al fatto che il kernel hardened è inutile senza l'hardening del gcc IMHO quindi potresti avre problemi con compilatore e libc più datati.

----------

## pastoreerrante

 *djinnZ wrote:*   

> se proprio vuoi provare meglio pezzottare manualmente il kernel hardened con openvz che il contrario (o se parti dal vanilla, scelta tutt'altro che sbagliata, applica prima le patch per l'hardening e poi le altre), anche se mi pare che grsec dovrebbe essere incluso in openvz-sources ed selinux te lo sconsiglio per ragioni di prestazioni (persino rsbac, con tutte le sua complicazioni è più performante) che il contrario. Ovviamente avrai una serie di .rej che dovrebbero essere abbastanza facili da risolvere.
> 
> Bada piuttosto al fatto che il kernel hardened è inutile senza l'hardening del gcc IMHO quindi potresti avre problemi con compilatore e libc più datati.

 

Quindi, se - come dici - openvz-sources contenesse grsec, praticamente una volta installato il kernel dovrei semplicemente procedere con l'hardening del sistema operativo come se si trattasse di un "normale" kernel hardened (hardening dei compilatori, etc.)?

In ogni caso, come si può sapere con certezza se openvz-sources contenga realmente grsec?

Grazie

p.s.: altra domandona: dal momento che un sistema con openVZ si basa sull'utilizzo di un unico kernel per tutti i vrtual server, adottando un kernel hardened per la macchina host otterrei automaticamente virtual server "hardenizzati"?

----------

## mrfree

 *pastoreerrante wrote:*   

> dal momento che un sistema con openVZ si basa sull'utilizzo di un unico kernel per tutti i vrtual server, adottando un kernel hardened per la macchina host otterrei automaticamente virtual server "hardenizzati"?

 Si o No. Come ha giustamente puntualizzato djinnZ non è sufficiente un kernel con grsec+pax per avere un sistema hardenizzato (almeno nel senso considerato in questo topic e del progetto hardened-gentoo) dovrai comunque installare uno stage hardened nelle macchine virtuali. Questo se adotterai gentoo per tutti i guest, diversamente avrai il kernel hardened ma non glibc, gcc e co. credo almeno non so' se le altre distro tipo debian, archlinux prevedono installazioni simili ad una gentoo-hardened

Io personalmente ho dovuto a suo tempo desistere dall'utilizzare un sistema hardened sul quad-opteron che sto utilizzando era estremamente instabile e anche dopo diversi tentativi fatti anche col supporto dei dev su #gentoo-hardened non ne sono uscito.

----------

## djinnZ

 *pastoreerrante wrote:*   

> In ogni caso, come si può sapere con certezza se openvz-sources contenga realmente grsec?

 

Voglio azzardare un'ipotesi sconvolgente, prova a fare così

```
USE="-symlink" emerge openvz-sources

cd /usr/src/linux-openvz-quelcheè

make menuconfig
```

  :Laughing:  se aspetti che qualcun altro si faccia carico della verifica dovrai attendere a lungo  :Mr. Green: 

hai un kernel che supporta l'hardening ma non hai un sistema più sicuro, finchè tutto il sistema non è in grado di sfruttarlo ed in molti casi puoi avere seri problemi di stabilità ad usare del codice non pax su un kernel pax+grsec (se è selinux non funzionerà proprio, invece).

----------

## pastoreerrante

 *djinnZ wrote:*   

>  *pastoreerrante wrote:*   In ogni caso, come si può sapere con certezza se openvz-sources contenga realmente grsec? 
> 
> Voglio azzardare un'ipotesi sconvolgente, prova a fare così
> 
> ```
> ...

 

ok, ma cosa intendi di preciso per "codice non pax"? significa forse che i sw che girano su un sistema con kernel "paxato" devono essere predisposti per pax?

----------

## djinnZ

Perchè pax possa agire con tutte le sue funzioni senza fare danni a livello utente è meglio che tu abbia compilato il kernel con pic (ormai non conta più la cosa ma è bene ricordarlo) e pie (altrimenti alcune funzioni di pax non possono essere usate proprio).

In più se non gestisci gli attributi degli eseguibili correttamente molti programmi non funzionano. E non devi dimenticare che i pacchetti che hanno problemi con queste funzioni nel profilo hardened vengono mascherati mantre in qualche caso nel profilo "normale" sono considerati stabili.

Leggi qui.

L'unica cosa che mi pare sia datata nella guida è l'abilitare i legacy header (ormai non dovrebbero servire più a nulla).

Ovviamente in un ambiente pie+ssp+pax+grsec già compilando con "-O2 -fomit-frame-pointer -Wl,-O1 -Wl,--as-need" il debug te lo puoi scordare.

----------

