Linux-ファイアウォール管理ツールfirewalld
5919 ワード
ファイアウォールはサイバーセキュリティの防護ツールとして、データとサービスの安全を保障する上で重要な役割を果たしている.
ファイアウォールといえば、Linuxに接するのが早い方が最初に思いついたのはiptables(centos 6バージョン)で、centos 7がお勧めしているのはfirewalldです.しかし、iptalbesでもfirewalldでも、それ自体はファイアウォールではなく、ファイアウォール構成管理ツールです.
本稿ではfirewalldツールの使い方を紹介し,具体的な原理についてはここでは深く究明せず,iptablesに関する内容も議論の範囲内ではない.
1.firewalldインストール
yumでのインストール
システムctlを使用してfirewalldを起動する
firewalldを停止または無効にする場合
2.firewalld基本概念
2.1 Zones
領域:ネットワーク接続の信頼性レベルを定義し、firewalldはいくつかの事前定義された領域を提供し、必要に応じて適切な領域を選択することができます.
領域
デフォルト・ルール・ポリシー
trusted
すべてのパケットを許可
home
流出した流量に関連しない限り、流入した流量を拒否する.トラフィックがssh、mdns、ipp-client、amba-clientとdhcpv 6-clientサービスに関連する場合、トラフィックは許可されます.
internal
ホーム領域に等しい
work
流出した流量に関連しない限り、流入した流量を拒否する.トラフィックがssh、ipp-client、dhcpv 6-clientサービスに関連する場合、トラフィックは許可されます.
public
流出した流量に関連しない限り、流入した流量を拒否する.トラフィックがssh、dhcpv 6-clientサービスに関連する場合、トラフィックは許可されます.
external
流出した流量に関連しない限り、流入した流量を拒否する.トラフィックがsshサービスに関連する場合、トラフィックは許可される.
dmz
流出した流量に関連しない限り、流入した流量を拒否する.トラフィックがsshサービスに関連する場合、トラフィックは許可される.
block
流出したトラフィックに関連しない限り、流入したトラフィックを拒否します.
drop
流出したトラフィックに関連しない限り、流入したトラフィックを拒否します.
2.2 Services
サービスはlocal ports、protocols、destinationsのリストであり、事前定義されたサービスを使用すると、ユーザーがサービスへのアクセスを有効または無効にしやすくなります.
2.3 ICMP types
Internet Control Message ProtocolはIPプロトコルで情報を交換します.ICMP typesはfirewalldで情報の交換を制限するために使用することができる.
2.4 Runtime configuration
≪ランタイム構成|Run Configuration|emdw≫:この構成は、システムまたはサービスが再起動すると失効します.
2.5 Permanent configuration
永続構成:この構成は永続的に有効であり、
2.6 Direct interface
ダイレクトインタフェース:この方法は、主にiptablesに詳しいがfirewalldに適応していないユーザーに適応するために、
3.firewalldコマンドラインツール
Firewall-cmdはfirewalldのCLIバージョン管理ツールで、コマンドラインでファイアウォールポリシーを構成します.完全なfirewall-cmdマニュアルは、
3.1 Status Options
3.2 Zone Options
3.3 Service Options
3.4 Options to Adapt and Query Zones
3.5例
3.5.1放流8080-8100の全ての入口流量
3.5.2行8080-8081のすべてのhttp入口流量
3.5.3 TCPプロトコルのみで27017ポートにアクセスできる
ここでは、
4.firewalldグラフィックインタフェースツール
Firewall-configはfirewalldのグラフィックインタフェース管理ツールであり、Linuxコマンドに詳しくなくてもファイアウォールポリシーを適切に構成できます.しかし,本稿ではグラフィックインタフェースの操作について述べるのではなく,必要な自己探索や関連資料の閲覧がある.
ファイアウォールといえば、Linuxに接するのが早い方が最初に思いついたのはiptables(centos 6バージョン)で、centos 7がお勧めしているのはfirewalldです.しかし、iptalbesでもfirewalldでも、それ自体はファイアウォールではなく、ファイアウォール構成管理ツールです.
本稿ではfirewalldツールの使い方を紹介し,具体的な原理についてはここでは深く究明せず,iptablesに関する内容も議論の範囲内ではない.
1.firewalldインストール
yumでのインストール
sudo yum install -y firewalld
システムctlを使用してfirewalldを起動する
#
sudo systemctl start firewalld
#
sudo systemctl enable firewalld
firewalldを停止または無効にする場合
#
sudo systemctl stop firewalld
#
sudo systemctl enable firewalld
2.firewalld基本概念
2.1 Zones
領域:ネットワーク接続の信頼性レベルを定義し、firewalldはいくつかの事前定義された領域を提供し、必要に応じて適切な領域を選択することができます.
領域
デフォルト・ルール・ポリシー
trusted
すべてのパケットを許可
home
流出した流量に関連しない限り、流入した流量を拒否する.トラフィックがssh、mdns、ipp-client、amba-clientとdhcpv 6-clientサービスに関連する場合、トラフィックは許可されます.
internal
ホーム領域に等しい
work
流出した流量に関連しない限り、流入した流量を拒否する.トラフィックがssh、ipp-client、dhcpv 6-clientサービスに関連する場合、トラフィックは許可されます.
public
流出した流量に関連しない限り、流入した流量を拒否する.トラフィックがssh、dhcpv 6-clientサービスに関連する場合、トラフィックは許可されます.
external
流出した流量に関連しない限り、流入した流量を拒否する.トラフィックがsshサービスに関連する場合、トラフィックは許可される.
dmz
流出した流量に関連しない限り、流入した流量を拒否する.トラフィックがsshサービスに関連する場合、トラフィックは許可される.
block
流出したトラフィックに関連しない限り、流入したトラフィックを拒否します.
drop
流出したトラフィックに関連しない限り、流入したトラフィックを拒否します.
2.2 Services
サービスはlocal ports、protocols、destinationsのリストであり、事前定義されたサービスを使用すると、ユーザーがサービスへのアクセスを有効または無効にしやすくなります.
2.3 ICMP types
Internet Control Message ProtocolはIPプロトコルで情報を交換します.ICMP typesはfirewalldで情報の交換を制限するために使用することができる.
# ICMP types
firewall-cmd --get-icmptypes
2.4 Runtime configuration
≪ランタイム構成|Run Configuration|emdw≫:この構成は、システムまたはサービスが再起動すると失効します.
2.5 Permanent configuration
永続構成:この構成は永続的に有効であり、
firewall-cmd
を使用してファイアウォールポリシーを構成する場合は、--permanent
オプションを追加して構成ファイルに永続的に保存する必要があります.また、firewall-cmd --reload
を使用して、永続的な構成を実行構成に上書きして有効にします.2.6 Direct interface
ダイレクトインタフェース:この方法は、主にiptablesに詳しいがfirewalldに適応していないユーザーに適応するために、
--direct
オプションを使用して元のiptablesコマンドを渡してファイアウォールポリシーを構成します.3.firewalldコマンドラインツール
Firewall-cmdはfirewalldのCLIバージョン管理ツールで、コマンドラインでファイアウォールポリシーを構成します.完全なfirewall-cmdマニュアルは、
man firewall-cmd
またはfirewall-cmd -h
を使用して参照できます.ここでは、一般的な操作オプションの一部について説明します.3.1 Status Options
# firewalld
firewall-cmd --state
# ,
firewall-cmd --reload
# , netfilter ( , )
firewall-cmd --complete-reload
#
firewall-cmd --runtime-to-permanent
3.2 Zone Options
# zones
firewall-cmd --get-zones
#
firewall-cmd --get-default-zone
#
firewall-cmd --set-default-zone=
#
firewall-cmd --get-active-zones
#
sudo firewall-cmd --list-all-zones
#
sudo firewall-cmd --new-zone= --permanent
#
sudo firewall-cmd --delete-zone=
# ( ) ( 3.4 )
firewall-cmd --zone=
#
sudo firewall-cmd --zone= --list-all
3.3 Service Options
# services
sudo firewall-cmd --get-services
# service
sudo firewall-cmd --service= --get-ports --permanent
# service
sudo firewall-cmd --service= --add-port=[-]/
# service
sudo firewall-cmd --service= --remove-port=[-]/
# service
sudo firewall-cmd --service= --query-port=[-]/
3.4 Options to Adapt and Query Zones
# zone
sudo firewall-cmd --zone= --list-all
# zone service
sudo firewall-cmd --zone= --list-services
# zone service
sudo firewall-cmd --zone= --add-service=
# zone service
sudo firewall-cmd --zone= --remove-service=
# zone
sudo firewall-cmd --zone= --list-ports
# zone
sudo firewall-cmd --zone= --add-port=[-]/
# zone
sudo firewall-cmd --zone= --remove-port=[-]/
3.5例
3.5.1放流8080-8100の全ての入口流量
# 8080-8100 TCP ,
sudo firewall-cmd --zone=public --add-port=8080-8100/tcp --permanent
#
sudo firewall-cmd --reload
#
sudo firewall-cmd --zone=public --list-ports
3.5.2行8080-8081のすべてのhttp入口流量
# public 8080-8100 TCP
# 3.5.1 ,
sudo firewall-cmd --zone=public --remove-port=8080-8081/tcp --permanent
# http 8080-8100 TCP ,
sudo firewall-cmd --service=http --add-port=8080-8100/tcp --permanent
# http
sudo firewall-cmd --service=http --get-ports --permanent
# http ,
sudo firewall-cmd --zone=public --add-service=http --permanent
#
sudo firewall-cmd --reload
3.5.3 TCPプロトコルのみで27017ポートにアクセスできる
sudo firewall-cmd --add-rich-rule="rule family="ipv4" source address="127.0.0.1" port protocol="tcp" port="27017" accept" --permanent
ここでは、
--add-rich-rule
を使用してファイアウォールポリシーを設定し、詳細についてはman firewalld.richlanguage
を使用して参照できます.4.firewalldグラフィックインタフェースツール
Firewall-configはfirewalldのグラフィックインタフェース管理ツールであり、Linuxコマンドに詳しくなくてもファイアウォールポリシーを適切に構成できます.しかし,本稿ではグラフィックインタフェースの操作について述べるのではなく,必要な自己探索や関連資料の閲覧がある.