One place for hosting & domains

      Proteger

      Cómo instalar y proteger Grafana en Ubuntu 20.04


      El autor seleccionó el COVID-19 Relief Fund para que reciba una donación como parte del programa Write for DOnations.

      Introducción

      Grafana es una herramienta de visualización y monitoreo de datos de código abierto que se integra con datos complejos de fuentes como Prometheus, InfluxDB, Graphite y ElasticSearch. Grafana le permite crear alertas, notificaciones y filtros ad-hoc para sus datos, a la vez que facilita la colaboración con los compañeros de equipo mediante características de uso compartido integradas.

      En este tutorial, instalará Grafana y la protegerá con un certificado SSL y un proxy inverso de Nginx. Una vez que haya configurado Grafana, tendrá la opción de configurar la autenticación del usuario a través de GitHub, lo que le permitirá organizar mejor los permisos de su equipo.

      Requisitos previos

      Para seguir este tutorial, necesitará lo siguiente:

      Paso 1: Instalar Grafana

      En este primer paso, instalará Grafana en su servidor de Ubuntu 20.04. Puede instalar Grafana descargándola directamente desde su sitio web oficial, o bien mediante un repositorio de APT. Debido a que un repositorio de APT facilita la instalación y administración de las actualizaciones de Grafana, en este tutorial utilizará ese método.

      Descargue la clave GPG de Grafana con wget y, luego, canalice el resultado a apt-key. Esto agregará la clave a la lista de claves de confianza de la instalación de APT, que le permitirá descargar y verificar el paquete Grafana firmado con GPG:

      • wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

      En este comando, la opción -q desactiva el mensaje de actualización de estado para wget y -O arroja como resultado el archivo que descargó a la terminal. Estas dos opciones aseguran que solo el contenido del archivo descargado se canalice a apt-key.

      A continuación, agregue el repositorio de Grafana a las fuentes de APT:

      • sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

      Actualice el caché de APT para actualizar las listas de paquetes:

      Ahora, puede proceder con la instalación:

      Una vez que se haya instalado Grafana, utilice systemctl para iniciar el servidor de Grafana:

      • sudo systemctl start grafana-server

      A continuación, verifique el estado del servidor para comprobar que Grafana se esté ejecutando:

      • sudo systemctl status grafana-server

      Recibirá un resultado similar a este:

      Output

      ● grafana-server.service - Grafana instance Loaded: loaded (/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-21 08:08:10 UTC; 4s ago Docs: http://docs.grafana.org Main PID: 15982 (grafana-server) Tasks: 7 (limit: 1137) ...

      Este resultado contiene información sobre el proceso de Grafana, incluido el estado, el identificador de procesos principal (PID) y más. active (running) indica que el proceso se está ejecutando correctamente.

      Por último, habilite el servicio para que inicie Grafana de forma automática en el arranque:

      • sudo systemctl enable grafana-server

      Recibirá el siguiente resultado:

      Output

      Synchronizing state of grafana-server.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable grafana-server Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.

      Esto confirma que systemd ha creado los enlaces simbólicos necesarios para iniciar Grafana de manera automática.

      Grafana ya está instalada y lista para su uso. A continuación, protegerá la conexión a Grafana con un proxy inverso y un certificado SSL.

      Paso 2: Configurar el proxy inverso

      El uso de un certificado SSL garantizará la seguridad de los datos al cifrar la conexión desde y hacia Grafana. Sin embargo, para utilizar esta conexión, primero deberá volver a configurar Nginx para que actúe como un proxy inverso para Grafana.

      Abra el archivo de configuración de Nginx que creó al configurar el bloque de servidor de Nginx con Let’s Encrypt en los Requisitos previos. Puede utilizar cualquier editor de texto, pero en este tutorial lo haremos con nano:

      • sudo nano /etc/nginx/sites-available/your_domain

      Busque el siguiente bloque:

      /etc/nginx/sites-available/your_domain

      ...
          location / {
              try_files $uri $uri/ =404;
          }
      ...
      

      Debido a que ya configuró Nginx para que se comunique a través de SSL y a que todo el tráfico web hacia su servidor ya pasa a través de Nginx, solo debe indicar a Nginx que reenvíe todas las solicitudes a Grafana, que de forma predeterminada se ejecuta en el puerto 3000.

      Elimine la línea try_files existente en este location block (bloque de ubicación) y sustitúyala por la siguiente opción proxy_pass:

      /etc/nginx/sites-available/your_domain

      ...
          location / {
              proxy_pass http://localhost:3000;
          }
      ...
      

      Esto permitirá asignar el proxy al puerto apropiado. Una vez que haya terminado, pulse CTRL+X, Y y, luego, ENTER si utiliza nano, para guardar y cerrar el archivo.

      Ahora, pruebe los nuevos ajustes para asegurarse de que todo se configuró correctamente:

      Recibirá el siguiente resultado:

      Output

      nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

      Por último, vuelva a cargar Nginx para habilitar los cambios:

      • sudo systemctl reload nginx

      Ahora puede acceder a la pantalla de inicio de sesión predeterminada de Grafana orientando el navegador web a https://your_domain. Si no puede llegar a Grafana, verifique que el firewall esté configurado para permitir el tráfico en el puerto 443 y, luego, vuelva a realizar lo indicado anteriormente.

      Ahora que la conexión a Grafana está cifrada, puede implementar medidas de seguridad adicionales, y lo primero será modificar las credenciales administrativas predeterminadas de Grafana.

      Paso 3: Actualizar las credenciales

      Debido a que cada instalación de Grafana utiliza las mismas credenciales administrativas de forma predeterminada, una práctica recomendada es modificar la información de inicio de sesión lo antes posible. En este paso, actualizará las credenciales para mejorar la seguridad.

      Diríjase primero a https://your_domain desde el navegador Con esto, se mostrará la pantalla de inicio de sesión predeterminada en la que verá el logotipo de Grafana, un formulario que le solicitará ingresar un correo electrónico o nombre de usuario y una contraseña, el botón Log in (Iniciar sesión) y el vínculo ¿Olvidó la contraseña?

      Inicio de sesión de Grafana

      Escriba admin en el campo del correo electrónico o nombre de usuario y de la contraseña y, luego, haga clic en el botón Log in.

      En la siguiente pantalla, se le solicitará cambiar la contraseña predeterminada para que la cuenta sea más segura:

      Cambiar contraseña

      Escriba la contraseña que quiere utilizar en los campos Nueva contraseña y Confirmar contraseña nueva.

      Desde aquí, puede hacer clic en Enviar para guardar la nueva información o pulsar Omitir para saltar este paso. Si omite este paso, se le solicitará cambiar la contraseña la próxima vez que inicie sesión.

      Para aumentar la seguridad de la configuración de Grafana, haga clic en Enviar. Será redirigido al panel Bienvenido a Grafana:

      Panel de la página principal

      Ya ha protegido la cuenta modificando las credenciales predeterminadas. A continuación, realizará cambios en la configuración de Grafana para que nadie pueda crear una nueva cuenta de Grafana sin su permiso.

      Paso 4: Deshabilitar los registros y el acceso anónimo a Grafana

      Grafana proporciona opciones que permiten a los visitantes crear cuentas de usuario para sí mismos y obtener una vista previa de los paneles sin registrarse. Es posible que quiera permitir estas características cuando no se puede acceder a Grafana a través de Internet o cuando trabaja con datos de uso público, como los estados de servicio. Sin embargo, cuando utiliza Grafana en línea para trabajar con datos confidenciales, el acceso anónimo podría constituir un problema de seguridad. Para solucionar este problema, realice algunos cambios en la configuración de Grafana.

      Primero, abra el archivo de configuración principal de Grafana para editarlo:

      • sudo nano /etc/grafana/grafana.ini

      Busque la siguiente directiva allow_sign_up bajo el encabezado [users]:

      /etc/grafana/grafana.ini

      ...
      [users]
      # disable user signup / registration
      ;allow_sign_up = true
      ...
      

      Al habilitar esta directiva con true, se agrega un botón Sign up (Registrarse) a la pantalla de inicio de sesión, que permite a los usuarios registrarse y acceder a Grafana.

      Al deshabilitar esta directiva con false, se quita el botón Sign Up y se refuerza la seguridad y la privacidad de Grafana.

      Borre el signo ; del comienzo de la línea y, luego, establezca la opción como false para eliminar el comentario de esta directiva:

      /etc/grafana/grafana.ini

      ...
      [users]
      # disable user signup / registration
      allow_sign_up = false
      ...
      

      A continuación, busque la siguiente directiva enabled bajo el encabezado [auth.anonymous]:

      /etc/grafana/grafana.ini

      ...
      [auth.anonymous]
      # enable anonymous access
      ;enabled = false
      ...
      

      Al establecer enabled como true, se permite el acceso de usuarios no registrados a los paneles de datos; al establecer esta opción como false, se permite el acceso solo a los usuarios registrados.

      Borre el signo ; del comienzo de la línea y, luego, establezca la opción como false para eliminar el comentario de esta directiva.

      /etc/grafana/grafana.ini

      ...
      [auth.anonymous]
      # enable anonymous access
      enabled = false
      ...
      

      Guarde el archivo y salga del editor de texto.

      Para habilitar los cambios, reinicie Grafana:

      • sudo systemctl restart grafana-server

      Compruebe el estado del servicio de Grafana para verificar que todo funciona correctamente:

      • sudo systemctl status grafana-server

      Al igual que antes, el resultado mostrará active (running), lo que indica que Grafana se está ejecutando.

      Ahora, dirija el navegador hacia https://your_domain. Para volver a la pantalla de registro ubique el cursor en su avatar, que se encuentra en la parte inferior izquierda de la pantalla, y haga clic en la opción Cerrar sesión que aparecerá.

      Una vez que haya cerrado sesión, verifique que no haya ningún botón Sign Up y que no pueda iniciar sesión sin introducir las credenciales de inicio de sesión.

      En este momento, Grafana está totalmente configurada y lista para su uso. A continuación, puede simplificar el proceso de inicio de sesión para su organización al autenticar a través de GitHub.

      Paso 5 (opcional): Configurar una aplicación OAuth de GitHub

      Un enfoque alternativo para iniciar sesión consiste en configurar Grafana para que se autentique a través de GitHub, que proporciona acceso de inicio de sesión a todos los miembros de las organizaciones autorizadas de GitHub. Esto puede resultar particularmente útil cuando quiere permitir que varios desarrolladores colaboren y accedan a las métricas sin tener que crear credenciales específicas para Grafana.

      Primero, inicie sesión en una cuenta de GitHub asociada con su organización y, luego, vaya a su página de perfil de GitHub en https://github.com/settings/profile.

      Haga clic en su nombre, que está en el margen izquierdo de la pantalla y, luego, seleccione su organización en el menú desplegable para cambiar el contexto de configuración Esto permitirá cambiar el contexto de configuración personal a configuración de la organización.

      En la siguiente pantalla, verá el perfil de la organización, donde podrá cambiar los ajustes, como el nombre para mostrar de la organización, el correo electrónico y la dirección URL de la organización.

      Debido a que Grafana utiliza OAuth (un estándar abierto para conceder acceso a terceros remotos a los recursos locales) para autenticar a los usuarios a través de GitHub, deberá crear una nueva aplicación OAuth en GitHub.

      Haga clic en el enlace Aplicaciones OAuth en Opciones de configuración para desarrolladores ubicado en el margen inferior izquierdo de la pantalla.

      Si aún no tiene ninguna aplicación OAuth asociada con su organización en GitHub, se le indicará que no hay aplicaciones que pertenezcan a la organización. De lo contrario, verá una lista de las aplicaciones OAuth que ya están conectadas a su cuenta.

      Haga clic en el botón Nueva aplicación OAuth para continuar.

      En la siguiente pantalla, complete los siguientes detalles sobre la instalación de Grafana:

      • Nombre de la aplicación: le ayuda a distinguir las diferentes aplicaciones OAuth que posea.
      • URL de la página principal: le indica a GitHub dónde encontrar a Grafana. Escriba https://your_domain en este campo, sustituyendo your_domain por su dominio.
      • Descripción de la aplicación: proporciona una descripción del propósito de su aplicación OAuth.
      • URL de devolución de llamada de la aplicación: es la dirección a la que se enviará a los usuarios una vez que se autentiquen correctamente. En el caso de Grafana, este campo debe establecerse como https://your_domain/login/github.

      Tenga en cuenta que los usuarios de Grafana que inicien sesión a través de GitHub verán los valores que ingresó en los tres primeros campos, así que asegúrese de agregar información importante y apropiada.

      Una vez completado, el formulario tendrá un aspecto similar al siguiente:

      Registro de aplicación OAuth de GitHub

      Haga clic en el botón verde Registrar la aplicación.

      Ahora será redireccionado a una página que contiene el Identificador de cliente y Clave secreta de cliente asociados con la nueva aplicación OAuth. Tenga en cuenta ambos valores, porque deberá agregarlos al archivo de configuración principal de Grafana para completar la configuración.

      Advertencia: Asegúrese de mantener su Identificador de cliente y Clave secreta de cliente en una ubicación segura y privada, porque podrían utilizarse para un ataque.

      Ahora que creó la aplicación OAuth de GitHub, está listo para volver a configurar Grafana de modo que le permita utilizar GitHub para la autenticación.

      Paso 6 (opcional): Configurar Grafana como una aplicación OAuth de GitHub

      Ahora realizará algunas modificaciones en los archivos de configuración de Grafana para completar la autenticación de GitHub para utilizarlo en la configuración de Grafana.

      Para comenzar, abra el archivo de configuración principal de Grafana.

      • sudo nano /etc/grafana/grafana.ini

      Busque el encabezado [auth.github] y borre el signo ; del comienzo de cada línea, a excepción de ;allowed_domains = y ;team_ids = (que no cambiaremos en este tutorial) para eliminar el comentario de esta sección.

      A continuación, realice los siguientes cambios:

      • Establezca enabled y allow_sign_up como true. Esto habilitará la autenticación de GitHub y permitirá que los miembros de la organización permitida puedan crear cuentas. Tenga en cuenta que esta opción de configuración es diferente a la propiedad allow_sign_up en [users] que modificó en el paso 4.
      • En client_id y client_secret ingrese los valores que obtuvo al crear la aplicación OAuth de GitHub.
      • En allowed_organizations ingrese el nombre de su organización para asegurarse de que solo los miembros de la empresa puedan registrarse e iniciar sesión en Grafana.

      La configuración completa tendrá el siguiente aspecto:

      /etc/grafana/grafana.ini

      ...
      [auth.github]
      enabled = true
      allow_sign_up = true
      client_id = your_client_id_from_github
      client_secret = your_client_secret_from_github
      scopes = user:email,read:org
      auth_url = https://github.com/login/oauth/authorize
      token_url = https://github.com/login/oauth/access_token
      api_url = https://api.github.com/user
      ;allowed_domains =
      ;team_ids =
      allowed_organizations = your_organization_name
      ...
      

      Ya le indicó a Grafana todo lo que necesita saber sobre GitHub. Para completar la configuración, deberá habilitar los redireccionamientos detrás de un proxy inverso. Para ello, se configura un valor root_url bajo el encabezado [server].

      /etc/grafana/grafana.ini

      ...
      [server]
      root_url = https://your_domain
      ...
      

      Guarde la configuración y cierre el archivo.

      A continuación, reinicie Grafana para habilitar los cambios:

      • sudo systemctl restart grafana-server

      Por último, verifique que el servicio esté activo y en ejecución.

      • sudo systemctl status grafana-server

      El resultado mostrará active (running), lo que indica que el servicio se está ejecutando.

      Ahora, diríjase a https://your_domain para probar el nuevo sistema de autenticación. Si ya inició sesión en Grafana, mantenga el mouse sobre el registro del avatar, ubicado en la esquina inferior izquierda de la pantalla, y haga clic en Cerrar sesión en el menú secundario que aparece junto a su nombre.

      En la página de inicio de sesión, verá una nueva sección debajo del botón Iniciar sesión original, que contiene el botón Iniciar sesión con GitHub con el logo de GitHub.

      Página de inicio de sesión con GitHub de Grafana

      Haga clic en el botón Iniciar sesión con GitHub para que el sistema lo redireccione a GitHub, en donde iniciará sesión en su cuenta de GitHub y confirmará que quiere autorizar a Grafana.

      Haga clic en el botón verde Autorizar your_github_organization.

      Nota: Asegúrese de que su cuenta de GitHub sea miembro de la organización aprobada y que la dirección de correo electrónico de Grafana coincida con la de GitHub. Si intenta autenticarse con una cuenta de GitHub que no pertenezca a la organización aprobada, recibirá el mensaje Error al iniciar sesión, en el que se le indica que el usuario no es miembro de una de las organizaciones requeridas.

      Ahora, habrá iniciado sesión con la cuenta de Grafana existente. Si aún no existe una cuenta de Grafana para el usuario con el que inició sesión, Grafana creará una nueva cuenta de usuario con permisos de visualización, lo que garantiza que los nuevos usuarios solo puedan utilizar los paneles existentes.

      Para modificar los permisos predeterminados para los nuevos usuarios, abra el archivo de configuración principal de Grafana para editarlo.

      • sudo nano /etc/grafana/grafana.ini

      Busque la directiva auto_assign_org_role bajo el encabezado [users] y borre el signo ; del principio de la línea para eliminar el comentario de la configuración.

      Establezca uno de los siguientes valores en la directiva:

      • Viewer (visualización): solo puede utilizar los paneles existentes
      • Editor: puede utilizar, modificar y agregar paneles
      • Admin: tiene permiso para realizar todas las acciones

      En este tutorial se establecerá auto-assign como Viewer:

      /etc/grafana/grafana.ini

      ...
      [users]
      ...
      auto_assign_org_role = Viewer
      ...
      

      Una vez que haya guardado los cambios, cierre el archivo y reinicie Grafana:

      • sudo systemctl restart grafana-server

      Compruebe el estado del servicio:

      • sudo systemctl status grafana-server

      Al igual que antes, el estado mostrará active (running).

      En este momento, ha configurado completamente Grafana para permitir que los miembros de su organización de GitHub puedan registrarse y utilizar la instalación de Grafana.

      Conclusión

      En este tutorial, instaló, configuró y protegió Grafana, y también aprendió cómo permitir que los miembros de su organización se autentiquen a través de GitHub.

      Para ampliar la instalación actual de Grafana, consulte la lista de paneles y complementos oficiales y creados por la comunidad. Para obtener más información sobre el uso de Grafana en general, consulte la documentación oficial de Grafana o alguno de nuestros tutoriales de monitoreo.



      Source link

      Como instalar e proteger o Grafana no Ubuntu 20.04


      O autor selecionou a COVID-19 Relief Fund​​​​​ para receber uma doação como parte do programa Write for DOnations.

      Introdução

      O Grafana é uma ferramenta de visualização e monitoramento de dados de código aberto que integra-se com dados complexos de fontes como o Prometheus, InfluxDB, Graphite e o ElasticSearch. O Grafana permite criar alertas, notificações e filtros ad-hoc para seus dados, além de também tornar a colaboração com seus colegas de equipe mais fácil através de recursos de compartilhamento integrados.

      Neste tutorial, você irá instalar o Grafana e protegê-lo com um certificado SSL e um proxy reverso Nginx. Depois de configurar o Grafana, você terá a opção de configurar a autenticação do usuário através do GitHub, permitindo uma melhor organização das permissões da sua equipe.

      Pré-requisitos

      Para seguir este tutorial, será necessário:

      Passo 1 — Instalando o Grafana

      Neste primeiro passo, você irá instalar o Grafana em seu servidor Ubuntu 20.04. Você pode instalar o Grafana baixando diretamente de seu site oficial ou visitando um repositório APT. Como um repositório APT torna mais fácil instalar e gerenciar as atualizações do Grafana, esse método será usado neste tutorial.

      Baixe a chave GPG do Grafana com o wget e , em seguida, canalize o resultado para o apt-key. Isso irá adicionar a chave à lista de chaves confiáveis da sua instalação APT, que lhe permitirá baixar e verificar o pacote Grafana assinado pelo GPG:

      • wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

      Neste comando, a opção -q desliga a mensagem de atualização de status para o wget, e o -O apresenta o arquivo que você baixou no terminal. Essas duas opções garantem que apenas o conteúdo do arquivo baixado seja enviado por um pipeline para o apt-key.

      Em seguida, adicione o repositório do Grafana às suas fontes APT:

      • sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

      Recarregue seu cache APT para atualizar suas listas de pacotes:

      Agora, prossiga com a instalação:

      Assim que o Grafana for instalado, use o systemctl para iniciar o servidor Grafana:

      • sudo systemctl start grafana-server

      Em seguida, confirme se o Grafana está sendo executado verificando o status do serviço:

      • sudo systemctl status grafana-server

      Você receberá um resultado semelhante a este:

      Output

      ● grafana-server.service - Grafana instance Loaded: loaded (/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-21 08:08:10 UTC; 4s ago Docs: http://docs.grafana.org Main PID: 15982 (grafana-server) Tasks: 7 (limit: 1137) ...

      Este resultado contém informações sobre o processo do Grafana, incluindo seu status, o identificador de processo (PID) principal e muito mais. O active (running) mostra que o processo está funcionando corretamente.

      Por fim, habilite o serviço para iniciar automaticamente o Grafana na inicialização do sistema:

      • sudo systemctl enable grafana-server

      Você receberá o seguinte resultado:

      Output

      Synchronizing state of grafana-server.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable grafana-server Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.

      Isso confirma que o systemd criou os links simbólicos necessários para o início automático do Grafana.

      O Grafana agora está instalado e pronto para ser usado. Em seguida, você protegerá sua conexão com o Grafana com um proxy reverso e um certificado SSL.

      Passo 2 — Configurando o proxy reverso

      Usar um certificado SSL garantirá que seus dados estarão seguros criptografando a conexão em ambas a direções com o Grafana. Mas, para fazer uso desta conexão, primeiro será necessário reconfigurar o Nginx como um proxy reverso para o Grafana.

      Abra o arquivo de configuração do Nginx que você criou ao configurar o bloco de servidor do Nginx com o Let’s Encrypt nos pré-requisitos. Você pode usar qualquer editor de texto, mas para este tutorial usaremos o nano:

      • sudo nano /etc/nginx/sites-available/your_domain

      Localize o seguinte bloco:

      /etc/nginx/sites-available/your_domain

      ...
          location / {
              try_files $uri $uri/ =404;
          }
      ...
      

      Como você já configurou o Nginx para se comunicar através do SSL e porque o tráfego Web para seu servidor já passa pelo Nginx, basta dizer ao Nginx para encaminhar todos os pedidos para o Grafana, que funciona na porta 3000 por padrão.

      Excluia a linha try_files existente neste location block (bloco de localização) e substitua-a pela seguinte opção proxy_pass:

      /etc/nginx/sites-available/your_domain

      ...
          location / {
              proxy_pass http://localhost:3000;
          }
      ...
      

      Isso irá mapear o proxy para a porta apropriada. Depois de terminar, salve e feche o arquivo pressionando o CTRL+X, Y e então ENTER se estiver usando o nano.

      Agora, teste as novas configurações para garantir que tudo esteja configurado corretamente:

      Você receberá o seguinte resultado:

      Output

      nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

      Por fim, ative as alterações recarregando o Nginx:

      • sudo systemctl reload nginx

      Agora você pode acessar a tela de login padrão do Grafana direcionando seu navegador Web para https://your_domain. Se não conseguir chegar ao Grafana, verifique se o firewall está definido para permitir o tráfego na porta 443 e refaça as instruções anteriores.

      Com a conexão com o Grafana criptografada, implemente agora as medidas de segurança adicionais, começando com a alteração das credenciais administrativas padrão do Grafana.

      Passo 3 — Atualizando as credenciais

      Como cada instalação do Grafana usa as mesmas credenciais administrativas por padrão, é uma prática recomendada alterar suas informações de login o mais rápido possível. Neste passo, você irá atualizar as credenciais para melhorar a segurança.

      Comece navegando para https://your_domain no seu navegador Web. Isso irá abrir a tela de login padrão onde você verá o logotipo do Grafana, um formulário que lhe pede para digitar um Email or ursername (E-mail ou nome de usuário) e Password (Senha), um botão de Login e um link Forgot your password? (Esqueceu sua senha?).

      Login no Grafana

      Digite admin em ambos os campos Email ou nome de usuário e Senha e clique no botão de Login.

      Na próxima tela, você será solicitado a tornar sua conta mais segura alterando a senha padrão:

      Alterar a senha

      Digite a senha que você gostaria de começar a usar nos campos New password (nova senha) e Confirm new password (confirmar nova senha).

      A partir daqui, você pode clicar em Submit (Enviar) para salvar as novas informações ou pressionar Skip (Pular) para ir ao próximo passo. Caso pule essa etapa, será solicitado a alterar a senha da próxima vez que fizer login.

      Para aumentar a segurança da sua configuração do Grafana, clique em Enviar. Você será direcionado ao painel de Welcome to Grafana (Bem-vindo ao Grafana):

      Painel Home

      Agora você protegeu sua conta alterando as credenciais padrão. Em seguida, você fará alterações na sua configuração do Grafana para que ninguém possa criar uma nova conta do Grafana sem sua permissão.

      Passo 4 — Desativando as inscrições e o acesso anônimo no Grafana

      O Grafana oferece opções que permitem aos visitantes criar contas de usuário para si mesmos e visualizar painéis de visualização sem se registrar. Quando o Grafana não estiver acessível através da internet ou quando estiver funcionando com dados disponíveis publicamente como o status de serviço, pode ser interessante permitir essas características. No entanto, ao usar o Grafana online para trabalhar com dados confidenciais, o acesso anônimo pode ser um problema de segurança. Para corrigir este problema, faça algumas alterações na sua configuração do Grafana.

      Comece abrindo o arquivo de configuração principal do Grafana para edição:

      • sudo nano /etc/grafana/grafana.ini

      Localize a seguinte diretiva allow_sign_up no cabeçalho [users]:

      /etc/grafana/grafana.ini

      ...
      [users]
      # disable user signup / registration
      ;allow_sign_up = true
      ...
      

      Ativar esta diretiva com true adiciona um botão de Sign Up (Registrar-se) na tela de login, permitindo que os usuários se registrem e acessem o Grafana.

      Desativar esta diretiva com o false remove o botão de Registrar-se e fortalece a segurança e privacidade do Grafana.

      Descomente essa diretiva removendo o ; no início da linha e definindo a opção como false:

      /etc/grafana/grafana.ini

      ...
      [users]
      # disable user signup / registration
      allow_sign_up = false
      ...
      

      Em seguida, localize a diretiva enabled a seguir no cabeçalho [auth.anonymous]:

      /etc/grafana/grafana.ini

      ...
      [auth.anonymous]
      # enable anonymous access
      ;enabled = false
      ...
      

      Definir enabled como true dá acesso a usuários não registrados aos seus dashboards; definindo essa opção como false limita o acesso ao painel apenas a usuários registrados.

      Descomente essa diretiva removendo o ; no início da linha e definindo a opção como false.

      /etc/grafana/grafana.ini

      ...
      [auth.anonymous]
      # enable anonymous access
      enabled = false
      ...
      

      Salve o arquivo e saia do seu editor de texto.

      Para ativar as mudanças, reinicie o Grafana:

      • sudo systemctl restart grafana-server

      Confirme se tudo está funcionando verificando o status de serviço do Grafana:

      • sudo systemctl status grafana-server

      Assim como antes, o resultado irá informar que o Grafana está active (running).

      Agora, direcione seu navegador Web para https://your_domain. Para retornar à tela de Registrar-se, leve seu cursor para seu avatar na parte inferior esquerda da tela e clique na opção de Sign out (Sair) que aparece.

      Depois de sair, verifique se não há nenhum botão de Registrar-se e se você não consegue entrar sem inserir as credenciais de login.

      Neste momento, o Grafana está totalmente configurado e pronto para ser usado. Em seguida, você pode simplificar o processo de login para sua organização autenticando-se através do GitHub.

      (Opcional) Passo 5 — Configurando um aplicativo OAuth do GitHub

      Para uma abordagem alternativa para se registrar, configure o Grafana para se autenticar através do GitHub, que fornece acesso de login a todos os membros das organizações autorizadas do GitHub. Isso pode ser particularmente útil quando você quiser permitir que vários desenvolvedores colaborem e acessem métricas sem ter que criar credenciais específicas do Grafana.

      Comece entrando em uma conta do GitHub associada à sua organização e navegue até sua página de perfil do GitHub em https://github.com/settings/profile.

      Mude o contexto das configurações clicando em seu nome no lado esquerdo da tela e selecione sua organização no menu suspenso. Isso irá mudar o contexto de Personal settings (Configurações pessoais) para as Organization settings (Configurações organizacionais).

      Na próxima tela, você verá seu Organization profile (Perfil da organização) onde você pode alterar as configurações como seu Organization display name (Nome de exibição da organização), Email e URL da organização.

      Como o Grafana usa o OAuth – um padrão aberto para conceder a terceiros acesso remoto a recursos locais e resources – para autenticar usuários através do GitHub, você precisará criar um novo aplicativo do OAuth dentro do GitHub.

      Clique no link OAuth Apps em Developer settings (Configurações de desenvolvedor) no lado esquerdo inferior da tela.

      Se você ainda não tiver nenhum aplicativo OAuth associado à sua organização no GitHub, você será informado que No Organization Owned Applications (Nenhum aplicativo de propriedade da organização). Caso contrário, você verá uma lista dos aplicativos OAuth já conectados à sua conta.

      Clique no botão New OAuth App para continuar.

      Na próxima tela, preencha os seguintes detalhes sobre sua instalação do Grafana:

      • Application name – Isso ajuda você a distinguir seus diferentes aplicativos do OAuth um do outro.
      • Homepage URL – Isso diz ao GitHub onde encontrar o Grafana. Digite https://your_domain neste campo, substituindo your_domain pelo seu domínio.
      • Application Description – Isso fornece uma descrição do propósito do seu aplicativo OAuth.
      • Application callback URL – Este é o endereço onde os usuários serão enviados uma vez que forem autenticados com sucesso. Para o Grafana, este campo deve ser definido como https://your_domain/login/github.

      Tenha em mente que os usuários do Grafana logando através do GitHub verão os valores que você digitou nos primeiros três campos anteriores, então não se esqueça de inserir algo significativo e adequado.

      Quando concluído, o formulário vai ficar parecido com este:

      Registro do aplicativo OAuth do GitHub

      Clique no botão verde Register application (Registrar aplicativo).

      Agora você será redirecionado para uma página que contém Client ID e o Client Secret associados com seu novo aplicativo do OAuth. Observe ambos os valores, pois você precisará adicioná-los ao arquivo de configuração principal do Grafana para completar a configuração.

      Aviso: certifique-se de manter seu Client ID e seu Client Secret em uma localização segura e não pública, pois eles podem ser usados como base para um ataque.

      Com seu aplicativo OAuth do GitHub criado, você está pronto para reconfigurar o Grafana para usar o GitHub para autenticação.

      (Opcional) Passo 6 — Configurando o Grafana como um aplicativo do OAuth do GitHub

      Para completar a autenticação do GitHub para sua configuração do Grafana, você fará agora algumas alterações em seus arquivos de configuração do Grafana.

      Para começar, abra o arquivo de configuração principal do Grafana.

      • sudo nano /etc/grafana/grafana.ini

      Localize o cabeçalho [auth.github] e descomente esta seção removendo o ; no início de cada linha, exceto o ;allowed_domains = e ;team_ids =, que não serão alterados neste tutorial.

      Em seguida, faça as seguintes alterações:

      • Defina enabled e allow_sign_up como true. Isso habilita a Autenticação via GitHub e permite que membros da organização autorizada criem suas próprias contas. Observe que essa configuração é diferente da propriedade allow_sign_up em [users] que você mudou Passo 4.
      • Defina client_id e client_secret para os valores que você recebeu enquanto criava seu aplicativo OAuth do GitHub.
      • Defina allowed_organizations para o nome da sua organização para garantir que apenas membros da sua organização possam se inscrever e fazer login no Grafana.

      A configuração completa vai ficar assim:

      /etc/grafana/grafana.ini

      ...
      [auth.github]
      enabled = true
      allow_sign_up = true
      client_id = your_client_id_from_github
      client_secret = your_client_secret_from_github
      scopes = user:email,read:org
      auth_url = https://github.com/login/oauth/authorize
      token_url = https://github.com/login/oauth/access_token
      api_url = https://api.github.com/user
      ;allowed_domains =
      ;team_ids =
      allowed_organizations = your_organization_name
      ...
      

      Agora, você informou ao Grafana tudo o que ele precisa saber sobre o GitHub. Para completar a configuração, será necessário ativar os redirecionamentos por trás de um proxy reverso. Isso é feito definindo um valor root_url no cabeçalho [server].

      /etc/grafana/grafana.ini

      ...
      [server]
      root_url = https://your_domain
      ...
      

      Salve suas alterações e feche o arquivo.

      Então, reinicie o Grafana para ativar as mudanças:

      • sudo systemctl restart grafana-server

      Por fim, verifique se o serviço está funcionando.

      • sudo systemctl status grafana-server

      O resultado indicará que o serviço está active(running).

      Agora, teste seu novo sistema de autenticação navegando para https://your_domain. Se você já estiver conectado ao Grafana, passe seu mouse sobre o log do avatar no canto inferior esquerdo da tela. Em seguida, clique em Sair no menu secundário que aparece próximo ao seu nome.

      Na página de login, você verá uma nova seção no botão de Login original que inclui um botão Sign in with GitHub (Registrar-se com o GitHub) com a logotipo do GitHub.

      Página de login do Grafana com o GitHub

      Clique no botão Registrar-se com o GitHub para ser redirecionado ao GitHub, onde você irá iniciar sessão em sua conta do GitHub e confirmar sua intenção de Authorize Grafana (Autorizar o Grafana).

      Clique no botão verde Authorize your_github_organization.

      Nota: certifique-se de que sua conta do GitHub é um membro de sua organização aprovada e que seu endereço de e-mail do Grafana corresponde ao seu endereço de e-mail do GitHub. Se tentar autenticar-se com uma conta do GitHub que não seja membro de sua organização aprovada, você receberá uma mensagem Login Failed (Falha no login) informando User not a member of one of the required organizations (Usuário não membro de uma das organizações necessárias).

      Agora, você será conectado com sua conta do Grafana existente. Se uma conta do Grafana ainda não existir para o usuário que você fez login, o Grafana criará uma nova conta de usuário com permissões de Viewer, garantindo que novos usuários só podem usar os painéis existentes.

      Para alterar as permissões padrão para novos usuários, abra o arquivo de configuração principal do Grafana para edição.

      • sudo nano /etc/grafana/grafana.ini

      Localize a diretiva auto_assign_org_role no cabeçalho [users] e descomente a configuração removendo o ; no início da linha.

      Defina a diretiva como um dos seguintes valores:

      • Viewer — só pode usar os painéis existentes
      • Editor — pode usar, modificar e adicionar painéis
      • Admin — tem permissão para fazer tudo

      Este tutorial irá definir a atribuição automática como Viewer:

      /etc/grafana/grafana.ini

      ...
      [users]
      ...
      auto_assign_org_role = Viewer
      ...
      

      Depois de salvar suas alterações, feche o arquivo e reinicie o Grafana:

      • sudo systemctl restart grafana-server

      Verifique o status do serviço:

      • sudo systemctl status grafana-server

      Assim como antes, o status será active (running).

      Neste momento, você configurou totalmente o Grafana para permitir que membros da sua organização do GitHub se registrem e usem sua instalação do Grafana.

      Conclusão

      Neste tutorial você instalou, configurou e protegeu o Grafana. Além disso, você também aprendeu como permitir que membros da sua organização se autentiquem através do GitHub.

      Para ampliar sua atual instalação do Grafana, consulte a lista de painéis e plugins oficiais e da comunidade. Para aprender mais sobre como usar o Grafana em geral, consulte a documentação oficial do Grafana ou confira nossos outros tutoriais de monitoramento.



      Source link

      Cómo proteger Nginx con Let´s Encrypt en Ubuntu 20.04


      Introducción

      Let’s Encrypt es una entidad de certificación (CA) que proporciona una manera sencilla de obtener e instalar certificados de TLS/SSL gratuitos, lo que permite usar HTTPS cifrado en servidores web. Simplifica el proceso al proporcionar un cliente de software, Certbot, que intenta automatizar la mayoría (cuando no todos) de los pasos requeridos. Actualmente, todo el proceso de obtención e instalación de un certificado está totalmente automatizado en Apache y Nginx.

      En este tutorial, usará Certbot para obtener un certificado SSL gratuito para Nginx en Ubuntu 20.04 y configurará su certificado para que se renueve automáticamente.

      Este tutorial usará un archivo de configuración del servidor Nginx en vez del archivo predeterminado. Recomendamos crear nuevos archivos de bloque de servidor Nginx para cada dominio porque ayuda a evitar errores comunes y mantiene los archivos predeterminados como configuración de reserva.

      Requisitos previos

      Para este tutorial, necesitará lo siguiente:

      • Un servidor de Ubuntu 20.04 configurado conforme a este tutorial de configuración inicial del servidor para Ubuntu 20.04, incluyendo un usuario sudo no root y un firewall.

      • Un nombre de dominio registrado. En este tutorial, se utilizará example.com en todo momento. Puede adquirir un nombre de dominio en Namecheap, obtener uno gratuito en Freenom o utilizar un registrador de dominios de su elección.

      • Los dos registros DNS que se indican a continuación se configuraron para su servidor. Si está usando DigitalOcean, consulte nuestra documentación DNS para obtener más información sobre cómo añadirlos.

        • Un registro A con example.com​​​ orientado a la dirección IP pública de su servidor.
        • Un registro A con example.com​​​ ​​orientado a la dirección IP pública de su servidor.
      • Nginx instalado conforme a Cómo instalar Apache en Ubuntu 20.04. Asegúrese de tener un bloque server para su dominio. En este tutorial, utilizará /etc/nginx/sites-available/example como ejemplo.

      Paso 1: Instalar Certbot

      El primer paso para utilizar Let’s Encrypt para obtener un certificado SSL es instalar el software Certbot en su servidor.

      Instalar Certbot y su complemento de Nginx con apt:

      • sudo apt install certbot python3-certbot-nginx

      Certbot estará listo para utilizarse, pero para que configure SSL automáticamente para Nginx debemos verificar parte de la configuración de Nginx.

      Paso 2: Confirmar la configuración de Nginx

      Certbot debe poder encontrar el bloque server correcto en su configuración de Nginx para que pueda configurar SSL automáticamente. De forma específica, lo hace buscando una directiva server_name que coincida con el dominio para el que está solicitando el certificado.

      Si siguió el paso de configuración del bloque server en el tutorial de instalación de Nginx, debería tener un bloque server para su dominio en /etc/nginx/sites-available/example.com con la directiva server_name configurada de forma apropiada.

      Para comprobarlo, abra el archivo de configuración para su dominio usando nano o su editor de texto favorito:

      • sudo nano /etc/nginx/sites-available/example.com

      Encuentre la línea server_name existente. Debería tener el siguiente aspecto:

      /etc/nginx/sites-available/example.com

      ...
      server_name example.com www.example.com;
      ...
      

      Si esto sucede, salga de su editor y continúe con el paso siguiente.

      De lo contrario, actualícelo para que coincida. A continuación, guarde el archivo, cierre el editor y verifique la sintaxis de las modificaciones de la configuración:

      Si obtiene un error, vuelva a abrir el archivo del bloque server y compruebe si hay algún error ortográfico o faltan caracteres. Una vez que la sintaxis de su archivo de configuración sea correcta, vuelva a abrir Nginx para cargar la configuración nueva:

      • sudo systemctl reload nginx

      Ahora, Certbot podrá encontrar el bloque server correcto y actualizarlo automáticamente.

      A continuación, actualizaremos el firewall para permitir el tráfico de HTTPS.

      Paso 3: Habilitar HTTPS a través del firewall

      Si tiene habilitado el firewall de ufw, como se recomienda en las guías de los requisitos previos, deberá ajustar la configuración para permitir el tráfico de HTTPS. Afortunadamente, Nginx registra algunos perfiles con ufw después de la instalación.

      Puede ver la configuración actual escribiendo lo siguiente:

      Probablemente tendrá este aspecto, lo cual significa que solo se permite el tráfico de HTTP al servidor web:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

      Para permitir de forma adicional el tráfico de HTTPS, habilite el perfil de Nginx Full y elimine el permiso de perfil redundante HTTP de Nginx.

      • sudo ufw allow 'Nginx Full'
      • sudo ufw delete allow 'Nginx HTTP'

      Ahora, su estado debería tener el siguiente aspecto:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6)

      A continuación, ejecutaremos Certbot y buscaremos nuestros certificados.

      Paso 4: Obtener un certificado SSL

      Certbot ofrece varias alternativas para obtener certificados SSL a través de complementos. El complemento de Nginx se encargará de reconfigurar Nginx y volver a cargar la configuración cuando sea necesario. Para utilizar este complemento, escriba lo siguiente:

      • sudo certbot --nginx -d example.com -d www.example.com

      Esto ejecuta certbot con el complemento --nginx, usando -d para especificar los nombres de dominio para los que queremos que el certificado sea válido.

      Si es la primera vez que ejecuta certbot, se le pedirá que ingrese una dirección de correo electrónico y que acepte las condiciones de servicio. Después de esto, certbot se comunicará con el servidor de Let’s Encrypt y realizará una comprobación a fin de verificar que usted controle el dominio para el cual solicite un certificado.

      Si la comprobación se realiza correctamente, certbot le preguntará cómo desea configurar sus ajustes de HTTPS:

      Output

      Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

      Seleccione su elección y luego ENTER. La configuración se actualizará y Nginx se volverá a cargar para aplicar los ajustes nuevos. certbot concluirá con un mensaje que le indicará que el proceso tuvo éxito e indicará la ubicación de almacenamiento de sus certificados:

      Output

      IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2020-08-18. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

      Así, sus certificados se quedarán descargados, instalados y cargados. Intente volver a cargar su sitio web utilizando https:// y observe el indicador de seguridad de su navegador. Debería indicar que el sitio cuenta con la protección correcta, en general, con un ícono de un candado. Si prueba su servidor utilizando SSL Labs Server Test, obtendrá una calificación A.

      Terminaremos con una prueba del proceso de renovación.

      Paso 5: Verificar la renovación automática de Certbot

      Los certificados de Let’s Encrypt son válidos únicamente por noventa días. El propósito de esto es incentivar a los usuarios a automatizar sus procesos de renovación de certificados. El paquete certbot que instalamos se ocupa de esto por nosotros añadiendo un temporizador systemd que se ejecutará dos veces al día y renovará automáticamente cualquier certificado que vaya a vencer en los próximos 30 días.

      Puede consultar el estado del temporizador con systemctl:

      • sudo systemctl status certbot.timer

      Output

      ● certbot.timer - Run certbot twice daily Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled) Active: active (waiting) since Mon 2020-05-04 20:04:36 UTC; 2 weeks 1 days ago Trigger: Thu 2020-05-21 05:22:32 UTC; 9h left Triggers: ● certbot.service

      Para probar el proceso de renovación, puede hacer un simulacro con certbot:

      • sudo certbot renew --dry-run

      Si no ve errores, estará listo. Cuando sea necesario, Certbot renovará sus certificados y volverá a cargar Nginx para registrar los cambios. Si el proceso de renovación automática falla, Let’s Encrypt enviará un mensaje a la dirección de correo electrónico que especificó en el que se le advertirá cuándo se aproxime la fecha de vencimiento de sus certificados.

      Conclusión

      En este tutorial, instaló el certbot del cliente Let’s Encrypt, descargó certificados SSL para su dominio, configuró Nginx para utilizarlos y definió la renovación automática de certificados. Si tiene preguntas adicionales sobre la utilización de Certbot, la documentación oficial es un buen punto de partida.



      Source link