CentOS7でのFirewalldの設定方法を解説

CentOSは、標準でネットワークセキュリティを高めるパケットフィルタリング機能が備わっています。

パケットフィルタリング機能としてCentOS6まではiptablesが利用できますが、CentOS7ではさらにFirewalldが利用できるようになりました

本記事では、CentOS7から利用できるFirewalldについて、機能の詳細と設定方法を解説します

 

CentOSをインストールしたばかりの方は、こちらの記事もご参照ください。

CentOS LinuxVPSで利用するなら
ミライサーバー
\2週間無料・全プランSSD搭載/
ミライサーバーを無料で試す

Firewalldとは

CentOS7から実装されたパケットフィルタリング機能

Firewalldは、CentOS7から新たに実装されたパケットフィルタリング機能です。

CentOS6までiptablesが使われていますが、CentOS7から新たにFirewalldが追加されました

Firewalldは、内部的にiptablesを使用しており「iptablesに機能追加してより使いやすくしたもの」です

そのため、iptablesの代替ではなく、iptablesのコントローラーといえます。

今後は、Firewalldを使用することが推奨されています。

iptablesとFirewalldは両方を同時に使用することができず、使用する場合はもう一方は停止する必要があります。

iptablesとFirewalldの違い

Firewalldはiptablesと違い、以下の特徴があります。

    • ネットワークインターフェース毎に設定を付与出来る
    • 既存の接続やセッションに影響せず、動的な変更が可能
    • 「ゾーン」という概念が存在する

昨今ではネットワーク仮想化をはじめ設定が複雑になっており、都度iptablesの設定変更や設定内容の管理を行うのが大変な状況となってきています。

その負担を軽減し、より管理しやすくなったのがFirewalldです。

「ゾーン」について

Firewalldは、新たにゾーンという概念が追加されています。

ゾーンはいわばテンプレートのようなもので、通信制御をグルーピングしたものです。

これまでiptablesでは、ネットワークインターフェースごとに1つ1つ通信制御を設定していました。

しかし、この場合だと同じ設定であっても個別に設定しなければならず、インターフェース数が増えると設定や管理が大変になります。

ゾーンを利用すれば、同じゾーンであれば同じ通信制御が設定されるため、設定・管理の手間を大きく削減できるようになりました

デフォルトでは、以下の9つのゾーンが設定されています。

このゾーンに対し、環境に合わせて通信制御を追加または削除することで、パケットフィルタリングを設定していきます。

ゾーンデフォルトで許可されている通信
dropなし(すべてのパケットを破棄)
block内部からの通信パケットの返信
publicssh、dhcpv6-client
externalssh(ipマスカレード有効)
dmzssh
workssh、dhcpv6-client、ipp-client
homessh、dhcpv6-client、ipp-client、mdns、samba-client
internalssh、dhcpv6-client、ipp-client、mdns、samba-client
trustedすべてのパケット

Unix系OS専門のホスティングサービス「ミライサーバー」

Firewalldの設定方法

前提条件

Firewalldの設定方法を解説するまえに、本記事で使用する環境(仮想マシン)について説明します。

仮想マシンのスペックは以下のとおりです。

    • CPU:2vCPU
    • Memory:4GB
    • Disk:50GB
    • バージョン:CentOS Linux release 7.9.2009(Core)

また、コマンドの標記については、実際に入力するコマンドを太字、補足の内容を青字で記載しています。

なお、CentOSのバージョンは、「/etc/centos-release」を確認できます

【実行例】

また、Firewalldを利用するには、iptablesを停止・無効化しておく必要があります

iptablesが有効になっているかどうかは、以下のコマンドで確認できます。

# systemctl status iptables

もし、有効になっていれば、無効化しておきましょう。

iptablesを停止および無効化するには、以下のコマンドを実行します。

【iptablesの停止】
# systemctl stop iptables
【iptablesの無効化】
# systemctl disable iptables

Firewalldのプロセス管理

最初に、Firewalldの状態を確認しましょう。

以下のコマンドを入力します。

# systemctl status firewalld

【実行例】

Firewalldが起動している場合は「active(running)」が表示されます。

なお、Firewalldの起動・停止などのプロセス管理については、以下のコマンドを実行します。

操作コマンド
Firewalldの停止# systemctl stop firewalld
Firewalldの起動# systemctl start firewalld
Firewalldの再起動# systemctl restart firewalld
自動起動設定の確認# systemctl is-enabled firewalld
自動起動の有効化# systemctl enable firewalld
自動起動の無効化# systemctl disable firewalld

Unix系OS専門のホスティングサービス「ミライサーバー」

Firewalldによるポートの許可

Firewalldでポートの許可設定を行うには、「firewall-cmd」コマンドを使用します。

最初に、現在の状態を確認しましょう。

# firewall-cmd –list-all

デフォルトでは「public」ゾーンが割り当てられています。

上記例だと、「dhcpv6-client」「ssh」の2つのみが許可されていることが確認できます。

それでは、publicに対してポート許可の設定を追加していきます。

publicゾーンに、httpおよびhttpsの通信を許可してみましょう。

許可を追加する場合は、以下のコマンドを実行します。

# firewall-cmd –add-service=http –zone=public –permanent
# firewall-cmd –add-service=https –zone=public –permanent

コマンドを実行したら、変更内容を反映します。

# firewall-cmd –reload

再度設定を確認すると、「http」「https」が追加されていることが確認できます。

これにより、http、httpsの通信が可能になりました。

この設定はpublicゾーンに設定したので、別のインターフェースにもpublicゾーンが設定されていれば、同様にhttp、httpsの通信が可能になります。

なお、許可する通信をサービスではなくポート番号で指定することも可能です。

仮に、8000から8030番のポートを許可する場合は、以下のように指定します。


# firewall-cmd –add-port=8000-8030/tcp –zone=public –permanent

Firewalldによるポート許可の解除

Firewalldでポートの許可設定を行うには、「firewall-cmd」コマンドを使用します。

最初に、現在の状態を確認しましょう。

逆に、許可設定を取り消す場合は、以下のコマンドを実行します。

# firewall-cmd –remove-service=http –zone=public –permanent
# firewall-cmd –remove-service=https –zone=public –permanent

コマンドを実行したら、変更内容を反映します。

# firewall-cmd –reload

再度設定を確認すると、先ほど追加した「http」「https」が削除されていることが確認できます。

コマンドでは、ゾーンおよび対象のサービスまたはポートを指定して、通信の許可設定を行っています。

これにより、必要な通信のみ許可することで、セキュリティを高め、不要な通信を遮断することができます。

適切に設定して、サーバーのセキュリティを強化しましょう。

Unix系OS専門のホスティングサービス「ミライサーバー」

まとめ

本記事では、CentOS7から実装されたFirewalldについて解説しました。

ゾーンという新しい概念が追加されたことにより、今までのiptablesよりも、通信制御の設定や管理がしやすくなっています

本記事を参考に、是非Firewalldを使いこなしてください。

UnixやLinuxのVPSならミライサーバー

ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。

ミライサーバーのVPSでは、高速処理が可能なSSD全プランに搭載しています。

OSは、UbuntuDebianAlmaLinuxなどの豊富なラインアップから選択することができます。

2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。

▼ミライサーバーについてはこちら▼Unix系OS専門のホスティングサービス「ミライサーバー」

VPSなら「ミライサーバー」

・全プランSSD搭載
・2週間無料

▶ ミライサーバーを無料で試す

関連記事

特集記事

TOP