Transferir arquivos usando SFTP e gaiolas no Debian e Ubuntu

!Olá amigos! Hoje trago a vocês uma alternativa ao uso de um servidor FTP para transferência segura de arquivos. Já o colega KZKG ^ Gaara postou um baseado no pacote jaula. O que iremos desenvolver é baseado nos pacotes que temos mais em mãos em nosso repositório.
Vamos ver:

  • Digite obrigatório
  • Como configuramos o servidor Openssh?
  • Como criamos usuários?
  • Como modificamos os diretórios pessoais para fazer a gaiola funcionar?

Digite obrigatório
Freqüentemente, precisamos que os arquivos sejam copiados de computadores remotos para nossa máquina. Muitos me perguntaram sobre isso. Devo instalar um FTP? Como faço para instalar um SAMBA? Bem, vamos do simples ao complexo. Em primeiro lugar, por que nos complicarmos se temos o Servidor OpenSSH instalado? E se não tivermos, com o comando simples:

aptitude instala servidor openssh

Agora nós temos isso !, e então poderemos transferir arquivos com segurança através do protocolo SFTP (Secure File Transfer Protocol), que usa SSH (Secure Shell) para criptografia.

Por padrão, os usuários com permissão para iniciar uma sessão remota via usuário ssh @ minha equipe, eles poderão ver quase todos os arquivos armazenados em nosso sistema, o que pode não ser do nosso agrado, ou que por motivos de segurança não devemos permitir.

Este artigo nos ajudará a configurar o Servidor OpenSSH para que os usuários que desejamos fiquem restritos ao seu diretório pessoal / home / user. Esclarecemos que, Com este método, os usuários declarados não poderão iniciar uma sessão remota por meio de um console ssh ou por meio do PuTTy. Eles só poderão transferir arquivos de ou para seu diretório pessoal em nosso computador ou servidor.

O método descrito aqui é válido para as versões 5 (Lenny) ou superior do Debian e para as versões 9.04 ou superior do Ubuntu. A versão do pacote SSH de Hardy ou Ubuntu 8.04 está muito atrasada e não suporta a configuração que descreveremos a seguir.

Como configuramos o servidor Openssh?
Como o usuário raiz nós editamos o arquivo / etc / ssh / sshd_config com qualquer editor de texto simples. Recomendamos o uso de nano no modo de console.

nano / etc / ssh / sshd_config

Procuramos a presença da seguinte linha:

Subsistema sftp

Em Lenny e Squeeze existem:

Subsistema sftp / usr / lib / openssh / sftp-server

Caso não exista, acrescentamos no final do arquivo:

Subsistema sftp interno-sftp

Continuamos com a edição do arquivo sshd_config e adicionamos no final:

Match group-sftp ChrootDirectory% h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp

Salvamos as alterações e reiniciamos o serviço:

/etc/init.d/ssh reinicie

Como criamos usuários?
Primeiro criamos o «grupo»Que declaramos no sshd_config. Cuidado com o nome que escolhemos anteriormente, não vai ser que ele já exista e seja um grupo pertencente ao Sistema. Se não quisermos restringir os usuários existentes em nosso sistema, devemos criar novos usuários para que eles possam transferir arquivos. Para que a gaiola funcione, também temos que torná-los membros do grupo em questão.

addgroup group-sftp adduser user1 adduser user2 [----] usermod -G group-sftp user1 usermod -G group-sftp user2

Para verificar a criação do grupo e dos usuários, podemos fazer:

menos / etc / senha menos / etc / group ls -l / home

E os usuários devem aparecer usuario1 y usuario2bem como os grupos group-sftp e os correspondentes aos usuários criados. Além disso, ao listar o diretório / Home, os diretórios pessoais de cada usuário criado serão exibidos.

Como modificamos os diretórios pessoais para fazer a gaiola funcionar de maneira eficaz?
Devemos aumentar a segurança das pastas pessoais de cada usuário criado para que eles não possam criar pastas adicionais em seu diretório pessoal, e com permissões de gravação onde quisermos (não onde eles quiserem) 🙂:

chown root: root / home / user1 / home / user2 chmod 755 / home / user1 / home / user2 cd / home / user1 documentos mkdir html_public chown usuário1: usuário1 * cd / home / user2 documentos mkdir html_public chown usuário2: usuário2 *

