Articulo de referencia

Comandos r de Berkeley

Los comandos r de Berkeley son un conjunto de programas informáticos diseñados para permitir a los usuarios de un sistema Unix iniciar sesión o enviar comandos a otro ordenador ...

Los comandos r de Berkeley son un conjunto de programas informáticos diseñados para permitir a los usuarios de un sistema Unix iniciar sesión o enviar comandos a otro ordenador Unix a través de una red informática TCP/IP . [ 1 ] Los comandos r fueron desarrollados en 1982 por el Grupo de Investigación de Sistemas Informáticos (CSRG) de la Universidad de California, Berkeley , basándose en una implementación temprana de TCP/IP (la pila de protocolos de Internet ). [ 2 ]

El CSRG incorporó los comandos r a su sistema operativo Unix , la Berkeley Software Distribution (BSD). Los comandos r se estrenaron en BSD v4.1. [ 2 ] Entre los programas del conjunto se encuentran: ( copia remota ), ( ejecución remota ), ( inicio de sesión remoto ), ( shell remoto ), , , y ( quién remoto ). [ 2 ] [ 3 ]rcprexecrloginrshrstatruptimerwho

Los comandos r fueron una innovación significativa y se convirtieron en estándares de facto para los sistemas operativos Unix. [ 4 ] [ 5 ] Con la mayor adopción pública de Internet, sus vulnerabilidades de seguridad inherentes se convirtieron en un problema, [ 6 ] y a partir del desarrollo de los protocolos y aplicaciones Secure Shell en 1995, su adopción suplantó por completo el despliegue y uso de los comandos r (y Telnet ) en sistemas en red. [ 7 ]

Protocolo

El paquete original de Berkeley también proporciona rloginfunciones rcp(remote-copy, que permite copiar archivos a través de la red) y rsh (remote-shell, que permite ejecutar comandos en una máquina remota sin que el usuario inicie sesión en ella).

Como ejemplo, el protocolo es el siguiente: [ 11 ]

Cliente: <null> nombre de usuario en el cliente<null> Nombre de usuario en el servidor<null> Tipo de terminal/Velocidad de transmisión del terminal<null> Servidor: <null> 

El servidor devuelve un único carácter nulo en respuesta, lo que significa que la conexión está establecida. [ 11 ] Por ejemplo:

Cliente: <null> bóstico<null> kbostic<null> vt100/9600<null> Servidor: <null> 

Tanto rlogincomo rshcomparten el esquema de control de acceso /etc/hosts.equiv(que se aplica a todos los usuarios del servidor) y (que se aplica solo al usuario que coloca el archivo en su carpeta personal), aunque se conectan a demonios diferentes. se conecta a , mientras que se conecta a . y utilizan el mismo formato. A continuación se muestran algunos aspectos del formato: [ 12 ] [ 13 ]$HOME/.rhostsrloginrlogindrshrshdhosts.equiv.rhosts

anfitrión1 host2 usuario_a -host3 +@group1 -usuario_b -@grupo2 

Esto permite que todos los usuarios del host1 inicien sesión, que el usuario_a del host2 inicie sesión, que ningún usuario del host3, todos los usuarios del grupo1 excepto el usuario_b y ningún usuario del grupo2.

Comandos

rlogin

rloginPermite a un usuario iniciar sesión en otro servidor a través de la red informática , utilizando el puerto de red TCP 513.

rlogines también el nombre del protocolo de capa de aplicación utilizado por el software, parte del conjunto de protocolos TCP/IP . Los usuarios autenticados pueden actuar como si estuvieran físicamente presentes en la computadora. RFC 1282, en el que se definió, establece: "La función proporciona una terminal virtual con eco remoto y control de flujo local con vaciado adecuado de la salida". se comunica con un demonio , , en el host remoto. es similar al comando Telnet , pero no es tan personalizable y solo puede conectarse a hosts tipo Unix.rloginrloginrlogindrlogin

rsh

rshAbre un intérprete de comandos en un equipo remoto sin un procedimiento de inicio de sesión . Una vez conectado, el usuario puede ejecutar comandos en el equipo remoto a través de la interfaz de línea de comandos del intérprete . rshPasa la entrada y la salida a través de los flujos estándar y envía la salida estándar a la consola del usuario . A través de la red, la entrada y la salida estándar fluyen a través del puerto TCP 514, mientras que el error estándar fluye a través de un puerto TCP diferente, que el rshdemonio ( rshd) abre. [ 14 ]

rexec

Al igual que rsh, rexecpermite al usuario ejecutar comandos de shell en un equipo remoto. Sin embargo, a diferencia del servidor rsh, el rexecservidor ( rexecd) requiere inicio de sesión: autentica a los usuarios leyendo el nombre de usuario y la contraseña (sin cifrar) del socket de red . [ 15 ]rexec utiliza el puerto TCP 512.

