![]() |
WSL Debian 12.9 + MariaDB + PHP 8.3 + OpenSSH + Nginx (Dev-Umgebung) - Druckversion +- Team IT Security Kid2elite (https://forum.tsecurity.de) +-- Forum: Technisches (https://forum.tsecurity.de/forumdisplay.php?fid=5) +--- Forum: Programmieren (https://forum.tsecurity.de/forumdisplay.php?fid=18) +--- Thema: WSL Debian 12.9 + MariaDB + PHP 8.3 + OpenSSH + Nginx (Dev-Umgebung) (/showthread.php?tid=93) |
WSL Debian 12.9 + MariaDB + PHP 8.3 + OpenSSH + Nginx (Dev-Umgebung) - lakandor - 05.03.2025 1. WSL2 mit Debian 12.9 installieren 1.1 WSL2 aktivieren (falls noch nicht geschehen) Öffne die PowerShell als Administrator und führe die folgenden Befehle aus: wsl --install Falls WSL bereits installiert ist, stelle sicher, dass die neueste Version von WSL2 verwendet wird: wsl --update wsl --set-default-version 2 1.2 Debian 12.9 installieren Lade Debian über den Microsoft Store oder installiere es direkt per PowerShell: wsl --install -d Debian Nach der Installation öffne Debian und erstelle einen Benutzer mit Passwort. 2. System aktualisieren und benötigte Pakete installieren Führe folgende Befehle im Debian-Terminal aus: sudo apt update && sudo apt upgrade -y sudo apt install curl wget unzip nano gnupg2 ca-certificates lsb-release -y 3. NGINX installieren und konfigurieren 3.1 NGINX installieren sudo apt install nginx -y 3.2 Virtual Host für shopste.com einrichten Erstelle die Konfigurationsdatei: sudo nano /etc/nginx/sites-available/shopste.com Füge folgendes hinzu: server { listen 80; server_name shopste.com www.shopste.com; root /var/www/shopste.com; index index.html index.php; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.3-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } Speichern und schließen: → Strg + X, dann Y und Enter 3.3 Verzeichnis für die Webseite erstellen sudo mkdir -p /var/www/shopste.com sudo chown -R www-data:www-data /var/www/shopste.com sudo chmod -R 755 /var/www/shopste.com 3.4 Konfiguration aktivieren und NGINX neu starten sudo ln -s /etc/nginx/sites-available/shopste.com /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx 4. MariaDB 11.5 installieren 4.1 MariaDB Repository hinzufügen sudo apt install software-properties-common -y sudo add-apt-repository 'deb [arch=amd64] http://ftp.hosteurope.de/mirror/mariadb.org/repo/11.5/debian bookworm main' MariaDB GPG-Schlüssel hinzufügen: sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' 4.2 MariaDB installieren sudo apt update sudo apt install mariadb-server mariadb-client -y 4.3 MariaDB sichern (optional aber empfohlen) sudo mysql_secure_installation Folge den Anweisungen: Setze ein starkes Root-Passwort Entferne anonyme Benutzer Deaktiviere Root-Login von außen Lösche die Test-Datenbank Lade die Änderungen neu 4.4 Datenbank für shopste.com erstellen Starte die MariaDB-Konsole: sudo mysql -u root -p Führe folgende SQL-Befehle aus (ersetze DEIN_PASSWORT mit einem sicheren Passwort): CREATE DATABASE shopste_db; CREATE USER 'shopste_user'@'localhost' IDENTIFIED BY 'DEIN_PASSWORT'; GRANT ALL PRIVILEGES ON shopste_db.* TO 'shopste_user'@'localhost'; FLUSH PRIVILEGES; EXIT; 5. PHP 8.3 installieren 5.1 PHP 8.3 Repository hinzufügen sudo apt install -y apt-transport-https lsb-release ca-certificates curl sudo curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x 5.2 PHP 8.3 und benötigte Module installieren sudo apt update sudo apt install php8.3 php8.3-fpm php8.3-mysql php8.3-cli php8.3-curl php8.3-mbstring php8.3-xml php8.3-zip -y 5.3 PHP-Dienst neu starten sudo systemctl restart php8.3-fpm 6. Testen 6.1 Test-HTML-Datei erstellen echo "<h1>shopste.com ist online!</h1>" | sudo tee /var/www/shopste.com/index.html 6.2 Falls PHP benötigt wird, erstelle eine PHP-Testdatei echo "<?php phpinfo(); ?>" | sudo tee /var/www/shopste.com/info.php 6.3 NGINX neu starten sudo systemctl restart nginx 6.4 Testen im Browser Öffne in Windows den Browser und rufe auf: http://localhost/info.php http://localhost/ Falls du WSL2 mit einer eigenen Domain testen möchtest, füge die IP von WSL2 zu C:\Windows\System32\drivers\etc\hosts hinzu: 127.0.0.1 shopste.com www.shopste.com Jetzt kannst du im Browser http://shopste.com aufrufen. 7. Automatischer Start von Diensten sicherstellen Damit NGINX und MariaDB beim Start von WSL2 automatisch starten: sudo systemctl enable nginx sudo systemctl enable mariadb sudo systemctl enable php8.3-fpm Damit ist Debian 12.9 mit PHP 8.3, NGINX (Virtual Hosting für shopste.com) und MariaDB 11.5 unter WSL2 eingerichtet. ? Hier ist eine Anleitung zur Installation und Konfiguration von OpenSSH-Server unter WSL2 mit Debian 12.9. 1. OpenSSH-Server installieren Öffne das WSL2-Terminal (Debian) und führe aus: sudo apt update && sudo apt install openssh-server -y 2. OpenSSH-Server konfigurieren Öffne die Konfigurationsdatei mit nano: sudo nano /etc/ssh/sshd_config Wichtige Einstellungen anpassen: Ändere bzw. prüfe folgende Zeilen (falls nicht vorhanden, hinzufügen oder anpassen): Port 22 # Oder einen anderen Port (z. B. 2222) AddressFamily inet # IPv4 erzwingen (optional) PermitRootLogin no # Root-Login verbieten PasswordAuthentication yes # Passwort-Login erlauben (falls gewünscht) PubkeyAuthentication yes # Schlüssel-Login aktivieren AllowUsers deinbenutzer # Erlaubt nur bestimmten Benutzern SSH-Zugriff Speichern: Drücke Strg + X, dann Y und Enter. 3. OpenSSH-Server starten und aktivieren Starte den OpenSSH-Server: sudo systemctl start ssh Falls du möchtest, dass der SSH-Server bei jedem Start von WSL2 läuft: sudo systemctl enable ssh Prüfe, ob der Dienst läuft: sudo systemctl status ssh 4. SSH-Zugang testen Finde deine WSL2-IP heraus: ip a | grep eth0 Beispielausgabe: inet 172.20.5.3/20 brd 172.20.15.255 scope global eth0 Verbinde dich nun von Windows aus mit: ssh [email protected] Falls du einen anderen Port als 22 benutzt hast: ssh -p 2222 [email protected] 5. Zugriff über localhost ermöglichen (Windows-Host auf WSL2) WSL2-Netzwerk ist isoliert, aber du kannst den SSH-Port an Windows weiterleiten. Öffne die PowerShell als Administrator und führe aus: netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=22 connectaddress=172.20.5.3 connectport=22 Jetzt kannst du dich unter Windows mit ssh deinbenutzer@localhost verbinden. 6. Optional: SSH-Schlüsselbasierte Authentifizierung einrichten Falls du statt Passwort-Login SSH-Schlüssel verwenden möchtest: mkdir -p ~/.ssh && chmod 700 ~/.ssh nano ~/.ssh/authorized_keys Füge dort deinen öffentlichen SSH-Schlüssel ein (z. B. von id_rsa.pub). Speichern und Berechtigungen setzen: chmod 600 ~/.ssh/authorized_keys sudo systemctl restart ssh Nun kannst du dich ohne Passwort mit SSH-Schlüssel verbinden. ? Das war’s! Jetzt läuft dein OpenSSH-Server in WSL2 (Debian 12.9) und ist von Windows aus erreichbar. ? Webserver Erreichbar halten powershell.ps1 als Windows Startaufgabe einstellen HTTPS:// = 443 $wsl_ip = wsl hostname -I netsh interface portproxy reset netsh interface portproxy add v4tov4 listenaddress=192.168.1.100 listenport=443 connectaddress=$wsl_ip connectport=443 HTTP:// = 80 $wsl_ip = wsl hostname -I netsh interface portproxy reset netsh interface portproxy add v4tov4 listenaddress=192.168.1.100 listenport=80 connectaddress=$wsl_ip connectport=80 |