Como Configurar o Jupyter Notebook no Ubuntu para Atender a Todos os IPs, Usar Senha e HTTPS com Segurança

Configurar o Jupyter Notebook de forma segura no Ubuntu é essencial, especialmente se você pretende acessá-lo remotamente. Neste artigo, vamos ajustar o Jupyter para responder a todos os IPs, proteger com senha, e habilitar HTTPS.

Passo 1: Instalar o Jupyter Notebook

Caso ainda não tenha o Jupyter Notebook instalado, você pode instalá-lo com:

sudo apt update
sudo apt install python3-pip
pip3 install jupyter

Passo 2: Gerar o Arquivo de Configuração

Gere o arquivo de configuração do Jupyter executando:

jupyter server --generate-config

O arquivo jupyter_server_config.py será gerado no diretório ~/.jupyter/.

Passo 3: Configurar o Jupyter para Atender a Todos os IPs

Edite o arquivo ~/.jupyter/jupyter_server_config.py:

nano ~/.jupyter/jupyter_server_config.py

Adicione ou edite as seguintes linhas:

c.ServerApp.ip = '0.0.0.0'  # Permite conexões de todos os endereços IP
c.ServerApp.port = 8888  # Porta de acesso ao servidor
c.ServerApp.open_browser = False  # Impede que o navegador abra automaticamente

Configurar c.ServerApp.ip = '0.0.0.0' permite que o servidor atenda a todas as interfaces de rede.

Passo 4: Configurar uma Senha Segura

É fundamental proteger o Jupyter Notebook com uma senha. Para configurar a senha, siga os passos abaixo:

  1. No terminal Python, gere o hash da senha com o comando:
   from jupyter_server.auth import passwd
   passwd()
  1. Insira a senha desejada e confirme. Isso gerará um hash seguro.
  2. No arquivo jupyter_server_config.py, adicione o hash gerado:
   c.ServerApp.password = 'sha1:seu_hash_aqui'

Dica: Utilize senhas fortes e evite palavras de fácil adivinhação.

Passo 5: Configurar HTTPS para Comunicação Segura

Habilitar HTTPS é crucial para evitar que dados sejam transmitidos sem criptografia. Você pode gerar um certificado SSL utilizando o OpenSSL:

  1. Crie um certificado autoassinado com o comando:
   openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem
  1. No arquivo jupyter_server_config.py, configure os caminhos para o certificado e a chave:
   c.ServerApp.certfile = u'/caminho/para/mycert.pem'
   c.ServerApp.keyfile = u'/caminho/para/mykey.key'

Utilizar um certificado autoassinado é prático para testes, mas para um ambiente de produção, considere usar um certificado de uma autoridade confiável.

Passo 6: Executar o Jupyter Notebook com Segurança

Depois de todas as configurações, execute o Jupyter Server:

jupyter server

Acesse o Jupyter Notebook através do link https://<seu_ip>:8888 e utilize a senha configurada.

Considerações de Segurança

  1. Firewall: Configure seu firewall (como ufw) para permitir conexões na porta configurada para o Jupyter Notebook:
   sudo ufw allow 8888
  1. Logs e Monitoramento: Ative o monitoramento dos acessos e mantenha os logs para detectar possíveis acessos não autorizados.
  2. Atualizações: Mantenha o Jupyter e seus pacotes atualizados para garantir que você esteja utilizando as versões mais seguras.

Conclusão

Configurar o Jupyter Notebook no Ubuntu de forma segura é fundamental para garantir que suas operações remotas sejam protegidas contra acessos indesejados. A implementação de senha e HTTPS é um passo importante para a segurança, especialmente em ambientes abertos ou na nuvem.

Edvaldo Guimrães Filho Avatar

Published by

Categories: ,

Leave a comment