Rinomina / etc / passwd e / etc / shadow per motivi di sicurezza [chiuso]

8

Ho un server. Il mio server è sicuro, ma immaginiamo un buon hacker che entra. Ora può esaminare /etc/passwd e /etc/shadow . Vorrei rinominare i file /etc/passwd con qualcosa come /etc/xxanoda .

Pensavo di poter fare un link, ma per un hacker sarà facile fare ls -l .

È possibile rinominare quei file e avere ancora un sistema operativo in esecuzione, senza problemi di compatibilità, oppure è completamente inutile? Solo per la ricerca della conoscenza.

    
posta Marco Caggiano 07.02.2014 - 16:03

5 risposte

29

Il standard di gerarchia del file system per sistemi unix-like include /etc/passwd in una posizione fissa , e di conseguenza gli strumenti sono di solito codificati per cercarli. Mentre in teoria è possibile ricompilare tutte le utilità pertinenti per cercare in una nuova posizione, qualsiasi utente malintenzionato potrebbe sempre cercare stringhe in quei file binari per individuare il nuovo file o utilizzare espressioni regolari per trovare i file con contenuti passwd -like .

Il file shadow dovrebbe essere leggibile solo su root (e probabilmente su un gruppo chiamato shadow ). Se un utente malintenzionato è riuscito a ottenere l'accesso come root al tuo sistema, ha il controllo completo e se possono leggere o meno i tuoi passwd / shadow file è piuttosto irrilevante a quel punto.

Ci sono presumibilmente alcune situazioni in cui l'utilizzo di file non nelle posizioni previste potrebbe essere utile, ad esempio se si dispone di un server Web mal configurato che consente a qualcuno di richiedere http://myserver/../../etc/passwd , ma in generale questo tipo di ricerca indiretta richiederà molto lavoro per un minimo vantaggio di sicurezza.

    
risposta data chronitis 07.02.2014 - 16:14
12

La cosa migliore sarebbe "completamente inutile" come dici tu. (Non fornisce un ulteriore ostacolo per un intruso)

/etc/passwd contiene nomi di account, ma chiunque abbia accesso alla shell al sistema sarà in grado di trovarli.

/etc/shadow contiene informazioni sensibili (gli hash delle password) ma è leggibile solo per root. Se un intruso è riuscito a ottenere i privilegi di root - beh, come si scrive disaster ?

    
risposta data guntbert 07.02.2014 - 18:43
9

Nei moderni Unices (e Unix-like, incluso Ubuntu), /etc/passwd non contiene alcun segreto. Rinominarlo sarebbe più difficile di quanto valga, visto quante utility dovrebbero essere ricostruite per cercarlo nella sua nuova posizione.

/etc/shadow è un'altra questione, dal momento che ci sono segreti in quel file, ma la sua rinomina non sarà di aiuto. È leggibile solo da root, quindi anche se un hacker entra nel sistema come qualche altro utente, non è abbastanza per arrivare al file. Ecco perché le password sono state tolte da /etc/passwd in primo luogo: tutti devono poter leggere /etc/passwd , ma solo le root devono essere in grado di ottenere le password effettive, quindi le password sono state spostate in un file che solo root potrebbe leggere.

Se l'hacker fa diventa root, allora un rename non ti salverà. Un semplice% di% di ricorsivo ricorsivo potrebbe fornire all'hacker un elenco di file in un formato grep -like, e quindi l'hacker deve solo esaminarli per trovare i dati che desidera. Lo hai ritardato di alcune ore al massimo e probabilmente meno: ancora una volta, non vale la quantità di tempo necessaria per modificare e ricompilare tutte le utilità che dipendono dalla posizione di /etc/shadow .

    
risposta data The Spooniest 07.02.2014 - 19:55
2

Non puoi semplicemente rinominare questi file. Molti processi e programmi li cercheranno, poiché questo è uno standard nei sistemi Linux. Quello che puoi fare è mettere in sicurezza il tuo server nel modo giusto.

    
risposta data Frantique 07.02.2014 - 16:13
1

Anche se probabilmente non è utile rinominare i file /etc/passwd e /etc/shadow , se si desidera una maggiore sicurezza si potrebbe voler esaminare PAM (moduli di autenticazione collegabili) e NSS (Name Service Switch). Mi piace qui.

PAM può essere usato per aggiungere moduli di autenticazione che, leggendo invece la loro autenticazione ifnormation dai file standard, lo leggono da un'altra fonte, come da ldap o da un database. Usarlo significherebbe che /etc/shadow può essere quasi completamente eliminato.

NSS completa PAM effettuando alcune delle risoluzioni del nome (come ad esempio a quali gruppi appartiene questo utente) indipendentemente dai file standard ( /etc/passwd , /etc/groups ). Usarlo significherebbe che il tuo file passwd conterrà potenzialmente solo un'opzione di fallback per root e nient'altro. L'utilizzo delle chiavi SSH per convalidare il login di root eliminerebbe anche la necessità di avere una password di root all'interno del file shadow (anche se potrebbe essere utile se la connessione SSH si interrompe).

In alternativa, se non vuoi autenticare i tuoi utenti tramite un database separato o un host ldap, puoi anche creare i tuoi moduli PAM e NSS, che leggono i loro dati da un file non standard, anche se non lo consiglierei questa opzione.

Quando vuoi provare a usarli, non dimenticarti mai di mantenere una sorta di fallback su un noto, funzionante livello di autenticazione, altrimenti puoi chiuderti fuori dal sistema, anche con root.

Si noti che non tutte le applicazioni supportano PAM (molte di esse tuttavia lo fanno). Tuttavia, NSS può essere utilizzato per implementare l'autenticazione per le app che non supportano PAM e alcuni siti che ho letto su NSS suggeriscono effettivamente questo approccio. Ciò significa tuttavia che il modulo NSS fornirà la password (potenzialmente) con hash a chiunque possa accedere al livello di autenticazione NSS, che è quasi sempre qualcosa che si desidera evitare (in pratica equivale a fornire l'accesso in lettura non root al file shadow) )! Quindi, se stai seguendo questo approccio, assicurati sempre che NSS sia utilizzato solo per fornire all'utente i dati di base (come il contenuto di /etc/passwd ) e PAM viene utilizzato come livello di autenticazione.

    
risposta data SztupY 07.02.2014 - 23:14

Leggi altre domande sui tag