From 0edcc108bcf298f8cc0748c4d763ab81a3033dfd Mon Sep 17 00:00:00 2001 From: Marcel Peterkau Date: Thu, 11 Sep 2025 13:02:31 +0200 Subject: [PATCH] updated README.ms and added sv_ttk for darkTheme --- README.md | 42 +++++++++++++++++++++++++++++++----------- requirements.txt | 3 ++- 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a6c99ae..dccc669 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,12 @@ Benutze dieses Tool nur in isolierten Testumgebungen oder auf einem dedizierten - **Leichte Konfiguration**: - liest IP & Subnetz des gewählten Interface automatisch aus - vergibt Adressen aus einem dynamischen Pool (ab Start-IP) + - **Neu:** Eingabefelder für Primary/Secondary DNS (DHCP Option 6) +- **DHCP-Optionen:** + - Option 1: Subnetzmaske + - Option 3: Router/Gateway (setzt automatisch auf Server-IP) + - Option 6: DNS-Server (aus GUI) + - Option 51: Lease-Time - **Log-Panel & Statusleiste**: zeigt DHCP-Events in Echtzeit - **Echte DHCP-Pakete**: DISCOVER → OFFER, REQUEST → ACK, RELEASE → Lease-Freigabe @@ -46,7 +52,7 @@ pip install psutil sv-ttk ### 1) GUI starten -> **Root-Rechte sind erforderlich**, da Port 67 (<1024) privilegiert ist. +> **Root-Rechte sind erforderlich**, da Port 67 (< 1024) privilegiert ist. ```bash sudo -E python3 main.py @@ -56,12 +62,13 @@ sudo -E python3 main.py * Wähle das Interface (z. B. `eth0`) aus der Dropdown-Liste. * IP & Subnetz werden automatisch eingetragen (kann angepasst werden). -* ⚠️ **Warnmeldung** bestätigen. +* Primary DNS wird standardmäßig auf die Interface-IP gesetzt (typisch fürs Lab). +* Optional Secondary DNS eintragen (z. B. `8.8.8.8`). ### 3) Server starten -* **Start** klicken → Log zeigt „Listening on UDP/67“. -* DHCP-Clients können jetzt Adressen beziehen. +* **Start** klicken → Warnmeldung bestätigen → Log zeigt „Listening on UDP/67“. +* DHCP-Clients können jetzt Adressen und DNS-Settings beziehen. --- @@ -74,7 +81,7 @@ sudo dhclient -v -i -4 -d -sf /bin/true eth0 ``` * `-sf /bin/true` verhindert Änderungen an `/etc/resolv.conf` -* Du solltest in der GUI sehen, wie der Client einen Lease bekommt. +* GUI sollte zeigen, dass ein Lease vergeben wurde. ### Mit `nmap` @@ -94,11 +101,26 @@ Zeigt DISCOVER/OFFER/REQUEST/ACK Pakete live. --- +## 🌐 Internet-Sharing (optional) + +Wenn der PC per WLAN im Internet ist, kann man den Traffic ins Labnetz weiterleiten: + +```bash +sudo sysctl -w net.ipv4.ip_forward=1 +sudo iptables -t nat -A POSTROUTING -o wlp61s0 -j MASQUERADE +sudo iptables -A FORWARD -i wlp61s0 -o enp0s31f6 -m state --state RELATED,ESTABLISHED -j ACCEPT +sudo iptables -A FORWARD -i enp0s31f6 -o wlp61s0 -j ACCEPT +``` + +Dann können Clients im Labnetz Internetzugang nutzen. + +--- + ## 🔒 Sicherheit & Best Practices * **Nur in isolierten Netzen verwenden** (Lab, VLAN, Test-Switch). -* Auf Produktivsystemen immer **statische IP** für den Server selbst setzen, sonst könnte er seine eigene IP verlieren. -* Bei Mehr-Interface-Hosts genau überlegen, auf welchem Interface der Server laufen soll. +* Server-IP statisch setzen, damit sie stabil bleibt. +* Aufpassen bei Mehr-Interface-Systemen: Immer bewusst auswählen, welches Interface beschallt wird. --- @@ -114,13 +136,11 @@ Leases werden nur im Speicher gehalten (kein persistentes Lease-File). * [ ] Lease-Persistenz (JSON oder SQLite) * [ ] Statische MAC-Reservierungen * [ ] Konfigurierbarer Pool (Start/End-Adresse) -* [ ] Unterstützung für Option 3 (Router) & Option 6 (DNS) konfigurierbar +* [ ] Mehr Optionen (NTP, PXE, benutzerdefiniert) --- ## ⚠️ Haftungsausschluss Dies ist ein **Entwicklungs- und Lern-Tool**. Es ist *nicht* als Ersatz für produktive DHCP-Server gedacht. -Benutzung auf eigene Gefahr – prüfe deine Netzumgebung sorgfältig, bevor du den Server startest! - -``` +Benutzung auf eigene Gefahr – prüfe deine Netzumgebung sorgfältig, bevor du den Server startest! \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index b92ec1d..3de2648 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ scapy -psutil \ No newline at end of file +psutil +sv_ttk \ No newline at end of file