Auswirkung von Einträgen in / etc / securetty

19

Standardmäßig auf RHEL 5.5 habe ich

[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

Was ist der Unterschied zwischen den einzelnen Eintragstypen (console, vc / und tty ) ? Was ist das Endergebnis des Hinzufügens und Entfernens der einzelnen Eintragstypen?

Meines Wissens haben sie Einfluss darauf, wie und wann Sie sich anmelden können, aber gibt es noch andere Auswirkungen? Und wann können Sie und wann können Sie sich nicht anmelden, je nachdem welche Einträge vorhanden sind?

BEARBEITEN 1 Was ich weiß ist, dass tty 1-6 entspricht, ob Sie sich von den ersten 6 Konsolen aus anmelden können, die Sie mit STRG-ALT-F1 bis STRG-ALT-F6 erreichen. Ich dachte immer, das wären virtuelle Konsolen, also bin ich ein bisschen verwirrt. Und was entspricht Konsole auch? Vielen Dank.

BEARBEITEN 2 Was ist der Effekt, wenn im Einzelbenutzermodus?

deuberger
quelle

Antworten:

34

/etc/securettywird vom Modul pam_securetty abgefragt, um zu entscheiden, von welchem ​​virtuellen Terminal (ttyS) -Root sich anmelden darf. Wurde in der Vergangenheit /etc/securettyvon Programmen wie Login direkt abgefragt, jetzt kümmert sich PAM darum. Änderungen an /etc/securettywirken sich also auf alles aus, was PAM mit einer Konfigurationsdatei verwendet, die pam_securetty.so verwendet. Daher ist standardmäßig nur das Anmeldeprogramm betroffen. /etc/pam.d/loginwird für lokale Anmeldungen und /etc/pam.d/remotefür Remoteanmeldungen (wie Telnet) verwendet.

Die primären Eintragstypen und ihre Auswirkungen sind wie folgt:

  • Falls /etc/securettynicht vorhanden, kann sich root von jedem tty aus anmelden
  • Falls /etc/securettyvorhanden und leer, ist der Root-Zugriff auf den Einzelbenutzermodus oder auf Programme beschränkt, die nicht durch pam_securetty eingeschränkt sind (z. B. su, sudo, ssh, scp, sftp).
  • Wenn Sie devfs (ein veraltetes Dateisystem für die Verarbeitung von / dev) verwenden, können Sie durch Hinzufügen von Einträgen der Form vc / [0-9] * von der angegebenen virtuellen Konsolennummer aus root anmelden
  • Wenn Sie udev verwenden (für die dynamische Geräteverwaltung und den Ersatz für devfs), können Sie durch Hinzufügen von Einträgen der Form tty [0-9] * Root-Login von der angegebenen virtuellen Konsolennummer aus zulassen
  • Das Auflisten von console in securetty hat normalerweise keine Auswirkung, da / dev / console auf die aktuelle Konsole verweist und normalerweise nur im Einzelbenutzermodus als tty-Dateiname verwendet wird, was von nicht betroffen ist /etc/securetty
  • Das Hinzufügen von Einträgen wie pts / [0-9] * ermöglicht es Programmen, die Pseudo-Terminals (pty) und pam_securetty verwenden, sich bei root anzumelden, vorausgesetzt, die zugewiesene Pty ist eine der aufgelisteten. Es ist normalerweise eine gute Idee, diese Einträge nicht einzuschließen, da dies ein Sicherheitsrisiko darstellt. es würde zum Beispiel jemandem erlauben, sich über Telenet bei root anzumelden, das Passwörter im Klartext sendet (beachte, dass pts / [0-9] * das Format für udev ist, das in RHEL 5.5 verwendet wird; es wird anders sein, wenn devfs verwendet wird oder eine andere Form der Geräteverwaltung)

Für Single - User - Modus, /etc/securettykonsultiert wird nicht , weil die sulogin statt Login verwendet wird. Weitere Informationen finden Sie auf der Sulogin-Manpage. Sie können auch das Anmeldeprogramm ändern, das /etc/inittabfür jedes Runlevel verwendet wird.

Beachten Sie, dass Sie nicht verwenden sollten /etc/securetty, um Root-Anmeldungen über ssh zu steuern. Ändern Sie dazu den Wert von PermitRootLogin in /etc/ssh/sshd_config. Standardmäßig /etc/pam.d/sshdist pam_securetty nicht für die Abfrage konfiguriert (und daher /etc/securetty). Sie können eine Zeile hinzufügen, um dies zu tun, aber ssh setzt die tatsächliche tty erst einige Zeit nach der Auth-Phase fest, sodass dies nicht wie erwartet funktioniert. Während der Authentifizierungs- und Kontenphase wird - zumindest für openssh - das tty (PAM_TTY) fest auf "ssh" codiert.

Die obige Antwort basiert auf RHEL 5.5. Vieles davon wird sich auf aktuelle Distributionen anderer * nix-Systeme beziehen, aber es gibt Unterschiede, von denen ich einige festgestellt habe, aber nicht alle.

Ich habe das selbst beantwortet, weil die anderen Antworten unvollständig und / oder ungenau waren. Viele andere Online-Foren, -Blogs usw. enthalten ungenaue und unvollständige Informationen in diesem Thema. Daher habe ich umfangreiche Nachforschungen angestellt und Tests durchgeführt, um die korrekten Details zu ermitteln. Wenn etwas, was ich gesagt habe, falsch ist, lassen Sie es mich bitte wissen.

Quellen:

deuberger
quelle
+1, wenn Sie sich die Zeit nehmen, in dieser Tiefe zu antworten. Ich bin nicht sicher, warum es hier keine akzeptierte Antwort gibt. Scheint, als hättest du die Frage des OP beantwortet. Ich mag @Alexios Kommentar, "vc / X und ttyX sind synonym [ous] ..."
Harperville
Debian hat kürzlich / etc / securetty entfernt. Es gilt als veraltet und ist wohl mehr Mühe, als es wert ist. Es wurde für Telnet und Rlogin verwendet, aber um einige Container-Logins zum Laufen zu bringen, werden auf einigen Systemen Pseudoterminals wie "pts / 0" hinzugefügt, was seinen ursprünglichen Zweck zunichte macht. Wenn Sie die Root-Anmeldung auf eine bestimmte Gruppe von Geräten beschränken müssen, gibt es zuverlässigere Mechanismen. Siehe bugs.debian.org/731656
dlitz
4

vc/Xund ttyXsind Synonyme: unterschiedliche Pfade zu denselben Geräten. Der Zweck der Redundanz besteht darin, verschiedene Fälle zu erfassen, um Sie nicht auszusperren.

Herkömmlicherweise login(und gettyich kann mich möglicherweise nicht sicher erinnern) prüfte /etc/securettyund verweigerte ich rootAnmeldungen an nicht aufgelisteten Terminals. Auf modernen Systemen gibt es auch andere Möglichkeiten, dies und andere Sicherheitsmaßnahmen durchzuführen. Informieren Sie sich über den Inhalt von /etc/login.defs(der auch die securettyFunktionalität abdeckt und von der securetty(5)Manpage empfohlen wird ) und darüber /etc/pam.d/login, wo Sie das Verhalten dieser Funktion steuern können.

Da dies securettynur von geprüft wird login, sind nicht verwendete loginAnmeldemethoden (z. B. SSH mit use_login=no, X-Display-Manager usw.) nicht betroffen.

Alexios
quelle
Es ist erwähnenswert, dass es auf busyboxbasierten Systemen immer noch von Nutzen sein kann, da logines keine /etc/login.defsUnterstützung bietet .
Phk