rcp

rcppuede copiar un archivo o directorio del sistema local a un sistema remoto, de un sistema remoto al sistema local o de un sistema remoto a otro. [ 16 ] Los argumentos de la línea de comandos de cpy rcpson similares, pero en rcplos archivos remotos se anteponen al nombre del sistema remoto:

rcp file.txt subdomain.domain:~/home/foo/file.txt

Al igual que el comando de copia de Unix cp , rcpsobrescribe un archivo existente con el mismo nombre en el destino; a diferencia de cp, no proporciona ningún mecanismo para advertir al usuario antes de sobrescribir el archivo de destino. [ 16 ] Al igual que rsh, rcputiliza el puerto TCP 514. [ 17 ]

rwho

Así como el comando who muestra los usuarios que han iniciado sesión en el sistema Unix local, rwhomuestra los usuarios que han iniciado sesión en todos los sistemas Unix multiusuario de la red local. [ 18 ] Muestra el nombre de usuario, el nombre del host desde el que se conecta el usuario y la fecha y hora de inicio de la sesión. [ 19 ]

rwhoEl demonio de , rwhod, mantiene una base de datos del estado de los sistemas Unix en la red local. El demonio y su base de datos también son utilizados por el ruptimeprograma. [ 20 ] A diferencia del protocolo finger , rwho no muestra información de los usuarios .plano .projectarchivos, como el nombre real o la dirección de correo electrónico de un usuario .

rstat

rstatDevuelve estadísticas de rendimiento del kernel.

ruptime

Así como el uptimecomando muestra cuánto tiempo ha estado funcionando un sistema Unix desde el último reinicio, ruptimesolicita un informe de estado a todos los equipos de la red local. Luego devuelve el informe de tiempo de actividad. Si un equipo no responde dentro del límite de tiempo, ruptimeinforma que el sistema está caído . [ 21 ] Esta información es rastreada y almacenada por el demonio rwhod, que también es utilizado por el comando rwho. [ 20 ]

Seguridad

Los comandos r que implican autenticación de usuario rcp( , rexec, rlogin, y rsh) comparten varias vulnerabilidades de seguridad:

  • Toda la información, incluidas las contraseñas, se transmite sin cifrar (lo que la hace vulnerable a la interceptación).
  • El archivo .rlogin(o .rhosts) es fácil de usar indebidamente. Están diseñados para permitir inicios de sesión sin contraseña , pero su dependencia de nombres de usuario remotos, nombres de host y direcciones IP es vulnerable. Por esta razón, muchos administradores de sistemas corporativos prohíben .rhostsestos archivos y supervisan activamente sus redes en busca de infractores.
  • El protocolo depende en parte de que el cliente remoto rloginproporcione información veraz, incluyendo el puerto y el nombre del host de origen. Un cliente malicioso puede falsificar esta información y obtener acceso, ya que el rloginprotocolo no dispone de mecanismos para autenticar que el cliente se ejecuta en una máquina de confianza. Tampoco puede comprobar si el cliente solicitante en una máquina de confianza es el rlogincliente real, lo que significa que los programas maliciosos pueden hacerse pasar por un cliente que cumple con el estándar rloginutilizando los mismos protocolos.
  • La práctica común de montar los directorios de inicio de los usuarios a través del Sistema de Archivos de Red expone a rlogin a ataques mediante .rhostsarchivos falsos; esto significa que cualquiera de sus fallos de seguridad afecta automáticamente a rlogin.

Debido a estos problemas, los comandos r cayeron en relativo desuso (y muchas distribuciones de Unix y Linux ya no los incluyen por defecto). Muchas redes que antes dependían de ellos rloginlos telnethan reemplazado por SSH y su rloginequivalente slogin. [ 22 ] [ 23 ]

Véase también

