Usando um usuário do sistema para transferir arquivos via scp / kerberos

1

Eu preciso de um cron job para transferir um arquivo entre servidores usando a autenticação scp e kerberos. O usuário do sistema para o trabalho está em / etc / passwd em ambas as máquinas e um keytab válido foi criado (com -randkey) para a autenticação do kerberos. O cron job script chama kinit, scp e kdestroy. No entanto, o scp não funcionará a menos que eu mude o / sbin / nologin em / etc / passwd para um shell válido, digamos / bin / bash.

Pergunta # 1: isso é uma falha de segurança para especificar um shell?
Pergunta # 2: esta é a maneira "certa" de fazer isso?

Obrigado antecipadamente

    
por Aaron 13.05.2011 / 16:18

2 respostas

1

Resposta 1: Pode ser. Se você desabilitar qualquer outro método de autenticação e, portanto, forçar o uso da chave e você acreditar que essa chave é strong, então,

Resposta 2: Sem nenhum shell válido, o scp irá perder a sessão antes de transferir quaisquer arquivos, o que é uma vergonha. Parece que o scponly faz o que você quer ( link ).

    
por 13.05.2011 / 20:03
1

A questão # 1 geralmente não é um problema, a menos que esse usuário seja root. Há também outras camadas que você pode usar para limitar o acesso; iptables, tcpwrappers, a opção from= em .ssh / authorized_keys e pam_access para citar alguns.

Em vez de usar scp , que é um programa separado e precisa ser chamado com opções de um shell, você pode usar sftp . No servidor, defina o shell da conta de serviço para o sftp-server:

# RHEL systems
usermod -s /usr/libexec/openssh/sftp-server username
# debian systems
usermod -s /usr/lib/sftp-server username

Em seguida, chame sftp no modo em lote (-b batchfile) para uso não interativo.

    
por 13.05.2011 / 21:33