CentOS 7からデフォルトのFirewalldでハマった(iptablesは今後使わない?)

ファイアウォール Firewalld

CentOS 7をはじめて使ってみて、あまりにもCentOS 6と違って戸惑いました。

詳しくは、以下の記事にまとめました。

保存版 CentOS 7とCentOS 6との違いまとめ
CentOS 7はCentOS 6以前のCentOSに比べて様々な点が異なっています。 これまでにない...

今回は、CentOS 7から採用されたFirewalld (ファイアウォールのデーモン) でハマった話です。

スポンサーリンク
スポンサーリンク

CentOS 7ではiptablesを使わない?

CentOS 7をインストール後にnginxをインストールしてnginxを起動しました。

外部からブラウザで

http://(ドメイン名 xxx)/

として開こうとしても表示されませんでした。

この種の問題は、過去の経験から iptables のせいだと確信して、サーバーで以下のコマンドを実行しました。

案の定、sshしかポートが空いていません。

しかし、よくよく調べてみたら、iptablesのサービスそのものは停止しているようです。

おかしい?

なんで、iptablesのサービスは止まっているのにiptablesそのものは動作しているように見えるのだろう。

CentOS 7からiptablesに代わり登場したFirewalld

調べたところ、CentOS 7ではiptablesに代わり、Firewalldという概念が登場したようです。

詳しくは、Firewalldはiptablesの代替というよりも、iptablesをバックエンドにゾーン(zone)という概念を入れて、フロントエンドで動く仕組みのようなものでしょうか。

そして、Firewalldの設定の方が、iptablesの設定よりも優先されるようです。

例えば、/etc/sysconfig/iptablesを書き換えて、

# systemctl restart iptables.service

としてみると、その時は、/etc/sysconfig/iptablesの設定を読み込んでくれます。

ただ、システムを再起動すると/etc/sysconfig/iptablesの設定を読み込んでくれません。

混乱するので、今後はCentOSのデフォルトの設定どおり、Firewalldをサービスとして起動させて、iptablesの方はサービスとしては停止させたままにしておきます。

Firewalldのよく使うコマンド

Firewalldで取り急ぎ覚えておくべきコマンドは以下の通りです。

# systemctl start firewalld   firewalldを起動
# systemctl stop firewalld    firewalldを停止
# systemctl enable firewalld    firewalldをサービスに登録
# systemctl disable firewalld    firewalldをサービスから解除
# firewall-cmd --list-all-zones   すべてのゾーンをリスト
# firewall-cmd --state    firewalldの状態を表示
# firewall-cmd --get-zones    ゾーンを取得
# firewall-cmd --list-all    現在のゾーンを表示

現在のゾーンを確認してみます。

現在、publicがデフォルトの設定であるとわかります。

Firewalldの設定ファイル

Firewalldの設定ファイルは、

/etc/firewalld/zones

にゾーンごとにxml形式で保存します。

既存の

/etc/firewalld/zones/public.xml

を修正して、

<service name=”http”/>

を追加します。

上記の場合、ssh(ポート22)とhttp(ポート80)が有効になります。

この後、

# systemctl restart firewalld

を実行するか、またはシステムを再起動したら、無事に

http://(ドメイン名 xxxx)/

でブラウザから接続できました。

CentOS7 のサーバー設定のおすすめの本

↓CentOS7のおすすめの本はコチラ

CentOS7

Systemd・firewalldの導入、NetworkManagerへの完全移行、新しいアプリケーションと仮想化をはじめ、すべてが新しくなったサーバ構築を徹底解説!

最後まで読んでいただきありがとうござました。

この記事が気に入っていただけたらシェアしてくれると嬉しいです。