Linux-ファイアウォール管理ツールfirewalld

5919 ワード

ファイアウォールはサイバーセキュリティの防護ツールとして、データとサービスの安全を保障する上で重要な役割を果たしている.
ファイアウォールといえば、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コマンドに詳しくなくてもファイアウォールポリシーを適切に構成できます.しかし,本稿ではグラフィックインタフェースの操作について述べるのではなく,必要な自己探索や関連資料の閲覧がある.