Questa guida vi aiuterà a installare RSBAC su Gentoo Linux. Si assume che
l'utente abbia già letto l'
Questo passo è abbastanza semplice e diretto, grazie al modo in cui Gentoo tratta le installazioni del kernel. Iniziare con l'emerge del kernel rsbac-sources da portage.
# emerge rsbac-sources
# rm /etc/make.profile # ln -s /usr/portage/profiles/default-linux/x86/2005.0/2.4/ /etc/make.profile # echo "sys-kernel/hardened-sources rsbac" >> /etc/portage/package.use # emerge hardened-sources
Ora si configurerà il kernel. Si raccomanda di abilitare le seguenti opzioni, nel menù "Rule Set Based Access Control (RSBAC)":
Sezione "General RSBAC options" [*] RSBAC proc support [*] Check on init [*] Support transactions [*] Randomize transaction numbers [*] RSBAC debugging support (400) RSBAC default security officer user IDSezione "User management" [*] User managementAssicurarsi di abilitare l'opzione SHA1 nelle Crypto API Nella categoria "Cryptographic options" della configurazione generale del kernel, si selezioni [*] SHA1 digest algorithm [*] Use Crypto API Digest SHA1 (NEW)Sezione "RSBAC networking options" [*] RSBAC network support [*] Net device control [ ] Treat virtual devices as individuals [*] Individual network device logging [*] Net object control (sockets) [*] Control UNIX address family [*] Also intercept network object read and write [*] Individual network object logging(Non si abiliti l'opzione "RSBAC Maintenance Kernel", ma si usi il softmode) Sezione "Decision module (policy) options" [*] Support for Registration of decision modules (REG) [*] Build REG sample modules ---------------------------- [*] RSBAC support for DAZuko policy(For malware/antivirus scanning) DAZ Policy Options ---> (604800) Scanning result lifetime in secondsPer ogni differente politica/modulo che si decide di supportare si deve controllare la relativa protezione nel'AUTH module e nello User Management module [*] RSBAC support for FF policy [*] RSBAC support for RC policy [*] RSBAC support for AUTH policySi disabiliti l'opzione learning per il kernel di produzione. E' solamente usata durante il set-up di un sistema RSBAC dedicato. AUTH Policy Options ---> [*] AUTH learning mode support [*] RSBAC support for ACL policy [*] RSBAC support for Linux Caps (CAP) policy [*] RSBAC support for JAIL policy [*] RSBAC support for PAX policy [*] RSBAC support for System Resources (RES) policySezione "Softmode and switching" [ ] RSBAC policies switchable [*] RSBAC soft mode(Turn that off on production kernels) [*] Individual module softmode supportSezione "Logging": tutto tranne l'opzione "Log to remote UDP network socket" a meno che non si voglia loggare la macchina in remoto Sezione "RSBAC symlink redirection" [*] RSBAC symlink redirection [*] Add remote IP address [*] Add user ID number [*] Add RC role numberSezione "Other RSBAC options" [*] Intercept sys_read and sys_write [*] Intercept Semaphore IPC operations [*] Control DAC process owner (seteuid, setfsuid) [*] Hide processes in /proc [*] Support freezing of RSBAC configuration [*] RSBAC check sys_syslog
Ora si configurerà PaX che è un complemento del kernel RSBAC hardened. Si raccomanda inoltre di abilitare le seguenti opzioni, nella sezione "Security options ---> PaX".
[*] Enable various PaX features
PaX Control --->
[*] Support soft mode
(Disabilitare questa opzione in un kernel di produzione)
[ ] Use legacy ELF header marking
[ ] Use ELF program header marking
Use ELF program header marking MAC system integration (direct) --->
(X) hook
Non-executable pages --->
[*] Enforce non-executable pages (NEW)
[*] Paging based non-executable pages
(Di solito si seleziona il metodo PAGEEXEC su x86 siccome supporta
i più recenti PaXs, o si seleziona SEGMEXEC nel caso si abbiano problemi)
[*] Segmentation based non-executable pages (NEW)
[*] Restrict mprotect()
[ ] Disallow ELF text relocations
(Questa opzione non è ancora sufficientemente stabile)
Address Space Layout Randomization --->
[*] Address Space Layout Randomization
[*] Randomize user stack base
[*] Randomize mmap() base
# rsbac_fd_menu /path/to/the/target/item o # attr_set_file_dir FILE /path/to/the/target/item pax_flags [pmerxs]
Giunti a questo punto si compila e installa il kernel scegliendo tutte le rimanenti opzioni come si fa nel caso normale.
Per amministrare un sistema Gentoo con RSBAC abilitato, sono necessarie alcune utilità userspace. Tali utilità sono presenti nel pacchetto rsbac-admin che ovviamente deve essere installato.
# emerge rsbac-admin
Una volta installato, il pacchetto crea un nuovo utente del sistema (secoff, con uid 400). Tale utente diventerà l'amministratore della sicurezza durante il primo boot. E' l'unico utente in grado di cambiare la configurazione RSBAC, ed è comunemente chiamato Security Officer.
# passwd secoff
Durante il primo boot, il login nel sistema non è possible, a causa
dell'impostazione del modulo AUTH che
rsbac_softmode
L'applicazione di login gestisce tutti i login di utente del sistema. Essa ha bisogno dei diritti necessari per eseguire il setuid, ed occorre procedere come segue per fare sì che ciò avvenga:
Eseguire il login come Security Officer (secoff) e permettere i login mediante il seguente comando:
# rsbac_fd_menu /bin/login o # attr_set_fd AUTH FILE auth_may_setuid 1 /bin/login
Alternativamente, se il softmode non è abilitato, si può usare il seguente parametro di kernel, per permettere il login al boot:
rsbac_auth_enable_login
Siccome non esiste una politica di gestione degli accessi (tranne quella generata al primo boot), il modulo AUTH non permette di cambiare l'uid.
Grazie al modo learning intelligente è facile aggirare questo problema: il modulo AUTH può generare "magicamente" in automatico la politica necessaria osservando i vari servizi all'avvio, e annotando quali uid cercano di impostare. Ad esempio per insegnare al modulo AUTH quali uid necessita l'sshd (il demone di OpenSSH), procedere come segue:
Abilitare il modo learning per sshd # attr_set_file_dir AUTH FILE `which sshd` auth_learn 1Lanciare il servizio # /etc/init.d/sshd startDisabilitare il modo learning # attr_set_file_dir AUTH FILE `which sshd` auth_learn 0
Ora sshd dovrebbe lavorare così come richiesto,
Si può abilitare il modo learning globale passando il seguente parametro al kernel durante il boot:
rsbac_auth_learn
Si raccomanda l'iscrizione alla