diff --git a/system.md b/system.md index b4aaa12..e41439d 100644 --- a/system.md +++ b/system.md @@ -70,7 +70,13 @@ 1. Profil importieren: `nmcli connection import type openvpn file sslvpn-fixed.ovpn` 2. **Wichtig — Split-Tunneling aktivieren:** IPv4 → Routes → "Use this connection only for resources on its network" (Häkchen setzen), sonst geht aller Traffic durch den Tunnel und Internet fällt aus -3. Verbinden: `nmcli connection up sslvpn-fixed` +3. **DNS-Routing konfigurieren** — ohne diesen Schritt werden Firmen-Hostnamen nicht aufgelöst (systemd-resolved routet DNS-Queries sonst über den lokalen Router statt über den VPN-Tunnel): + ```bash + nmcli connection modify sslvpn-fixed ipv4.dns-search "~krah-gruppe.de,~internal.lan,~krah.intranet.de,~hirsau.seuffer,~resistec.pri,~krahicenet.local" + nmcli connection modify sslvpn-fixed ipv4.dns 172.21.20.201 + ``` + Das `~`-Prefix markiert die Domains als Routing-Domains, sodass systemd-resolved Queries für diese Domains über `tun0` (172.21.20.201) schickt. +4. Verbinden: `nmcli connection up sslvpn-fixed` #### Hinweise zum .ovpn-Profil (Sophos-Download vs. funktionierende Version) @@ -84,6 +90,38 @@ Das vom Sophos-Portal heruntergeladene Profil (`sslvpn-c.kauer@krah-gruppe.de-cl Die Firewall authentifiziert über AD als `d-chrka@internal.lan`. Ein Zertifikat für `c.kauer@krah-gruppe.de` wird mit `AUTH_FAILED` abgelehnt (sichtbar im Firewall Log Viewer unter "SSL VPN Authentication"). Die Original-Downloads (V2/V3) vom Sophos-Portal liegen weiterhin unter `~/OneDrive/cachyos_windows_share/`, werden aber nicht verwendet. +### DNS-Konfiguration (Split-DNS: Firmen-DNS + öffentlicher DNS) + +- **Problem:** Die Firmen-DNS-Server (`172.21.20.201/202/210`), die via DHCP vom VirtualBox-Host kommen, können bestimmte CNAME-Ketten nicht vollständig auflösen (z.B. `streams.radio21.de` → `streamurls.streamabc.link` → NXDOMAIN). Betroffen sind u.a. Audio-Streaming-Dienste. +- **Ursache:** Die Sophos-Firewall/DNS-Resolver des Firmennetzwerks filtert oder blockiert bestimmte Domains (`.streamabc.link`, `.streamabc.net`). +- **Lösung:** Split-DNS via `systemd-resolved` — Firmen-Domains gehen zum Firmen-DNS, alles andere zu öffentlichen DNS-Servern. +- **Wichtig:** Alle DNS-Server auf einem Link zu mischen funktioniert **nicht** — `systemd-resolved` probiert bei NXDOMAIN nicht den nächsten Server. Split-DNS erfordert getrennte Scopes (Link vs. Global). + +#### 1. Öffentlicher DNS als globaler Default +- **Datei:** `/etc/systemd/resolved.conf.d/public-dns.conf` +```ini +[Resolve] +DNS=9.9.9.9#dns.quad9.net 1.1.1.1#cloudflare-dns.com +``` +```bash +printf '[Resolve]\nDNS=9.9.9.9#dns.quad9.net 1.1.1.1#cloudflare-dns.com\n' | sudo tee /etc/systemd/resolved.conf.d/public-dns.conf +sudo systemctl restart systemd-resolved +``` + +#### 2. Firmen-DNS nur für Firmen-Domains (Routing-Domains auf der Kabelverbindung) +```bash +nmcli connection modify "Kabelgebundene Verbindung 1" ipv4.dns-search "~krah-gruppe.de,~internal.lan,~krah.intranet.de,~hirsau.seuffer,~resistec.pri,~krahicenet.local" +nmcli connection up "Kabelgebundene Verbindung 1" +``` + +#### Resultat +| Domain | DNS-Server | Quelle | +|---|---|---| +| `*.krah-gruppe.de`, `*.internal.lan` etc. | 172.21.20.201 (Firmen-DNS via DHCP) | Link-Routing-Domains | +| Alles andere | 9.9.9.9, 1.1.1.1 (Quad9, Cloudflare) | Globaler DNS (resolved.conf) | + +- **VPN-Koexistenz:** Wenn `sslvpn-fixed` aktiv ist, übernehmen die VPN-Routing-Domains auf `tun0` den Firmen-DNS für interne Auflösung — gleiche Domains, anderer Link + ### Sophos Endpoint (Protection for Linux) - **Paket:** Sophos Protection for Linux (SPL), installiert unter `/opt/sophos-spl` @@ -112,15 +150,111 @@ cp -r "/Users//DataGripProjects" ~/DataGripProjects # Linux → Linux: Pfade sind ~/.config/JetBrains/DataGrip/ und ~/DataGripProjects/ ``` +### NAS (Synology DS920+) + +- **Hostname:** `nas.straso.com` +- **SSH/SFTP-Port:** 2218 +- **Zugriff via Dolphin:** `sftp://nas.straso.com:2218` in der Adressleiste +- **Hinweis:** SFTP muss in der DSM-Weboberfläche aktiviert sein (Systemsteuerung → Dateidienste → FTP → SFTP) + ### SAP GUI for Java - **Version:** 8.10 rev 10 - **Installation:** `/home/chk/SAPClients/SAPGUI8.10rev10/` -- **Start:** `/home/chk/SAPClients/SAPGUI8.10rev10/bin/guilogon` +- **Start:** `GDK_SCALE=2 /home/chk/SAPClients/SAPGUI8.10rev10/bin/guilogon` - **Java:** OpenJDK 25 (pacman: `jre-openjdk`) -- **HiDPI-Scaling:** `-Dsun.java2d.uiScale=2.0` in Zeile 104 von `bin/guilogon` (exec-Zeile), Wert bei Bedarf anpassen +- **HiDPI-Scaling:** `GDK_SCALE=2` als Umgebungsvariable beim Start setzen - **Installer-Hinweis:** Installation muss aus dem Unterverzeichnis `com/sap/platin/micro/` gestartet werden (`java -cp ".:*" com.sap.platin.micro.Microkernel`), da der Installer einen Pfadfehler hat +### Remote Desktop Manager + +- **Paket:** `remote-desktop-manager` (pacman), Start: `/usr/bin/remotedesktopmanager` +- **RDP-Client:** `freerdp` v3 — liefert nur `xfreerdp3`, aber RDM erwartet `xfreerdp` +- **Symlink nötig:** `sudo ln -s /usr/bin/xfreerdp3 /usr/bin/xfreerdp` +- **NLA-Problem:** Der eingebaute RDP-Client von RDM (Devolutions SSPI-Modul) scheitert an NLA/SPNEGO-Authentifizierung unter Linux. **Workaround:** In der Verbindung unter Authentication → "Enable Network Level Authentication (NLA)" deaktivieren + +### Citrix Workspace App + +- **Paket:** `icaclient` (AUR, via paru) +- **StoreFront:** `https://apps.krah-gruppe.de` (extern via Gateway) / `https://apps.krah.intranet.de` (intern) +- **Auth:** Domain + RSA (2FA) + +#### SSL-Zertifikate + +System-Zertifikate verlinken, sonst schlagen SSL-Verbindungen fehl: +```bash +sudo ln -sf /etc/ssl/certs/* /opt/Citrix/ICAClient/keystore/cacerts/ +sudo c_rehash /opt/Citrix/ICAClient/keystore/cacerts/ +``` + +**Fehlende Intermediate-Zertifikate:** Der Citrix StoreFront-Server (`apps.krah-gruppe.de`) liefert kein Intermediate-Zertifikat mit. Browser laden fehlende Intermediates automatisch nach (AIA), der Citrix-Client aber nicht. Das Intermediate muss manuell hinzugefügt werden: +```bash +# Intermediate-Zertifikat von GlobalSign herunterladen und konvertieren +curl -sL http://secure.globalsign.com/cacert/gsgccr6alphasslca2025.crt \ + | openssl x509 -inform DER -out /opt/Citrix/ICAClient/keystore/cacerts/gsgccr6alphasslca2025.pem +sudo c_rehash /opt/Citrix/ICAClient/keystore/cacerts/ +``` +**Hinweis:** Bei Zertifikatserneuerung kann sich die Intermediate-CA ändern. Die AIA-URL steht im Server-Zertifikat: +```bash +openssl s_client -connect apps.krah-gruppe.de:443 &1 | openssl x509 -noout -text | grep 'CA Issuers' +``` + +#### receiver://-Protokoll-Handler + +Das AUR-Paket registriert den `receiver://`-Protokoll-Handler **nicht** automatisch. Ohne diesen öffnet der Browser einen KIO-Fehler statt die Citrix App. Fix: +```bash +printf '[Desktop Entry] +Type=Application +Name=Citrix Receiver Protocol Handler +NoDisplay=true +MimeType=x-scheme-handler/receiver; +TryExec=/opt/Citrix/ICAClient/selfservice +Exec=/opt/Citrix/ICAClient/selfservice --icaroot /opt/Citrix/ICAClient %%u +' | sudo tee /usr/share/applications/citrix-receiver-handler.desktop + +xdg-mime default citrix-receiver-handler.desktop x-scheme-handler/receiver +``` + +#### Store-Konfiguration importieren + +Die StoreFront-Webseite bietet eine `.cr`-Datei (Provisioning-Datei) an. Diese wird als `text/x-crystal` erkannt und im Texteditor geöffnet statt in Citrix. Import über CLI: +```bash +/opt/Citrix/ICAClient/selfservice --icaroot /opt/Citrix/ICAClient ~/Downloads/receiverconfig.cr +``` + +### keyd — Tastatur-Remapping (Logitech MX Mechanical) + +- **Paket:** `keyd` (AUR, via paru) +- **Gerät:** Logitech MX Mechanical Keyboard (`046d:b366`) +- **Config:** `/etc/keyd/default.conf` +- **Mapping:** Calculator-Taste → Druck/Screenshot +- **Wichtig:** `[ids]` nur auf die Logitech-ID beschränken, nicht `*` — sonst werden globale Shortcuts (z.B. Super+Shift+Space) blockiert +- **Keynamen ermitteln:** `sudo keyd -m` zeigt die tatsächlichen Keynamen (z.B. `calc`, nicht `calculator`) + +```ini +[ids] +046d:b366 + +[main] +calc = print +``` + +```bash +sudo systemctl enable --now keyd +sudo keyd reload # nach Config-Änderungen +``` + +### Lenovo Dockingstation (DisplayLink) + +- **Treiber:** `displaylink` (AUR, via paru) + `evdi-dkms` (AUR) +- **Service:** `displaylink.service` (systemd) +- **Einrichtung:** +```bash +paru -S evdi-dkms displaylink +sudo systemctl enable --now displaylink +``` +- **Hinweis:** `evdi-dkms` kompiliert per DKMS gegen den aktiven Kernel — nach Kernel-Updates wird das Modul automatisch neu gebaut + ### Installierte Pakete (manuell) - `teams-for-linux` — MS Teams Client (CachyOS-Repo) - `rclone` — Cloud-Sync (pacman) @@ -128,6 +262,13 @@ cp -r "/Users//DataGripProjects" ~/DataGripProjects - `networkmanager-openvpn` — OpenVPN-Plugin für NetworkManager - Sophos Protection for Linux (SPL) — `/opt/sophos-spl`, via `SophosSetup.sh` aus Sophos Central - SAP GUI for Java 8.10 — `/home/chk/SAPClients/SAPGUI8.10rev10/`, benötigt `jre-openjdk` +- `keyd` — Tastatur-Remapping (AUR) +- `freerdp` — RDP-Client für Remote Desktop Manager (Symlink `xfreerdp` → `xfreerdp3` nötig) +- `remote-desktop-manager` — Devolutions RDM +- `icaclient` — Citrix Workspace App (AUR) +- `dotnet-sdk-9.0` — .NET 9 SDK +- `evdi-dkms` — DisplayLink-Kernelmodul (AUR, DKMS) +- `displaylink` — DisplayLink-Treiber (AUR) ### Polkit: Laufwerke ohne Passwort mounten - **Regel:** `/etc/polkit-1/rules.d/10-udisks2-mount.rules`