- Python 57.7%
- HTML 24%
- Shell 18.3%
| app | ||
| docs | ||
| configure-wan.sh | ||
| install.sh | ||
| README.md | ||
| requirements.txt | ||
Almir-IT Security Center (Debian 13, ohne Docker)
Status: native Testversion mit Multi-Target-Dashboard und optionalem KI-API-Anschluss. Öffentlicher Quellcode. Enthält eine Weboberfläche mit Anmeldung, eine explizite Freigabeliste, Zielverwaltung, Batch-Scan-Warteschlange (2 parallele Worker), phasenbasierter Fortschrittsanzeige, Nmap-TCP-Top-200- und Versionserkennung, einfache TLS-Zertifikatsprüfung, SQLite-Scanverlauf und CSV-Export. Kein vollständiger CVE-Scanner: Greenbone, Nuclei, Lynis, Trivy, ZAP, PDF-Reports und automatisierte Zeitpläne sind in dieser Forgejo-Testversion noch nicht enthalten.
Installation direkt auf Debian 13
Als root über die VM-Konsole:
apt update
apt install -y git
git clone https://git.almir-it.at/almir28/almir-security-center.git
cd almir-security-center
bash install.sh
Der Installer fragt deine freigegebenen Scan-Ziele ab (z. B. 192.168.150.0/23). Nur eigene oder ausdrücklich autorisierte Systeme zulassen. Nicht-interaktiv: SCAN_TARGETS='192.168.150.0/23' bash install.sh.
Zugriff
Der Webserver lauscht ausschließlich lokal unter http://127.0.0.1:8787. Zugangsdaten stehen unter /root/almir-security-center-zugang.txt (nur root). Vom eigenen PC aus einen SSH-Tunnel öffnen:
ssh -L 8787:127.0.0.1:8787 root@DEBIAN-IP
Danach http://127.0.0.1:8787 im Browser auf dem PC öffnen. HTTP Basic Auth nicht öffentlich ohne TLS betreiben.
Diagnose und Betrieb
systemctl status almir-security-center --no-pager
journalctl -u almir-security-center -n 100 --no-pager
curl http://127.0.0.1:8787/health
cat /root/almir-security-center-zugang.txt
Konfiguration: /etc/almir-security-center/security.env. Datenbank: /var/lib/almir-security-center/security.db. Nach Konfigurationsänderungen: systemctl restart almir-security-center.
Die Testversion wurde über den Forgejo-Schreibzugriff bereitgestellt, nicht auf einer realen Debian-13-VM installiert oder auf Laufzeitfehler geprüft. Teste zuerst eine einzelne eigene VM.
Aktualisierung auf Test-VM
cd /tmp/almir-security-center
git pull origin main
bash install.sh
systemctl status almir-security-center --no-pager
Der Installer übernimmt die vorhandene Konfiguration und startet den Dienst bei Updates neu. Gespeicherte Berichte und Ziele bleiben bestehen.
WAN-Zugang (optional)
bash configure-wan.sh
Dieses Skript richtet nginx mit HTTPS und nur einer freigegebenen öffentlichen Management-IP auf Port 8443 ein. Selbstsigniertes Zertifikat: für den Echtbetrieb ein gültiges Zertifikat oder VPN vorziehen. Router/NAT und VM-Firewall separat konfigurieren.
Mehrere Ziele und Fortschritt
Im Dashboard Server/Webseiten speichern, Checkboxen auswählen und Scans starten. Es können maximal 30 Aufträge offen sein, bis zu 2 werden parallel bearbeitet. Der Browser aktualisiert den Fortschritt alle 3 Sekunden. Die Prozentwerte sind Phasenmarker (0/10/25/100), keine exakte Nmap-Laufzeitanzeige. Während eines langen Nmap-Laufs bleibt der Balken bei 25 %. Das ist eine bekannte Einschränkung.
Optionale KI-Auswertung
Es werden nur Befundkategorien und beschreibende Hinweise versendet, nicht die vollständigen Nmap-XML-Berichte oder Hostnamen. Dennoch können Hinweise sensible Details enthalten; Aktivierung nur mit geeigneter Datenschutzfreigabe. Die API muss OpenAI-kompatibles Chat-Completions JSON liefern. Externe Verbindung ausschließlich über HTTPS. Der Server sendet niemals automatisch an die KI; Übertragung erfolgt erst durch Klick auf „Mit KI analysieren“.
In /etc/almir-security-center/security.env ergänzen (Beispiel, keine echten Zugangsdaten ins Repository):
AI_API_URL=https://api.openai.com/v1/chat/completions
AI_MODEL=gpt-4.1-mini
AI_API_KEY=DEIN_API_KEY
Danach:
systemctl restart almir-security-center
KI-Aussagen sind keine verifizierten CVEs. Der Dienst enthält derzeit keinen vollwertigen CVE-Abgleich und keine automatischen Fixes. API-Nutzung kann Kosten verursachen.
Betriebsgrenzen: Langlaufende Scans können beim Neustart unterbrochen werden. Keine Mandantenfähigkeit, kein Rate-Limit pro Client, kein Brute-Force-Schutz der Basic-Auth durch die App. Zugriff ausschließlich hinter VPN oder restriktivem WAN-Proxy; besonders bei öffentlichem Hosting.