Notas

  1. Horwitz, Jeff (2003) [2002]. "Uso de los comandos r de Berkeley sin contraseña" . Administración de sistemas Unix: Introducción y más . Sams Publishing. pág.  339. ISBN 978-0-672-32372-0Recuperado el 4 de marzo de 2018 a través de Google Libros.
  2. 1 2 3 McKusick, Marshall Kirk (1999). "Veinte años de Berkeley Unix: De propiedad de AT&T a redistribuible libremente" . Open Sources: Voices from the Open Source Revolution . O'Reilly & Associates. Sección: "4.2BSD" . ISBN 978-1-56592-582-3. Consultado el 3 de marzo de 2018 .
  3. Pyles, James; Carrell, Jeffrey L.; Tittel, Ed (2017). "¿Qué servicios IP son más vulnerables?" . Guía de TCP/IP: IPv6 e IPv4 (5.ª ed.). Cengage Learning. pág. 659. ISBN   978-1-305-94695-8 vía Google Libros.
  4. Casad (2008), pág. 346
  5. Negus, Christopher (2 de julio de 2004). "Acerca de los comandos "r" . Red Hat Fedora Linux 2 Bible . Wiley. ISBN 0-7645-5745-9. OCLC 441918216 . Consultado el 4 de marzo de 2018 . 
  6. "Estudio de caso sobre el uso de un protocolo de capa de red segura". CiteSeerX 10.1.1.178.8497 . 
  7. Nicholas Rosasco; David Larochelle. "Cómo y por qué las tecnologías más seguras triunfan en los mercados tradicionales: lecciones del éxito de SSH" (Ponencia de conferencia) . Universidad de Harvard . doi : 10.1007/1-4020-8090-5_18 . S2CID 19035681. Consultado el 13 de abril de 2023 . 
  8. "Comando REXEC: ejecuta un comando en el host remoto y recibe los resultados en tu host local" . z/OS Communications Server: IP User's Guide and Commands . 2013 [1990] . Consultado el 4 de marzo de 2018 .
  9. 1 2 "Más sobre puertos" . Guía de administradores de red de FreeBSD . Consultado el 4 de marzo de 2018 .
  10. ^ Casad (2008), págs. 350–51 .
  11. 1 2 Kantor, Brian (diciembre de 1991). "Establecimiento de conexión" . BSD Rlogin . IETF . pág. 1. doi : 10.17487/RFC1282 . RFC 1282. Recuperado el 21 de junio de 2026 . 
  12. "Formato de archivo .rhosts para TCP/IP" . www.ibm.com . Consultado el 29/11/2023 .
  13. "Formato de archivo hosts.equiv para TCP/IP" . www.ibm.com . Consultado el 29/11/2023 .
  14. Edwards, Wade; Lancaster, Tom; Quinn, Eric; Rohm, Jason; Tow, Bryant (2004). CCSP: Guía de estudio de Secure PIX y Secure VPN . Sybex . pág. 154. ISBN  0-7821-4287-7Recuperado el 7 de marzo de 2018 a través de Google Libros.
  15. "rexecd(8)" . manpagez.com . Consultado el 3 de marzo de 2018 .
  16. 1 2 Farrell, Phillip (3 de agosto de 2004). "rcp" . earthsci.stanford.edu . Escuela de Ciencias de la Tierra, la Energía y el Medio Ambiente de la Universidad de Stanford. Archivado del original el 7 de febrero de 2021. Recuperado el 6 de marzo de 2018 .
  17. "Rlogin, RSH y RCP" . SourceDaddy . Consultado el 18 de febrero de 2018 .
  18. "rwho (1) - Páginas de manual de Linux" . Consultado el 7 de marzo de 2018 .
  19. "Comando rwho" . Documentación de IBM AIX . Consultado el 11 de diciembre de 2025 .
  20. 1 2 "rwhod (8) - Páginas de manual de Linux" . Consultado el 7 de marzo de 2018 .
  21. "ruptime (1) - Páginas del manual de Linux" . SysTutorials . Consultado el 7 de marzo de 2018 .
  22. Sobell, Mark (2010). Guía práctica de comandos, editores y programación de shell de Linux . Pearson Education, Inc. ISBN 978-0-13-136736-4.
  23. "Lista de comandos de control de trabajos de Unix" . Universidad de Indiana . Consultado el 20 de diciembre de 2014 .

Referencias

  • Casad, Joe (2008). "Berkeley Remote Utilities" . Sams Teach Yourself TCP/IP in 24 Hours . Pearson Education. ISBN 978-0-13-271513-3 vía Google Libros.

Lecturas adicionales

  • Noordergraaf, Alex (2003) [2002]. "Servicios de acceso remoto (rsh, rlogin y rcp)" . Seguridad empresarial: Entorno operativo Solaris, Security Journal, Solaris OE v2.51, 2.6, 7 y 8. Prentice Hall. ISBN 978-0-13-100092-6.
  • Poniatowski, Marty (2000). Manual del usuario de UNIX (1.ª  ed.). Prentice Hall. págs. 475–77 . ISBN  978-0-13-027019-1OCLC 43561861 
  • Rogers, Lawrence R. (noviembre de 1998). "rlogin(1): La historia no contada" (PDF) . Archivado del original (PDF) el 17 de diciembre de 2001.
  • "Enumeración de usuarios de Unix" . Laboratorio de pruebas de penetración . 10 de abril de 2012.
  • RFC 1282 , BSD Rlogin (1991) 
  • rlogin(1) Manual de comandos de usuario de Linux 
  • rlogin(1)Inicio de sesión remoto : Manual de comandos generales de Darwin y macOS   
  • rlogin(1)Inicio de sesión remoto Manual de referencia de comandos de usuario de Solaris 11.4