Linux Control Center Discover

Requisitos

Linux Control Center = 2.10.X ou superior

Client Requeriments = https://docs.linuxcontrolcenter.com.br/requirements/client-requirements

Objetivo

  • Este documento tem como objetivo explicar o funcionamento do Discover do LCC, passo a passo de como utiliza-lo, demonstrar casos de uso e solução de alguns problemas comuns.

Overview

  • O Discover do LCC é a primeira tarefa que deve ser executada após a instalação do Linux Control Center, é através da execução do Discover que será possível importar os hosts da rede de forma automatizada. O Discover do LCC não necessita de instalação de nenhum Agent nos hosts, sendo necessário somente conexão via SSH.

  • Para o melhor funcionamento do Discover, separamos o processo em 5 etapas, onde cada uma são executadas separadamente, veja a descição de cada uma delas nos tópicos abaixo;

Host ping

  • Essa é a primeira etapa para encontrar hosts ativos na rede, enviando pings para todos os endereços da CIDR cadastrada no Discover. Quando o LCC recebe uma resposta de ping, ele lê o valor do TTL (Time to Live) da resposta para identificar qual sistema operacional está associado ao endereço IP encontrado.

  • Todos os endereços IP que responderam o envio do Ping são registrados em uma lista chamada IPs Alive durante a execução do Discover, para serem processados nas próximas etapas do Discover. Caso algum host tiver configurações ou proteções que o impeçam de responder ao ping, as etapas seguintes do Discover ainda poderão localizá-lo.

Search SSH Port

  • O Search SSH Port serve para ajudar em casos em que o administrador não sabe qual são é a porta SSH dos hosts que deseja importar, o Discover fará uma varredura de todas as 65.535 portas TCP para analisar a resposta e definir qual delas que está rodando o serviço SSH. Caso habilite esta opção, o Discover levará consideravelmente mais tempo para executar as outras etapas, sendo necessário ajustar as configurações de Time Out no Config Execution do LCC conforme o link no tópico de número 13 deste manual.

Test Credentials

  • É de extrema importância que as credenciais sejam inseridas corretamente de acordo com o seu nível de privilégio, estas credenciais serão utilizadas na etapa de Test Credentials do Discover e caso utilize as credenciais e/ou configurações incorretas, o LCC não poderá importar os Host.

  • Caso insira mais de uma credencial, o Discover irá utilizar a primeira credencial que obter sucesso durante a Escalonamento privilégios no host e irá retornar para a primeira credencial somente no próximo Host, até que todos os hosts com credenciais validadas sejam direcionados para a lista de importação.

Import Hosts

  • Esta é a etapa onde o host já foi encontrado e as credenciais ja foram validadas. Nesta etapa o LCC conecta no Host e faz a enumeração, obtendo várias informações como pacotes instalados, versão dos pacotes e demais imformações para serem gerenciadas pela console Web do LCC.

  • Para o Discover ser realizado e os hosts remotos serem incluídos na console com sucesso, o usuário fornecido ou usuário privilegiado, devem possuir permissão para criar uma conta local no servidor remoto (lcc.local).

PAM

  • Etapa que utiliza a integração com o Beyondtrust Password Safe para autenticação com os hosts utilizando credenciais do cofre de senhas integrado com o LCC.

Escalonamento de Privilégios

  • É essencial entender a etapa de escalonamento de privilégios para inserir as credenciais corretamente, por conta desta etapa ser muito importante durante o Discover, é necessário que seja configurado corretamente. Veja um resumo do funcionamento de cada tipo de escalonamento de privilégio.

sudo without password

  • Com este método de escalonamento de privilégio, o usuário cadastrado no campo Username deve ter permissão para escalonar diretamente para o usuário root, sendo necessário preencher somente a senha do Username no campo Password.

sudo with password

  • Com este método de escalonamento de privilégio, o usuário cadastrado no campo Username também deve possuir permissão para escalonar privilégio, porém, além da senha do usuário de login, também é necessário inserir a senha do usuário privilegiado no campo Privilege Escalation Password para escalonar o privilégio.

None

  • Opção utilizada quando a credencial de conexão SSH também possui permissões suficientes para a criação de conta local e configurações de chave SSH da mesma (opção geralmente utilizada com o usuário root).

su -

  • Após realizar o login com o primeiro usuario fornecido (username), alterna diretamente para a credencial privilegiada em Privilege Escalation Username com a senha em Privilege Escalation Password.

Execução do Discover

