Use um gerenciador de configuração de TI

Use um gerenciador de configuração de TI

Como muitos usuários sabem, eu executo muitos servidores Debian, para organizações pessoais, profissionais e voluntárias. Tenho visto muitas postagens recentemente sobre superusuários e segurança de TI sobre como desabilitar senhas e apenas usar autenticação baseada em chave.

Eu uso autenticação baseada em chave para todo o meu rootacesso do meu servidor pessoal, do meu laptop de trabalho e do computador que uso na maior parte do tempo fora do trabalho. Porém, para entrar em qualquer um dos servidores que não usem WinSCP (onde tenho minhas chaves salvas, pelo menos para meu PC com Windows), faço login como minha conta de usuário padrão e, em seguida, sufaço root, usando a senha muito longa.

Nos servidores que não administro para fins de trabalho, guardo essas chaves apenas nesses três locais, principalmente para fazer backups. Eu uso senhas muito fortes (na minha opinião) e somente PermitRootLogin withoutpassword(adoro quando os arquivos de configuração me permitem usá-las em frases!). Quando faço login de outro lugar, uso minha conta normal com uma senha forte, porqueNão tenho um lugar onde possa guardar minhas chaves e puxar se precisar fazer login normalmente em um novo dispositivo.

Vejo isso como tendo duas soluções possíveis:

  1. Armazenar as chaves em texto simples ou criptografadas em algum lugar remoto, desabilitando todos os métodos de autenticação baseados em senha para meus servidores. Em caso afirmativo, onde e como posso armazená-los de forma segura para que nãoprovávelficar comprometido?
  2. Usar uma senha forte de usuário regular e alterá-la a cada 90 dias. Esta é uma boa prática, tenho certeza, mas minha memória é realmente uma droga. Tenho certeza de que continuaria usando a mesma senha de qualquer maneira, apenas por puro hábito, o que quebra todo o sentido de fazer isso.

Eu realmente gostaria de usar o método 1, mas não sei qual seria a melhor prática com tantos servidores, e muitos deles usando senhas diferentes apenas para COMEÇAR a fazer login em um novo local. Por exemplo, uso regularmente meu celular para fazer um túnel para casa ou para verificar o status de um serviço em um local remoto.

Responder1

Tanto a experiência como a investigação demonstraram que as palavras-passe mais seguras são aquelasgrande em comprimento em vez de complexo, o que realmente é uma droga para aqueles cuja memória é péssima (inclusive eu!). Portanto, na minha opinião, usar a autenticação baseada em chave é o caminho certo a seguir quando se trata de gerenciar um grande número de servidores.

Ao mesmo tempo, qualquer coisa que envolva segurança earmazenar remotamentena mesma frase geralmente irrita os ouvidos. eu não estou dizendoqualquerum lugar remoto é potencialmente inseguro, mas você não pode saber se realmente é. Por outro lado, em termos de praticidade,você terápara armazenar a chave SSH em um local remoto.

Então, tendo todos esses ingredientes misturados, tenho 2 sugestões:

Use um gerenciador de configuração de TI

Os exemplos são: Puppet, Chef server ou similares.

Você mencionou que tem um servidor pessoal. Provavelmente este é omenos piorlocal para hospedar seu servidor de configuração central. Você poderia criar um módulo que salvaria sua chave SSH em um formato criptografado e permitiria que seu computador pessoal, seu laptop de trabalho e possíveis novos dispositivos a implantassem.

Nós usamosServidor chefepara executar essas tarefas. Ele tem um recurso chamado data bags, e um tipo muito interessante chamadosacos de dados criptografadosque de fato permite armazenar todas as suas senhas, chaves SSH e quaisquer dados sensíveis.

Arquitetura do chef

Independentemente de qual gerenciador de configuração você escolher, você poderá usá-lo para implantar as chaves em ambos os servidoresecomputadores pessoais.

Essa abordagem tem uma grande vantagem: se por alguma alteração sua chave privada for comprometida, você a altera em um só lugar e ela será implantada em todos os servidores e clientes sem perder tempo.

Mas tem uma desvantagem. Se você planeja acessar seus servidores a partir de dispositivos móveis, como celulares, tablets, etc., provavelmente não terá umChef | Puppet | Coloque aqui seu servidor manipulador de configuração favoritocliente lá.

Mais informações sobre estes:

Use um gerenciador de arquivos locais criptografados

Existem alguns softwares que criptografam suas chaves, independentemente de serem senhas, chaves SSH ou dados bancários. Isto tem uma desvantagem evidente: para proteger suas senhas você precisa de uma senha (e provavelmente vai querer uma senha muito boa). De qualquer forma, se você gostar dessa abordagem, poderá salvar sua chave criptografada em um pen-drive e levá-la para onde for.

Isto tem outra desvantagem potencial: você pode perder seu pen-drive, alguém pode roubá-lo... Neste caso éaindacriptografado, mas você provavelmente vai querer tomar algumas xícaras de café para alterar a chave SSH em todos os seus servidores e clientes Debian, o que provavelmente o levará a pensar que a abordagem 1 é bem mais escalável.

De qualquer forma, só conheço um software desse tipo que é seguro o suficiente para armazenar todas as suas chaves (a propósito: você pode proteger seu arquivo de senhas com uma senha (como mencionado), um arquivo de chave ou ambos).

Se você gosta dessa abordagem, provavelmente desejará dar uma olhada emKeepass.

informação relacionada