Pangolin Newt Agent - Installation und Betrieb
Newt ist ein Reverse-Proxy-Agent von Pangolin, der Remote-Zugriff und Monitoring für Server ermöglicht. Diese Anleitung zeigt die Installation in einem dedizierten LXC Container auf Proxmox.
Inhaltsverzeichnis
- Was ist Newt?
- Funktionsweise
- Vorbereitung: LXC Container erstellen
- Installation von Newt
- Systemd Service einrichten
- Monitoring und Wartung
- Sicherheitsaspekte
- Troubleshooting
Was ist Newt?
Newt ist ein Agent-basiertes Monitoring- und Management-Tool, entwickelt von Pangolin. Es ermöglicht:
- Remote-Zugriff auf Server ohne offene Firewall-Ports
- System-Monitoring (CPU, RAM, Disk, Netzwerk)
- Log-Aggregation und zentrale Überwachung
- Remote-Befehlsausführung über das Pangolin Dashboard
- Automatisierte Wartungsaufgaben
Architektur
Newt arbeitet als Reverse-Proxy:
┌─────────────┐ HTTPS (ausgehend) ┌──────────────────┐
│ Dein Server │ ──────────────────────────────────> │ Pangolin Backend │
│ (Newt) │ <────────────────────────────────── │ app.pangolin.net │
└─────────────┘ Befehle/Monitoring-Daten └──────────────────┘
Vorteile dieser Architektur:
- ✅ Keine Firewall-Änderungen notwendig
- ✅ Keine offenen Ports auf dem Server
- ✅ Verschlüsselte Verbindung (HTTPS)
- ✅ Funktioniert auch hinter NAT
Funktionsweise
Verbindungsaufbau
- Newt startet und verbindet sich ausgehend zu
https://app.pangolin.net - Authentifizierung erfolgt über Agent-ID und Secret
- Verbindung bleibt permanent bestehen (Long-Polling/WebSocket)
- Pangolin kann über diese Verbindung Befehle senden
Datenfluss
| Richtung | Daten | Zweck |
|---|---|---|
| Server → Pangolin | Metriken (CPU, RAM, Disk) | Monitoring/Dashboards |
| Server → Pangolin | Log-Einträge | Zentrale Log-Verwaltung |
| Server → Pangolin | Heartbeat/Status | Verfügbarkeitsüberwachung |
| Pangolin → Server | Shell-Befehle | Remote-Management |
| Pangolin → Server | Konfigurationsänderungen | Automatisierung |
Vorbereitung: LXC Container erstellen
Container über Proxmox Web-GUI erstellen
- Im Proxmox-Interface: Create CT
- General:
- Hostname:
pangolin-newt - Unprivileged container: ✅ (empfohlen)
- Password: Sicheres Root-Passwort vergeben
- Hostname:
- Template:
- Storage: Dein Template-Storage
- Template:
debian-12-standardoderubuntu-22.04-standard
- Disks:
- Disk size:
8 GB(ausreichend für Newt) - Storage: Dein bevorzugter Storage
- Disk size:
- CPU:
- Cores:
1(Newt benötigt wenig CPU)
- Cores:
- Memory:
- Memory:
512 MB - Swap:
256 MB
- Memory:
- Network:
- Bridge:
vmbr0 - IPv4:
DHCPoder statische IP - IPv6: Nach Bedarf
- Bridge:
Container über CLI erstellen (Alternative)
# Template herunterladen (falls noch nicht vorhanden)
pveam update
pveam download local debian-12-standard_12.2-1_amd64.tar.zst
# Container erstellen
pct create 200 local:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst \
--hostname pangolin-newt \
--memory 512 \
--swap 256 \
--cores 1 \
--net0 name=eth0,bridge=vmbr0,ip=dhcp \
--storage local-lvm \
--rootfs local-lvm:8 \
--unprivileged 1 \
--features nesting=0
# Container starten
pct start 200
Snapshot erstellen (empfohlen)
Vor der Newt-Installation einen Snapshot anlegen:
# Im Proxmox Host
pct snapshot 200 before-newt --description "Clean state before Pangolin Newt installation"
So kannst du bei Problemen einfach zum sauberen Zustand zurückkehren.
Installation von Newt
1. In den Container einloggen
# Vom Proxmox Host
pct enter 200
# Oder per SSH (falls konfiguriert)
ssh root@<container-ip>
2. System aktualisieren
# Debian/Ubuntu
apt update && apt upgrade -y
# Optional: Basis-Tools installieren
apt install -y curl wget nano htop net-tools
3. Newt Binary herunterladen
Die Newt-Binary erhältst du vom Pangolin Dashboard nach der Registrierung.
# Download-Link von Pangolin verwenden (Beispiel)
wget https://download.pangolin.net/newt/latest/newt-linux-amd64 -O /tmp/newt
# Alternativ: SCP-Upload von lokalem Rechner
# scp newt root@<container-ip>:/tmp/newt
4. Binary installieren
# Binary nach /usr/local/bin verschieben
mv /tmp/newt /usr/local/bin/newt
# Ausführbar machen
chmod +x /usr/local/bin/newt
# Besitzer setzen
chown root:root /usr/local/bin/newt
# Installation verifizieren
/usr/local/bin/newt --version
5. Erstmaliger Test-Start
Vor der systemd-Integration solltest du Newt einmal manuell testen:
/usr/local/bin/newt \
--id 31frd0uzbjvp721 \
--secret h51mmlknrvrwv8s4r1i210azhumt6isgbpyavxodibx1k2d6 \
--endpoint https://app.pangolin.net
[INFO] Connected to Pangolin endpoint
[INFO] Agent registered successfully
[INFO] Awaiting commands...
- ID/Secret falsch → Im Pangolin Dashboard überprüfen
- Network unreachable → Firewall/Internet-Verbindung prüfen
- Certificate error → System-Zeit prüfen (
date)
Mit Ctrl+C beenden, wenn der Test erfolgreich war.
Systemd Service einrichten
1. Service-Datei erstellen
nano /etc/systemd/system/newt.service
2. Service-Konfiguration
Folgende Konfiguration einfügen (Werte anpassen!):
[Unit]
Description=Pangolin Newt Agent
Documentation=https://docs.pangolin.net
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
Group=root
# Newt-Binary mit deinen Credentials
ExecStart=/usr/local/bin/newt \
--id 31frd0uzbjvp721 \
--secret h51mmlknrvrwv8s4r1i210azhumt6isgbpyavxodibx1k2d6 \
--endpoint https://app.pangolin.net
# Restart-Verhalten
Restart=always
RestartSec=10
StartLimitInterval=0
# Sicherheits-Optionen (optional, aber empfohlen)
NoNewPrivileges=false
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/log /tmp
# Logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=newt
[Install]
WantedBy=multi-user.target
Parameter-Erklärung
| Parameter | Beschreibung |
|---|---|
--id |
Agent-ID aus dem Pangolin Dashboard |
--secret |
Secret-Key zur Authentifizierung |
--endpoint |
Pangolin Backend-URL (Standard: app.pangolin.net) |
Restart=always |
Automatischer Neustart bei Crashes |
RestartSec=10 |
10 Sekunden warten vor Neustart |
After=network-online.target |
Erst starten wenn Netzwerk verfügbar |
3. Service aktivieren und starten
# Systemd neu laden
systemctl daemon-reload
# Service beim Boot aktivieren
systemctl enable newt
# Service starten
systemctl start newt
# Status prüfen
systemctl status newt
4. Erfolgreiche Installation verifizieren
# Service läuft?
systemctl is-active newt
# Ausgabe: active
# Logs anzeigen
journalctl -u newt -f
# Letzte 50 Zeilen
journalctl -u newt -n 50
Erwartete Log-Ausgabe
Feb 08 12:34:56 pangolin-newt systemd[1]: Started Pangolin Newt Agent.
Feb 08 12:34:56 pangolin-newt newt[1234]: [INFO] Starting Newt agent v1.2.3
Feb 08 12:34:57 pangolin-newt newt[1234]: [INFO] Connecting to https://app.pangolin.net
Feb 08 12:34:58 pangolin-newt newt[1234]: [INFO] Connected successfully
Feb 08 12:34:58 pangolin-newt newt[1234]: [INFO] Agent ID: 31frd0uzbjvp721
Feb 08 12:34:58 pangolin-newt newt[1234]: [INFO] Awaiting commands...
Monitoring und Wartung
Service-Status überwachen
# Aktueller Status
systemctl status newt
# Ist der Service aktiviert?
systemctl is-enabled newt
# Läuft der Service?
systemctl is-active newt
# Service neu starten
systemctl restart newt
# Service stoppen
systemctl stop newt
Logs analysieren
# Live-Logs verfolgen
journalctl -u newt -f
# Logs der letzten Stunde
journalctl -u newt --since "1 hour ago"
# Logs seit letztem Boot
journalctl -u newt -b
# Nur Fehler anzeigen
journalctl -u newt -p err
# Logs exportieren
journalctl -u newt > /tmp/newt-logs.txt
Netzwerk-Verbindungen prüfen
# Aktive Verbindungen von Newt
ss -tulpn | grep newt
# Alternativ mit netstat
netstat -tulpn | grep newt
# Beispiel-Ausgabe (eine ausgehende HTTPS-Verbindung):
# tcp ESTAB 0 0 10.0.0.100:45678 1.2.3.4:443 users:(("newt",pid=1234))
Ressourcen-Verbrauch überwachen
# CPU und RAM von Newt-Prozess
ps aux | grep newt
# Detaillierte Prozess-Info
top -p $(pidof newt)
# Oder mit htop (interaktiv)
htop -p $(pidof newt)
Automatische Benachrichtigungen (optional)
Systemd kann dich benachrichtigen, wenn der Service fehlschlägt:
# In /etc/systemd/system/newt.service ergänzen:
[Unit]
OnFailure=notify-email@%n.service
# Erfordert Einrichtung von notify-email Service
Sicherheitsaspekte
Risikobewertung
⚠️ Kritische Punkte
- Root-Zugriff: Newt läuft mit vollen root-Rechten
- Remote-Kontrolle: Pangolin kann Befehle auf dem System ausführen
- Datenübertragung: System-Metriken werden an Pangolin gesendet
- Secret-Speicherung: Credentials sind in Klartext in der Service-Datei
Sicherheitsmaßnahmen
1. Container-Isolation (wichtigste Maßnahme!)
# Container-Konfiguration überprüfen
pct config 200
# Sicherstellen dass unprivileged aktiviert ist
pct set 200 -unprivileged 1
# Nesting deaktivieren (verhindert Container-in-Container)
pct set 200 -features nesting=0
# Optional: AppArmor-Profil setzen
pct set 200 -protection 1
2. Ressourcen-Limits setzen
# CPU-Limit (verhindert DoS durch hohe CPU-Last)
pct set 200 -cpulimit 1
# RAM-Limit
pct set 200 -memory 512 -swap 256
# Disk-I/O-Limit
pct set 200 -iops_rd 2000 -iops_wr 2000
3. Netzwerk-Isolation
Optionale Firewall-Regeln im Container:
# UFW installieren und konfigurieren
apt install -y ufw
# Nur ausgehende HTTPS-Verbindungen zu Pangolin erlauben
ufw default deny incoming
ufw default deny outgoing
ufw allow out 443/tcp to app.pangolin.net
# Firewall aktivieren
ufw enable
4. Secrets schützen
Service-Datei-Rechte einschränken:
# Nur root darf Service-Datei lesen
chmod 600 /etc/systemd/system/newt.service
chown root:root /etc/systemd/system/newt.service
# Systemd neu laden
systemctl daemon-reload
5. Audit-Logging aktivieren
# Auditd installieren
apt install -y auditd
# Newt-Prozess überwachen
auditctl -w /usr/local/bin/newt -p x -k newt-execution
# Logs anzeigen
ausearch -k newt-execution
Regelmäßige Sicherheitschecks
| Check | Befehl | Frequenz |
|---|---|---|
| Service-Status | systemctl status newt |
Täglich |
| Ungewöhnliche Aktivität | journalctl -u newt -p warning |
Wöchentlich |
| Netzwerk-Verbindungen | ss -tulpn | grep newt |
Wöchentlich |
| Updates verfügbar | Pangolin Dashboard prüfen | Monatlich |
| Container-Backup | pct backup 200 |
Monatlich |
GDPR/Datenschutz-Überlegungen
📋 Datenschutz-Checkliste
- ❓ Welche Daten werden an Pangolin übertragen?
- ❓ Wo werden die Daten gespeichert (EU/USA)?
- ❓ Gibt es einen Data Processing Agreement (DPA)?
- ❓ Sind personenbezogene Daten im Container?
- ❓ Ist dies in der Datenschutzerklärung dokumentiert?
Für kommerzielle Nutzung (z.B. Nyrux-Kunden) diese Punkte klären!
Troubleshooting
Problem: Service startet nicht
# Detaillierte Fehlerinfo
systemctl status newt -l
# Service-Datei auf Syntaxfehler prüfen
systemd-analyze verify /etc/systemd/system/newt.service
# Manuell starten für detaillierte Fehler
/usr/local/bin/newt --id ... --secret ... --endpoint ...
Häufige Ursachen:
- ❌ Binary fehlt in
/usr/local/bin/newt - ❌ Keine Ausführungsrechte:
chmod +x /usr/local/bin/newt - ❌ Tippfehler in ID/Secret
- ❌ Falsche Zeilenumbrüche in Service-Datei
Problem: Verbindung zu Pangolin schlägt fehl
# Netzwerk-Konnektivität testen
ping -c 4 app.pangolin.net
# HTTPS-Verbindung testen
curl -I https://app.pangolin.net
# DNS-Auflösung prüfen
nslookup app.pangolin.net
dig app.pangolin.net
Häufige Ursachen:
- ❌ Keine Internet-Verbindung im Container
- ❌ DNS-Server nicht konfiguriert:
/etc/resolv.confprüfen - ❌ Firewall blockiert Port 443
- ❌ Falsche System-Zeit (Zertifikatsprobleme):
timedatectl
Problem: Agent wird im Dashboard als offline angezeigt
# Service läuft lokal?
systemctl is-active newt
# Logs auf Connection-Errors prüfen
journalctl -u newt | grep -i error
# Netzwerk-Verbindung aktiv?
ss -tulpn | grep newt
Mögliche Ursachen:
- ❌ ID/Secret stimmt nicht mit Dashboard überein
- ❌ Agent wurde im Dashboard gelöscht/deaktiviert
- ❌ Netzwerk-Unterbrechung
- ❌ Pangolin-Backend hat Probleme (Status-Page prüfen)
Problem: Hoher Ressourcen-Verbrauch
# Prozess-Details anzeigen
ps aux | grep newt
# Netzwerk-Traffic messen
iftop -i eth0
# oder
nethogs
# Disk-I/O überwachen
iotop
Mögliche Lösungen:
- Container-Ressourcen erhöhen (RAM/CPU)
- Monitoring-Intervall in Pangolin anpassen
- Log-Level reduzieren
- Support bei Pangolin kontaktieren
Problem: Service startet nach Reboot nicht automatisch
# Service-Status prüfen
systemctl is-enabled newt
# Falls disabled, aktivieren:
systemctl enable newt
# Verify dependency chain
systemctl list-dependencies newt
Notfall: Container zurücksetzen
Falls Newt Probleme macht, zum Snapshot zurückkehren:
# Vom Proxmox Host
pct stop 200
pct rollback 200 before-newt
pct start 200
Zusätzliche Ressourcen
Offizielle Dokumentation
Proxmox Dokumentation
Systemd Dokumentation
Wartungs-Checkliste
| Aufgabe | Frequenz | Befehl/Aktion |
|---|---|---|
| Service-Status prüfen | Täglich | systemctl status newt |
| Logs durchsehen | Wöchentlich | journalctl -u newt -p warning |
| Ressourcen überwachen | Wöchentlich | htop -p $(pidof newt) |
| System-Updates | Monatlich | apt update && apt upgrade -y |
| Newt-Updates | Monatlich | Pangolin Dashboard prüfen |
| Container-Backup | Monatlich | pct backup 200 oder Proxmox Backup Jobs |
| Sicherheits-Audit | Quartalsweise | Logs, Netzwerk, Berechtigungen prüfen |
Deinstallation
Falls du Newt wieder entfernen möchtest:
# Service stoppen und deaktivieren
systemctl stop newt
systemctl disable newt
# Service-Datei entfernen
rm /etc/systemd/system/newt.service
systemctl daemon-reload
# Binary entfernen
rm /usr/local/bin/newt
# Optional: Container komplett löschen
# (Vom Proxmox Host)
pct stop 200
pct destroy 200