One place for hosting & domains

      Remotos

      Como instalar e configurar o Zabbix para monitorar servidores remotos com segurança no Ubuntu 20.04


      O autor selecionou o Computer History Museum para receber uma doação como parte do programa Write for DOnations.

      Introdução

      O Zabbix é um software de monitoramento de código aberto para redes e aplicativos. Ele oferece monitoramento em tempo real de milhares de métricas coletadas a partir de servidores, máquinas virtuais, dispositivos de rede e aplicativos Web. Essas métricas podem ajudar você a determinar a integridade atual da sua infraestrutura de TI e a detectar problemas com componentes de hardware ou software antes que os clientes se queixem. As informações úteis são armazenadas em um banco de dados para que você possa analisar os dados ao longo do tempo e melhorar a qualidade dos serviços prestados ou planejar atualizações para o seu equipamento.

      O Zabbix utiliza diversas opções para coletar métricas, incluindo o monitoramento sem agente de serviços de usuário e arquitetura cliente-servidor. Para coletar métricas do servidor, ele usa um pequeno agente no cliente monitorado para coletar dados e enviá-los para o servidor do Zabbix. O Zabbix suporta comunicação criptografada entre o servidor e os clientes conectados, para que seus dados estejam protegidos enquanto viajam por redes inseguras.

      O servidor do Zabbix armazena seus dados em um banco de dados relacional alimentado pelo MySQL ou PostgreSQL. Você também pode armazenar dados históricos em bancos de dados NoSQL como o Elasticsearch e o TimescaleDB. O Zabbix fornece uma interface Web para que você possa visualizar dados e configurar as definições do sistema.

      Neste tutorial, você irá configurar o Zabbix em duas máquinas Ubuntu 20.04. Uma será configurada como o servidor do Zabbix e a outra como um cliente que você irá monitorar. O servidor do Zabbix irá usar um banco de dados MySQL para gravar os dados de monitoramento e usar o Nginx para atender à interface Web.

      Pré-requisitos

      Para seguir este tutorial, será necessário:

      • Dois servidores Ubuntu 20.04 configurados seguindo o Guia de configuração inicial de servidor para o Ubuntu 20.04, incluindo um usuário não root com privilégios sudo e um firewall configurado com o ufw. Em um dos servidores, você irá instalar o Zabbix; este tutorial irá se referir a ele como o servidor Zabbix. Ele irá monitorar seu segundo servidor; este segundo servidor será referido como o segundo servidor Ubuntu.

      • O servidor que irá executar o servidor Zabbix precisa do Nginx, MySQL e PHP instalados. Siga os Passos 1-3 do nosso guia sobre a Pilha LEMP no Ubuntu 20.04 para configurá-los em seu servidor Zabbix.

      • Um nome de domínio registrado. Este tutorial utilizará your_domain durante todo o processo. Você pode comprar um nome de domínio do Namecheap, obter um gratuitamente com o Freenom ou usar o registrador de domínios de sua escolha.

      • Ambos os registros de DNS a seguir serão configurados para o seu servidor Zabbix. Se você estiver usando a DigitalOcean, consulte nossa documentação de DNS para maiores detalhes sobre como adicioná-los.

        • Um registro A com your_domain apontando para o endereço IP público do seu servidor Zabbix.
        • Um registro A com o www.your_domain apontando para o endereço de IP público do seu servidor Zabbix.

      Além disso, o servidor Zabbix é usado para acessar informações valiosas sobre sua infraestrutura. Dessa forma, para garantir que usuários não autorizados tenham acesso a ele, é importante que você mantenha seu servidor seguro instalando um certificado TLS/SSL. Isso é opcional, mas altamente recomendado. Se você quiser proteger seu servidor, siga o guia do Let’s Encrypt no Ubuntu 20.04 depois do Passo 3 deste tutorial.

      Passo 1 — Instalando o servidor Zabbix

      Primeiro, você precisa instalar o Zabbix no servidor onde instalou o MySQL, o Nginx e o PHP. Faça login nesta máquina com seu usuário não root:

      • ssh sammy@zabbix_server_ip_address

      O Zabbix está disponível no gerenciador de pacotes do Ubuntu, mas está desatualizado. Sendo assim, use o repositório oficial do Zabbix para instalar a versão estável mais recente. Baixe e instale o pacote de configuração do repositório:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Você verá o seguinte resultado:

      Output

      Selecting previously unselected package zabbix-release. (Reading database ... 64058 files and directories currently installed.) Preparing to unpack zabbix-release_5.0-1+focal_all.deb ... Unpacking zabbix-release (1:5.0-1+focal) ... Setting up zabbix-release (1:5.0-1+focal) ...

      Atualize o índice de pacotes para que o novo repositório seja incluído:

      Em seguida, instale o servidor Zabbix e o front-end Web com suporte ao banco de dados MySQL:

      • sudo apt install zabbix-server-mysql zabbix-frontend-php

      Além disso, instale o agente Zabbix, que lhe permitirá coletar dados sobre o status do próprio servidor Zabbix.

      • sudo apt install zabbix-agent

      Antes de poder utilizar o Zabbix, você precisa configurar um banco de dados para conter os dados que o servidor Zabbix irá coletar de seus agentes. Você pode fazer isso no próximo passo.

      Passo 2 — Configurando o banco de dados MySQL para o Zabbix

      Você precisa criar um novo banco de dados MySQL e preenchê-lo com algumas informações básicas para torná-lo adequado para o Zabbix. Você também criará um usuário específico para este banco de dados para que o Zabbix não faça login no MySQL com a conta root.

      Faça login no MySQL com o usuário root:

      Crie o banco de dados Zabbix com suporte a caracteres UTF-8:

      • create database zabbix character set utf8 collate utf8_bin;

      Em seguida, crie o usuário que o servidor Zabbix irá usar,dê-lhe acesso ao novo banco de dados e defina a senha para o usuário:

      • create user zabbix@localhost identified by 'your_zabbix_mysql_password';
      • grant all privileges on zabbix.* to zabbix@localhost;

      Isso ajeita a situação do usuário e do banco de dados. Saia do console do banco de dados

      Em seguida, será necessário importar o esquema inicial e os dados. A instalação do Zabbix forneceu-lhe um arquivo que configura isso.

      Execute o comando a seguir para configurar o esquema e importar os dados no banco de dados zabbix. Use o zcat, já que os dados no arquivo estão comprimidos:

      • zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

      Digite a senha para o usuário zabbix do MySQL que você configurou quando solicitado.

      Este comando pode demorar um ou dois minutos para ser executado. Se aparecer o erro ERROR 1045 (28000): Access need for userzabbix@'localhost' (using password: YES), então certifique-se de que você usou a senha certa para o usuário zabbix.

      Para que o servidor Zabbix use este banco de dados, é preciso definir a senha do banco de dados no arquivo de configuração do servidor Zabbix. Abra o arquivo de configuração no seu editor de texto preferido. Este tutorial usará o nano.

      • sudo nano /etc/zabbix/zabbix_server.conf

      Procure pela seguinte parte do arquivo:

      /etc/zabbix/zabbix_server.conf

      ...
      ### Option: DBPassword                           
      #       Database password. Ignored for SQLite.   
      #       Comment this line if no password is used.
      #                                                
      # Mandatory: no                                  
      # Default:                                       
      # DBPassword=
      ...
      

      Esses comentários no arquivo explicam como se conectar ao banco de dados. Você precisa definir o valor do DBPassword no arquivo como sendo a senha para o usuário do seu banco de dados. Adicione esta linha após esses comentários para configurar o banco de dados:

      /etc/zabbix/zabbix_server.conf

      ...
      DBPassword=your_zabbix_mysql_password
      ...
      

      Salve e feche o zabbix_server.conf pressionando CTRL+X, seguido de Y e, em seguida, ENTER se estiver usando o nano.

      Agora, você configurou o servidor Zabbix para se conectar ao banco de dados. Em seguida, você irá configurar o servidor Web do Nginx para atender o front-end do Zabbix.

      Passo 3 — Configurando o Nginx para o Zabbix

      Para configurar o Nginx automaticamente, instale o pacote de configuração automática:

      • sudo apt install zabbix-nginx-conf

      Como resultado, você receberá o arquivo de configuração /etc/zabbix/nginx.conf, bem como um link para ele no diretório de configuração do Nginx /etc/nginx/conf.d/zabbix.conf.

      Em seguida, é preciso fazer alterações neste arquivo. Abra o arquivo de configuração:

      • sudo nano /etc/zabbix/nginx.conf

      O arquivo contém uma configuração de bloco do servidor Nginx gerada automaticamente. Ele contém duas linhas que determinam o nome do servidor e em qual porta ele está escutando:

      /etc/zabbix/nginx.conf

      server {
      #        listen          80;
      #        server_name     example.com;
      ...
      

      Descomente as duas linhas, e substitua o example.com pelo nome do seu domínio. Suas configurações vão ficar assim:

      /etc/zabbix/nginx.conf

      server {
              listen          80;
              server_name     your_domain;
      ...
      

      Salve e feche o arquivo. Em seguida, teste para garantir que não haja erros de sintaxe em qualquer um dos seus arquivos do Nginx e recarregue a configuração:

      • sudo nginx -t
      • sudo nginx -s reload

      Agora que o Nginx está configurado para atender o front-end do Zabbix, você fará algumas modificações em sua configuração do PHP para que a interface Web do Zabbix funcione corretamente.

      Nota: Como mencionado na seção de pré-requisitos, é recomendado que você habilite o SSL/TLS no seu servidor. Se você quiser fazer isso, siga nosso tutorial sobre o Let’s Encrypt no Ubunutu 20.04 antes de seguir para o Passo 4 para obter um certificado SSL gratuito para o Nginx. Este processo irá detectar automaticamente o bloco do seu servidor Zabbix e configurá-lo para o HTTPS. Depois de obter seus certificados SSL/TLS, retorne para completar este tutorial.

      Passo 4 — Configurando o PHP para o Zabbix

      A interface Web do Zabbix é escrita em PHP e requer algumas configurações especiais do servidor PHP. O processo de instalação do Zabbix criou um arquivo PHP-FPM de configuração que contém essas configurações. Ele está localizado no diretório /etc/zabbix e é carregado automaticamente pelo PHP-FPM. Você precisa fazer uma pequena alteração neste arquivo. Sendo assim, abra o arquivo da seguinte forma:

      • sudo nano /etc/zabbix/php-fpm.conf

      O arquivo contém as configurações PHP que atendem aos requisitos necessários para a interface Web do Zabbix. No entanto, a configuração de fuso horário vem transformada em comentário por padrão. Para garantir que o Zabbix use o horário correto, é necessário definir o fuso horário apropriado:

      /etc/zabbix/php-fpm.conf

      ...
      php_value[max_execution_time] = 300
      php_value[memory_limit] = 128M
      php_value[post_max_size] = 16M
      php_value[upload_max_filesize] = 2M
      php_value[max_input_time] = 300
      php_value[max_input_vars] = 10000
      ; php_value[date.timezone] = Europe/Riga
      

      Descomente a linha de fuso horário destacada no bloco de código anterior e altere-a para o seu fuso horário. Você pode usar esta lista de fusos horários suportados para encontrar o fuso certo para você. Então, salve e feche o arquivo.

      Agora, reinicie o PHP-FPM para aplicar essas novas configurações:

      • sudo systemctl restart php7.4-fpm.service

      Agora, você pode iniciar o servidor Zabbix:

      • sudo systemctl start zabbix-server

      Em seguida, verifique se o servidor Zabbix está sendo executado corretamente:

      • sudo systemctl status zabbix-server

      Você verá o seguinte status:

      Output

      ● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 05:59:32 UTC; 36s ago Process: 27026 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...

      Por fim, habilite o servidor para que seja iniciado durante a inicialização do sistema:

      • sudo systemctl enable zabbix-server

      O servidor está configurado e conectado ao banco de dados do servidor. Em seguida, configure o front-end Web.

      Passo 5 — Configurando a interface Web do Zabbix

      A interface web permite que você veja relatórios e adicione os hosts que deseja monitorar. No entanto, ela precisa de alguns ajustes iniciais antes que você possa usá-la. Inicie seu navegador e vá para o endereço http://zabbix_server_name ou https://zabbix_server_name caso tenha configurado o Let’s Encrypt. Na primeira tela, você verá uma mensagem de boas-vindas. Clique em Next step (Próximo passo) para continuar.

      Na próxima tela, você verá a tabela que lista todos os pré-requisitos para executar o Zabbix.

      Pré-requisitos

      Todos os valores nesta tabela devem ser OK. Portanto, verifique se eles estão de acordo. Certifique-se de descer e observar todos os pré-requisitos. Depois de verificar se tudo está pronto, clique em Next step para prosseguir.

      A próxima tela pede informações sobre a conexão do banco de dados.

      Conexão BD

      Você já informou o servidor Zabbix sobre seu banco de dados, mas a interface Web do Zabbix também precisa de acesso ao banco de dados para gerenciar os hosts e ler dados. Portanto, digite as credenciais do MySQL que você configurou no Passo 2. Clique em Next step para prosseguir.

      Na próxima tela, deixe as opções nos valores padrão.

      Detalhes do servidor Zabbix

      O Name é opcional; ele é usado na interface Web para distinguir um servidor de outro caso você tenha vários servidores de monitoramento. Clique em Next step para prosseguir.

      A próxima tela irá mostrar o resumo da pré-instalação para que você possa confirmar se tudo está correto.

      Resumo

      Clique em Next step para prosseguir para a tela final.

      A configuração da interface Web agora foi concluída. Esse processo cria o arquivo de configuração /usr/share/zabbix/conf/zabbix.conf.php. Se quiser, você pode fazer um backup dele para usá-lo no futuro. Clique em Finish para prosseguir para a tela de login. O usuário padrão é o Admin e a senha é zabbix.

      Antes de fazer login, configure o agente Zabbix no seu segundo servidor Ubuntu.

      Passo 6 — Instalando e configurando o agente Zabbix

      Agora, você precisa configurar o software agente que enviará dados de monitoramento para o servidor Zabbix.

      Faça login no segundo servidor Ubuntu:

      • ssh sammy@second_ubuntu_server_ip_address

      Assim como no servidor Zabbix, execute os comandos a seguir para instalar o pacote de configuração do repositório:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Em seguida, atualize o índice do pacote:

      Depois disso, instale o agente Zabbix:

      • sudo apt install zabbix-agent

      Embora o Zabbix dê suporte à criptografia baseada em certificados, configurar uma autoridade de certificados está fora do escopo deste tutorial. Mas é possível usar chaves pré-compartilhadas (PSK) para proteger a conexão entre o servidor e o agente.

      Primeiro, gere uma PSK:

      • sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

      Mostre a chave usando o cat para que você possa copiá-la em algum lugar:

      • cat /etc/zabbix/zabbix_agentd.psk

      A chave se parecerá com esta:

      Output

      75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

      Salve ela para mais tarde; você precisará dela para configurar o host.

      Agora, edite as configurações do agente Zabbix para estabelecer sua conexão segura com servidor Zabbix. Abra o arquivo de configuração do agente no seu editor de texto:

      • sudo nano /etc/zabbix/zabbix_agentd.conf

      Cada configuração dentro deste arquivo é documentada através de comentários informativos ao longo do arquivo, mas você só precisa editar algumas delas.

      Primeiro, você precisa editar o endereço IP do servidor Zabbix. Procure a seguinte sessão:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: Server
      #       List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
      #       Incoming connections will be accepted only from the hosts listed here.
      #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
      #       and '::/0' will allow any IPv4 or IPv6 address.
      #       '0.0.0.0/0' can be used to allow any IPv4 address.
      #       Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
      #
      # Mandatory: yes, if StartAgents is not explicitly set to 0
      # Default:
      # Server=
      
      Server=127.0.0.1
      ...
      

      Mude o valor padrão para o IP do seu servidor Zabbix:

      /etc/zabbix/zabbix_agentd.conf

      ...
      Server=zabbix_server_ip_address
      ...
      

      Por padrão, o servidor Zabbix se conecta ao agente. Mas para algumas verificações (por exemplo, monitorando dos logs), uma conexão reversa é necessária. Para uma operação correta, é necessário especificar o endereço do servidor Zabbix e um nome de host único.

      Encontre a seção que configura as verificações ativas e altere os valores padrão:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ##### Active checks related
      
      ### Option: ServerActive
      #       List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
      #       If port is not specified, default port is used.
      #       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
      #       If port is not specified, square brackets for IPv6 addresses are optional.
      #       If this parameter is not specified, active checks are disabled.
      #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
      #
      # Mandatory: no
      # Default:
      # ServerActive=
      
      ServerActive=zabbix_server_ip_address
      
      ### Option: Hostname
      #       Unique, case sensitive hostname.
      #       Required for active checks and must match hostname as configured on the server.
      #       Value is acquired from HostnameItem if undefined.
      #
      # Mandatory: no
      # Default:
      # Hostname=
      
      Hostname=Second Ubuntu Server
      ...
      

      Em seguida, encontre a seção que configura a conexão segura ao servidor Zabbix e habilite o suporte às chaves pré-compartilhadas. Encontre a seção TLSConnect, que se parece com esta:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSConnect
      #       How the agent should connect to server or proxy. Used for active checks.
      #       Only one value can be specified:
      #               unencrypted - connect without encryption
      #               psk         - connect using TLS and a pre-shared key
      #               cert        - connect using TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSConnect=unencrypted
      ...
      

      Em seguida, adicione esta linha para configurar o suporte às chaves pré-compartilhadas:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSConnect=psk
      ...
      

      Depois disso, localize a seção TLSAccept, que se parece com esta:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSAccept
      #       What incoming connections to accept.
      #       Multiple values can be specified, separated by comma:
      #               unencrypted - accept connections without encryption
      #               psk         - accept connections secured with TLS and a pre-shared key
      #               cert        - accept connections secured with TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSAccept=unencrypted
      ...
      

      Configure as conexões de entrada para suportarem chaves pré-compartilhadas, adicionando esta linha:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSAccept=psk
      ...
      

      Depois disso, localize a seção TLSPSKIdentity, que se parece com esta:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKIdentity
      #       Unique, case sensitive string used to identify the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKIdentity=
      ...
      

      Escolha um nome único para identificar sua chave pré-compartilhada, adicionando esta linha:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKIdentity=PSK 001
      ...
      

      Você irá usá-lo como a PSK ID ao adicionar seu host através da interface Web do Zabbix.

      Então, defina a opção que aponta para sua chave pré-compartilhada previamente criada. Localize a opção TLSPSKFile:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKFile
      #       Full pathname of a file containing the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKFile=
      ...
      

      Adicione esta linha para apontar o agente Zabbix para o seu arquivo PSK que você criou:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
      ...
      

      Salve e feche o arquivo. Agora, você pode reiniciar o agente Zabbix e defini-lo para iniciar durante a inicialização do sistema:

      • sudo systemctl restart zabbix-agent
      • sudo systemctl enable zabbix-agent

      Para garantir que tudo esteja funcionando, verifique se o agente Zabbix está sendo executado corretamente:

      • sudo systemctl status zabbix-agent

      Você verá o seguinte status, indicando que o agente está em execução:

      Output

      ● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 08:19:54 UTC; 25s ago ...

      O agente irá escutar na porta 10050 para conexões vindas do servidor. Configure o UFW para permitir conexões nesta porta:

      Aprenda mais sobre o UFW em Como configurar um firewall com o UFW no Ubuntu 20.04.

      Seu agente agora está pronto para enviar dados para o servidor Zabbix. Mas para poder usá-lo, é necessário conectar-se a ele a partir do console Web do servidor. No próximo passo, você irá finalizar a configuração.

      Passo 7 — Adicionando o novo host ao servidor Zabbix

      Instalar um agente em um servidor que você deseja monitorar corresponde a apenas metade do processo. Cada host que você quiser monitorar precisa estar registrado no servidor Zabbix. Isso pode ser feito através da interface Web.

      Faça login na interface Web do servidor Zabbix navegando até o endereço http://zabbix_server_name ou https://zabbix_server_name:

      A tela de login do Zabbix

      Assim que estiver conectado, clique em Configuration e depois em Hosts na barra de navegação à esquerda. Então, clique no botão Create host no canto superior direito da tela. Isso abrirá a página de configuração do host.

      Criando um host

      Altere o valor do Host name (nome do host) e IP address (endereço IP) e para que reflitam o nome do host e endereço IP do seu segundo servidor Ubuntu. Em seguida, adicione o host a um grupo. Você pode selecionar um grupo existente, como por exemplo, Linux servers, ou criar seu próprio grupo. O host pode pertencer a vários grupos. Para fazer isso, digite o nome de um grupo existente ou novo no campo Groups e selecione o valor desejado na lista proposta.

      Antes de adicionar o grupo, clique na guia Templates.

      Adicionando um modelo ao host

      Digite Template OS Linux by Zabbix agent no campo Search e então selecione-o na lista para adicionar este modelo ao host.

      Em seguida, vá até a guia Encryption . Selecione PSK para ambos Connections to host e Connections from host. Então, defina PSK identity como PSK 001, que é o valor da configuração TLSPSKIdentity do agente Zabbix que você configurou anteriormente. Então, defina o valor de PSK como a chave que você gerou para o agente Zabbix. Ela é aquela armazenada no arquivo /etc/zabbix/zabbix_agentd.psk na máquina do agente.

      Configurando a criptografia

      Por fim, clique no botão Add no final do formulário para criar o host.

      Você verá seu novo host na lista. Espere por um minuto e recarregue a página. Você verá rótulos verdes indicando que tudo está funcionando corretamente e que a conexão está criptografada.

      Zabbix shows your new host

      Caso tenha servidores adicionais que precise monitorar, faça login em cada host, instale o agente Zabbix, gere uma chave PSK, configure o agente e adicione o host à interface Web seguindo os mesmo passos que você seguiu para adicionar seu primeiro host.

      O servidor Zabbix agora está monitorando seu segundo servidor Ubuntu. Agora, configure notificações de e-mail para ser notificado sobre problemas que venham a acontecer.

      Passo 8 — Configurando as notificações de e-mail

      O Zabbix é compatível automaticamente com muitos tipos de notificações: e-mail, OTRS, Slack, Telegram, SMS, etc. Veja a lista completa de integrações no site do Zabbix.

      Para exemplificar, este tutorial irá configurar notificações para o tipo de mídia Email.

      Clique em Administration e então em Media types na barra de navegação à esquerda. Você verá a lista de todos os tipos de mídia. Existem duas opções pré-configuradas para e-mails: notificação com texto sem formatação e as notificações em HTML. Neste tutorial você irá usar uma notificação com texto sem formatação. Clique em Email.

      Ajuste as opções SMTP de acordo com as configurações fornecidas pelo seu serviço de e-mail. Este tutorial usa as capacidades SMTP do Gmail para configurar as notificações de e-mail; caso queira obter mais informações sobre como fazer esta configuração, consulte How To Use Google’s SMTP Server.

      Nota: se você usar a verificação de dois passos com o Gmail, é necessário gerar uma senha de app para o Zabbix. Será necessário inserir uma senha de app apenas uma vez durante a configuração. Encontre mais instruções sobre como gerar esta senha no Google Help Center.

      Se estiver usando o Gmail, digite smtp.gmail.com no campo SMTP server, 465 no campo SMTP server port, gmail.com em SMTP helo e seu e-mail em SMTP email. Em seguida, escolha SSL/TLS para Connection security e Username and password para Authentication. Digite seu endereço Gmail em Username, e a senha do app que você gerou a partir da sua conta Google em Password.

      Configurando o tipo e-mail de mídia

      Na guia Message templates, você pode ver a lista de mensagens pré-definidas para vários tipos de notificações. Por fim, clique no botão Update no final do formulário para atualizar os parâmetros de e-mail.

      Agora, você pode testar o envio de notificações. Para fazer isso, clique no link sublinhado Test na linha correspondente.

      Uma janela pop-up aparecerá. Digite seu endereço de e-mail no campo Send to e clique no botão Test. Você verá uma mensagem sobre o envio ter sido realizado com sucesso e receberá uma mensagem de teste.

      Testando o e-mail

      Feche o pop-up clicando no botão Cancel.

      Agora, crie um novo usuário. Clique em Administration, e então em Users na barra de navegação à esquerda. Você verá a lista de usuários. Em seguida, clique no botão Create user no canto superior direito da tela. Isso abrirá a página de configuração do usuário:

      Criando um usuário

      Digite o novo nome de usuário no campo Alias e configure uma nova senha. Em seguida, adicione o usuário ao grupo de administradores. Digite Zabbix administrators no campo Groups e selecione-o na lista proposta.

      Depois de ter adicionado o grupo, clique na guia Media e clique no link Add sublinhado (e não no botão Add abaixo dele). Uma janela pop-up aparecerá.

      Adicionando um e-mail

      Selecione a opção Email na lista suspensa Type. Digite seu endereço de e-mail no campo Send to . Você pode deixar o resto das opções em seus valores padrão. Clique no botão Add no final para enviar.

      Agora, navegue até a guia Permission. Selecione Zabbix Super Admin no menu suspenso User type.

      Por fim, clique no botão Add no final do formulário para criar o usuário.

      Nota: Usar a senha padrão não é seguro. Para alterar a senha do usuário Admin embutido, clique no alias (apelido) dado na lista de usuários. Em seguida, clique em Change password, digite uma nova senha e confirme as alterações clicando no botão Update.

      Agora, você precisa habilitar as notificações. Clique na guia Configuration e então Actions na barra de navegação à esquerda. Você verá uma ação pré-configurada, responsável por enviar notificações para todos os administradores do Zabbix. Para revisar e alterar as configurações, clique em seu nome. Para os fins deste tutorial, use os parâmetros padrão. Para habilitar a ação, clique no link Disabled vermelho na coluna Status.

      Agora, tudo está pronto para receber alertas. No próximo passo, você irá gerar um alerta para testar sua configuração de notificação.

      Passo 9 — Gerando um alerta de teste

      Neste passo, você irá gerar um alerta de teste para garantir que tudo esteja conectado. Por padrão, o Zabbix mantém o controle da quantidade de espaço em disco livre em seu servidor. Ele detecta automaticamente todas as montagens de disco e adiciona as verificações correspondentes. Essa descoberta é executada a cada hora, então você precisa esperar um tempo para que a notificação seja ativada.

      Crie um arquivo temporário que seja grande o suficiente para acionar o alerta de uso do sistema de arquivos do Zabbix. Para fazer isso, faça login em seu segundo servidor Ubuntu caso ainda não esteja conectado:

      • ssh sammy@second_ubuntu_server_ip_address

      Em seguida, determine quanto espaço livre você tem no servidor. Use o comando df para descobrir:

      O comando df irá relatar o uso do espaço em disco do seu sistema de arquivos, e o -h tornará o resultado humanamente legível. Você verá uma saída como a seguinte:

      Output

      Filesystem Size Used Avail Use% Mounted on /dev/vda1 78G 1.4G 77G 2% /

      Neste caso, o espaço livre é 77G. Seu espaço livre pode ser diferente.

      Use o comando fallocate, que lhe permite pré-alocar ou desalocar espaço para um arquivo de forma a criar um arquivo que ocupe mais de 80% do espaço em disco disponível. Isso será o suficiente para acionar o alerta:

      • fallocate -l 70G /tmp/temp.img

      Após cerca de uma hora, o Zabbix acionará um alerta sobre a quantidade de espaço em disco livre e executará a ação que você configurou, enviando a mensagem de notificação. Você pode verificar sua caixa de entrada para ver a mensagem vinda do servidor Zabbix. A mensagem será parecida com esta:

      Problem started at 09:49:08 on 2020.06.12
      Problem name: /: Disk space is low (used > 80%)
      Host: Second Ubuntu Server
      Severity: Warning
      Operational data: Space used: 71.34 GB of 77.36 GB (92.23 %)
      Original problem ID: 106
      

      Também é possível navegar até a guia Monitoring e então Dashboard para ver a notificação e os detalhes dela.

      Painel principal

      Agora que você sabe que os alertas estão funcionando, exclua o arquivo temporário que você criou para recuperar seu espaço em disco:

      Depois de um minuto o Zabbix enviará a mensagem de recuperação e o alerta desaparecerá do painel principal.

      Conclusão

      Neste tutorial, você aprendeu como configurar uma solução de monitoramento simples e segura que irá ajudá-lo a monitorar o estado dos seus servidores. Agora, ele é capaz de alertá-lo sobre problemas e você tem a oportunidade de analisar os processos que ocorrem em sua infraestrutura de TI.

      Para saber mais sobre como montar uma infraestrutura de monitoramento, confira Monitoring topic page.



      Source link

      Como usar o nsh para executar comandos remotos seguros no Ubuntu 18.04


      Introdução

      Muitas vezes é difícil gerenciar várias máquinas em um banco de dados diariamente. Ainda que o Secure Shell (SSH) seja uma boa escolha para o acesso remoto, o protocolo em si possui alguns inconvenientes tanto em conveniência como em segurança.

      Por exemplo, máquinas remotas precisam ter um endereço IP público e uma porta redirecionada para acessá-los, o que os expõe à Internet, ou pelo menos a uma rede maior. Isso é especialmente preocupante caso use uma senha para autenticação em vez de um par de chaves público e privado. Além disso, caso não conheça a chave pública da máquina remota antecipadamente, você fica vulnerável a um ataque “man-in-the-middle”. E muitas máquinas remotas que você vai querer acessar não têm endereço IP público ou têm um endereço IP dinâmico que você não sabe.

      Além disso, o SSH exige uma conexão por sessão remota. Se um usuário precisa executar um único comando em centenas ou mesmo milhares de máquinas, é preciso primeiro estabelecer uma conexão com cada máquina com um handshake TCP, que é menos eficiente.

      O NKN Shell, ou nsh, é uma alternativa ao SSH que fornece uma maneira conveniente e segura de executar comandos remotos. O nsh aproveita a rede pública global do NKN, que fornece transmissão de dados segura e descentralizada. A arquitetura usa endereços únicos que contêm uma chave pública usada tanto para o roteamento quanto para a criptografia end-to-end sem nenhuma infraestrutura de chave pública (PKI). A rede também não exige que o servidor remoto tenha um endereço IP público. O servidor remoto precisa ter acesso à Internet e ser capaz de estabelecer conexões HTTP de saída e de websocket. Como resultado, suas máquinas remotas não são expostas à Internet aberta.

      Neste tutorial, você usará o daemon do NKN shell e o aplicativo Xterm do cliente NKN Shell para executar comandos em uma máquina remota. Para fazer isso, você instalará e configurará o daemon do NKN Shell em uma máquina remota com acesso à internet, gerará um par de chaves e fará sua conexão de um cliente.

      Pré-requisitos

      Para seguir este tutorial, você precisará do seguinte:

      Passo 1 — Instalando o NKN Shell em um servidor remoto

      Primeiro, instale o daemon do NKN shell (nsd) no seu servidor. Esse aplicativo invoca o nkn-multiclient, que se conectará à rede pública do NKN e receberá um endereço para o roteamento. Então, o daemon escutará comandos shell de entrada de clientes autenticados e listados, executará esses comandos e, em seguida, enviará os resultados de volta.

      Comece baixando os binários nshd pré-compilados do GitHub mais recentes:

      • wget https://github.com/nknorg/nkn-shell-daemon/releases/latest/download/linux-amd64.tar.gz

      Descompacte o arquivo:

      • tar -zxvf linux-amd64.tar.gz

      Então, mova os arquivos para o diretório /usr/local/bin, para que eles estejam disponíveis em todo o sistema:

      • sudo mv ./linux-amd64/* /usr/local/bin/

      Em seguida, você configurará isso para ser executado como um processo daemon usando o Systemd, para que ele seja reiniciado caso o servidor seja redefinido.

      Crie um arquivo chamado nshd.service em /etc/systemd/system:

      • sudo nano /etc/systemd/system/nshd.service

      Adicione a seguinte definição de serviço ao arquivo para configurar o serviço:

      /etc/systemd/system/nshd.service

      [Unit]
      Description=NKN Shell Daemon
      After=network.target
      
      [Service]
      Type=simple
      User=root
      Group=root
      Restart=always
      ExecStart=/usr/local/bin/nshd
      
      [Install]
      WantedBy=multi-user.target
      

      Saiba mais sobre arquivos de unidade do Systemd em Entendendo unidades do Systemd e arquivos de unidade.

      Salve o arquivo e saia do editor. Então, habilite e inicie o serviço nshd com os seguintes comandos:

      • sudo systemctl enable nshd.service
      • sudo systemctl start nshd.service

      Execute o seguinte comando para garantir que o serviço esteja ativo e iniciado:

      • sudo systemctl status nshd.service

      Você verá que o status está ativo:

      Output

      ● nshd.service - NKN Shell Daemon Loaded: loaded (/etc/systemd/system/nshd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-02-19 19:16:02 UTC; 7s ago Main PID: 3457 (nshd) Tasks: 10 (limit: 1152) CGroup: /system.slice/nshd.service └─3457 /usr/local/bin/nshd Feb 19 19:16:02 your_hostname systemd[1]: Started NKN Shell Daemon. Feb 19 19:16:03 your_hostname nshd[3457]: Create directory /etc/nshd/ Feb 19 19:16:03 your_hostname nshd[3457]: Create password and save to file /etc/nshd/wallet.pswd Feb 19 19:16:03 your_hostname nshd[3457]: Create wallet and save to file /etc/nshd/wallet.json Feb 19 19:16:03 your_hostname nshd[3457]: Create authorized pubkeys file /etc/nshd/authorized_pubkeys Feb 19 19:16:03 your_hostname nshd[3457]: Listening at d46567b883a3070ee3fe879d9fa2d5dc55a95f79ff2797c42df36c6979e5c4Aba

      Para se conectar ao seu servidor, você precisará obter seu endereço NKN, que pode ser encontrado no resultado do comando anterior. Também é possível executar o seguinte comando para obter o endereço:

      Você verá seu endereço aparecer:

      Output

      e70ca28ede84fc0659f2869255e8a393aef35b4fa5a7e036f29127c7dba75383

      Anote este endereço, uma vez que precisará dele para se conectar ao seu servidor.

      Agora que o daemon está em execução e escutando, é possível configurar o cliente baseado na Web para falar com o servidor.

      Passo 2 — Configurando as permissões para o cliente NKN Shell

      Você precisará de um cliente compatível que possa se conectar à máquina remota. Neste tutorial, você usará o cliente Xterm do NKN Shell, um cliente NKN shell baseado na Web. Há várias maneiras diferentes de executá-lo:

      Neste tutorial, você usará a versão hospedada. Na sua máquina local, abra o navegador Web e navegue até https://nsh.nkn.org. Você verá uma tela de boas vindas:

      O cliente do Shell

      Clique em Generate New Key Pair (Gerar novo par de chaves). Suas chaves serão geradas e exibidas como mostrado na imagem seguinte:

      O par de chaves gerado

      Nota: quando gerar um novo par de chaves, você verá um seed secreto. Mantenha esse seed secreto seguro, assim como você faria com sua chave privada SSH. Qualquer um que tenha esse seed secreto pode usá-lo para regenerar sua chave pública e, em seguida, executar comandos em suas máquinas remotas. Seu navegador se lembrará desse seed, mas você deve copiá-lo em um lugar seguro para que possa usá-lo novamente em uma nova máquina.

      Salve o seed secreto em um lugar seguro. É possível usá-lo mais tarde para regenerar sua chave pública para que você possa se conectar a partir de uma máquina de cliente diferente.

      Como trata-se de um novo par de chaves, é preciso adicionar a chave pública ao arquivo /etc/nshd/authorized_pubkeys no seu servidor.

      O /etc/nshd/authorized_pubkeys tem um papel semelhante ao arquivo ~/authorized_keys, que controla quais chaves públicas SSH podem fazer login. O arquivo authorized_pubkeys especifica qual usuário está associado a uma chave. Para fins de segurança, faça login usando um usuário não raiz neste tutorial, de modo que a chave pública gerada seja associada com seu usuário sammy criado no tutorial pré-requisito deste artigo, Configuração inicial de servidor.

      Para associar um usuário à chave pública, será necessário obter o ID de usuário (UID) e o ID de grupo (GID) deste usuário. Execute o seguinte comando no seu servidor, enquanto logado como o usuário sammy:

      Você verá o UID e o GID do usuário:

      Output

      uid=1000(sammy) gid=1000(sammy) groups=1000(sammy),27(sudo)

      Agora, abra o arquivo authorized_pubkeys no seu editor:

      • sudo nano /etc/nshd/authorized_pubkeys

      Adicione uma linha única que contenha a chave pública, UID e GID, separados por espaços:

      authorized_pubkeys

      5d5367a5730427c205904a4457392051d2045dbce0186518fb6eb24dd9e41ba6 1000 1000
      

      Salve o arquivo.

      Verifique se o arquivo contém o conteúdo correto:

      • cat /etc/nshd/authorized_pubkeys

      Você verá sua chave impressa na tela:

      Output

      5d5367a5730427c205904a4457392051d2045dbce0186518fb6eb24dd9e41ba6 1000 1000

      Então, reinicie o daemon nshd para aplicar as alterações:

      • sudo systemctl restart nshd.service

      Agora, vamos testá-lo. Para isso, conecte-se ao servidor e execute um comando.

      Passo 3 — Enviando um comando para a máquina remota e recebendo uma resposta

      No cliente NKN Shell, digite seu endereço remoto nshd do Passo 1, bem como um identificador de cliente opcional:

      O site nsh com o endereço remoto preenchido

      Clique em Connect (Conectar) para iniciar a conexão.

      Você se conectará à sua máquina remota e será exibido um prompt de terminal dentro do navegador. A partir daqui, use-o da mesma forma que o SSH. Por exemplo, execute o comando a seguir para alternar para o diretório /etc/nshd:

      Então, liste o conteúdo do diretório:

      Você verá o conteúdo dele:

      Output

      authorized_pubkeys wallet.json wallet.pswd

      Desconecte-se digitando exit. Quando precisar se reconectar, visite novamente a interface Web e digite seus detalhes de conexão. Caso gere um novo par de chaves, será necessário adicionar a nova chave pública ao seu servidor.

      Conclusão

      Neste tutorial, você instalou e configurou o nsh para enviar comandos de maneira segura e conveniente para uma máquina remota. O nsh é uma ótima maneira de acessar suas máquinas remotas quando você precisa executar rapidamente um comando para obter o status mais recente de um serviço ou espiar algumas definições de configuração. O aplicativo se baseia na rede pública global da NKN e é gratuito para usar. Dessa forma, você pode incorporá-lo no seu próprio aplicativo ou fluxo de trabalho hoje.

      Também é possível explorar o nkn-tunnel, que é compatível com o SSH ou qualquer outro aplicativo baseado no TCP.



      Source link

      Cómo usar nsh para ejecutar comandos remotos seguros en Ubuntu 18.04


      Introducción

      A menudo, puede ser difícil administrar varios equipos diariamente. Aunque Scure Shell (SSH) es una buena opción para el acceso remoto, el protocolo en sí mismo tiene algunos inconvenientes en cuanto a practicidad y seguridad.

      Por ejemplo, los equipos remotos deben tener una dirección IP pública y un puerto reenviado para acceder a ellos, lo que los expone a Internet o al menos a una red más grande. Esto es, en particular, motivo de inquietud si utiliza una contraseña para la autenticación en vez de un par de claves pública y privada. Además, si no conoce la clave pública del equipo remoto con antelación, es posible que sea vulnerable a un ataque de “intermediario”. Muchos equipos remotos a los que quiere acceder no tienen una dirección IP pública o tienen una dirección IP dinámica que posiblemente no conozca.

      Además, SSH requiere una conexión por sesión remota. Si un usuario necesita ejecutar un único comando en cientos o incluso miles de máquinas, primero debe establecer una conexión con cada una mediante un protocolo de enlace TCP, que es menos eficiente.

      NKN Shell, o nsh, es una alternativa a SSH que proporciona una opción cómoda y segura para ejecutar comandos remotos. nsh aprovecha la red pública global de NKN que ofrece una transmisión de datos segura y descentralizada. La arquitectura utiliza direcciones únicas que contienen una clave pública usada para el direccionamiento y para el cifrado de extremo a extremo sin una infraestructura de claves públicas (PKI). La red tampoco requiere que el servidor remoto tenga una dirección IP pública. El servidor remoto solo necesita tener acceso a Internet y poder establecer conexiones HTTP y websocket salientes. Como resultado, sus equipos remotos no estarán expuestos a la Internet abierta.

      En este tutorial, usará el demonio de NKN Shell y las aplicaciones de NKN Shell Client Xterm para ejecutar comandos en un equipo remoto. Para hacerlo, instalará y configurará el demonio de NKN Shell en un equipo remoto con acceso a Internet, generará un par de claves y realizará su conexión desde un cliente.

      Requisitos previos

      Para seguir este tutorial, necesitará lo siguiente:

      Paso 1: Instalar el demonio de NKN Shell en un servidor remoto

      Primero, instale el demonio de NKN Shell (nsd) en su servidor. Esta aplicación invocará nkn-multiclient, que se conectará a la red pública de NKN y obtendrá una dirección para el direccionamiento. El demonio escuchará los comandos shell entrantes desde los clientes autenticados y de la lista blanca, ejecutará esos comandos y enviará resultados.

      Comience descargando el binario nshd previamente compilado desde GitHub:

      • wget https://github.com/nknorg/nkn-shell-daemon/releases/latest/download/linux-amd64.tar.gz

      Descomprima el archivo:

      • tar -zxvf linux-amd64.tar.gz

      Luego mueva los archivos al directorio /usr/local/bin a fin de que estén disponibles para todo el sistema:

      • sudo mv ./linux-amd64/* /usr/local/bin/

      A continuación, configurará esto para que se ejecute como un proceso de demonio usando Systemd, por lo que se reiniciará si se reinicia el servidor.

      Cree un archivo llamado nshd.service en /etc/systemd/system:

      • sudo nano /etc/systemd/system/nshd.service

      Añada la siguiente definición de servicio al archivo para configurar el servicio:

      /etc/systemd/system/nshd.service

      [Unit]
      Description=NKN Shell Daemon
      After=network.target
      
      [Service]
      Type=simple
      User=root
      Group=root
      Restart=always
      ExecStart=/usr/local/bin/nshd
      
      [Install]
      WantedBy=multi-user.target
      

      Encontrará más información sobre archivos de unidades de Systemd en Información sobre unidades y archivos de unidades de Systemd.

      Guarde el archivo y salga del editor. A continuación, habilite e inicie el servicio nshd con los siguientes comandos:

      • sudo systemctl enable nshd.service
      • sudo systemctl start nshd.service

      Ejecute el siguiente comando para garantizar que el servicio esté activo y se haya iniciado:

      • sudo systemctl status nshd.service

      Verá que se indica un estado activo:

      Output

      ● nshd.service - NKN Shell Daemon Loaded: loaded (/etc/systemd/system/nshd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-02-19 19:16:02 UTC; 7s ago Main PID: 3457 (nshd) Tasks: 10 (limit: 1152) CGroup: /system.slice/nshd.service └─3457 /usr/local/bin/nshd Feb 19 19:16:02 your_hostname systemd[1]: Started NKN Shell Daemon. Feb 19 19:16:03 your_hostname nshd[3457]: Create directory /etc/nshd/ Feb 19 19:16:03 your_hostname nshd[3457]: Create password and save to file /etc/nshd/wallet.pswd Feb 19 19:16:03 your_hostname nshd[3457]: Create wallet and save to file /etc/nshd/wallet.json Feb 19 19:16:03 your_hostname nshd[3457]: Create authorized pubkeys file /etc/nshd/authorized_pubkeys Feb 19 19:16:03 your_hostname nshd[3457]: Listening at d46567b883a3070ee3fe879d9fa2d5dc55a95f79ff2797c42df36c6979e5c4Aba

      Para establecer conexión con su servidor, deberá obtener su dirección de NKN, que puede encontrar en el resultado del comando anterior. También puede ejecutar el siguiente comando para obtener la dirección:

      Verá que aparece su dirección:

      Output

      e70ca28ede84fc0659f2869255e8a393aef35b4fa5a7e036f29127c7dba75383

      Tome nota de esta dirección, ya que deberá establecer conexión con su servidor.

      Ahora que el demonio está en ejecución y escucha puede configurar el cliente basado en web para que se comunique con el servidor.

      Paso 2: Configurar permisos para NKN Shell Client

      Necesitará un cliente compatible que pueda conectar con el equipo remoto. Para este tutorial, usará NKN Shell Client Xterm, un cliente de NKN Shell basado en la Web. Hay varias formas diferentes de ejecutarlo:

      En este tutorial, usará la versión alojada. En su equipo local, abra su navegador web y diríjase a https://nsh.nkn.org. Verá una pantalla de bienvenida.

      El cliente Shell

      Haga clic en Generate New Key Pair​​. Sus claves se generarán y se mostrarán como en la siguiente imagen:

      El par de claves generado

      Nota: Cuando genere un nuevo par de claves, verá un valor de inicialización secreto. Mantenga seguro y protegido este valor de inicialización secreto, lo mismo que haría con su clave SSH privada. Cualquiera que tenga este valor de inicialización secreto puede usarlo para regenerar su clave pública y luego ejecutar los comandos en sus equipos remotos. Su navegador recordará este seed, pero debería hacer una copia de él en una ubicación segura de modo que pueda usarlo otra vez en un nuevo equipo.

      Guarde el Secret Seed en una ubicación segura. Puede usarlo más tarde para regenerar su clave pública de modo que pueda establecer conexión desde un equipo cliente diferente.

      Ya que este es un nuevo par de claves, debe añadir la Clave pública al archivo /etc/nshd/authorized_pubkeys en su servidor.

      /etc/nshd/authorized_pubkeys tiene un rol similar al del archivo ~/authorized_keys que controla las claves SSH públicas que pueden iniciar sesión. El archivo authorized_pubkeys puede especificar el usuario asociado con una clave. Por seguridad, querrá iniciar sesión usando un usuario no root en este tutorial, por lo cual asociará la clave pública generada con su usuario sammy que creó en la guía de Configuración inicial de servidores de los requisitos previos de este artículo.

      Para asociar un usuario con la clave pública, deberá obtener el ID de usuario (UID) y el ID de grupo (GID) de este usuario. Ejecute el siguiente comando en su servidor mientras la sesión esté iniciada con el usuario sammy:

      Verá el UID y el GID del usuario:

      Output

      uid=1000(sammy) gid=1000(sammy) groups=1000(sammy),27(sudo)

      Ahora, abra el archivo authorized_pubkeys en su editor:

      • sudo nano /etc/nshd/authorized_pubkeys

      Añada una línea única que contenga la clave pública, el uid y el gid separados por espacios:

      authorized_pubkeys

      5d5367a5730427c205904a4457392051d2045dbce0186518fb6eb24dd9e41ba6 1000 1000
      

      Guarde el archivo.

      Verifique que el contenido del archivo sea correcto:

      • cat /etc/nshd/authorized_pubkeys

      Verá su clave impresa en la pantalla:

      Output

      5d5367a5730427c205904a4457392051d2045dbce0186518fb6eb24dd9e41ba6 1000 1000

      A continuación reinicie el daemon nshd para aplicar los cambios:

      • sudo systemctl restart nshd.service

      Ahora, lo probaremos estableciendo conexión con el servidor y ejecutando un comando.

      Paso 3: Enviar un comando al equipo remoto y recibir una respuesta

      En NKN Shell Client, introduzca su dirección nshd remota del paso 1 y un identificador de cliente opcional:

      El sitio web nsh con la dirección remota completada en

      Haga clic en Connect para iniciar la conexión.

      Establecerá conexión con su equipo remoto y se mostrará una instrucción del terminal en el navegador. A partir de este punto, puede usarlo como SSH. Por ejemplo, ejecute el siguiente comando para pasar al directorio /etc/nshd:

      A continuación, liste su contenido:

      Verá el contenido del directorio:

      Output

      authorized_pubkeys wallet.json wallet.pswd

      Puede interrumpir la conexión escribiendo exit. Cuando necesite restablecer la conexión, vuelva a visitar la interfaz web e introduzca sus datos de conexión. Si genera un par de claves nuevo, deberá añadir la nueva clave pública a su servidor.

      Conclusión

      A través de este tutorial, instaló y configuró nsh para enviar de forma segura y cómoda comandos a un equipo remoto. nsh es una excelente alternativa para acceder a sus equipos remotos cuando necesita ejecutar rápidamente un comando para obtener el estado más reciente de un servicio o mirar algún ajuste de configuración. La aplicación se basa en la red pública global de NKN y es gratuita, de modo que puede incorporarla hoy a su aplicación o flujo de trabajo propios.

      También puede explorar nkn-tunnel, que admite SSH o cualquier otra aplicación basada en TCP.



      Source link