実行する
サービスとしてのFalcoを実行
deb もしくは rpmパッケージを使用してFalcoをインストールした場合は、サービスを開始することができます:
あるいは、systemd
の場合:
これは systemd-sysv-generator
が init.d
スクリプトを systemd
ユニットにラップしているからです。
また、journalctl
を使ってFalcoのログを見ることもできます。
手動でFalcoを実行する
手作業でFalcoを実行したい場合は、入力することでFalcoの完全な使用法の説明を見つけることができます:
falco --help
ユーザースペースのインストルメントをお探しですか?このページをご覧ください。
Dockerでの実行
Falcoは公式のdocker imagesのセットを提供しています。 イメージは以下の2つの方法で使用できます:
最少特権(推奨)
少なくともKernel 5.8以上でないと、eBPFプローブドライバでLeast privilegedモードを使用することはできません。
これは --privileged
が bpf
のシステムコールを行うために必要だからです。
Kernel >= 5.8 を実行している場合は、ステップ 2 の docker run コマンドに --cap-add SYS_BPF
を渡すことができます。
そして、カーネルモジュールのインストールセクションは完全に無視してください。
詳しくはこちらをご覧くださいこちら
このようにして、Falco ユーザスペースプロセスをコンテナ内で実行することができます。
カーネルモジュールがホストシステムに直接インストールされると、コンテナ内から使用することができます。
カーネルモジュールのインストール:
- 公式のインストール方法をホスト上で直接使用することができます。
- あるいは、特権コンテナを一時的に使用してホストにドライバをインストールすることもできます:
falcosecurity/falco-driver-loader
イメージは単に falco-driver-loader
スクリプトをラップしているだけです。
その使用法についての詳細はこちらをご覧ください
Dockerを使ってコンテナ内のFalcoを最小特権の原則で実行する:
AppArmor LSMを有効にしたシステム(例:Ubuntu)でFalcoを実行している場合、--security-opt apparmor:unconfined
を次のように渡す必要があります。
上記の docker run
コマンドを実行します。
AppArmorが有効になっているかどうかは、以下のコマンドを使用して確認できます:
ls /dev/falco* | xargs -I {} echo --device {}
は CPU ごとに --dev/dev/falcoX
オプションを出力することに注意してください (つまり、Falco のカーネルモジュールによって作成されたデバイスだけです)。
完全特権
Dockerを使ってコンテナでFalcoをフル権限で実行するには:
カーネルモジュールドライバでFalcoを使用する場合
あるいは、eBPFプローブドライバを使用することもできます:
その他の設定可能なオプション:
DRIVER_REPO
- ドライバのインストール を参照してください。SKIP_DRIVER_LOADER
- この環境変数を設定することで、falcosecurity/falco
イメージの起動時にfalco-driver-loader
を実行しないようにします。ドライバが既に他の方法でホストにインストールされている場合に便利です。
ホットリロード
これは、PIDを殺さずにFalcoの設定を再ロードし、エンジンを再起動します。これは、デーモンを殺さずに新しい設定変更を伝播させるのに便利です。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.