Effetto delle voci in / etc / securetty


19

Di default su RHEL 5.5 ho

[deuberger@saleen trunk]$ sudo cat /etc/securetty 
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11

Qual è la differenza tra ciascuno dei tipi di voci (console, vc / e tty ). In particolare, qual è il risultato finale dell'aggiunta e della rimozione di ciascun tipo di voce?

La mia comprensione è che influiscono su come e quando è possibile accedere, ma ci sono altri effetti? E quando puoi e quando non puoi accedere a seconda di quali voci ci sono?

EDIT 1 Quello che so è che tty 1-6 corrisponde al fatto che è possibile accedere dalle prime 6 console che si raggiungono utilizzando CTRL-ALT-F1 tramite CTRL-ALT-F6. Ho sempre pensato che fossero console virtuali, quindi sono un po 'confuso. E a cosa corrisponde anche la console? Grazie.

EDIT 2 Qual è l'effetto se presente in modalità utente singolo?

Risposte:


34

/etc/securettyviene consultato dal modulo pam_securetty per decidere da quale root di terminali virtuali (ttyS) è consentito effettuare l'accesso. In passato, /etc/securettyveniva consultato da programmi come il login diretto, ma ora PAM lo gestisce. Quindi le modifiche a /etc/securettyinfluenzeranno qualsiasi cosa utilizzi PAM con un file di configurazione che utilizza pam_securetty.so. Pertanto, solo il programma di accesso è interessato per impostazione predefinita. /etc/pam.d/loginviene utilizzato per accessi locali e /etc/pam.d/remoteper accessi remoti (come telnet).

I tipi di voce principali e i relativi effetti sono i seguenti:

  • Se /etc/securettynon esiste, root è autorizzato ad accedere da qualsiasi tty
  • Se /etc/securettyesiste ed è vuoto, l'accesso root sarà limitato alla modalità utente singolo o ai programmi che non sono limitati da pam_securetty (ovvero su, sudo, ssh, scp, sftp)
  • se stai usando devfs (un filesystem deprecato per la gestione / dev), l'aggiunta di voci del modulo vc / [0-9] * consentirà l'accesso root dal numero di console virtuale specificato
  • se si sta utilizzando udev (per la gestione dinamica del dispositivo e la sostituzione di devfs), l'aggiunta di voci nel modulo tty [0-9] * consentirà l'accesso root dal numero di console virtuale specificato
  • elencando la console in securetty, normalmente non ha alcun effetto poiché / dev / console punta alla console corrente e viene normalmente utilizzata solo come nome file tty in modalità utente singolo, che non è influenzata da /etc/securetty
  • l'aggiunta di voci come pts / [0-9] * consentirà ai programmi che usano pseudo-terminali (pty) e pam_securetty di accedere al root supponendo che il pty allocato sia uno di quelli elencati; normalmente è una buona idea non includere queste voci perché costituisce un rischio per la sicurezza; consentirebbe, ad esempio, a qualcuno di accedere a root tramite telenet, che invia password in chiaro (si noti che pts / [0-9] * è il formato per udev che viene utilizzato in RHEL 5.5; sarà diverso se si utilizza devfs o qualche altra forma di gestione dei dispositivi)

Per la modalità utente singolo, /etc/securettynon viene consultato perché sulogin viene utilizzato al posto dell'accesso. Vedi la pagina man sulogin per maggiori informazioni. Inoltre è possibile modificare il programma di accesso utilizzato /etc/inittabper ciascun runlevel.

Nota che non dovresti usare /etc/securettyper controllare gli accessi root tramite ssh. Per fare ciò, modificare il valore di PermitRootLogin in /etc/ssh/sshd_config. Di default /etc/pam.d/sshdnon è configurato per consultare pam_securetty (e quindi /etc/securetty). È possibile aggiungere una riga per farlo, ma ssh non imposta la tty effettiva fino a qualche tempo dopo la fase di autenticazione, quindi non funziona come previsto. Durante le fasi di autenticazione e account - almeno per openssh - tty (PAM_TTY) è codificato in "ssh".

La risposta sopra è basata su RHEL 5.5. Gran parte di esso riguarderà le attuali distribuzioni di altri sistemi * nix, ma ci sono differenze, alcune delle quali ho notato, ma non tutte.

Ho risposto io stesso perché le altre risposte erano incomplete e / o imprecise. Molti altri forum, blog, ecc. Online hanno informazioni inesatte e incomplete anche in questo argomento, quindi ho fatto ricerche e test approfonditi per cercare di ottenere i dettagli corretti. Se qualcosa che ho detto è sbagliato, per favore fatemi sapere però.

fonti:


+1 per il tempo dedicato a rispondere in modo così approfondito. Non sono sicuro del perché non ci sia una risposta accettata qui. Sembra che tu abbia risposto alla domanda del PO. Mi piace il commento di @Alexios, "vc / X e ttyX sono sinonimi [ous] ..."
harperville

Debian ha rimosso di recente / etc / securetty. È considerato obsoleto e probabilmente più problemi di quanti ne valga la pena. Era usato per telnet e rlogin, ma per far funzionare alcuni accessi al container, alcuni pseudoterminali come "pts / 0" vengono aggiunti su alcuni sistemi, il che ne vanifica lo scopo originale. Se è necessario limitare l'accesso root a un set specifico di dispositivi, esistono meccanismi più affidabili. Vedi bugs.debian.org/731656
dlitz il

4

vc/Xe ttyXsono sinonimi: percorsi diversi per gli stessi dispositivi. Il punto della ridondanza è catturare vari casi in modo da non bloccarti.

Tradizionalmente, login(e possibilmente getty, non ricordo per certo) verificherebbe /etc/securettye negherebbe gli rootaccessi su terminali non elencati. Sui sistemi moderni, ci sono altri modi per fare questo e anche altre misure di sicurezza. Dai un'occhiata al contenuto di /etc/login.defs(che copre anche securettyla funzionalità ed è raccomandato dalla securetty(5)manpage), e anche /etc/pam.d/logindove puoi controllare il comportamento di questa funzione.

Dato che securettyè controllato solo da login, i mezzi di accesso che non usano login(ad esempio SSH con use_login=no, X display manager, ecc.) Non sono interessati.


Vale la pena notare che i busyboxsistemi su base potrebbero essere ancora utili per il semplice fatto che loginnon ha /etc/login.defssupporto.
phk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.