Access Gate leitet seine Audit- und Alert-Streams über Syslog (RFC 5424) weiter. Diese Anleitung beschreibt die Konfiguration auf Elastic-Seite, um diese Ereignisse über Logstash zu erfassen, in Elasticsearch zu speichern und in Kibana anzuzeigen.
Voraussetzungen
- Access Gate ist so konfiguriert, dass Logs per TCP-Syslog an Ihren Logstash-Host weitergeleitet werden. Siehe Log-Weiterleitung und SIEM-Export.
- Elastic Stack 8.x — Elasticsearch, Logstash und Kibana — vom Access Gate-Gerät aus erreichbar.
- Ein Logstash-Listener-Port. Die folgenden Beispiele verwenden
5514/TCP, um Konflikte mit dem privilegierten Port 514 zu vermeiden.
Logstash-Pipeline konfigurieren
Access Gate-Ereignisse werden vom Prozess vigil im strukturierten RFC 5424-Datenformat ausgegeben. Der Standard-Logstash-syslog-Input parst nur RFC 3164. Verwenden Sie daher den tcp-Input mit einem grok-Filter, um die strukturierten Felder von Access Gate zu extrahieren.
Erstellen Sie /etc/logstash/conf.d/access-gate.conf:
input {
tcp {
port => 5514
type => "access-gate"
}
}
filter {
if [type] == "access-gate" {
grok {
match => {
"message" => "<%{POSINT:priority}>%{INT:version} %{TIMESTAMP_ISO8601:event_time} %{HOSTNAME:host_name} %{WORD:program} %{POSINT:procid} %{WORD:severity} \[%{DATA:sd_id} Log=\"%{DATA:event_log}\" Mitre=\"%{DATA:mitre}\" PrincipalIp=\"%{IP:src_ip}\" Rule=\"%{DATA:rule}\"\]"
}
}
date {
match => ["event_time", "ISO8601"]
target => "@timestamp"
}
mutate {
remove_field => ["message", "priority", "version", "procid", "sd_id"]
}
}
}
output {
if [type] == "access-gate" {
elasticsearch {
hosts => ["https://elasticsearch:9200"]
index => "access-gate-%{+YYYY.MM.dd}"
user => "${ELASTIC_USER}"
password => "${ELASTIC_PASSWORD}"
}
}
}
Laden Sie Logstash nach jeder Pipeline-Änderung neu:
sudo systemctl restart logstash
Dieser Filter extrahiert fünf Felder aus jedem Access Gate-Ereignis:
| Feld | Quelle | Beispiel |
|---|---|---|
event_log | Log | user Alice Salmon logged in using screen CUI Access |
mitre | Mitre | ----- |
src_ip | PrincipalIp | 192.168.100.59 |
rule | Rule | Access Screen Login Attempt |
severity | RFC 5424 MSGID | ALERT |
Index-Template anwenden
Ohne ein Index-Template leitet Elasticsearch die Feldtypen aus dem ersten Dokument ab und wählt möglicherweise den falschen Typ für src_ip (String statt ip). Wenden Sie dieses Template an, bevor das erste Dokument eintrifft:
curl -u "$ELASTIC_USER:$ELASTIC_PASSWORD" -X PUT \
"https://elasticsearch:9200/_index_template/access-gate" \
-H "Content-Type: application/json" -d '{
"index_patterns": ["access-gate-*"],
"template": {
"mappings": {
"properties": {
"@timestamp": { "type": "date" },
"event_log": { "type": "text" },
"mitre": { "type": "keyword" },
"src_ip": { "type": "ip" },
"rule": { "type": "keyword" },
"severity": { "type": "keyword" },
"host_name": { "type": "keyword" }
}
}
}
}'
Pipeline validieren
Senden Sie mit nc ein Beispielereignis an Logstash, um das Parsing zu prüfen, bevor Sie Access Gate darauf ausrichten:
echo '<130>1 2026-04-24T20:53:10.313Z access-gate vigil 334 ALERT [context@60446 Log="user Alice Salmon logged in using screen CUI Access" Mitre="-----" PrincipalIp="192.168.100.59" Rule="Access Screen Login Attempt"]' \
| nc -q1 logstash 5514
Bestätigen Sie, dass das Dokument angekommen ist:
curl -u "$ELASTIC_USER:$ELASTIC_PASSWORD" \
"https://elasticsearch:9200/access-gate-*/_search?q=rule:%22Access+Screen+Login+Attempt%22&pretty"
Der Treffer sollte src_ip, rule und event_log mit Werten enthalten.
Kibana-Datenansicht erstellen
Öffnen Sie in Kibana Stack Management → Data Views → Create data view:
- Name:
access-gate - Index pattern:
access-gate-* - Timestamp field:
@timestamp
Öffnen Sie Discover, wählen Sie die Datenansicht access-gate und setzen Sie den Zeitraum auf die letzten 15 Minuten. Ein über die Access Gate-Oberfläche ausgelöstes Login-Ereignis sollte mit allen extrahierten Feldern erscheinen.
Erkennungsregel hinzufügen
Verwenden Sie in Kibana unter Security → Rules → Create new rule eine Custom query-Regel mit folgenden Einstellungen:
- Index pattern:
access-gate-* - Query:
severity:"ALERT" AND rule:"Access Screen Login Attempt" - Severity:
Medium
Diese Regel löst aus, sobald Access Gate eine authentifizierte Anmeldung an einem privilegierten Screen protokolliert — passen Sie die Abfrage an die gewünschten Regeln an.
Verwandte Themen
- Log-Weiterleitung und SIEM-Export — Syslog-Ziel auf der Access Gate-Seite konfigurieren
- Erkennung und Alerts — was den Alert-Stream befüllt
- Systemlogs und Diagnoseinformationen — geräteseitige Logs zur Fehlersuche