Utilizando chaves autorizadas de SSH para distribuir a atualização de arquivos com privilégios através de uma rede local?

0

Eu tenho um servidor que, de tempos em tempos, atualiza automaticamente um conjunto de arquivos privilegiados (por exemplo, chaves de certificado, configurações etc.). Ele precisa salvar esses arquivos em outros sistemas na LAN. Eu sei mais ou menos como fazer isso, mas não sei os detalhes da implementação.

Os comandos remotos para receber e salvar os arquivos (executados nesses outros servidores da LAN) podem ser tomados como estáticos ou muito raramente mudando, e podem ser codificados, o que significa que são ideais para usar com Chaves Autorizadas SSH, mas é necessário muito cuidado, pois os arquivos que eles recebem e armazenam ainda são privilegiados e salvos em caminhos que, de outro modo, só poderiam ser lidos pelo root. Os sistemas envolvidos são todos FreeBSD (+ um OpenBSD).

Eu visualizo um processo como este:

  1. Gere um par de chaves com ssh-keygen , adequado para SSH local (não precisa funcionar com nenhuma rede pública ou outros sistemas ou funções).
  2. Crie uma conta privilegiada PRIV_USER em todos os sistemas, que não têm acesso, exceto via sshd (será necessário privilégios gerais, que devem ser seguros para um script fixo ou, no mínimo, acesso de gravação a códigos embutidos específicos locais ordinariamente legíveis / graváveis apenas pelo usuário root, porque ele precisa salvar os arquivos recebidos).
  3. Configure uma seção de Chaves Autorizadas no sshd em todos os outros sistemas, que, quando conectados como PRIV_USER , recebem automaticamente um arquivo tar de arquivos e os descompactam no sistema de arquivos local e, em seguida, desconectam-se.
  4. No sistema de envio, quando os arquivos precisarem ser atualizados remotamente, execute um script curto que crie um arquivo tar dos arquivos a serem enviados e, em seguida, conecte-se ao (s) sistema (s) remoto (s) como PRIV_USER , envia os arquivos por SSH, nota sucesso / falha no console e sai.

Eu gostaria de evitar a segurança ao fazer isso errado, e não usei Chaves Autorizadas para essa finalidade antes, nem precisei gerar meus próprios pares de chaves internas para um propósito como este, nem criei contas com privilégios limitados. Então, há muitas maneiras de eu conseguir sutilmente errado.

Quais são os comandos corretos que devo usar para uma implementação básica mínima "não estragada" dessa função? :)

    
por Stilez 12.07.2018 / 11:46

1 resposta

0

  1. ssh-keygen para criar chave local
  2. criar novo (s) servidor (es)
  3. ssh-copy-id para root @ newserver
  4. crie um repositório ansioso de apostilas da configuração desejada (incluindo apenas a senha do sshd)
  5. executar ansible-playbook
por 19.08.2018 / 08:28