Discover com credencial local

  1. Clique em Discover no menu lateral esquerdo

  2. Clique em ADD

  3. Insira um nome para o Discover no campo Name

  4. Clique no botão + da linha Credentials

  5. Insira os dados nos campos abaixo;

    Name: Nome para identificar a credencial. Auth Type: Escolha o método de autenticação SSH, Password ou KEY. Username: Usuário para autenticação no SSH dos Hosts. Password: Senha do usuário para autenticação. Privilege Escalation: Escolha o método de escalonamento de privilégio de acordo com a permissão da credencial. Privigele Escalation Username: Usuário para escalonar privilégio, com direitos para criar contas e editar arquivos do Sudoers, caso necessário. Privigele Escalation Password: Senha do usuário privilegiado, caso necessário.

  6. Clique em Save

  7. Clique no botão + na linha CIDRs

  8. Insira um nome para a faixa de endereços IP no campo Name

  9. Insira a faixa de endereços IP com a máscara no campo CIDR

  10. Clique em Save

  11. Clique no botão + na linha Ports

  12. Digite o número da porta SSH dos hosts na linha Port e clique em Save

    • Esta será a porta SSH que o Discover tentará autenticar via SSH

  13. Marque a caixa Search SSH Port caso não saiba qual a porta SSH dos hosts, lembrando que marcando esta opção, será necessário realizar ajustes de TimeOut e não preencher o campo Port. Veja como realizar os ajustes de time out no tópico Search SSH Port.

  14. Verifique se todos os campos foram preenchidos corretamente e clique em Save

  15. Após salvar, clique em Actions e clique em Run Discover

  16. Confirme a execução clicando em YES

  17. Após conafirmar, é possível acompanhar o andamento do discover_lcc/discover_execution pela fila, clicando no botão Actions Working. Aguarde o Status ir para Processed, indicando que o Discover foi finalizado.

Discover com a integração BeyondTrust Password Safe

  • Para executar o Discover utilizando credenciais do cofre de senhas BeyondTrust Password Safe, siga os passos do link abaixo;

https://docs.7dev.net.br/adding-hosts/beyondtrust-password-safe-api

Casos de uso de Credenciais

  • Nesta etapa desta documentação, será demonstrado alguns casos de uso para exemplificar a configuração de credenciais com diferentes níveis de privilégio.

Discover com o usuário Root

Configuração dos campos de credenciais para executar um Discover diretamente com o usuário root. Nesta opção o usuário Root fará login no SSH e também executará as tarefas de importação do Host para o LCC. É necessário que a opção PermitRootLogin esteja habilitada no SSH dos Hosts.

Username: Usuário Root Password: Senha do Root Privilege Escalation: Opção "none" para o Discover não executar a etapa de escalar privilégio

  • Veja o exemplo na imagem abaixo:

Discover com usuário sem privilégio

Método de escalonamento de privilégio para utilizar um usuário sem nenhum privilégio administrativos e escalonando para o usuário Root.

Com este método, as credenciais preenchidas nos campos Username e Password serão utilizadas apenas para realizar login no SSH dos Hosts enquanto as credenciais dos campos Privilege Escalation Username e Privilege Escalation Password serão responsáveis pelo escalonamento de privilégio.

Username: Usuário sem privilégio Password: Senha do usuário sem privilégio Privilege Escalation: opção su - Privilege Escalation Username: usuário root Privilege Escalation Password: senha do usuário root

  • Veja o exemplo na imagem abaixo:

Discover com usuário privilegiado

Este caso de uso utilazará o método "sudo without password", com este método de escalonamento de privilégio, o usuário cadastrado no campo Username deve possuir permissão para escalonar diretamente para o usuário root sem a necessidade de digitar a senha do Root.

Neste caso, a credencial utilizada possui permissões ALL=(ALL) NOPASSWD: ALL no Sudoers. Com este método não será necessário especificar credenciais para o escalonamento, conforme imagem abaixo;

Username: Usuário sem privilégio Password: Senha do usuário sem privilégio Privilege Escalation: opção sudo without password

  • Veja o exemplo na imagem abaixo:

Discover com usuário não privilegiado e senha do Root

Com este método de escalonamento de privilégio, o usuário cadastrado no campo Username também deve possuir permissão para escalonar privilégio com permissão de execução do, porém, além da senha do Username, também é necessário inserir a senha do usuário Root no campo Privilege Escalation Password para escalonar o privilégio.

