| | |
| | | ProxyRequests Off |
| | | |
| | | # ProxyPass [Quelle] [Ziel] (auf Port achten) => Weiterleitung |
| | | ProxyPass / http://127.0.0.1:9000 |
| | | ProxyPass / http://127.0.0.1:9000/ |
| | | |
| | | # ProxyPassReverse [Quelle] [Ziel] (auf Port achten) => URL-Rewrite bei Redirects |
| | | ProxyPassReverse / http://127.0.0.1:9000 |
| | | ProxyPassReverse / http://127.0.0.1:9000/ |
| | | </code> |
| | | </pre> |
| | | <p>Apache neu starten, um die Änderungen am vhost zu übernehmen</p> |
| | |
| | | </pre> |
| | | <p>Anschließend sollte die NodeJS-Anwendung unter der bereits bekannten Domain erreichbar sein.</p> |
| | | </section> |
| | | <section> |
| | | <h3>Wireshark</h3> |
| | | </section> |
| | | <section> |
| | | <p>Aufgabe</p> |
| | | <p>Installiere Wireshark und starte anschließend einen Paket-Mitschnitt auf dem WLAN-Adapter. Setze den Filter oben auf "<code>ip.dst == 123.123.123.123</code>" (IP eurer virtuellen Maschine eintragen), |
| | | besuche die in der VM eingerichtete Webseite in einem Browser und beobachte den Datenverkehr in Wireshark</p> |
| | | </section> |
| | | <section> |
| | | <h3>Aktivierung von HTTPS</h3> |
| | | </section> |
| | | <section> |
| | | <p>SSL-Zertifikat erstellen</p> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes -out cert.pem -keyout key.pem |
| | | </code> |
| | | </pre> |
| | | <p>Anschließend die Fragen beantworten.</p> |
| | | <p>Die eigentliche Domain für das Zertifikat ist bei "CN" (Common Name) einzutragen</p> |
| | | </section> |
| | | <section> |
| | | <p>Aktivierung des entsprechenden Apache-Moduls:</p> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | sudo a2enmod ssl |
| | | </code> |
| | | </pre> |
| | | <p>Leserechte für den Rest der Welt an den Zertifikatsdateien setzen</p> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | chmod +r cert.pem key.pem |
| | | </code> |
| | | </pre> |
| | | </section> |
| | | <section> |
| | | <p>Anpassung / Erstellung vhost in <code>sites-available</code></p> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | sudo cp example.conf example-ssl.conf |
| | | </code> |
| | | </pre> |
| | | <p>Den vhost für HTTP / Port 80 so konfigurieren, dass dieser nach HTTPS / Port 443 weiterleitet:</p> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | # example.conf |
| | | # Sämtliche Proxy-Direktiven und andere Inhalt |
| | | # dienende Direktiven auskommentieren: |
| | | #ProxyPass ... |
| | | #ProxyPassReverse ... |
| | | |
| | | # hinzufügen (auf Ziel-Domäne achten) |
| | | Redirect Permanent / https://example.com |
| | | </code> |
| | | </pre> |
| | | </section> |
| | | <section> |
| | | <p>Den vhost für HTTPS / Port 443 anpassen</p> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | # example-ssl.conf |
| | | # Port anpassen |
| | | <VirtualHost *:443> |
| | | |
| | | # hinzufügen (auf korrekte Pfade achten) |
| | | SSLEngine on |
| | | SSLCertificateFile "/.../cert.pem" |
| | | SSLCertificateKeyFile "/.../key.pem" |
| | | </code> |
| | | </pre> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | # neuen vhost für SSL aktivieren: |
| | | sudo a2ensite example-ssl.conf |
| | | </code> |
| | | </pre> |
| | | <p>Anschließend den Apache neu starten:</p> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | sudo systemctl restart apache2 |
| | | </code> |
| | | </pre> |
| | | </section> |
| | | <section> |
| | | <p>Aufgabe</p> |
| | | <p>Inspiziere erneut den Datenverkehr zwischen eurem Browser und dem Server mittels Wireshark. Was fällt auf?</p> |
| | | </section> |
| | | <section> |
| | | <p>Datenverkehr eines Browser in Wireshark sichtbar machen:</p> |
| | | <p>CMD öffnen:</p> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | REM Umgebungsvariable setzen: |
| | | set SSLKEYLOGFILE=%USERPROFILE%\Desktop\sslkey.log |
| | | REM Beliebigen Browser per Konsole starten (Ordner nach Bedarf vorher wechseln): |
| | | chromium.exe |
| | | REM oder |
| | | firefox.exe |
| | | </code> |
| | | </pre> |
| | | <p>Die TLS-Schlüssel werden nun vom Browser in der festgeleten Datei geloggt</p> |
| | | </section> |
| | | <section> |
| | | <p>Eben angegebene Datei in Wireshark einstellen:</p> |
| | | <p>Bearbeiten > Einstellungen > Protocols > TLS > (Pre)-Master-Secret log filename</p> |
| | | </section> |
| | | <section> |
| | | Einrichtung eines Datenbank-Servers (Beispiel MongoDB) |
| | | </section> |
| | | <section> |
| | | <p>Datenbank installieren:</p> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | # Paketquellen aktualisieren |
| | | sudo apt update |
| | | |
| | | # Tools installieren |
| | | sudo apt install gnupg curl |
| | | |
| | | # GPG-Signatur herunterladen und importieren |
| | | curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \ |
| | | sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \ |
| | | --dearmor |
| | | </code> |
| | | </pre> |
| | | </section> |
| | | <section> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | # URL den Paketquellen hinzufügen |
| | | echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | \ |
| | | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list |
| | | |
| | | # Paketquellen aktualisieren |
| | | sudo apt update |
| | | |
| | | # MongoDB installieren |
| | | sudo apt install mongodb-org |
| | | </code> |
| | | </pre> |
| | | </section> |
| | | <section> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | # systemd neuladen |
| | | sudo systemctl daemon-reload |
| | | |
| | | # Autostart aktivieren |
| | | sudo systemctl enable mongod |
| | | |
| | | # Dienst starten |
| | | sudo systemctl start mongod.service |
| | | </code> |
| | | </pre> |
| | | </section> |
| | | <section> |
| | | <p>Der Server sollte nun erreichbar sein:</p> |
| | | <pre> |
| | | <code class="bash" data-trim data-line-numbers> |
| | | mongosh |
| | | </code> |
| | | </pre> |
| | | </section> |
| | | </section> |
| | | </div> |
| | | </div> |