Dies ist eine mobil optimierte Seite, die schnell lädt. Wenn Sie die Seite ohne Optimierung laden möchten, dann klicken Sie auf diesen Text.

gelöst Server Absicherung - Crowdsec / Oscam

    Nobody is reading this thread right now.

tem_invictus

Elite User
Premium
Registriert
18. Februar 2017
Beiträge
1.696
Lösungen
3
Reaktionspunkte
1.490
Punkte
393
Wer einen eigenen Server betreibt der öffentlich zugänglich ist, sollte sich mit dem Thema Sicherheit auseinandersetzen.
Ich nutze dafür schon seit längerem Crowdsec, für mich die deutlich bessere Option als z.B. failban. Das soll hier aber keine Einführung zu Crowdsec werden, dazu gibt es im Internet genug Anleitungen.

Was mir bisher gefehlt hat, ist eine Integration der Oscam Logs. Damit auch dort Versuche mit falschen User/Passwort automatisch geblockt werden. Dazu habe ich einen Parser und ein Scenario geschrieben, damit Crowdsec mit den Oscam Logs umgehen kann.

Dazu müssen zwei Dateien angelegt werden, mit dem Inhalt aus den Spoilern unten.
Code:
sudo nano /etc/crowdsec/parsers/s01-parse/oscam-logs.yaml
sudo nano /etc/crowdsec/scenarios/oscam-bf-unknown-user.yaml
Code:
name: crowdsecurity/oscam-logs
description: "Parse oscam logs for rejected unknown user attempts"
filter: "evt.Parsed.program == 'oscam'"
onsuccess: next_stage
nodes:
  - grok:
      pattern: '^%{YEAR:year}/%{MONTHNUM:month}/%{MONTHDAY:day} %{HOUR:hour}:%{MINUTE:minute}:%{SECOND:second} %{DATA:connection_id} c\s+\(client\) %{DATA:client_info} %{IPORHOST:source_ip} rejected \(unknown user\)'
      apply_on: message
      statics:
        - meta: log_type
          value: oscam_auth_failed_unknown_user
        - target: evt.StrTime
          expression: evt.Parsed.year + "/" + evt.Parsed.month + "/" + evt.Parsed.day + " " + evt.Parsed.hour + ":" + evt.Parsed.minute + ":" + evt.Parsed.second
        - meta: connection_id
          expression: evt.Parsed.connection_id
        - meta: client_info
          expression: evt.Parsed.client_info
statics:
  - meta: service
    value: oscam
  - meta: source_ip
    expression: evt.Parsed.source_ip
Code:
#type: leaky
type: trigger
name: crowdsecurity/oscam-bf-unknown-user
description: "Detect multiple Oscam login failures from unknown user from same IP"
filter: "evt.Meta.log_type == 'oscam_auth_failed_unknown_user'"
groupby: evt.Meta.source_ip
#leakspeed: "10s"
#capacity: 1
blackhole: 5m
labels:
  service: oscam
  type: brute-force
  remediation: true

Danach muss noch in der acquis.yaml Datei angegeben werden, wo sich das Oscam Log File befindet. Je nachdem was man schon alles in Crowdsec eingestellt hat, sind da natürlich schon andere Einträge vorhanden. Wichtig ist nur den Oscam Teil zu übernehmen.
Code:
sudo nano /etc/crowdsec/acquis.yaml
Code:
filenames:
  - /var/log/oscam/oscam.log
labels:
  type: oscam
---
filenames:
  - /var/log/auth.log
labels:
  type: syslog
---
filenames:
  - /var/log/syslog
  - /var/log/kern.log
labels:
  type: syslog
---

Danach einmal den Crowdsec Service Neustarten
Code:
sudo service crowdsec restart

Dann kann man sich mit folgendem Befehl die Metrics ansehen. Dort sollte dann unter "Acquisition Metrics", das Oscam Log auftauchen. "Lines Parsed" werden nur gezählt, wenn der richtige Inhalt in der Log Line gefunden wurde. In unserem Fall sucht er nach "rejected (unknown user)" und der dazugehörigen IP.
Du musst Regestriert sein, um das angehängte Bild zusehen.
Code:
sudo cscli metrics

Wie gesagt, dass soll hier kein Crowdsec Tutorial sein, wer Crowdsec aber schon nutzt kann so Oscam einbinden.
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…