浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

Kagoya Cloud OpenVZではFirewalldが使えない件

本家で配布されている各ディストリビューションの内容と、クラウドサーバー上で利用できる同じ名前のイメージとで、初期状態でインストールされているパッケージや設定などの内容に差分があるものがよくあります。

こういったのはただクラウドサーバー提供者の好み…というわけではなく、各クラウド環境で動かすにあたってOSを最適な状態にしておくためにカスタムが入っていることも多いようです。

最近自分が使用を始めたKagoya CloudのOpen VZ(Dockerのようなコンテナ型のVPS)のサービスで提供されているCentOS 7 イメージも、僕が把握している中でも下記のような違いがあります。

  • デフォルト状態でrootアカウントしかない
  • cronがインストールされていない。
  • sudoがインストールされていない。
  • Firewalldではなくiptablesがファイアウォールとしてデフォルトでインストールされている。

このうち、今回はiptablesを停止、自動起動無効化後、Firewalldをインストールしようと試みました。

結果としては、FirewalldはKagoya Cloud上のOpenVZでは動作しませんでした。

systemctl stop iptables
systemctl disable iptables
yum -y install firewalld
systemctl start firewalld
systemctl enable firewalld

ここまでやれば通常はfirewalldの起動自体は無事にできるはずなのですが、OpenVZ上ではすぐにサービスが停止してしまう状況。

systemctl status firewalld

コマンドで状態を確認したところ

# service firewalld status -l
Redirecting to /bin/systemctl status  -l firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead) since 火 2020-02-11 23:48:29 JST; 10h ago
     Docs: man:firewalld(1)
Main PID: 2404 (code=exited, status=0/SUCCESS)

2月 11 23:48:29 xxxx.kagoya.net systemd[1]: Starting firewalld - dynamic firewall daemon...
2月 11 23:48:29 xxxx.kagoya.net systemd[1]: Started firewalld - dynamic firewall daemon.
2月 11 23:48:29 xxxx.kagoya.net firewalld[2404]: WARNING: ipset not usable, disabling ipset usage in firewall.
2月 11 23:48:29 xxxx.kagoya.net firewalld[2404]: ERROR: Failed to load nf_conntrack module: modprobe: ERROR: could not find module by name='nf_conntrack'
                                                                   modprobe: ERROR: could not insert 'nf_conntrack': Function not implemented
                                                                   modprobe: ERROR: Error running install command for nf_conntrack
                                                                   modprobe: ERROR: could not insert 'nf_conntrack': Operation not permitted
2月 11 23:48:29 xxxx.kagoya.net firewalld[2404]: ERROR: Raising SystemExit in run_server

どうやら’nf_conntrack’というカーネルモジュールが利用できずに失敗しているようです。

OpenVZをはじめとするコンテナ型仮想環境は、ホストOSのカーネル部分のみ共有する構造となっていますが、カーネルモジュールの追加はこのカーネル部分を操作することになるので、利用者側には権限がありません。よってこの環境のOpenVZ上からはFirewalldが起動できないということになります。

OpenVZは起動がはやかったり、スペックアップが容易であったりと利点もたくさんあるのですが、カーネルを共有していることによる制限は、利用する際は頭に入れておいた方がよさそうです。

  • この記事いいね! (2)