Ubuntuサーバー再起動後、dockerコンテナを立ち上げてもiptables にChain DOCKER などが作成されない
Q&A
Closed
解決したいこと
dockerやnginxのリバースプロキシ、letsencryptを用いて構築しているUbuntuサーバーを再起動後、dockerがコンテナを立ち上げてもiptablesを更新しなくなりました。
恐らくですがその影響でkern.logやufw.logにdocker network関係の不審な通信のログが残っている状態です。
また、サーバーも思い通りに動作しなくなっています。
色々調べて試行錯誤しましたが、確信的な原因を見つけられませんでした。また、私自身dockerやサーバー管理初心者かつ、本サーバーも受け継いだものであり、正直下手なことができず、八方塞がりです。
そこで、大変恐縮ですがどなたかご支援いただけますと幸いです。
サーバー環境
OS Ubuntu20.04
docker snapでインストール 20.10.24
サーバーの説明
会社の部署でwebページを公開するために運用しています。
会社のHPがあり、そのサブドメインとして私の部署もWebページを公開しています。そのため、私の扱っているサーバーは会社のルーターのみと直接通信しています。ルーターはハードウェアのインターフェース(LANポート)eno1と接続しています。
ちなみにルーターのIPアドレス、MACアドレスは次のように表記しています。
IP 133,XXX,XXX,XXX
MAC 78:XX:XX:XX:XX:XX
また、eno1のMACアドレスは
f0:XX:XX:XX:XX:XXとなっています
試したこと一覧
sudo systemctl restart docker → dockerというサービスが見つからないと言われエラー
sudo systemctl restart snap.docker.dockerd.serviceコマンドでdocker再起動後、docker-compose-upでコンテナ立ち上げ → 何も変わらず
snap/docker/ 内にあるdaemon.jsonファイルの調査 → 特にiptables関連の項目は見つからず
iptablesのchainをクリアして、sudo systemctl restart snap.docker.dockerd.service → 特に状況は変わらず
発生している問題・エラー
docker compose upでコンテナを立ち上げしてもiptablesにdockerのchainが追加されない
実行したコマンド
docker compose up
sudo iptables -L -n -v | grep -A7 "DOCKER"
出力結果
想定している出力結果の例 (一部)
2872K 961M DOCKER-USER all -- * * 0.0.0.0/0 0.0.0.0/0
2872K 961M DOCKER-ISOLATION-STAGE-1 all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * br-2e2f0e5dde0c 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 DOCKER all -- * br-2e2f0e5dde0c 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- br-2e2f0e5dde0c !br-2e2f0e5dde0c 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- br-2e2f0e5dde0c br-2e2f0e5dde0c 0.0.0.0/0 0.0.0.0/0
2480K 812M ACCEPT all -- * br-76506fe0f613 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
61435 3686K DOCKER all -- * br-76506fe0f613 0.0.0.0/0 0.0.0.0/0
kern.logやufw.logの状態
現在のログ(eno1がルーターと接続しているインターフェース、br-〇〇がdocker networkのブリッジです)
現在、つまり異常が発生しているログではIN=eno1 OUT=br-〇〇などのルーターと接続しているインターフェースに通信が出入りをブロックしているログやdocker networkのブリッジからの通信をブロックしているログが大量にあります。
また、通信の発生源がグローバルIPアドレスであるものがあり、セキュリティ的にも不安が残ります。
さらに、一番下の行を見るとdockerの内部通信もうまく行っていないという状態です。
May 30 09:50:40 XXXXXX kernel: [72972.052621] [UFW BLOCK] IN=eno1 OUT=br-17dae58564d7 MAC=f0:XX:XX:XX:XX:XX:78:XX:XX:XX:XX:XX:08:00 SRC=160.XXX.XXX.XXX DST=172.XXX.XXX.XXX LEN=52 TOS=0x00 PREC=0x00 TTL=117 ID=19889 DF PROTO=TCP SPT=55327 DPT=443 WINDOW=64240 RES=0x00 SYN URGP=0
May 30 09:51:00 XXXXXX kernel: [72991.940968] [UFW BLOCK] IN=br-17dae58564d7 OUT=eno1 MAC=02:XX:XX:XX:XX:XX:78:XX:XX:XX:XX:XX:08:00 SRC=172.XXX.XXX.XXX DST=172.XXX.XXX.XXX LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=9460 DF PROTO=TCP SPT=35444 DPT=443 WINDOW=64240 RES=0x00 SYN URGP=0
May 30 09:51:21 XXXXXX kernel: [73012.586309] [UFW BLOCK] IN=eno1 OUT=br-17dae58564d7 MAC=f0:XX:XX:XX:XX:XX:78:XX:XX:XX:XX:XX:08:00 SRC=125.XXX.XXX.XXX DST=172.XXX.XXX.XXX LEN=60 TOS=0x00 PREC=0x00 TTL=48 ID=61729 DF PROTO=TCP SPT=56862 DPT=443 WINDOW=64240 RES=0x00 SYN URGP=0
May 30 09:53:31 XXXXXX kernel: [153773.062592] [UFW BLOCK] IN=br-f034a823761c OUT=br-f034a823761c PHYSIN=veth96d198d PHYSOUT=veth57b7cd0 MAC=02:XX:XX:XX:XX:XX:02:XX:XX:XX:XX:XX:08:00 SRC=172.XXX.XXX.XXX DST=172.XXX.XXX.XXX LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=10575 DF PROTO=TCP SPT=54758 DPT=3306 WINDOW=64240 RES=0x00 SYN URGP=0
正常に動作していたとき
一方、サーバー再起動前正常に動作していたときでは、会社のルーターのマルチキャスト通信をブロックしているだけのログだけがある状態でした。
May 28 08:44:29 XXXXXX kernel: [5493405.900600] [UFW BLOCK] IN=eno1 OUT= MAC=01:XX:XX:XX:XX:XX:78:XX:XX:XX:XX:XX:08:00 SRC=133.XXX.XXX.XXX DST=224.XXX.XXX.XXX LEN=32 TOS=0x00 PREC=0xC0 TTL=1 ID=61544 PROTO=2
May 28 08:44:29 XXXXXX kernel: [5493405.900600] [UFW BLOCK] IN=eno1 OUT= MAC=01:XX:XX:XX:XX:XX:78:XX:XX:XX:XX:XX:08:00 SRC=133.XXX.XXX.XXX DST=224.XXX.XXX.XXX LEN=32 TOS=0x00 PREC=0xC0 TTL=1 ID=18234 PROTO=2
May 28 08:44:29 XXXXXX kernel: [5493405.900600] [UFW BLOCK] IN=eno1 OUT= MAC=01:XX:XX:XX:XX:XX:78:XX:XX:XX:XX:XX:08:00 SRC=133.XXX.XXX.XXX DST=224.XXX.XXX.XXX LEN=32 TOS=0x00 PREC=0xC0 TTL=1 ID=43274 PROTO=2
ログに関しては正常に動作していない時は会社のルーターのマルチキャスト通信をブロックするだけだったのですが、障害発生後は多くのグローバルIPアドレスからの通信をブロックした形跡があります。
原因が分からず本当に困っております。ご支援いただけますと幸いです。