Beh, stamane mi son messo a tavolino ed ho cercato di creare una bella soluzione per Linux nel modo piu' possibile sicura per quanto posso fare io.
- GCC SSP per compilare i servizi in modo da proteggerli dal buffer overflow
- Jail senza root nello shadow e con shell /bin/false in passwd, senza includes e librerie limitate al massimo necessarie per far funzionare i nostri servizi
- Utente in jail per eseguire i servizi usando il sudo con password (per sostituire il root in modo sicuro)
- Filesystem proc in jail montato in una cartella diversa da /proc
- PS modificato per visualizzare i processi dal procfs montato in un'altra cartella visualizzando solo i processi di uno specifico utente (e se non se ne ha bisogno si puo' anche fare a meno del PS)
- Cron job per eseguire ogni tot tempo un backup dei dati variabili all'interno della jail
- Cambiamento attributi con chattr, chmod e chown delle configurazioni statiche che non richiedono cambiamenti, e modificabili solo da root
- PATH dei binari modificati e non settati automaticamente al login dell'utente in jail
- GRSecurity fuori jail come modulo di sicurezza nel kernel ulteriore e preventivare azioni maliziose all'interno del chroot jail ed utilizzare altre opzioni utili al fine di rendere piu' sicuro il sistema
- Togliere tutti i binari che non servono nella jail (iptables, telnet, nc, chroot, su, ecc.) sia per sicurezza che per spazio
- Utilizzare iptables per bloccare tutte le richieste tcp, icmp e udp, e mettere le regole ACCEPT solo per i servizi che vengono utilizzati in jail (in modo da bloccare possibili accessi su altre porte in caso un utente malizioso buchi la jail ed esegua un suo server) possibilmente utilizzando la flag -m stealth offerta da GRSecurity con la patch per iptables
- Aggiornare continuamente tutti i servizi facendo a meno di utilizzare il PAM (sui sistemi che lo supportano)
- Assicurare l'impossibilita' di sovrascrivere i files binari utilizzando l'opzione chattr adatta
Pensate sia il caso di mettere questa configurazione su un server Slackware 10 o si puo' fare di meglio? Fate conto che ci stanno utenti in locale anche eh (shell, bnc e schifezze varie per racimolare un po' di soldini) e sto pensando seriamente di mettere un subjail, in modo che i servizi principali stanno nella jail root e quelli degli utenti nella subjail, ce' un po' di spreco di spazio ma penso sia abbastanza sicuro, voi avete idee migliori?