Sophos Linux Sensor の再パッケージ
Sophos Linux Sensor (SLS) は、最小限のスクラッチイメージ上に構築された静的リンクの Go アプリケーションです。SLS をベースイメージに再パッケージできます。
これらの手順は、Dockerを実行しているホストにコンテナとしてセンサーの導入の概要を説明しています。ここでのガイダンスを使用して、SLS Docker イメージをお客様の環境で実行できるように設定できます。
前提条件
SLS を再パッケージするには、Docker をインストールして実行している必要があります。また、Sophos Linux Sensor Docker イメージを取得している必要があります。詳細は、Docker イメージを取得するを参照してください。docker image ls
コマンドの出力は、次の例のようになります。
# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
...
registry.sophosupd.com/release/sophos-linux-sensor 5.8.1.10 821473d98e09 6 weeks ago 91.9MB
registry.sophosupd.com/release/sophos-linux-content 5.6.1.2 bc76b3048e4d 6 months ago 7.9MB
Docker イメージファイルのビルド
この例では Alpine Linux を新しいコンテナとして使用しています。
SLS コンテナから新しく作成した Docker イメージに /sophoslinuxsensor
と/var/lib/sophos
をコピーします。次の手順を実行します。
- 新しいファイルを作成します。名前はどのようなものでもかまいません。次の手順で必要になるため、名前をメモしておいてください。
-
ファイルに次の行を入力し、 <sensor repository> を SLS センサーリポジトリの名前に置き換え、<tag> をイメージに使用するタグに置き換えます。
FROM <SENSOR REPOSITORY>:<TAG> AS sophos-linux-sensor FROM alpine:latest AS alpine-base COPY --from=sophos-linux-sensor /sophoslinuxsensor /sophoslinuxsensor COPY --from=sophos-linux-sensor /var/lib/sophos /var/lib/sophos CMD /sophoslinuxsensor
-
次のコマンドを実行して、レジストリに新しいイメージを作成し、<DOCKERFILE> を作成したファイルの名前に置き換え、 <REPOSITORY NAME> をイメージに付ける名前に置き換え、 <TAG> をイメージに付けるタグに置き換えます。
docker build -f <DOCKERFILE> . -t <REPOSITORY NAME>:<TAG>
次に例を示します。
# docker build -f my-docker-file.txt . -t sophoslinuxsensor-alpine:latest [+] Building 0.2s (9/9) FINISHED docker:default => [internal] load build definition from my-docker-file.txt 0.0s => => transferring dockerfile: 384B 0.0s => [internal] load metadata for docker.io/library/alpine:latest 0.1s => [internal] load metadata for registry.sophosupd.com/release/sophos-linux-sensor:5.8.1.10 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [alpine-base 1/3] FROM docker.io/library/alpine:latest@sha256:77726ef6b57ddf65bb551896826ec38bc3e53f75cdde31354fbffb4f25238ebd 0.0s => [sophos-linux-sensor 1/1] FROM registry.sophosupd.com/release/sophos-linux-sensor:5.8.1.10 0.0s => CACHED [alpine-base 2/3] COPY --from=sophos-linux-sensor /sophoslinuxsensor /sophoslinuxsensor 0.0s => CACHED [alpine-base 3/3] COPY --from=sophos-linux-sensor /var/lib/sophos /var/lib/sophos 0.0s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:df3bc6be7b338037d1ca53eb905f9f59d5fdbc0921937a19b6faa5db9794aeb7 0.0s => => naming to docker.io/library/sophoslinuxsensor-alpine:latest 0.0s
イメージが正常に作成されたことを確認するには、
docker image ls
コマンドを使用します。次に例を示します。# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE sophoslinuxsensor-alpine latest df3bc6be7b33 About an hour ago 99.4MB registry.sophosupd.com/release/sophos-linux-sensor 5.8.1.10 821473d98e09 6 weeks ago 91.9MB registry.sophosupd.com/release/sophos-linux-content 5.6.1.2 bc76b3048e4d 6 months ago 7.9MB
新しいイメージの導入
カスタムイメージの導入は、SLSをDocker イメージとして導入するのと同じプロセスに従います。唯一の変更は使用されているイメージへの参照です。詳細は、導入を参照してください。
-
次のコマンドを実行し <REPOSITORY NAME> をイメージの名前に置き換え' <TAG> をイメージのタグに置き換えます。
docker run \ --pid=host \ --privileged \ --user=0 \ --detach \ -v /etc/sophos:/etc/sophos:rw \ -v /tmp/sophos-content:/var/lib/sophos/content:rw \ -v /tmp/sophos-log:/var/log/sophos-log:rw \ -v /sys/fs/cgroup:/var/run/sophos/mnt/sys/fs/cgroup:ro \ -v /sys/kernel/debug:/var/run/sophos/mnt/sys/kernel/debug:rw \ -v /etc/hostname:/var/run/sophos/mnt/hostname:ro \ -v /proc:/var/run/sophos/mnt/proc:ro \ -v /var/lib/docker:/var/lib/docker:ro \ -v /var/run/docker:/var/run/docker:ro \ -v /var/run/containerd:/var/run/containerd:rw \ -v /var/run/crio:/var/run/crio:rw \ --cap-add SYS_ADMIN --cap-add SETUID --cap-add SETGID --cap-add SETPCAP \ --cap-add SYS_PTRACE --cap-add KILL --cap-add DAC_OVERRIDE --cap-add IPC_LOCK \ --cap-add FOWNER --cap-add CHOWN --cap-add SYSLOG \ --cap-add NET_RAW --cap-add SYS_RESOURCE \ <REPOSITORY NAME>:<TAG>
コマンドが成功したことを確認する新しいコンテナのハッシュが表示されます。
-
docker ps
コマンドを実行して、イメージが実行されていることを確認します。次に例を示します。# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4a015bebf4d3 sophoslinuxsensor-alpine:latest "/bin/sh -c /sophosl?" 5 seconds ago Up 4 seconds upbeat_ellis
これで、センサーイメージと Alpine ベースイメージを介してアクセス可能な追加パッケージの両方を実行しているため、異なるコマンドを実行できるようになりました。 次に例を示します。
docker exec -it
# docker exec -it 4a015bebf4d3 sh / # ls -l total 87656 drwxr-xr-x 2 root root 16384 May 22 09:47 bin drwxr-xr-x 11 root root 2800 May 23 19:48 dev drwxr-xr-x 1 root root 20 May 23 19:48 etc drwxr-xr-x 2 root root 6 May 22 09:47 home drwxr-xr-x 6 root root 16384 May 22 09:47 lib drwxr-xr-x 5 root root 44 May 22 09:47 media drwxr-xr-x 2 root root 6 May 22 09:47 mnt drwxr-xr-x 2 root root 6 May 22 09:47 opt dr-xr-xr-x 177 root root 0 May 23 19:48 proc drwx------ 1 root root 26 May 23 19:51 root drwxr-xr-x 1 root root 64 May 23 19:48 run drwxr-xr-x 2 root root 16384 May 22 09:47 sbin -rwxr-xr-x 1 root root 89706632 Apr 8 15:51 sophoslinuxsensor drwxr-xr-x 2 root root 6 May 22 09:47 srv dr-xr-xr-x 13 root root 0 May 23 17:41 sys drwxrwxrwt 2 root root 6 May 22 09:47 tmp drwxr-xr-x 7 root root 66 May 22 09:47 usr drwxr-xr-x 1 root root 28 May 22 09:47 var / # cd /etc/sophos/ /etc/sophos # ls -l total 8 -rw-r--r-- 1 root root 1879 May 23 19:14 runtimedetections-rules.yaml -rw-r--r-- 1 root root 262 May 6 15:38 runtimedetections.yaml /etc/sophos # exit
その他のリソース