Uma das formas mais tradicionais de transferir arquivos entre duas máquinas
GNU/Linux, é utilizando a ferramenta
scp, derivada das ferramentas
ssh e companhia.
O único inconveniente deste método, é ter que fornecer sua própria senha de usuário para quem for transferir os arquivos para sua máquina.
A solução que encontrei para isso, foi criar um usuário específico para esta finalidade. Mas esta solução comporta os mesmos problemas que antes, uma vez que eu continuo tendo que fornecer uma senha para os outros. E uma pessoa mal intencionada, pode acabar acessando minha máquina sem minha autorização.
Depois de pesquisar sobre como resolver este problema, encontrei a solução ideal, que é o shell
rssh.
O
rssh é um shell muito específico, cuja função é prover acesso a determinados serviços que trabalhem com transferência remota de arquivos, como SCP ou rSync, por exemplo. O grande detalhe, é que ele apenas provê acesso aos serviços estipulados, mas não propriamente a aplicações de acesso remoto, como o SSH, por exemplo.
Desta forma, uma vez configurado, qualquer pessoa que for transferir arquivos para minha máquina, mesmo sabendo a senha de um usuário, nada poderá fazer além de transferir arquivos.
Vamos implementar o
rssh em 3 etapas:
- Instalação;
- Criação de um usuário específico para a finalidade de transferências remotas;
- Configuração.
Instalação
1. Para instalar o pacote
rssh:
apt-get install rssh
2. Em seguida, criaremos um usuário específico para receber as transferências remotas, chamado
transfer. Já vamos estabelecer que seu shell padrão será o próprio
/usr/bin/rssh, e em seguida vamos estabelecer uma senha para ele:
# useradd --create-home --shell /usr/bin/rssh transfer
# passwd transfer
3. Especificar no arquivo de configuração
/etc/rssh.conf, quais serviços de transferência remota serão permitidos via
rssh:
# cat /etc/rssh.conf
# This is the default rssh config file
# set the log facility. "LOG_USER" and "user" are equivalent.
logfacility = LOG_USER
# Leave these all commented out to make the default action for rssh to lock
# users out completely...
allowscp
#allowsftp
#allowcvs
#allowrdist
#allowrsync
#allowsvnserve
# set the default umask
umask = 022
...
No exemplo acima, descomentei a linha
allowscp, para habilitar o acesso via SCP. Os serviços que estiverem comentados, serão desabilitados via
rssh.
Feito isso, quando alguém for copiar algum arquivo para mim, fornecerei a senha do usuário
transfer, e somente conseguirão transferir arquivos via scp para minha máquina.
Exemplo: Na máquina de quem for transferir arquivos para minha máquina:
scp exemplo.txt transfer@{máquina configurada com rssh}:/home/transfer
Obs.: no caso deste exemplo, a conta do usuário
transfer não poderá ser usada para operar o sistema normalmente, pois o
rssh não é um shell projetado para esta finalidade.
Para mais informações, consulte:
Nenhum comentário foi encontrado.