みなさん、こんにちは!新年の前に、当社の製品の大規模な更新であるCrowdSec v.1.0.Xをリリースしました。これには、以前のバージョンと比較して大幅な変更が含まれています。最も重要なことは、ローカルREST APIが稼働し、対応するアーキテクチャの変更が行われたことです。その結果、バウンサーの作成プロセスが大幅に簡素化され、安定性が向上し、システムのメンテナンス時間が短縮されました。
この記事では、CrowdSecがどのように再設計されたかに関する基本的な資料を紹介し、一般に、システムで当社の製品を試してみる人のためのユーザーガイドと見なすことができます。
CrowdSec ( , cscli ) REST API, . , SQLite, PostgreSQL MySQL.
, CrowdSec Linux Server. :
CrowdSec
-
CrowdSec Debian 10 buster t2.medium EC2. nginx:
Debian 10 buster t2.medium EC2.
, nginx:
$ sudo apt-get update
$ sudo apt-get install nginx
, ssh (tcp / 22) http (tcp / 80) . .
CrowdSec
CrowdSec ( GitHub):
$ curl -s https://api.github.com/repos/crowdsecurity/crowdsec/releases/latest | grep browserdownloadurl| cut -d '"' -f 4 | wget -i –
$ tar xvzf crowdsec-release.tgz
$ cd crowdsec-v1.0.0/
$ sudo ./wizard.sh -i
, ,
. nginx, sshd Linux-.
- :
, CrowdSec . , .
— , . , Crowdsecurity/sshd sshd ssh .
, ( , CrowdSec ), .
, ( , ).
— , IP-. , , CrowdSec. .
CrowdSec .
CrowdSec
, CrowdSec , , «».
- wapiti
- nginx wapiti IP-.
ATTACKER$ wapiti -u http://34.248.33.108/ [*] Saving scan state, please wait… Note ======== This scan has been saved in the file /home/admin/.wapiti/scans/34.248.33.108folderb753f4f6.db … |
«»:
, IP :
- Crowdsecurity / http-path-traversal-probing: URI GET
- Crowdsecurity / http-sqli-probbing-detection: SQL- URI GET
, , , nginx-, . , , -.
, - nginx, , , -.
cscli
CrowdSec cscli. — :
cscli decisions list, , , cscli alerts list ( - ).
- , cscli alerts inspect -d <ID> (ID , . ).
scli , . , :
— . «tail the logfile» — metabase dashboard prometheus.
cscli dashboard setup metabase , . :
: Prometheus
, -, , Prometheus metabase.
, cscli metrics:
, cscli metrics Prometheus. , , (!) Prometheus CrowdSec. , Prometheus :
- Buckets: , / ;
- Acquisition: / , / ;
- Parser: / ;
- Local API: . .
cscli, . Prometheus Grafana. :
:
, CrowdSec . , . : CrowdSec , .
cs-firewall-bouncer. IP iptables nftables. , sudo cscli solutions delete -i X.X.X.X ( X.X.X.X — IP-).
- GitHub:
|
$ tar xvzf cs-firewall-bouncer.tgz $ cd cs-firewall-bouncer-v0.0.5/ |
:
, REST API, , :
sudo cscli bouncers list , .
, , IP . , . .
, , - .
:
ATTACKER$ curl --connect-timeout 1 http://34.248.33.108/
curl: (28) Connection timed out after 1001 milliseconds
, :
, cs-firewall-bouncer nftables, iptables. nftables ( debian 10 ) Crowdsec Crowdsec6 ( ipv4 ipv6 ).
$ sudo nft list ruleset
…
table ip crowdsec {
set crowdsec_blocklist {
type ipv4_addr
elements = { 3.22.63.25, 3.214.184.223,
3.235.62.151, 3.236.112.98,
13.66.209.11, 17.58.98.156, …
}
}
chain crowdsec_chain {
type filter hook input priority 0; policy accept;
ip saddr @crowdsec_blocklist drop
}
}
table ip6 crowdsec6 {
set crowdsec6_blocklist {
type ipv6_addr
}
chain crowdsec6_chain {
type filter hook input priority 0; policy accept;
ip6 saddr @crowdsec6_blocklist drop
}
}
iptables mftables, , /etc/crowdsec/cs-firewall-bouncer/cs-firewall-bouncer.yaml/ , iptables ipset.
, , /etc/crowdsec/cs-firewall-bouncer/cs-firewall-bouncer.yaml, , nftables iptables ( iptables ipset).
, . , CrowdSec. :