Transferência segura de arquivos no linux sem SSH?

2

Eu quero transferir arquivos entre máquinas para a internet, de maneira SEGURA. Ambas as máquinas têm o linux (o "servidor" usa o Ubuntu 12 e o "cliente" usa o Mint 14). Eu não quero permitir ssh para o meu servidor, e eu quero que o cliente seja capaz de abrir e ler arquivos no servidor, mas não pode modificar / apagar coisas. É permitido ao cliente copiar arquivos para o servidor [ou criar arquivos lá] e copiar do servidor.

Eu quero compartilhar apenas alguns diretórios no meu servidor da maneira descrita acima. Finalmente, eu quero acessar arquivos no cliente de uma forma fácil, como o modo GUI ou algo assim..não usando shell, mas em vez disso, usando um estilo de windows (como se minha pasta remota é um local, mas com acesso restrito como acima explicado).

Ser seguro para mim significa que a conexão deve ser criptografada e o login pode usar algum esquema de chave privada / pública.

Qual é a melhor solução para mim? Estou tentando encontrar alguma configuração de SFTP que se encaixe na minha "especificação", mas a restrição no acesso é muito "peculiar" ... não sei mesmo se o SFTP funciona sem permitir o ssh.

Muito obrigado por qualquer ajuda ...

EDIT: Muito obrigado pela sua ajuda. Eu realmente aprecio isto! Vou avaliar todas as respostas e tentar descobrir a melhor solução. Até agora, eu acho que criar um usuário que tenha acesso / privilégios restritos e permitir que SOMENTE este usuário faça um SSH / SFTP ultra-seguro é a melhor maneira ... "hacks" para evitar o ssh realmente pode piorar as coisas (menos seguro ). Minha pergunta é um pouco confusa porque minha "lógica" foi um pouco perturbada. Agora eu posso ver mais claramente ...

    
por guipy 07.05.2013 / 20:54

8 respostas

4

O bom e velho File Transfer Protocol (FTP) foi inventado para transferir arquivos. Para usá-lo de forma segura, você pode usar ftps (que não é sftp, mas ftp over ssl) ou configurar uma conexão vpn para segurança.

Quando pesquiso vsftpd + ssl, este é o primeiro resultado que parece ser um ponto de partida razoável.

    
por 07.05.2013 / 23:51
2

Você pode configurar um sistema de arquivos WebDAV por SSL.

    
por 07.05.2013 / 20:59
2

Você pode usar qualquer protocolo, mesmo sem criptografia e sem autenticação. Tudo o que você precisa fazer é assinar e criptografar seus dados antes de enviá-los:

gpg --armor --local-user senderkey --recipient recipientkey --sign --encrypt cleartextfile

Se você é paranóico sobre as possibilidades de login no alvo, você pode usar uma combinação de

  1. algum evento de rede (que não abre uma conexão) que é registrado pelo Netfilter ( iptables )
  2. uma chamada wget que é acionada pelo registro em log e obtém o arquivo de algum servidor da web (o arquivo OpenPGP provavelmente precisa ter sempre o mesmo nome)
por 07.05.2013 / 23:47
1

Tente WebDAV . É o meu protocolo favorito para acessar arquivos no meu NAS.

    
por 07.05.2013 / 21:05
1

Parece-me que você deve ser capaz de restringir o usuário apenas ao sftp adicionando uma diretiva command="..." ao arquivo authorized_keys do usuário. Estamos fazendo isso no $ trabalho para restringir algumas contas de usuário para apenas rsync.

Existe um wite-up no link que mostra o processo para o rsync.

    
por 07.05.2013 / 21:52
1

"Is there a way to limit the SSH access on my server, and then only my client could do ssh/sftp into it?"

Claro. Uma strong senha / frase-senha ou autenticação baseada em chave seria suficiente para isso. Se você quiser saciar ainda mais sua paranóia, use o firewall na porta 22, exceto os IPs que devem ter acesso, ou adicione o módulo PAM de senha única do Google Authenticator para autenticação de dois fatores.

Como o padrão ouro da indústria para acesso remoto a servidores, o SSH protegido corretamente será muito mais seguro do que uma solução alternativa hacky baseada no único requisito de "sem SSH".

    
por 07.05.2013 / 23:45
1

O seguinte é simples e impressionante:

python -m SimpleHTTPServer 8888

Isso inicia um novo servidor de arquivos http para o diretório atual. Supondo que haja um arquivo chamado foo no diretório atual, você pode baixá-lo assim:

wget http://your.ip.here:8888/foo
    
por 04.05.2016 / 11:03
1

Você pode usar o protocolo HTTPS. Esta é uma instalação simples para o nginx.

apt install nginx
cd /etc/nginx/ ; openssl req -x509 -newkey rsa:2048 -keyout site.key -out site.crt -days 365 -nodes

vim /etc/nginx/sites-enabled/default 
server {
    listen 443 ssl default_server;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    ssl_certificate     site.crt;
        ssl_certificate_key site.key;
    server_name _;
    location / {
        try_files $uri $uri/ =404;
    }
}

nginx

Depois disso copie seus arquivos para / var / www / html e faça o download do servidor. Se você quiser acesso próximo para o usuário, use autenticação básica . Se você quiser fazer o upload de arquivos, você pode criar um simples script PHP .

    
por 27.07.2017 / 22:23