実行する
サービスとしてのFalcoを実行
deb もしくは rpmパッケージを使用してFalcoをインストールした場合は、サービスを開始することができます:
service falco start
あるいは、systemd
の場合:
systemctl start falco
これは systemd-sysv-generator
が init.d
スクリプトを systemd
ユニットにラップしているからです。
また、journalctl
を使ってFalcoのログを見ることもできます。
journalctl -fu 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 BPF
を渡すことができます。
そして、カーネルモジュールのインストールセクションは完全に無視してください。
詳しくはこちらをご覧くださいこちら
このようにして、Falco ユーザスペースプロセスをコンテナ内で実行することができます。
カーネルモジュールがホストシステムに直接インストールされると、コンテナ内から使用することができます。
カーネルモジュールのインストール:
- 公式のインストール方法をホスト上で直接使用することができます。
- あるいは、特権コンテナを一時的に使用してホストにドライバをインストールすることもできます:
docker pull falcosecurity/falco-driver-loader:latest docker run --rm -i -t \ --privileged \ -v /root/.falco:/root/.falco \ -v /proc:/host/proc:ro \ -v /boot:/host/boot:ro \ -v /lib/modules:/host/lib/modules \ -v /usr:/host/usr:ro \ -v /etc:/host/etc:ro \ falcosecurity/falco-driver-loader:latest
falcosecurity/falco-driver-loader
イメージは単に falco-driver-loader
スクリプトをラップしているだけです。
その使用法についての詳細はこちらをご覧ください
Dockerを使ってコンテナ内のFalcoを最小特権の原則で実行する:
docker pull falcosecurity/falco-no-driver:latest docker run --rm -i -t \ --cap-add SYS_PTRACE --pid=host $(ls /dev/falco* | xargs -I {} echo --device {}) \ -v /var/run/docker.sock:/var/run/docker.sock \ falcosecurity/falco-no-driver:latest
AppArmor LSMを有効にしたシステム(例:Ubuntu)でFalcoを実行している場合、--security-opt apparmor:unconfined
を次のように渡す必要があります。
上記の docker run
コマンドを実行します。
AppArmorが有効になっているかどうかは、以下のコマンドを使用して確認できます:
docker info | grep -i apparmor
ls /dev/falco* | xargs -I {} echo --device {}
は CPU ごとに --dev/dev/falcoX
オプションを出力することに注意してください (つまり、Falco のカーネルモジュールによって作成されたデバイスだけです)。
完全特権
Dockerを使ってコンテナでFalcoをフル権限で実行するには:
カーネルモジュールドライバでFalcoを使用する場合
docker pull falcosecurity/falco:latest
docker run --rm -i -t \
--privileged \
-v /dev:/host/dev \
-v /proc:/host/proc:ro \
-v /boot:/host/boot:ro \
-v /lib/modules:/host/lib/modules:ro \
-v /usr:/host/usr:ro \
-v /etc:/host/etc:ro \
falcosecurity/falco:latest
あるいは、eBPFプローブドライバを使用することもできます:
docker pull falcosecurity/falco:latest
docker run --rm -i -t \
--privileged \
-e FALCO_BPF_PROBE="" \
-v /dev:/host/dev \
-v /proc:/host/proc:ro \
-v /boot:/host/boot:ro \
-v /lib/modules:/host/lib/modules:ro \
-v /usr:/host/usr:ro \
-v /etc:/host/etc:ro \
falcosecurity/falco:latest
その他の設定可能なオプション:
DRIVER_REPO
- ドライバのインストール を参照してください。SKIP_DRIVER_LOADER
- この環境変数を設定することで、falcosecurity/falco
イメージの起動時にfalco-driver-loader
を実行しないようにします。ドライバが既に他の方法でホストにインストールされている場合に便利です。
ホットリロード
これは、PIDを殺さずにFalcoの設定を再ロードし、エンジンを再起動します。これは、デーモンを殺さずに新しい設定変更を伝播させるのに便利です。
kill -1 $(cat /var/run/falco.pid)
Was this page helpful?
Let us know! You feedback will help us to improve the content and to stay in touch with our users.
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.