Эффект записей в /etc/securetty

Эффект записей в /etc/securetty

По умолчанию в RHEL 5.5 у меня есть

[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

В чем разница между каждым из типов записей ( console, vc/*, и tty*)? В частности, каков конечный результат добавления и удаления каждого типа записи?

Я понимаю, что они влияют на то, как и когда вы можете войти в систему, но есть ли какие-либо другие эффекты? И когда вы можете и когда не можете войти в систему в зависимости от того, какие записи есть?

ПРАВКА 1

Что я знаю, так это то, что это tty1-6соответствует тому, можете ли вы войти с первых 6 консолей, которые вы достигаете, используя Ctrl- Alt- F1через Ctrl- Alt- F6. Я всегда думал, что это виртуальные консоли, поэтому я немного запутался. А что соответствует console?

Спасибо.

ПРАВКА 2

Каков эффект, если он есть, в однопользовательском режиме?

решение1

/etc/securettyмодуль обращается к нему, pam_securettyчтобы решить, с каких виртуальных терминалов ( tty*) rootразрешено входить в систему.

Раньше, /etc/securettyобращались программы, как loginнапрямую, но теперь PAM обрабатывает это. Поэтому изменения в /etc/securettyповлияют на все, что использует PAM с файлом конфигурации, который использует pam_securetty.so. Таким образом, loginпо умолчанию влияет только программа.

/etc/pam.d/loginиспользуется для локального входа в систему и /etc/pam.d/remoteдля удаленного входа в систему (например, telnet).

Основные типы входа и их влияние следующие:

  • Если /etc/securettyне существует, rootразрешается входить с любогоtty
  • Если /etc/securettyсуществует и пуст, rootдоступ будет ограничен однопользовательским режимом или программами, которые не ограничены pam_securetty(т. е su. sudo, , ssh, scp, sftp)
  • Если вы используете devfs(устаревшую файловую систему для обработки /dev), добавление записей формы vc/[0-9]*позволит войти в систему как root с указанного номера виртуальной консоли.
  • Если вы используете udev(для динамического управления устройствами и замены devfs), добавление записей формы tty[0-9]*позволит войти в систему как root с указанного номера виртуальной консоли.
  • Обычно указание consoleв списке /etc/securettyне имеет никакого эффекта, поскольку /dev/consoleуказывает на текущую консоль и обычно используется только как ttyимя файла в однопользовательском режиме, на который не влияет/etc/securetty
  • Добавление записей, подобных тем, pts/[0-9]*что позволит программам, использующим псевдотерминалы ( pty), pam_securettyвходить в систему, rootпредполагая, что выделенный терминал ptyявляется одним из перечисленных; обычно это хорошая идеянетвключить эти записи, поскольку это представляет угрозу безопасности; например, это позволит кому-то войти в систему как root через telnet, который отправляет пароли в открытом виде (обратите внимание, что именно этот pts/[0-9]*формат udevиспользуется в RHEL 5.5; он будет отличаться при использовании devfsили какой-либо другой формы управления устройствами).

Для однопользовательского режима /etc/securettyне учитывается, поскольку suloginвместо этого используется login(см. suloginстраницу руководства для получения дополнительной информации). Также вы можете изменить программу входа, используемую /etc/inittabдля каждого уровня запуска.

Обратите внимание, что вам не следует использовать /etc/securettyдля управления rootвходами через ssh. Для этого измените значение PermitRootLoginв /etc/ssh/sshd_config. По умолчанию /etc/pam.d/sshdне настроено на консультацию pam_securetty(и, следовательно /etc/securetty, ). Вы можете добавить строку для этого, но sshне устанавливает фактическое значение ttyдо некоторого времени после authэтапа, поэтому оно не работает так, как ожидалось. Во время этапов authи account— по крайней мере, для opensshtty( PAM_TTY) жестко закодировано в ssh.

Приведенный выше ответ основан на RHEL 5.5. Большая его часть будет относиться к текущим дистрибутивам других систем *nix, но есть различия, некоторые из которых я отметил, но не все.

Я сам ответил на этот вопрос, потому что другие ответы были неполными и/или неточными. Многие другие форумы, блоги и т. д. в сети также содержат неточную и неполную информацию по этой теме, поэтому я провел обширное исследование и тестирование, чтобы попытаться получить правильные данные. Если что-то из того, что я сказал, неверно, пожалуйста, дайте мне знать.

Источники:

решение2

vc/Xи ttyXявляются синонимами: разные пути к одним и тем же устройствам. Смысл избыточности в том, чтобы отлавливать разные случаи, чтобы не заблокировать вас.

Традиционно login(и возможно getty, я точно не помню) проверял /etc/securettyи отклонял rootвходы на неперечисленных терминалах. В современных системах есть другие способы сделать это и другие меры безопасности. Ознакомьтесь с содержимым /etc/login.defs(которое также охватывает securettyфункциональность и рекомендуется страницей securetty(5)руководства), а также /etc/pam.d/login, где вы можете управлять поведением этой функции.

Поскольку securettyпроверяется только login, средства входа в систему, которые не используются login(например, SSH с use_login=no, X display manager и т. д.), не затрагиваются.

Связанный контент