Opção utilizada quando as permissões do usuário em Username forem ALL=(ALL:ALL) ALL no Sudoers. Nesse caso, é necessário especificar a senha (Privilege Escalation Password) do usuário privilegiado.

Username: Usuário sem privilégio Password: Senha Usuário sem privilégio Privilege Escalation: opção "sudo with password" Privilege Escalation Password: Senha do usuário root

  • Veja o exemplo na imagem abaixo:

Autenticação com Key SSH

Neste caso de uso, será demonstrada a utilização de chave SSH para realizar o login no SSH. Com este método de autenticação, o campo Private Key torna-se obrigatório conforme a aponta com a seta em vermelho.

Ao utilizar o método de autenticação com chaves SSH, é obrigatório configurar a autenticação baseada em chaves SSH em todos os hosts que você deseja importar para o LCC antes de executar o Discover.

O uso de chave SSH não interfere no funcionamento de nenhum método de escalonamento de privilégio do Discover, permitindo combinar o método de escalonamento de privilégios com o método de autenticação desejado.

Username: Usuário com acesso via Key SSH Auth Type Opção Key Privilege Escalation: Escolha a opção que deseja utilizar Private Key: Chave privada do usuário do campo "Username"

  • Veja o exemplo na imagem abaixo:

Casos de uso de identificação de Hosts Linux

Discover CIDRs

  • A maneira de fornecer um escopo de alvos em uma rede para realizar uma descoberta é por meio de objetos CIDR. Siga os passos abaixo para criar um CDIR a ser utilizado no Discover.

  • O Discover fará a busca a partir do endereço cadastrado no campo CIDR até o último endereço possível de acordo com a máscara definida. Também é possível realizar o Discover com mais de 1 CIDR simultaneamente.

CIDR's aceitos pelo LCC

Esta tabela auxilia a escolher a melhor mandeira de executar o Discover de acordo com a quantidade de Hosts da rede.

  • Para uma varredura de destino único, use o CIDR /32.

  • De /23 a /28 é aceitável realizar uma varredura.

  • De /17 a /22 é extremamente demorado e é uma varredura bem pensada.

  • A partir de /16 é altamente recomendado dividir as varreduras em outras partes para otimizar o desempenho e os resultados.

CIDR
Subnet Mask
Available Address

/16

255.255.0.0

65.536

/17

255.255.128.0

32.768

/18

255.255.192.0

16.384

/19

255.255.224.0

8.192

/20

255.255.240.0

4.096

/21

255.255.248.0

2.048

/22

255.255.252.0

1.024

/23

255.255.254.0

512

/24

255.255.255.0

256

/25

255.255.255.128

128

/26

255.255.255.192

64

/27

255.255.255.224

32

/28

255.255.255.240

16

/29

255.255.255.248

8

/30

255.255.255.252

4

/31

255.255.255.254

2

/32

255.255.255.255

1

Search SSH Port

Discover fará uma varredura de todas as 65.535 portas TCP para analisar a resposta e definir qual delas que está rodando o serviço SSH. Caso habilite esta opção, o Discover levará consideravelmente mais tempo para executar as outras etapas, sendo necessário ajustar as configurações de Time Out no Config Execution do LCC conforme o link no tópico de número 13 deste manual.

Habilitando o Search SSH Port

  1. Clique em Discover no menu lateral esquerdo do LCC

  2. Escolha o Discover desejado e marque o botão "Search SSH Port"

  • Siga os passos abaixo para ajustar o Time Out das tarefas do Discover.

  1. Clique em Config no menu lateral esquerdo do LCC

  2. Clique em Config Execution

  3. Ajuste os tempos de acordo com a sua necessidade;

    General Action Timeout: Tempo geral de time out de todas as Actions do LCC. Ping Action Timeout: Tempo de espera ao enviar a Action de Ping no LCC. Discover Action Timeout: Tempo de espera de Actions durante a execução do Discover. Discover Ping Timeout: Tempo de espera da etapa Host Ping durante a execução do Discover. Discover SSH Timeout: Tempo de espera ao tentar se conectar em um Host via SSH durante o Discover SSH Control Persist Timeout: Tempo de "Keep Alive" na conexão com o Host.

Os valores padrões são os que estão conforme a imagens abaixo.

  1. Clique em Save

Solução de problemas

Utilizaremos como exemplo alguns erros comuns para demonstração da utilização da ferramenta de Log do LCC.

Como obter relatório do Discover

