projects/vpn: browsergebundene VPN-Tray-Apps (Wuerth/Heron) + Build-Scripts
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# VPN Tray-Apps (browsergebunden, rootlos)
|
||||
|
||||
Menübar-Apps, die ein VPN rootlos aufbauen (openconnect + ocproxy als SOCKS5)
|
||||
und einen dedizierten Browser starten, der per PAC nur die internen Hosts über
|
||||
das VPN schickt und alles andere direkt. Jede App hat eigenen SOCKS-/PAC-Port
|
||||
und eigenes Browser-Profil — mehrere VPNs laufen parallel ohne Konflikt.
|
||||
|
||||
## Apps
|
||||
|
||||
- **wuerth_vpn_tray.py** — Würth, Cisco AnyConnect (`--protocol=anyconnect`),
|
||||
User+Passwort. Fertig und in Betrieb.
|
||||
- **heron_vpn_tray.py** — Heron, GlobalProtect (`--protocol=gp`). Gerüst fertig;
|
||||
der SAML-POST-/Duo-Login ist auf macOS nicht sauber rootlos lösbar
|
||||
(openconnect `--external-browser` bedient nur SAML-REDIRECT; gp-saml-gui
|
||||
braucht WebKit2GTK). Unter Linux via gp-saml-gui umsetzbar.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- `openconnect` + `ocproxy` (macOS: `brew install openconnect ocproxy`)
|
||||
- PyQt6 (für die Tray-App), Microsoft Edge (dedizierter Browser)
|
||||
- Bauen als App-Bundle: py2app (`pip install --user py2app`)
|
||||
|
||||
## Bauen (macOS-App-Bundle, Menübar-Only, kein Dock-Icon)
|
||||
|
||||
bash build_wuerth_app.sh # -> ~/Applications/WuerthVPN.app
|
||||
bash build_heron_app.sh # -> ~/Applications/HeronVPN.app
|
||||
|
||||
Die Build-Scripts bauen via py2app, dünnen die Qt-Frameworks aus (~79 MB),
|
||||
installieren nach `~/Applications` und legen einen LaunchAgent für optionalen
|
||||
Autostart an (`launchctl load ~/Library/LaunchAgents/com.<name>.vpntray.plist`).
|
||||
|
||||
## Ohne Bundle (nur Shell)
|
||||
|
||||
- **wuerth_vpn_proxy.sh** — schlanke Shell-Variante: fragt Passwort, baut das
|
||||
VPN auf und startet Edge mit PAC. Ohne Tray/Bundle.
|
||||
|
||||
## Konfiguration
|
||||
|
||||
Im Kopf der jeweiligen `*_tray.py`: SERVER, VPN_USER, PORT/PACPORT,
|
||||
INTERNAL_GLOB (welche Hosts über das VPN), START_URL, BOOKMARKS. Nach Änderung
|
||||
neu bauen, da das Script ins Bundle kopiert wird.
|
||||
Reference in New Issue
Block a user