stringtranslate.com

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 emitir 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 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 en su sistema operativo Unix , Berkeley Software Distribution (BSD). Los comandos r se estrenaron en BSD v4.1. [2] Entre los programas de la suite se encuentran: (remote copy ), (remote execution ), (remote login ), (remote shell ), , y (remote who ). [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 una adopción pública más amplia 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 la implementación y el uso de los comandos r (y Telnet ) en sistemas en red. [7]

Protocolo

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

A modo de ejemplo, el protocolo es el siguiente: [11]

Cliente:<nulo> nombre
de usuario  en  el  cliente<null> nombre
de usuario  en  el  servidor<null>tipo de terminal  / velocidad  en baudios del terminal  <null>Servidor:

El servidor comprobará que el usuario tenga acceso. Si es así, devuelve un mensaje sin nada (ni siquiera un carácter nulo ), lo que significa que la conexión está establecida. Por ejemplo:

Cliente:<nulo>bostic<nulo>kbostic<nulo>vt100/9600<nulo>Servidor:

Tanto rloginy rshcomparten el esquema de control de acceso /etc/hosts.equiv(se aplica a todos los usuarios del servidor) como $HOME/.rhosts(se aplica solo al usuario que coloca el archivo en su carpeta de inicio), aunque se conectan a diferentes demonios. rloginse conecta a rlogind, mientras que rshse conecta a rshd. hosts.equivy .rhostsutiliza el mismo formato. A continuación se muestran algunos aspectos del formato: [12] [13]

anfitrión1host2  usuario_a-host3+@grupo1  -usuario_b-@grupo2

Esto permite que todos los usuarios del host1 inicien sesión, que el usuario_a inicie sesión en el host2, 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 una 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. El RFC 1282, en el que se definió, establece: "La función proporciona un terminal virtual controlado por flujo local y con eco remoto con un 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

RHS

rshAbre un shell en una computadora remota sin un procedimiento de inicio de sesión . Una vez conectado, el usuario puede ejecutar comandos en la computadora remota a través de la interfaz de línea de comandos del shell . 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 estándar 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 rsh daemon ( rshd) abre. [14]

rexec

Al igual que rsh, rexecpermite al usuario ejecutar comandos de shell en una computadora remota. 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-1

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 con el nombre del sistema remoto:

archivo rcp.txt subdominio.dominio:~/home/foo/archivo.txt

Al igual que el comando de copia de Unix cp , rcpsobrescribe un archivo existente del 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]

quien

Así como el comando who enumera los usuarios que han iniciado sesión en el sistema Unix local, rwhotambién enumera aquellos usuarios que han iniciado sesión en todos los sistemas Unix multiusuario de la red local. [18] rwho El demonio de , rwhodmantiene 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. [19]

estado r

rstatdevuelve estadísticas de rendimiento del kernel.

tiempo de interrupción

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

Seguridad

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

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

Véase también

Notas

  1. ^ Horwitz, Jeff (2003) [2002]. "Uso de los comandos r de Berkeley sin contraseña". Unix System Management: Primer Plus . Sams Publishing. pág. 339. ISBN 978-0-672-32372-0. Recuperado el 4 de marzo de 2018 – vía Google Books.
  2. ^ abc McKusick, Marshall Kirk (1999). "Veinte años de Berkeley Unix: de propiedad de AT&T a libre distribución". Códigos abiertos: voces de la revolución del código abierto . O'Reilly & Associates. Sección: "4.2BSD". ISBN 978-1-56592-582-3. Recuperado el 3 de marzo de 2018 .
  3. ^ Pyles, James; Carrell, Jeffrey L.; Tittel, Ed (2017). "¿Qué servicios IP son los más vulnerables?". Guía de TCP/IP: IPv6 e IPv4 (5.ª ed.). Cengage Learning. pág. 659. ISBN 978-1-305-94695-8– a través de Google Books.
  4. Casad (2008), pág. 346
  5. ^ Negus, Christopher (2 de julio de 2004). "Acerca de los comandos "r"". Biblia de Red Hat Fedora Linux 2. Wiley. ISBN 0-7645-5745-9. OCLC  441918216 . Consultado el 4 de marzo de 2018 .
  6. ^ "Un 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" (documento 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 el host local". z/OS Communications Server: Guía del usuario y comandos IP . 2013 [1990] . Consultado el 4 de marzo de 2018 .
  9. ^ ab "Más sobre los puertos". Guía de administradores de red de FreeBSD . Consultado el 4 de marzo de 2018 .
  10. ^ ab Casad (2008), págs. 350–51
  11. ^ Kantor, Brian (diciembre de 1991). BSD Rlogin (informe). Grupo de trabajo de ingeniería de Internet.
  12. ^ "Formato de archivo .rhosts para TCP/IP". www.ibm.com . Consultado el 29 de noviembre de 2023 .
  13. ^ "Formato de archivo hosts.equiv para TCP/IP". www.ibm.com . Consultado el 29 de noviembre de 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. 154. ISBN 0-7821-4287-7. Recuperado el 7 de marzo de 2018 – vía Google Books.
  15. ^ "rexecd(8)". manpagez.com . Consultado el 3 de marzo de 2018 .
  16. ^ ab Farrell, Phillip (3 de agosto de 2004). "rcp". earthsci.stanford.edu . Facultad de Ciencias de la Tierra, la Energía y el Medio Ambiente de la Universidad de Stanford. Archivado desde el original el 7 de febrero de 2021 . Consultado el 6 de marzo de 2018 .
  17. ^ "Rlogin, RSH y RCP". SourceDaddy . Consultado el 18 de febrero de 2018 .
  18. ^ "rwho (1) - Páginas del manual de Linux" . Consultado el 7 de marzo de 2018 .
  19. ^ ab "rwhod (8) - Páginas del manual de Linux" . Consultado el 7 de marzo de 2018 .
  20. ^ "ruptime (1) - Páginas del manual de Linux". SysTutorials . Consultado el 7 de marzo de 2018 .
  21. ^ Sobell, Mark (2010). Una guía práctica para comandos, editores y programación de shell en Linux . Pearson Education, Inc. ISBN 978-0-13-136736-4.
  22. ^ "Lista de comandos de control de trabajos de Unix". Universidad de Indiana . Consultado el 20 de diciembre de 2014 .

Referencias

Lectura adicional

Enlaces externos