2017-02-14 6 views
2

Jupyter erlaubt nur den Zugriff von localhost, wenn ich nicht eine Menge zusätzlicher Sicherheitsausrüstung mache. Ich führe meinen Server so aus, dass er nur in einem lokalen Netzwerk zugänglich ist, in dem jeder mit Zugriff in Bezug auf die Vertrauenswürdigkeit zu localhost gleich ist. Wie richte ich einen Jupyter-Notebook-Server ohne zusätzliche Sicherheitsfunktionen ein?Wie erstellt man einen unsicheren Jupyter-Server

Antwort

6

Basierend auf Ihre Frage, ich erwarte, dass Sie diese Konfiguration wollen (in ~/.jupyter/jupyter_notebook_config.py):

c.NotebookApp.ip = '0.0.0.0' # listen on all IPs 
c.NotebookApp.token = ''  # disable authentication 

Es gibt ein paar Sicherheitsfunktionen in Jupyter sind (Stand 4.3.1). Ich gehe über, wie jeder zu deaktivieren, und ob/wann es sinnvoll, sie zu deaktivieren macht:

  1. Es nur auf localhost hört. Dies kann auf alle öffentlichen IP-Adressen geändert werden:

    c.NotebookApp.ip = '0.0.0.0' 
    

    Zuhören auf dem öffentlichen IP-Adressen im Allgemeinen mit der Aktivierung von HTTPS und/oder Passwort oder Token-Authentifizierung (docs) kommen sollten. Wenn es intern in einem vertrauenswürdigen Netzwerk ist, in dem nichts Schlimmes passiert, können Sie weitere Sicherheitsfunktionen deaktivieren:

  2. Die Token-Authentifizierung ist standardmäßig aktiviert. Um es zu deaktivieren:

    Deaktivieren der Authentifizierung bedeutet, dass jeder mit Zugriff auf den Host Code ausführen kann. Es scheint so, als ob du das willst. Sie können auch enable a password:

    In [1]: from notebook.auth import passwd 
    In [2]: passwd() 
    Enter password: 
    Verify password: 
    Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed' 
    

    du in c.NotebookApp.password speichern kann.

  3. Jupyter hat auch CORS Schutz, um zu verhindern, dass andere Websites auf diesen Server zugreifen können. Das heißt, wenn ein Benutzer in Ihrem Netzwerk example.com besucht, kann JavaScript auf dieser Seite keinen Code auf Ihrem Notebook-Server ausführen. Es klingt wie Sie tun nicht wollen, dass diese berühren, aber wenn Sie einen Dienst ausführen, der das Notebook-Server zugreifen können sollten, können Sie es hinzufügen:

    c.NotebookApp.allow_origin = 'https://your.other.host' 
    
  4. Schließlich Jupyter 4.3. 1 führt ein xsrf-Token ein, das Teil der oben genannten Kategorie der Cross-Site-Ausführung ist. Sie nicht müssen dies berühren, wenn Benutzer nur auf den Server direkt zugreifen, anstatt über Javascript auf zusätzlichen Websites.

    c.NotebookApp.disable_check_xsrf = True 
    

A völlig unsicher Notebook-Server, die man zu sagen ist, wo jeder Website-Code darauf laufen kann, solange ein Browser zu seinem Host verbinden kann (dies würde localhost oder LAN gehören, wenn der Browser läuft aus dem Inneren des LAN):

c.NotebookApp.ip = '0.0.0.0' # listen on all IPs 
c.NotebookApp.token = ''  # disable authentication 
c.NotebookApp.allow_origin = '*' # allow access from anywhere 
c.NotebookApp.disable_check_xsrf = True # allow cross-site requests 

Diese wünschenswert sein könnte, wenn Sie aber wollen, um Rechenressourcen frei für die Welt machen verwenden sie über das Notebook API möchten.

+1

In der Tat, ich brauchte nur 1) und 2), aber das ist eine wunderbare Erklärung der Jupyter Notebook Sicherheitsfunktionen. Vielen Dank! – Scott

Verwandte Themen