Linux マシンへの Crowdsec のデプロイ

Crowdsecで続けます! 前のドキュメントで、基本的な概念と、それを中央で、さらにはWindowsにデプロイする方法をすでに見てきました, したがって、今日は、CrowdsecエージェントをLinuxコンピューターにインストールして外部の脅威から保護する場合に従う必要のある手順を見ていきます.

 

ご想像の通り, インストールは、マシンが使用するディストリビューションによって異なります, このドキュメントは、Ubuntuサーバーへのインストールに基づいています, 私はNginxがいくつかのWebページを提供したことを覚えていると思います. それでは、始めましょう, 日頃, Linuxサーバー上で行うことが理解されています, サービスを公開しており、保護したい; また、必ずしもインターネット上で公開する必要はありません. まず、Crowdsecセキュリティエンジンをインストールします, これは、ログの処理を担当するエージェントです, あなたの決定を下す… 次に、バウンサーを取り付けます (o 修復コンポーネント) Linuxファイアウォール用, あなたのOSの (この場合はiptables), 私たちが行動することに興味があり、それにルールを登録できる場合, 悪意のあるIPアドレスへの一時的なアクセスをブロックする. そして、最終的にCrowdsecコンソールに登録します.

それで、私たちはそれをほぼ持っているでしょう, 投稿が続くように, はオプションです, しかし、一元管理が必要な場合, いくつかの追加の手順を実行する必要があります; 以上です, あなたの選択. 必要な場合, あなたは前に自分自身を読まなければなりません 前の投稿.

この投稿には次の構成があります:

 

 

Crowdsec エージェントのインストール

 

私が言ったこと, このインストールはUbuntuサーバーに基づいています, 別のディストリビューションがある場合, チェックアウト 公式サイト. まず、公式のCrowdsecリポジトリをインストールすることから始めました。:

curl -s https://install.crowdsec.net | スウェットSH

 

そして、Crowdsecをインストールしました, それはすでにご存知の通りです, マシンで使用している可能性のあるサービスを検出し、コレクションをダウンロードして保護します, 開始:

sudo apt crowdsecをインストールする

 

 

Crowdsec Firewall iptables bouncer のインストール

 

Crowdsecエージェントがインストールされると、バウンサーをインストールしないと、このマシンでアクションを実行できないこともわかっています, そのため、この修復コンポーネントをインストールします, 私の場合はUbuntuで、iptablesを使用しています, だから私たちはそのインストールに進みます:

sudo apt crowdsec-firewall-bouncer-iptablesをインストールする

 

 

Crowdsec と Crowdsec コンソールの登録

 

すでにアカウントを持っていると思います https://app.crowdsec.net GUIコンソールからすべてのCrowdsecを一元化された方法で管理するために作成できることを私たちは知っています, 必須ではありません, そして、私たちはあなたも多くのことを行うことができるコミュニティバージョンを持っています, 含む, 次に、マシンアラートを表示します, あなたのステータス, それらをさまざまなブロックリストに登録できます…. Crowdsecは引き続き追加されています, このLinuxへのインストール. 実行する必要のあるコマンドをコピーします.

 

そして、それをシステムコンソールに貼り付けました, 走る:

sudo cscliコンソールはxxxxxxxxxxxxxxxxxxを登録します

 

Crowdsecコンソールに戻り、ロールを受け入れます,

 

 

新しく追加されたエンジンについて, 名前を編集し、それが誰であるかを参照する名前を配置します,

 

日頃, 機械の名前を示します, そして、私たちは与えます “更新”,

 

そして、私たちが望むなら, 次に、いくつかのブロックリストを追加できます, こちらは, 私たちはあなたを押すことができます “ブロックリスト”,

 

すでにブロックリストに登録している場合, 以下から選択できます “取り締まる”

 

そしてクリックしてください “セキュリティエンジンを追加” このマシンをこのブロックリストに追加するには,

 

 

アクションの種類を選択し、確認します. 購読しているマシン!

コンソールに対してCrowdsecを登録した後は、使用しているCrowdsecサービスを再起動する必要があることに注意してください.

sudo systemctl restart crowdsec

 

 

コレクション

 

すでにご存知のように. デフォルトでは、Crowdsecをマシンにインストールすると、インストールしたサービスをスキャンして保護しようとします, この場合, 私のLinuxでは、ベースのものだけが私を検出しました, それです, OSとSSHd. たとえば、Nginxがあれば、そのコレクションをインストールしていたでしょう, またはGrafanaの場合… コレクションを一覧表示するには:

sudo cscli コレクション リスト

 

でより多くのコレクションを検索することができます あなたのハブ, 彼らまたはコミュニティによって作られたコレクション, それは私たちが持っている他のサービスを保護することができます, たとえば、Nginxを事後的にインストールし、そのコレクションが必要であるかのように, 実行する:

CSCLI Collections は CrowdSecurity/NGINX をインストールします

 

