diverse learnings

This commit is contained in:
Christian Kauer 2026-03-23 16:24:28 +01:00
parent 8a8d52ce28
commit 18be4bb0eb
1 changed files with 144 additions and 3 deletions

147
system.md
View File

@ -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 "<Windows>/Users/<user>/DataGripProjects" ~/DataGripProjects
# Linux → Linux: Pfade sind ~/.config/JetBrains/DataGrip<version>/ 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 </dev/null 2>&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 "<Windows>/Users/<user>/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`