A porta normal para um servidor rsh é 514. Seu cliente rsh suporta Kerberos e um Kerberos O rsh server normalmente escuta na porta 544. Seu cliente rsh primeiro tenta efetuar login com a autenticação Kerberos, provavelmente primeiro com o Kerberos versão 5 e depois com o Kerberos versão 4 (abreviado como “krb4”). O erro “conexão recusada” é devido à ausência de um servidor rsh do Kerberos (pode haver outras razões, como um firewall bloqueando você, mas é altamente improvável que isso aconteça quando o servidor está no host local). Ignore este erro, a menos que você pretenda usar o Kerberos.
Sem o kerberos, o rsh permite duas formas de autenticação: o usuário deve digitar uma senha ou o usuário deve estar na lista de permissões em /etc/rhosts
ou ~/.rhosts
. Whitelisting significa que o arquivo declara que o usuário U na máquina M tem permissão para efetuar login como usuário V no servidor. O servidor somente permite isso se puder confiar que a solicitação está realmente vindo do usuário U na máquina M. O servidor confia que uma solicitação vem da máquina M se ela vier do endereço IP da máquina M (uma suposição válida pelos padrões dos anos 80). ). Ele confia que o pedido vem do usuário U porque o cliente diz isso.
Mas porque o cliente diz que não é um motivo para confiar no cliente, nem mesmo nos padrões dos anos 80. Portanto, há uma condição adicional: solicitações rsh devem ter uma porta de origem abaixo de 1024. Em máquinas Unix, somente o root pode ligar portas TCP ou UDP abaixo de 1024. Portanto, o cliente rsh é executado como raiz. Como qualquer usuário deve ser capaz de executá-lo, o binário rsh é setuid root: ele é executado com permissões de root, não importa qual usuário invocou.
Quando você executa um programa em strace, ele não é executado com nenhum privilégio elevado, apenas os privilégios do usuário solicitante. Isso ocorre porque o rastreamento pode revelar dados confidenciais (e, na verdade, o mesmo mecanismo permite que você seqüestre completamente o processo). Portanto, quando você executa strace rsh …
, no ponto em que tenta abrir uma conexão com uma porta de origem abaixo de 1024, ele falha: rcmd: socket: Permission denied
.
Se você quiser rastrear rsh
, terá que executar strace
como root. Deixe-o executar rsh
como root ou passe a opção -u
para que o programa seja executado com os privilégios que normalmente possui quando iniciado a partir de sua conta:
strace -o rsh.strace -s9999 -u jhamb rsh localhost pwd