そして、あなたの調達ファイルに「/etc/crowdsec/acquis.yaml」を追加する必要があります。’ 以下の内容, ハブがそれぞれの場合に何をすべきかについて詳細に説明されていることを心配しないでください, Nginxログのパスを修正します… そして、サービスも保護されます.

ファイル名:
  - /var/log/nginx/access.log
  - /var/log/nginx/error.logラベル:
  種類: ジプシー
---

 

同様に、たとえば、このUbuntuのこのNginxがNextcloudに役立っている場合, まあ、彼のコレクションも入れるべきです, したがって、不適切なアクセスを統合して防止します, Nextcloudのログを読み取って処理し、意思決定を行う.

CSCLI Collectionsはcrowdsecurity/nextcloudをインストールします

 

そして、ファイルacquire.yamlに以下を追加します (私はこれがハブに文書化されていると主張します):

ファイル名:
 - /var/log/nextcloud/nextcloud.log ラベル:
  種類: ネクストクラウド
---

源: 報告されたctlのjournalctl_filter:
  - "SYSLOG_IDENTIFIER=ネクストクラウド"
ラベル:
  種類: syslog の
---

 

大幅な変更を加えた場合は、Crowdsecサービスを再起動することを忘れないでください:

sudo systemctl restart crowdsec

 

 

ホワイトリスト

すでにご存知のように、ホワイトリストは、たとえば、IPアドレスがCrowdsecによって禁止またはブロックされないようにするのに役立ちます, 通常は、チェックポイントのIPアドレスにすることができます, ジャンプ装備, 等… また、国を除外することもできます, 例えば.

名前: CrowdSecurity/ホワイトリストの説明: "プライベートIPv4アドレスからのイベントのホワイトリスト登録"
ホワイトリスト:
  理由: "プライベートIPv4/IPv6 IP/範囲"
  IPアドレス:
    - "127.0.0.1"
    - "::1"
    - "192.168.1.33"
  シドル:
    #- "192.168.0.0/16"
    #- "10.0.0.0/8"
    - "172.16.0.0/12"
  # 表現:
  #   - "'foo.com' in evt.Meta.source_ip.reverse"

このファイルは「/etc/crowdsec/hub/parsers/s02-enrich/crowdsecurity/whitelists.yaml」にあります。, そして、任意のIPまたはIP範囲を除外ホワイトリストに追加するだけであることがわかります.

国を除外したい場合, まず、ログにジオロケーションデータを供給するGeoIP-Enrichパーサーをインストールする必要があります, など, 都市またはGPS座標:

CSCLI パーサーによる CrowdSecurity/GeoIP-Enrich のインストール

そして、ホワイトリストファイルに次の式を追加するだけで十分です:

表現:
  - evt.Enriched.IsoCode == 'ES'

これらの変更を再読み込みするには、Crowdsec サービスを再起動することを忘れないでください.

sudo systemctl restart crowdsec

通知

 

通知:
  - slack_default
  - splunk_default
  - http_default
  - email_default

ファイル「/etc/crowdsec/profiles.yaml」を編集することで通知を有効にすることができます, コメントを解除して、関心のある通知のタイプを選択できる場所, Splunkにとって何ができるのか, Slackへ, メールでのお問い合わせ, またはHTTPを使用 (たとえば、Telegram).

 

たとえば、電子メール通知が必要な場合, ディレクトリ '/etc/crowdsec/notifications/’ YAMLファイルemail.yamlを編集します (o slack.yaml または splunk.yaml または http.yaml), ここで、メールサーバーのパラメーターを構成します. Telegramの私たちは、投稿でそれを見ました 老人.

 

 

テストする

やってみることになりますよね。? そうでない場合、これが機能することをどうやって信頼しますか? 🙂 あなたはあなたが望む間違った入学試験をすることができます, または、脆弱性スキャナーで検証します, またはウェブサイト… その古いドキュメントには、Niktoの例があります.

あなたはあなたのマシンが下した決定を見ることができます:

CSCLI 決定リスト

この場合、IPアドレスが禁止されています 192.168.1.122 脆弱性スキャナーを設置してチェックしたところ、追跡すべきでないものを追跡していることがすぐに検出されました…

または、登録した場合はLAPIサーバーから (今後の展開)

docker exec -it crowdsec-crowdsec-1 cscli 決定リスト

Crowdsec Mirror をすでにデプロイしている場合, 禁止されたIPアドレスが、httpブロックリストを公開しているURLに表示されていることを確認できます://DIRECCION_IP_CROWDSEC_MIRROR:41412/セキュリティ/ブロックリスト

IPアドレスを禁止したい場合, 私たちはそれを行います:

cscli decisions add --ip DIRECCIÓN_IP --reason "形容"

IPアドレスの禁止を解除したい場合, 私たちはそれを行います:

cscli decisions delete --ip DIRECCIÓN_IP