Usuários pertencentes ao grupo group-sftp, a partir de agora eles poderão fazer login com seus nomes e senhas apenas via SFTP, e poderão transferir arquivos de e para os diretórios localizados abaixo de sua pasta pessoal que foram criados por nós, mas não poderão para ver o resto do nosso sistema de arquivos.

Para a transferência de arquivos e pastas, podemos usar Nautilus, Konqueror, WinSCP, FileZilla e outros que suportam o protocolo SFTP. No caso do Konqueror, devemos usar fish: // usuário @ remotecomputer.

Esperamos que este artigo seja útil para nós!
Até a próxima aventura, amigos!

sftp_nautilus


12 comentários, deixe o seu

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   hexborg dito

    Bom artigo. Uma maneira muito segura de compartilhar arquivos. Muito obrigado pela explicação. 🙂

  2.   blitzkrieg dito

    Excelente

  3.   Lolo dito

    E não é mais confortável usar o sshfs?

    Para nossa equipe a pasta remota apareceria como mais uma pasta com as mesmas características.

  4.   Jacobo fidalgo dito

    Olá Federico, como sempre excelente artigo. Estou muito feliz em poder ler suas postagens na Internet agora.
    Um abraço,
    Jako

    1.    caçador dito

      Que tal Jacobo, nenhum Federico não concorda diretamente. Ei, quando você não voltar mais ubuntu, você pinta o verde humano e o uso aberto completo. Um abraço. 😉

  5.   KZKG ^ Gaara dito

    Você está fazendo contribuições excelentes, continue assim 😀

    1.    federico dito

      Obrigado mil KZKG ^ Gaara, e obrigado a TODOS por seus comentários

  6.   jaenense dito

    Um usuário pode ser colocado em uma pasta diferente de / home / user /… ..?

    O que eu quero fazer é prender um usuário na pasta / media / hdd / ...
    Preciso fazer assim, pois o servidor é um Raspberry Pi com Raspbian e tem a pasta / home /… / em um cartão SD, que se encheria em nenhum momento

    Eu tentei de várias maneiras e o resultado no cliente é sempre «Broken pipe», e o resultado em servidor fatal: propriedade ou modos incorretos para o componente de diretório chroot «/ media / HDD /»

    Muito obrigado a todos

    1.    federico dito

      Acho que você terá que dizer ao sistema que a pasta pessoal desse usuário é / home / HDD, desde que essa partição tenha um formato Linux nativo, ou seja, ext4; ext3; etc. Exemplo, se o usuário for jae - resumindo - você deve executar algo assim:

      : ~ # usermod –move-home –home / home / HDD jae

      Veja também o man usermod. Felicidades

  7.   Irving Hernandez dito

    Estou com um problema, ou tenho um serviço na amazon com um amigo público e tenho que entrar pelo sftp para colocar ou remover arquivos.
    Já fiz isso antes e está tudo bem, mas hoje ela fez algo que não tinha acontecido comigo
    Dentro do ami há uma série de pastas e uma delas é um portal cativo da internet (página para meus usuários). Acontece que lá faço promoções e publicidade para meus usuários e constantemente faço modificações e envio-as através do sftp winscp). permissões de root e senha de root
    Eu dei chmod 777 para permissões de gravação e tudo correu bem
    mas hoje ao atualizar a web e enviar o index.html e seus outros arquivos ele me deu os nomes, mas não me deixou nenhum byte ou seja, zero (em branco) agora você não vê nada na minha web
    Eu fechei a sessão e entrei novamente, dei permissões novamente, mude de usuário, atualize, tento colocar outros arquivos, gerei novos e sempre faz o mesmo
    ele me dá os arquivos, mas eles não têm dados
    alguém pode me ajudar ???
    Eu apreciaria muito suas respostas
    Obrigado desde já
    atte
    Sr. Irving Hernandez

  8.   FCC dito

    Olá como usar o filezilla, já vi de várias maneiras e ainda não consigo conectar.
    Está errado.

  9.   pedro dito

    Boa tarde,

    Realize o procedimento e o caged funciona perfeitamente, porém ao tentar escrever na pasta «documentos» ou «html_publico» dá-me acesso negado. Possui as permissões mencionadas e nada que o permita.

    drwxr-xr-x. 2 usuário1 usuário1 4096 11 de março 13:16 docs
    drwxr-xr-x. 2 user2 user2 4096 11 de março 13:16 html_publico

    O resultado é o acesso negado ao tentar gravar em qualquer pasta. No entanto, executar um get permite isso.

    Espero que você possa me ajudar o mais rápido possível.

    Saudações.