O LCC possui a funcionalidade de Report de execução do Discover, que inclui o resumo de Hosts que foram encontrados, importados e os que tiveram alguma falha durante o processo, informando um resumo do erro que ocorreu para facilitar a identificação da falha.

  1. Para obter um report de um Discover, clique em Discover no menu lateral esquerdo do LCC

  2. Clique no Discover desejado

  3. Clique na guia Reports e clique em cima do nome do Log desejado

  4. Clique em Success ou em Failed para obter o resumo dos Hosts importados e os que tiveram falha durante alguma etapa do Discover

  5. Veja um exemplo de um Discover com um Host com status Failed

  6. Também é possível realizar o download do Log completo, clique em Download do report desejado e será feito o download de um arquivo .zip com o report nos formatos pdf, csv, html e xlxs.

Host não importado pelo Discover

  • Em algumas situações pode ocorrer de algum Host não ser importado para o LCC mesmo com as configurações e credenciais corretas, este erro geralmente ocorre por conta do Time Out ter excedido em alguma das 5 etapas do Discover.

  • A primeira tentativa de correção é aumentar os valores do TimeOut das etapas do Discover e executa-lo novamente. Veja como realizar os ajustes de time out no tópico Search SSH Port.

  1. Para identificar se o host não está sendo importando por conta de TimeOut, o campo "Message" do relatório do Discover fica vazio, conforme imagem abaixo.

Credenciais inválidas no Discover

  1. Clique em Logs no menu lateral esquerdo do LCC

  2. Clique em Queue

  3. Será exibida todas as tarefas que foram executadas nos Hosts que estão no LCC.

  4. Clique em LOG do Discover LCC desejado.

  5. Pesquise pela frase invalid credentials que será exibido todos os hosts que não passaram da etapa de test credentials.

Veja algumas configurações que podem ocasionar o Log de credencial inválida;

  • Usuário root com interpretador de comandos (shell) /sbin/nologin, /bin/false ou interpretadores que gerem comportamento semelhantes.

  • Credenciais de login SSH ou escalonamento de privilégio incorretas.

  • Usuário root sem senha cadastrada no Host, caso utilize o escalonamento de privilégio "su -"

  1. Pesquisando por um endereço IP de um host desejado, será exibida todas as etapas do Discover com relação ao endereço pesquisando, podendo obter detalhes de cada uma delas no botão Expand.

  2. Para obter mais detalhes sobre qual credenticial está incorreta, abra o Relatório do Discover conforme o passo a passo <#como-obter-relatorio-do-discover>. Este caso de uso foi realizado com o método de escalonamento de privilégio "su -"

  • Exemplo da credencial de Login do SSH incorreta. "invalid/incorrect password"

  • Exemplo de senha do Root incorreta. "incorrect su password"

Interpretação de Logs

Analisando Logs da Fila (Queue)

O LCC oferece uma tela de logs intuitiva com funcionalidades que facilitam bastante a leitura e análise, como a possibilidade de realizar buscas por palavras-chave.

  1. Clique em Logs no menu lateral esquerdo do LCC

  2. Clique em Queue

  3. Será exibida todas as ações que foram executadas nos Hosts que estão no LCC.

  4. Clique em "Log" da ação desejada.

  5. Na janela do log, é possível obter detalhes de cada log clicando em Expand e baixa-lo cliando em Download.

Analisando as etapas do Discover

Cada uma das 5 etapas de execução do Discover também são registrada nos Logs, podendo ser lidas durante e após a execução do Discover.

  1. Pesquise pela palavra progress no campo de pesquisa do Log

  2. Serão exibido vários Logs, cada um deles é uma parte da execução de cada etapa do Discover.

  3. Clique em Expand para ler mais detalhes do log das etapas no momento em que o Discover estava executando.

  4. Interprete as etapas do Discover;

    Phase 1 - Ping: Esta etapa vai enviar um Ping para todos os hosts de acordo com a máscara definida no CIDR do Discover.

    Pase 2 - Search SSH Port: Verifica se a porta definida no Discover está aberta ou realiza um Port Scan em todas as 65.535 portas TCP de todos os Hosts do CIDR para encontrar a porta SSH caso a opção Search SSH Port esteja habilitada no Discover.

    Phase 3 - Test Credentials: Etapa em que será testada as credenciais em todos os Hosts.

    Phase 4 - Import: Etapa em que o Host será importado para o LCC após passar por todas as etapas.

    Phase 5 - PAM: Esta etapa importa os Hosts sem passar pela etapa de Ping e Search SSH Port porque o Host será importado a partir de uma credencial do BeyondTrust Password Safe.

Last updated