CentOSは、標準でネットワークセキュリティを高めるパケットフィルタリング機能が備わっています。
パケットフィルタリング機能としてCentOS6まではiptablesが利用できますが、CentOS7ではさらにFirewalldが利用できるようになりました。
本記事では、CentOS7から利用できるFirewalldについて、機能の詳細と設定方法を解説します。
CentOSをインストールしたばかりの方は、こちらの記事もご参照ください。
2023.07.06
CentOS 7 のインストール直後に行う初期設定を紹介
CentOS Linux(以下、CentOS)は、RHEL(Red Hat Enterprise Linux)と完全互換を目指して開発された...
2023.07.27
CentOS 7のIPアドレス設定方法を解説
CentOSは、バージョン7からIPアドレスの設定方法が大きく変わっています。今までのIPアドレスの確認コマンドである「if...
CentOS LinuxをVPSで利用するなら
ミライサーバー
\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 | 内部からの通信パケットの返信 |
public | ssh、dhcpv6-client |
external | ssh(ipマスカレード有効) |
dmz | ssh |
work | ssh、dhcpv6-client、ipp-client |
home | ssh、dhcpv6-client、ipp-client、mdns、samba-client |
internal | ssh、dhcpv6-client、ipp-client、mdns、samba-client |
trusted | すべてのパケット |
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 |
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」が削除されていることが確認できます。
コマンドでは、ゾーンおよび対象のサービスまたはポートを指定して、通信の許可設定を行っています。
これにより、必要な通信のみ許可することで、セキュリティを高め、不要な通信を遮断することができます。
適切に設定して、サーバーのセキュリティを強化しましょう。
まとめ
本記事では、CentOS7から実装されたFirewalldについて解説しました。
ゾーンという新しい概念が追加されたことにより、今までのiptablesよりも、通信制御の設定や管理がしやすくなっています。
本記事を参考に、是非Firewalldを使いこなしてください。
UnixやLinuxのVPSならミライサーバー
ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。
ミライサーバーのVPSでは、高速処理が可能なSSDを全プランに搭載しています。
OSは、UbuntuやDebian、AlmaLinuxなどの豊富なラインアップから選択することができます。
2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。