identificando trusts ssh entre vários servidores em uma rede

6

O problema:

Temos muitos servidores RH / Solaris dev / qa / prod com muitas contas com confiança ssh entre eles, inclusive entre servidores em diferentes ambientes (prod-gt; prod, mas também qa- > prod). Eu sei que isso é uma prática ruim, e o primeiro passo que estou tentando dar para resolvê-lo é entender em quais contas as caixas podem fazer ssh para quais outras contas em quais caixas sem uma senha.

Minha abordagem seria um shell script para entrar em uma lista especificada de servidores, e sudo passar pelo arquivo / etc / passwd para obter uma lista de todas as contas e diretórios home. .ssh e id_rsa.pub e / ou id_dsa.pub e authorized_keys e geram essas informações, por conta por caixa, para stdout na máquina que está executando o script.

O fato de os usuários poderem especificar uma chave para usar o ssh, que não é o padrão, é uma limitação reconhecida. (Eu estou supondo que não é o caso)

Em seguida, use a saída para criar uma página html com objetos JavaScript {username, machine_name, rsa_key, dsa_key, authorized_keys []} criados a partir da saída acima e use JQuery (ou similar) para exibir a hierarquia (como é tbd) .

A minha pergunta é: já existe alguma coisa para resolver este tipo de problema? E se não, qualquer entrada na minha abordagem seria bem-vinda.

    
por Alex 17.06.2012 / 18:51

1 resposta

3

Parece que você tem uma boa ideia do que está fazendo aqui. É sempre uma boa ideia documentar quais sistemas podem se conectar às coisas sem nenhuma senha. Não é necessariamente uma má prática fazê-lo e, na verdade, é necessário fazer algumas coisas, mas você precisa saber como tudo funciona se alguém invadir um de seus servidores - o que mais eles conseguiram acessar?

Um lugar para procurar é o log de autenticação em todos os seus servidores. Isso lhe dirá quais chaves estão realmente sendo usadas para scripts / programas atuais.

O SSHd informa como o usuário efetuou login. Nos registros, você verá uma linha como:

Accepted publickey for automatedprocess from 123.456.789.012 port 12345 ssh2

Percorrendo os registros e localizando todas as combinações exclusivas do servidor em que o registro está, o nome de usuário e o endereço de, mostrarão a você quais sistemas têm usado essas chaves.

Isso também pode dar a você um bom ponto de partida para ver quais não são mais necessários e quais são usados regularmente por processos automatizados.

    
por 15.08.2012 / 20:23