passbolt
目次:
- 前提条件
- 基本的なファイアウォールの概念
- ファイアウォールゾーン
- ファイアウォールサービス
- ファイアウォールランタイムおよび永続的な設定
- FirewallDを有効にする
- ファイアウォールゾーン
- ゾーンターゲットの変更
- インターフェイスを別のゾーンに割り当てる
- デフォルトゾーンの変更
- 新しいゾーンを作成する
- ファイアウォールサービス
- 新しいFirewallDサービスの作成
- ポートとソースIPを開く
- ソースIPを開く
- ソースポートを開く
- 転送ポート
- IPアドレスのあるポートから別のポートにトラフィックを転送する
- 別のIPアドレスにトラフィックを転送する
- 別のポート上の別のサーバーにトラフィックを転送する
- 結論
ファイアウォールは、着信および発信ネットワークトラフィックを監視およびフィルタリングする方法です。 特定のトラフィックを許可するかブロックするかを決定する一連のセキュリティルールを定義することで機能します。 適切に構成されたファイアウォールは、システム全体のセキュリティの最も重要な側面の1つです。
CentOS 8には、firewalldという名前のファイアウォールデーモンが付属しています。 システムのファイアウォールを動的に管理できるD-Busインターフェイスを備えた完全なソリューションです。
このチュートリアルでは、CentOS 8でファイアウォールを構成および管理する方法について説明します。また、FirewallDの基本的な概念についても説明します。
前提条件
ファイアウォールサービスを構成するには、rootまたはsudo特権を持つユーザーとしてログインする必要があります。
基本的なファイアウォールの概念
firewalldは、ゾーンとサービスの概念を使用します。 構成するゾーンとサービスに基づいて、システムとの間で許可またはブロックするトラフィックを制御できます。
firewall-cmd
は、
firewall-cmd
コマンドラインユーティリティを使用して構成および管理できます。
CentOS 8では、iptablesは、firewalldデーモンのデフォルトのファイアウォールバックエンドとしてnftablesに置き換えられています。
ファイアウォールゾーン
ゾーンは、コンピューターが接続されているネットワークの信頼レベルを指定する定義済みのルールセットです。 ネットワークインターフェイスとソースをゾーンに割り当てることができます。
以下は、FirewallDが提供するゾーンを、信頼されていないゾーンから信頼されるゾーンの信頼レベルに従って並べたものです。
- drop :すべての着信接続は通知なしでドロップされます。 発信接続のみが許可されます。 block :すべての着信接続は、
IPv4
icmp-host-prohibited
メッセージで、icmp6-adm-prohibited
で拒否icmp6-adm-prohibited
れます。 発信接続のみが許可されます。 public :信頼できない公共エリアで使用します。 ネットワーク上の他のコンピューターを信頼しませんが、選択した着信接続を許可できます。 external :システムがゲートウェイまたはルーターとして機能する場合、NATマスカレードが有効になっている外部ネットワークで使用します。 選択した着信接続のみが許可されます。 internal :システムがゲートウェイまたはルーターとして機能するときに、内部ネットワークで使用します。 ネットワーク上の他のシステムは一般的に信頼されています。 選択した着信接続のみが許可されます。 dmz :非武装地帯にあり、ネットワークの残りの部分へのアクセスが制限されているコンピューターに使用されます。 選択した着信接続のみが許可されます。 work :作業機械に使用されます。 ネットワーク上の他のコンピューターは一般的に信頼されています。 選択した着信接続のみが許可されます。 home :ホームマシンに使用されます。 ネットワーク上の他のコンピューターは一般的に信頼されています。 選択した着信接続のみが許可されます。 信頼済み :すべてのネットワーク接続が受け入れられます。 ネットワーク内のすべてのコンピューターを信頼します。
ファイアウォールサービス
ファイアウォールサービスは、ゾーン内に適用される定義済みのルールであり、特定のサービスの着信トラフィックを許可するために必要な設定を定義します。 このサービスを使用すると、1つのステップで複数のタスクを簡単に実行できます。
たとえば、サービスには、ポートのオープン、トラフィックの転送などに関する定義を含めることができます。
ファイアウォールランタイムおよび永続的な設定
Firewalldは、実行時構成と永続構成という2つの別個の構成セットを使用します。
ランタイム構成は実際の実行構成であり、再起動時に保持されません。 firewalldデーモンが起動すると、永続的な構成が読み込まれ、これがランタイム構成になります。
デフォルトでは、
firewall-cmd
ユーティリティを使用してFirewalld設定に変更を加えると、変更はランタイム設定に適用されます。 変更を永続的にするには、コマンドに
--permanent
オプションを追加します。
両方の構成セットで変更を適用するには、次の2つの方法のいずれかを使用できます。
-
ランタイム構成を変更して永続化します。
sudo firewall-cmd
sudo firewall-cmd --runtime-to-permanent
永続的な構成を変更し、firewalldデーモンをリロードします。
sudo firewall-cmd --permanent
sudo firewall-cmd --reload
FirewallDを有効にする
CentOS 8では、firewalldがデフォルトでインストールされ有効になっています。 何らかの理由でシステムにインストールされていない場合は、次を入力してデーモンをインストールおよび起動できます。
sudo dnf install firewalld
sudo systemctl enable firewalld --now
ファイアウォールサービスのステータスは次の方法で確認できます。
sudo firewall-cmd --state
ファイアウォールが有効になっている場合、コマンドは
running
を印刷
running
必要があります。 それ以外の場合は、実行されて
not running
。
ファイアウォールゾーン
デフォルトゾーンは、別のゾーンに明示的に割り当てられていないすべてに使用されるゾーンです。
次のように入力して、デフォルトゾーンを表示できます。
sudo firewall-cmd --get-default-zone
public
利用可能なすべてのゾーンのリストを取得するには、次を入力します。
sudo firewall-cmd --get-zones
block dmz drop external home internal public trusted work
アクティブなゾーンとそれらに割り当てられたネットワークインターフェイスを表示するには:
sudo firewall-cmd --get-active-zones
次の出力は、インターフェイス
eth0
および
eth1
が
public
ゾーンに割り当てられていることを示しています。
public interfaces: eth0 eth1
ゾーン構成設定は次の方法で印刷できます。
sudo firewall-cmd --zone=public --list-all
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
上記の出力から、パブリックゾーンがアクティブであり、デフォルトターゲットである
REJECT
を使用していることがわかります。 出力は、ゾーンが
eth0
および
eth1
インターフェイスによって使用され、DHCPクライアントとSSHトラフィックを許可することも示しています。
sudo firewall-cmd --list-all-zones
このコマンドは、使用可能なすべてのゾーンの設定を含む膨大なリストを印刷します。
ゾーンターゲットの変更
ターゲットは、指定されていない着信トラフィックに対するゾーンのデフォルトの動作を定義します。
default
、
ACCEPT
、
REJECT
、および
DROP
いずれかのオプションに設定できます。
ゾーンのターゲットを設定するには、ゾーンを
--zone
オプションで指定し、ターゲットを
--set-target
オプションで指定します。
たとえば、
public
ゾーンのターゲットを
DROP
に変更するには、次を実行します。
sudo firewall-cmd --zone=public --set-target=DROP
インターフェイスを別のゾーンに割り当てる
ゾーンごとに特定のルールセットを作成し、それらに異なるインターフェイスを割り当てることができます。 これは、マシン上で複数のインターフェースを使用する場合に特に便利です。
インターフェイスを別のゾーンに割り当てるには、ゾーンを
--zone
オプションで指定し、インターフェイスを
--change-interface
オプションで指定します。
たとえば、次のコマンドは
eth1
インターフェイスを
work
ゾーンに割り当てます。
sudo firewall-cmd --zone=work --change-interface=eth1
次を入力して、変更を確認します。
sudo firewall-cmd --get-active-zones
work interfaces: eth1 public interfaces: eth0
デフォルトゾーンの変更
デフォルトゾーンを変更するには、
--set-default-zone
オプションに続けて、
--set-default-zone
の名前を使用します。
たとえば、デフォルトゾーンを
home
に変更するには、次のコマンドを実行します。
sudo firewall-cmd --set-default-zone=home
以下を使用して変更を確認します。
sudo firewall-cmd --get-default-zone
新しいゾーンを作成する
Firewalldでは、独自のゾーンを作成することもできます。 これは、アプリケーションごとのルールを作成する場合に便利です。
次の例では、
memcached
という名前の新しいゾーンを作成し、ポート
11211
を開き、
192.168.100.30
IPアドレスからのみアクセスを許可します。
-
ゾーンを作成します。
sudo firewall-cmd --new-zone=memcached --permanent
ゾーンにルールを追加します。
sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent
sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent
sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent
firewalldデーモンをリロードして、変更を有効にします。
sudo firewall-cmd --reload
ファイアウォールサービス
firewalldを使用すると、サービスと呼ばれる事前定義されたルールに基づいて、特定のポートやソースへのトラフィックを許可できます。
デフォルトで利用可能なすべてのサービスのリストを取得するには、次を入力します。
sudo firewall-cmd --get-services
/usr/lib/firewalld/services
ディレクトリ内の関連する.xmlファイルを開くと、各サービスに関する詳細情報を見つけることができます。 たとえば、HTTPサービスは次のように定義されます。
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
現在のセッション(ランタイム構成)のみで、パブリックゾーンのインターフェイスに着信HTTPトラフィック(ポート80)を許可するには、次のように入力します。
sudo firewall-cmd --zone=public --add-service=http
デフォルトのゾーンを変更する場合は、
--zone
オプションを
--zone
できます。
サービスが正常に追加されたことを確認するには、
--list-services
オプションを使用します。
sudo firewall-cmd --zone=public --list-services
ssh dhcpv6-client
再起動後にポート80を開いたままにするには、
--permanent
オプションを使用して同じコマンドをもう一度実行するか、次を実行します。
sudo firewall-cmd --runtime-to-permanent
--list-services
と
--permanent
オプションを使用して、変更を確認します。
sudo firewall-cmd --permanent --zone=public --list-services
ssh dhcpv6-client
サービスを削除するための構文は、サービスを追加するときと同じです。
--add-service
フラグの代わりに
--remove-service
使用するだけです:
sudo firewall-cmd --zone=public --remove-service=http --permanent
上記のコマンドは、パブリックゾーンの永続的な構成から
http
サービスを削除します。
新しいFirewallDサービスの作成
既に述べたように、デフォルトのサービスは
/usr/lib/firewalld/services
ディレクトリに保存され
/usr/lib/firewalld/services
。 新しいサービスを作成する最も簡単な方法は、ユーザーが作成したサービスの場所である
/etc/firewalld/services
ディレクトリに既存のサービスファイルをコピーし、ファイル設定を変更することです。
たとえば、Plex Media Serverのサービス定義を作成するには、SSHサービスファイルを使用できます。
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml
新しく作成した
plexmediaserver.xml
ファイルを開き、サービス内の短い名前と説明を変更します
次の例では、ポート
1900
UDPおよび
32400
TCPを開いています。
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
ファイルを保存してFirewallDサービスをリロードします。
sudo firewall-cmd --reload
これで、他のサービスと同じゾーンで
plexmediaserver
サービスを使用できます。
ポートとソースIPを開く
Firewalldでは、サービス定義を作成せずに、信頼できるIPアドレスまたは特定のポートからのすべてのトラフィックをすばやく有効にすることもできます。
ソースIPを開く
特定のIPアドレス(または範囲)からのすべての着信トラフィックを許可するには、ゾーンを
--zone
オプションで指定し、ソースIPを
--add-source
オプションで指定します。
たとえば、
public
ゾーンの192.168.1.10からのすべての着信トラフィックを許可するには、次を実行します。
sudo firewall-cmd --zone=public --add-source=192.168.1.10
新しいルールを永続化します。
sudo firewall-cmd --runtime-to-permanent
次のコマンドを使用して変更を確認します。
sudo firewall-cmd --zone=public --list-sources
192.168.1.10
ソースIPを削除する構文は、ソースIPを追加するときと同じです。
--add-source
オプションの代わりに
--remove-source
使用するだけです:
sudo firewall-cmd --zone=public --remove-source=192.168.1.10
ソースポートを開く
特定のポートですべての着信トラフィックを許可するには、
--zone
オプションでゾーンを指定し、
--zone
--add-port
オプションでポートとプロトコルを
--add-port
ます。
たとえば、現在のセッションのパブリックゾーンでポート
8080
を開くには、次を実行します。
sudo firewall-cmd --zone=public --add-port=8080/tcp
プロトコルは
tcp
、
udp
、
sctp
、または
dccp
いずれか
dccp
。
変更を確認します。
sudo firewall-cmd --zone=public --list-ports
8080
再起動後もポートを開いたままにするには、--
--permanent
フラグを使用して同じコマンドを実行するか、次を実行して、永続的な設定にルールを追加します。
sudo firewall-cmd --runtime-to-permanent
ポートを削除するための構文は、ポートを追加する場合と同じです。
--add-port
オプションの代わりに
--remove-port
使用するだけです。
sudo firewall-cmd --zone=public --remove-port=8080/tcp
転送ポート
あるポートから別のポートにトラフィックを転送するには、まず
--add-masquerade
オプションを使用して目的のゾーンのマスカレードを有効にします。 たとえば、
external
ゾーンのマスカレードを有効にするには、次のように入力します。
sudo firewall-cmd --zone=external --add-masquerade
IPアドレスのあるポートから別のポートにトラフィックを転送する
次の例では、同じサーバー上のポート
80
からポート
8080
にトラフィックを転送しています。
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
別のIPアドレスにトラフィックを転送する
次の例では、IP
10.10.10.2
サーバーのポート
80
からポート
80
にトラフィックを転送しています。
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2
別のポート上の別のサーバーにトラフィックを転送する
次の例では、IP
10.10.10.2
サーバー上のポート
80
からポート
8080
にトラフィックを転送しています。
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2
転送ルールを永続化するには、次を使用します。
sudo firewall-cmd --runtime-to-permanent
結論
CentOS 8システムでfirewalldサービスを構成および管理する方法を学習しました。
システムを適切に機能させるために必要なすべての着信接続を許可し、不要な接続をすべて制限してください。
firewalld firewall centosセキュリティCentOS 7でワニスを使用するようにmagento 2を構成する

ページの速度は、オンラインストアの成功に不可欠です。 このチュートリアルでは、Magento 2を設定してVarnishをフルページキャッシュソリューションとして使用する手順を説明します。
CentOS 7でユーザーを追加および削除する方法

ユーザーを追加および削除する方法を知ることは、Linuxユーザーが知っておくべき基本的なスキルの1つです。 このチュートリアルでは、CentOS 7システムでユーザーを追加および削除する方法を説明します。
CentOS 7でスワップスペースを追加する方法

スワップは、物理RAMメモリの容量がいっぱいになったときに使用されるディスク上のスペースです。 このチュートリアルでは、CentOS 7システムにスワップファイルを追加する方法について説明します。