私たちは、私たちが持っていたアラートを調査することができます:

CSCLI アラート リスト

前のコマンドでそれらをリストします, 次に、特定のアラートのIDを選択すると、それを生成したログファイルを知ることができます, 私がやっていたこと, パス, HTTP ステータス… この画像の場合、多くのものがあります 404 AL パス /apps/files_sharing/publicpreview/

CSCLI アラート検査ID_ALERTA [-d]

そして, 必要なら, 独自のホワイトリストファイルを作成して、誤検知の場合に除外します, pej at '/etc/crowdsec/parsers/s02-enrich/whitelist-permite-pdfs.yaml, これらの式の例を使用して、除外フィルターを作成できます:

名前: crowdsecurity/mylistablancapdfs 説明: "PDFを無視"
ホワイトリスト:
  理由: "PDFを無視する"
  表現:
    #- evt.Meta.http_path startsWith '/apps/files_sharing/publicpreview/'
    #- evt.Meta.http_status == '404' && evt.Meta.http_path startsWith '/apps/files_sharing/publicpreview/'
    - evt.Parsed.request contains '/apps/files_sharing/publicpreview/'

いつも通り, 設定変更のたびにCrowdsecサービスを再起動することを忘れないでください.

LAPIサーバーに対するCrowdsecの登録

 

APIの:
...
  サーバー:
    エネーブル: 偽
...

 

ローカルLAPIを無効にする必要があります, ファイル「/etc/crowdsec/config.yaml」の編集, enable false を追加しました。.

 

次に、ネットワーク上に展開したLAPIサーバーに対して登録します:

Sudo cscli lapi register -u HTTP://DIRECCION_IP_CROWDSEC_LAPI:8080 --マシンNOMBRE_MAQUINA

 

LAPIサーバーでは、Linuxマシンの登録リクエストを確認できます, 私たちはリストします:

sudo docker exec -it CrowdSEC-CrowdSEC-1 CSCLIマシン一覧

 

登録リクエストを受け付け、ステータスを確認するために再リスティングします:

sudo docker exec -it CrowdSEC-CrowdSEC-1 CSCLIマシンはNOMBRE_MAQUINAを検証します

 

これで、Linux上のCrowdsecは、任意の決定をLAPIサーバーから通信および読み取ります, したがって、セントラルサーバーを使用します. Crowdsecの他のエージェントも同じことをするなら, それらすべてに共通の情報があります, したがって、, マシンがIPを悪であると疑った場合, Crowdsecの他のエージェントはすぐにそれを知るでしょう.

 

変更後は、常にCrowdsecを再起動することを忘れないでください:

sudo systemctl restart crowdsec

 

 

LAPIサーバーに対するCrowdsecバウンサーの登録

そして結論として, また、私たちが持っているバウンサーを登録する必要があります, この場合、Ubuntuファイアウォールバウンサー, iptablesの場合; そのバウンサーが中央の LAPI から読み取るようにする場合, 次の手順に従う必要があります, これは言われていることです, 誰かまたは何かが中央の LAPI に IP を追加したとき, このオペレーティングシステムのファイアウォールは、上記の悪意のあるIPへのアクセスを拒否するルールを作成します.

LAPI サーバーから, 登録したバウンサーをリストしたい場合は、最初にできます:

sudo docker exec -it crowdsec-crowdsec-1 cscliバウンサーリスト

そして、このUbuntuのファイアウォールバウンサーを登録するには, 実行する:

sudo docker exec -it crowdsec-crowdsec-1 cscliバウンサーはNOMBRE_MAQUINA-FWを追加します

私たちに与えられたAPIキーを書き留めます,

...
api_url: HTTPの://DIRECION_LAPI_SERVER:8080
api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxx
...

ファイル/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yamlを編集し、LAPIサーバーのIPを配置します, そのポートと、前のコマンドを提供したAPIキー. ファイルを保存し、ファイアウォールバウンサーサービスを再起動します:

sudo systemctl restart crowdsec-firewall-bouncer

そして、登録したUbuntuチームのFWが出てくるよ, で検証します:

sudo docker exec -it crowdsec-crowdsec-1 cscliバウンサーリスト

面白かっただけたでしょうか, のガイドを作りたかったのです 3 基本伝票とこれで決済されます, LinuxコンピューターにCrowdsecをインストールする方法はすでに学習しました, Windowsの場合, また、すべてのエージェントが相互に通信し、攻撃者がいるかどうかを互いに伝える集中管理を生成しました, さらに、リストを境界または内部ファイアウォールに公開して、それらをブロックし、潜在的な攻撃者を隔離できるようにします. まあ、いつもの, もう遅いので, 何時か見てください… 😉 良い一週間をお過ごしください!

おすすめの投稿

著者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 私に連絡することを躊躇しないでください, できる限りお手伝いします, シェアリングは生きていること ;) . ドキュメントを楽しむ!!!