De forma predeterminada en RHEL 5.5 tengo
[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
¿Cuál es la diferencia entre cada uno de los tipos de entrada ( console
, vc/*
y tty*
)? Específicamente, ¿cuál es el resultado final de agregar y eliminar cada tipo de entrada?
Según tengo entendido, afectan cómo y cuándo puede iniciar sesión, pero ¿existen otros efectos? ¿Y cuándo puedes y cuándo no puedes iniciar sesión dependiendo de las entradas que haya?
EDITAR 1
Lo que sí sé es que tty1-6
corresponde a si puedes iniciar sesión desde las primeras 6 consolas a las que llegas usando Ctrl- Alta F1través de Ctrl- . Siempre pensé que eran consolas virtuales, así que estoy un poco confundido. ¿Y a qué corresponde?AltF6console
Gracias.
EDITAR 2
¿Cuál es el efecto, si lo hay, en el modo de usuario único?
Respuesta1
/etc/securetty
Se consulta por pam_securetty
módulo para decidir desde qué terminales virtuales ( tty*
) root
se permite iniciar sesión.
En el pasado, /etc/securetty
los programas lo consultaban login
directamente, pero ahora PAM se encarga de eso. Por lo tanto, los cambios /etc/securetty
afectarán a cualquier cosa que utilice PAM con un archivo de configuración que utilice pam_securetty.so
. Por lo tanto, sólo el login
programa se ve afectado de forma predeterminada.
/etc/pam.d/login
se usa para inicios de sesión locales y /etc/pam.d/remote
para inicios de sesión remotos (como telnet).
Los tipos de entrada principales y sus efectos son los siguientes:
- Si
/etc/securetty
no existe,root
se permite iniciar sesión desde cualquiertty
- Si
/etc/securetty
existe y está vacío,root
el acceso se restringirá al modo de usuario único o a programas que no estén restringidos porpam_securetty
(es decirsu
,sudo
,ssh
,scp
,sftp
) - Si está utilizando
devfs
(un sistema de archivos obsoleto para el manejo/dev
), agregar entradas del formulariovc/[0-9]*
permitirá el inicio de sesión raíz desde el número de consola virtual proporcionado. - Si está utilizando
udev
(para administración dinámica de dispositivos y reemplazo dedevfs
), agregar entradas del formulariotty[0-9]*
permitirá el inicio de sesión raíz desde el número de consola virtual proporcionado. - El listado
console
normalmente/etc/securetty
no tiene ningún efecto ya que/dev/console
apunta a la consola actual y normalmente solo se usa comotty
nombre de archivo en el modo de usuario único, que no se ve afectado por/etc/securetty
- Agregar entradas como
pts/[0-9]*
permitirá que los programas que usan pseudo-terminales (pty
)pam_securetty
inicien sesiónroot
asumiendo que el asignadopty
es uno de los enumerados; normalmente es una buena ideanoincluir estas entradas porque es un riesgo de seguridad; permitiría, por ejemplo, que alguien inicie sesión en root a través de telnet, que envía contraseñas en texto sin formato (tenga en cuenta quepts/[0-9]*
es el formatoudev
que se usa en RHEL 5.5; será diferente si se usadevfs
alguna otra forma de administración de dispositivos).
Para el modo de usuario único, /etc/securetty
no se consulta porque sulogin
se usa en lugar de login
(consulte la sulogin
página de manual para obtener más información). También puede cambiar el programa de inicio de sesión utilizado /etc/inittab
para cada nivel de ejecución.
Tenga en cuenta que no debe utilizar /etc/securetty
para controlar root
los inicios de sesión a través de ssh
. Para hacer eso cambie el valor de PermitRootLogin
in /etc/ssh/sshd_config
. Por defecto /etc/pam.d/sshd
no está configurado para consultar pam_securetty
(y por tanto /etc/securetty
). Podría agregar una línea para hacerlo, pero ssh
no establece el valor real tty
hasta algún momento después de la auth
etapa, por lo que no funciona como se esperaba. Durante las etapas auth
y account
, al menos para openssh
, tty
( PAM_TTY
) está codificado en ssh
.
La respuesta anterior se basa en RHEL 5.5. Gran parte pertenecerá a distribuciones actuales de otros sistemas *nix, pero existen diferencias, algunas de las cuales noté, pero no todas.
Respondí esto yo mismo porque las otras respuestas estaban incompletas o inexactas. Muchos otros foros, blogs, etc. en línea también tienen información inexacta e incompleta sobre este tema, por lo que he realizado investigaciones y pruebas exhaustivas para tratar de obtener los detalles correctos. Si algo de lo que he dicho está mal, házmelo saber.
Fuentes:
- http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/ch-sec-network.html#s1-wstation-privileges
- http://www.mathematik.uni-marburg.de/local-doc/centos5/pam-0.99.6.2/html/sag-pam_securetty.html
- http://linux.die.net/man/1/login
- http://www.tldp.org/HOWTO/html_single/Text-Terminal-HOWTO/
- http://www.kernel.org/doc/Documentation/devices.txt
- http://en.wikipedia.org/wiki/Virtual_console
- http://en.wikipedia.org/wiki/Linux_console
- http://www.kernel.org/doc/man-pages/online/pages/man4/console.4.html
- http://www.unix.com/security/8527-restricting-root-login.html
- http://www.redhat.com/mirrors/LDP/HOWTO/Serial-HOWTO-11.html#ss11.3
- http://www.mathematik.uni-marburg.de/local-doc/centos5/udev-095/udev_vs_devfs
Respuesta2
vc/X
y ttyX
son sinónimos: diferentes caminos hacia los mismos dispositivos. El objetivo de la redundancia es detectar varios casos para no dejarlo fuera.
Tradicionalmente login
(y posiblemente getty
, no lo recuerdo con certeza) verificaba /etc/securetty
y denegaba root
los inicios de sesión en terminales no listados. En los sistemas modernos, existen otras formas de hacer esto y también otras medidas de seguridad. Consulte el contenido de /etc/login.defs
(que también cubre securetty
la funcionalidad de y es recomendado por la securetty(5)
página de manual), y también /etc/pam.d/login
, donde puede controlar el comportamiento de esta característica.
Dado que securetty
solo lo verifica login
, los medios de inicio de sesión que no utilizan login
(por ejemplo, SSH con use_login=no
, administradores de visualización X, etc.) no se ven afectados.