AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 765252
Accepted
Zulakis
Zulakis
Asked: 2016-03-23 01:06:12 +0800 CST2016-03-23 01:06:12 +0800 CST 2016-03-23 01:06:12 +0800 CST

Restringir rsync sobre ssh somente leitura/somente cópia do host remoto

  • 772

Eu quero que um host de backup seja capaz de extrair backups de um host remoto.

O host de backup usa autenticação de chave ssh para autenticar como um usuário restrito no host remoto, esse usuário é restrito ao rsynccomando usando o authorized_keyarquivo.

/etc/sudoerspermite ao usuário executar o rsync como superusuário.

O host de backup deve, logicamente, apenas ser capaz de ler arquivos/copiar arquivos do host remoto, não gravar arquivos/copiar arquivos para o host remoto, pois poderia facilmente comprometer o host remoto substituindo /etc/passwdou apenas adulterando os arquivos se estivessem comprometidos em si.

Como posso conseguir isso? Eu já li sobre rrsync, mas não vi uma opção que permitisse isso.

linux
  • 4 4 respostas
  • 5547 Views

4 respostas

  • Voted
  1. Best Answer
    Zulakis
    2016-03-23T03:27:33+08:002016-03-23T03:27:33+08:00

    O -rosinalizador de rrsyncgarante que o rsync seja chamado com a --senderopção, que deve, de acordo com a rrsyncdocumentação, garantir que os arquivos só possam ser lidos - no entanto, não consegui encontrar uma fonte autorizada (também conhecida como documentação do rsync) que confirme isso. Em meus testes, foi suficiente para impedir gravações no servidor.

    • 2
  2. Henrik
    2016-03-23T02:21:09+08:002016-03-23T02:21:09+08:00

    Dê uma olhada em authprogs - eu estava usando para um cenário bastante semelhante (backuppc via ssh)

    • 1
  3. raddaqii
    2019-02-15T08:22:07+08:002019-02-15T08:22:07+08:00

    Isso está próximo da necromancia, mas ainda assim encontrei essa questão primeiro e sinto que está incompleta, porque depende de programas externos.

    Portanto, no modo pull, do lado do receptor, o modo somente leitura pressupõe confiança. Como método de backup, os comandos acima podem funcionar bem, desde que apenas o cliente configurado corretamente solicite os dados. Se você deseja restringir o que o rsync sobre ssh pode fazer, uma configuração remota rodo lado do cliente pode não ser suficiente.

    Se você tiver acesso ao servidor, os dados estão sendo extraídos do SSH, há alguma configuração extra simples a ser feita para restringir o que o usuário conectado pode fazer. O SSH, usado com uma chave pública e uma chave privada, oferece essa forma adicional de garantir que o cliente possa chamar commandapenas um específico.

    Assim que se faz. No servidor, de onde os dados estão sendo extraídos, há um ~/.ssh/known_hostsarquivo no userdiretório inicial do. O arquivo contém uma linha por host que conhece a chave pública, assim

    ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= user@host

    Prefixe isso com o commandque você deseja permitir

    command="/bin/myscript.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= user@host

    para tê-lo de tal forma que user@hostsó pode ser executado /bin/myscript.shremotamente.

    Uma pergunta relacionada com boas respostas está no site do SO .

    • 0
  4. raf
    2019-04-24T19:33:31+08:002019-04-24T19:33:31+08:00

    [Divulgação: eu escrevi sshdo que é descrito abaixo]

    Como mencionado acima, o rrsync pode ser usado para controlar o que o rsync pode fazer pelo ssh, mas, como a maioria dos usos de comandos forçados do ssh, é limitado a um único comando rsync por chave autorizada.

    Outra maneira de controlar o que o rsync pode fazer sobre o ssh é usar um controle de lista branca de comando genérico para o ssh.

    Existe um programa chamado sshdo para fazer isso. Ele controla quais comandos podem ser executados por meio de conexões ssh de entrada. Está disponível para download em:

    http://raf.org/sshdo/ (read manual pages here)
    https://github.com/raforg/sshdo/
    

    Ele tem um modo de treinamento para permitir todos os comandos que são tentados e uma opção --learn para produzir a configuração necessária para permitir comandos aprendidos permanentemente. Então o modo de treinamento pode ser desligado e quaisquer outros comandos não serão executados.

    Ele também tem uma opção --unlearn para parar de permitir comandos que não estão mais em uso, de modo a manter o privilégio mínimo estrito à medida que os requisitos mudam com o tempo.

    É muito exigente quanto ao que permite. Não permitirá um comando com nenhum argumento. Somente comandos shell completos podem ser permitidos.

    Mas suporta padrões simples para representar comandos semelhantes que variam apenas nos dígitos que aparecem na linha de comando (por exemplo, números de sequência ou carimbos de data/hora).

    É como um firewall ou controle de lista branca para comandos ssh.

    • 0

relate perguntas

  • Como descobrir detalhes sobre hardware na máquina Linux?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve