checkms README.md first commit
This commit is contained in:
@@ -0,0 +1,156 @@
|
|||||||
|
# checkms
|
||||||
|
|
||||||
|
`checkms` ist ein Bash-Skript zur Analyse von **Microsoft-spezifischen SMTP Fehlercodes** (z. B. S3150, S775, S7771…) in den Exim-Logs auf dem **easyname Logger**.
|
||||||
|
Neben der Auswertung kann das Skript auch die Konfiguration (Fehlercodes, SSH-User) verwalten.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Zugriff auf den Logger (via `go logger` oder SSH)
|
||||||
|
- Auswertung von Exim-Logs für Microsoft Fehlercodes
|
||||||
|
- Unterstützung für **gzip-archivierte Logs**
|
||||||
|
- Filterung nach Zeitfenstern (`--minutes`, `--hours`)
|
||||||
|
- Konfiguration in `checkms.conf`
|
||||||
|
- SSH-User
|
||||||
|
- Liste der Fehlercodes (Regex möglich)
|
||||||
|
- Verwaltung der Config per Script:
|
||||||
|
- `--add-code` → Code hinzufügen
|
||||||
|
- `--del-code` → Code anhand ID löschen
|
||||||
|
- `--set-user` → SSH-User ändern
|
||||||
|
- `--show-config` → Config anzeigen (JSON + tabellarisch)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. Repository klonen:
|
||||||
|
```bash
|
||||||
|
git clone <gitea-url>/esn-support-bash-snippets.git
|
||||||
|
cd esn-support-bash-snippets/legacy/checkms
|
||||||
|
chmod +x checkms
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Beim ersten Start erstellt `checkms` automatisch die Konfiguration unter:
|
||||||
|
```
|
||||||
|
~/.config/checkms/checkms.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Abhängigkeiten:
|
||||||
|
- `jq` (empfohlen, für Bearbeitung/Schreiben der Config)
|
||||||
|
- `ssh` Zugriff auf Logger (`go logger` wird bevorzugt, falls vorhanden)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Nutzung
|
||||||
|
|
||||||
|
### Standardanalyse
|
||||||
|
```bash
|
||||||
|
./checkms
|
||||||
|
```
|
||||||
|
→ analysiert das heutige Logfile komplett.
|
||||||
|
|
||||||
|
### Tageslog
|
||||||
|
```bash
|
||||||
|
./checkms 2025-09-08
|
||||||
|
```
|
||||||
|
→ analysiert das Logfile vom 08.09.2025
|
||||||
|
(automatisch `.log` oder `.log.gz`).
|
||||||
|
|
||||||
|
### Zeitfenster
|
||||||
|
```bash
|
||||||
|
./checkms --minutes 30 # letzte 30 Minuten
|
||||||
|
./checkms --hours 2 # letzte 2 Stunden
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Config-Management
|
||||||
|
|
||||||
|
### Aktuelle Config ansehen
|
||||||
|
```bash
|
||||||
|
./checkms --show-config
|
||||||
|
```
|
||||||
|
|
||||||
|
Beispielausgabe:
|
||||||
|
```
|
||||||
|
RAW (~/.config/checkms/checkms.conf):
|
||||||
|
{
|
||||||
|
"ssh_user": "pljubeko",
|
||||||
|
"codes": [
|
||||||
|
"S3150",
|
||||||
|
"S775",
|
||||||
|
"S7771[0-9]*"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
TABELLARISCHE ANSICHT:
|
||||||
|
SSH_USER pljubeko
|
||||||
|
|
||||||
|
ID CODE
|
||||||
|
---- ----------------
|
||||||
|
0 S3150
|
||||||
|
1 S775
|
||||||
|
2 S7771[0-9]*
|
||||||
|
```
|
||||||
|
|
||||||
|
### SSH-User ändern
|
||||||
|
```bash
|
||||||
|
./checkms --set-user alice --show-config
|
||||||
|
```
|
||||||
|
|
||||||
|
### Code hinzufügen
|
||||||
|
```bash
|
||||||
|
./checkms --add-code S77714
|
||||||
|
./checkms --add-code 'S77[0-9]{3}' --show-config
|
||||||
|
```
|
||||||
|
|
||||||
|
### Code löschen
|
||||||
|
```bash
|
||||||
|
./checkms --del-code 2 --show-config
|
||||||
|
```
|
||||||
|
→ löscht den Code mit ID `2` (siehe `--show-config`).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Optionen
|
||||||
|
|
||||||
|
```
|
||||||
|
Usage: ./checkms [OPTIONS] [YYYY-MM-DD]
|
||||||
|
|
||||||
|
Analyse von MS-Fehlercodes im Exim-Log und Pflege der Codes.
|
||||||
|
|
||||||
|
Analyse-Optionen:
|
||||||
|
--minutes N Analysiert nur die letzten N Minuten
|
||||||
|
--hours N Analysiert nur die letzten N Stunden
|
||||||
|
--confdir PATH Pfad zum Konfigurationsordner (Default: ~/.config/checkms)
|
||||||
|
|
||||||
|
Konfig-Optionen:
|
||||||
|
--add-code REGEX Fügt einen Code/Regex zur Config hinzu (mehrfach möglich)
|
||||||
|
--del-code ID Löscht Code mit ID (siehe --show-config)
|
||||||
|
--set-user USER Setzt den SSH-User in der Config
|
||||||
|
--show-config Zeigt die aktuelle Config (JSON + tabellarisch) und beendet
|
||||||
|
--help Diese Hilfe
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Beispielausgabe Analyse
|
||||||
|
|
||||||
|
```
|
||||||
|
Analysiere 2025-09-09.log
|
||||||
|
|
||||||
|
COUNT IP CODE
|
||||||
|
----- ---------------- ------
|
||||||
|
67435 212.232.25.164 S775
|
||||||
|
63930 212.232.28.125 S775
|
||||||
|
311 217.74.15.3 S3150
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Falls Logs älter sind, werden sie automatisch mit `zcat` gelesen (`.log.gz`).
|
||||||
|
- Falls `go logger` als Funktion existiert, nutzt das Skript diese. Sonst wird via `ssh <ssh_user>@logger.in.nessus.at` verbunden.
|
||||||
|
- Die Config kann beliebig viele Codes enthalten, Regex wird unterstützt.
|
||||||
Reference in New Issue
Block a user