Firewalld Linux ファイアウォール

王林
リリース: 2024-02-19 18:24:41
転載
1167 人が閲覧しました

ファイアウォールファイアウォール

firewalld サービスには、CLI と GUI の 2 つの動作モードがあります。 iptables と比較して、ファイアウォールは動的更新をサポートし、ゾーンの概念を導入します。

つまり、ゾーンとは、ファイアウォールによって事前定義された一連のファイアウォール ポリシーを指します。これにより、これらのポリシーをファイアウォール間で迅速に切り替えることができるため、ファイアウォールの切り替え効率とアプリケーション速度が大幅に向上します。

###エリア### 信頼できる ###家### 受信トラフィックを拒否しますが、ssh、mdns、ipp-client、dhcpv6-client サービスの通過は許可します ###内部### ###仕事### ###公共### 受信トラフィックを拒否しますが、ssh、ipp-client、および dhcpv6-client サービスの通過を許可します ###外部の### ###ブロック### ###落とす### 送信トラフィックに関連しない限り、受信トラフィックを拒否します
デフォルトポリシールール
すべてのパケットを許可する
自宅エリアに相当
受信トラフィックを拒否しますが、ssh、ipp-client、および dhcpv6-client サービスの通過を許可します
受信トラフィックを拒否しますが、SSH サービスに関連する場合は許可します
dmz 受信トラフィックを拒否しますが、SSH サービスに関連する場合は許可します
送信トラフィックに関連しない限り、受信トラフィックを拒否します

firewalld は、Linux システム上の動的ファイアウォール管理ツールです。これは、Centos7 システムのデフォルトのファイアウォール管理ツールであり、以前の iptables ファイアウォールに代わるものです。

Firewalld は主にネットワーク層で動作し、パケット フィルタリング ファイアウォールです。従来の iptables と比較して、firewalld はより柔軟で使いやすく、より詳細なネットワーク アクセス制御を実現できます。

firewalld ファイアウォールは主に、ゾーンとサービスの 2 つの側面で構成されます。ゾーンはネットワークのさまざまな部分を定義し、ゾーンごとに一連のルールがあります。たとえば、パブリック ゾーンはパブリック インターネット環境のホストに適しており、内部ゾーンは内部ネットワーク環境のホストに適しています。一方、サービスは、特定のポートへのアクセスを制御する事前定義されたルールのセットです。ゾーンとサービス ルールを構成することにより、ファイアウォールを効果的に管理してネットワーク セキュリティを確保できます。

firewalld は、ネットワーク ゾーンとセキュリティ レベルによって定義されたネットワーク接続とインターフェイスをサポートする動的ファイアウォール管理ツールです。 IPv4 および IPv6 ファイアウォール設定、およびイーサネット ブリッジを構成します。ランタイム構成と永続構成の 2 つのモードを提供します。

Firewalld Linux ファイアウォール

ファイアウォール ステータス クエリ コマンド: 一般的に使用される一部のファイアウォール ステータス クエリ コマンドでは、完全なパラメータを指定するだけで現在のファイアウォール ステータスを取得できます。

リーリー

ファイアウォール サービスのリリース コマンド: まず、パラメータ --panic-on ですべてを拒否し、--add-service で NFS サービスに対応するポート番号を解放します。 .

リーリー

ファイアウォール ポート解放コマンド: --add-port コマンドを使用してポートを追加することも、--remove-port コマンドを使用してポートをブロックすることもできます。ポート番号と任意のサービス名を使用できます。

リーリー

ファイアウォール構成のポート転送: ポート転送機能は、ユーザーがマシンのポート 80 にアクセスすると、ローカル マシンまたはターゲット ホストのポートに自動的に転送されます。

リーリー

デフォルト エリアのクエリと設定: ファイアウォール サービスによって現在使用されているエリアをクエリし、サービスの新しいデフォルト エリアを external エリアに設定します。 リーリー

デフォルト ゾーンを新しいゾーンに変更します。

ens32 ネットワーク ポートの public ゾーンを external ゾーンに変更します。これは永続的に有効になります。 . リーリー

特定のエリアのサービス ステータスを設定する: 特定のエリアで SSH および HTTPS プロトコルを要求するトラフィックを許可するかどうかを設定します。 リーリー

ポート転送ポリシーの設定:

192.168.1.0/24

ネットワーク内のシステムの場合、ローカル ポート 5423 へのアクセスはローカル 80 に転送されます。ポート。 ### リーリー アクセス ポートの許可/削除: 特定のエリアのホストのポート ポリシーを一括で許可または削除します。 リーリー

ファイアウォールテクノロジーの種類:

(1) パケットフィルタリングファイアウォール(パケットフィルタリング)

(2) アプリケーション プロキシ ファイアウォール (アプリケーション プロキシ)

(3) ステートフルインスペクションファイアウォール(ステートフルインスペクション)

(firewalld はパケット フィルタリング ファイアウォールであるため、ここではパケット フィルタリング ファイアウォールについてのみ説明します)

パケット フィルタリング ファイアウォールの概要:

(1) netfilter: Linux カーネルにあるパケット フィルタリング機能システムが、Linux ファイアウォールの「カーネル状態」になります。

(2) firewalld: ファイアウォール ルールを管理するための CentOS7 のデフォルト ツール。Linux ファイアウォールの「ユーザー モード」になります。

————上記 2 つの名前は、Linux ファイアウォールとして表現できます。

パケットフィルタリングの作業レベル:

(1) 主にネットワーク層で、IP パケットの送信元 IP をチェックします。

(2)はパッケージ内のIPアドレスやポートなどの情報の処理に反映されます。

ネットワークエリア:

Firewalld の 9 つの事前定義されたネットワーク領域:

①信頼できる②パブリック③仕事④ホーム⑤内部⑥外部⑦dmz⑧ブロック⑨ドロップ

————デフォルトで有効なゾーンがいくつかあり、firewalld によって提供されるゾーンは、信頼できないゾーンから信頼できるゾーンの順に並べられます。

(1) ドロップ ゾーン: ドロップ ゾーンが使用される場合、受信パケットはすべてドロップされます。これは、Centos6 の iptables -j drop に似ています。ドロップ ルールを使用すると、応答がなくなることを意味します。

(2) ブロック ゾーン: ブロック ゾーンは、受信ネットワーク接続を拒否し、icmp-host-prohibited を返します。サーバーによって確立された接続のみが通過します。つまり、システムによって初期化されたネットワーク接続のみが許可されます。 。

(3) パブリック ゾーン: 選択した接続のみを受け入れます。デフォルトでは、ssh と dhcpv6-client のみが許可されます。このゾーンはデフォルト ゾーンです (default はデフォルトを意味するため、パブリック ゾーンもデフォルト ゾーンです)。設定なしでパブリックエリアにアクセスできます)。

(4) 外部ゾーン: このゾーンはルーターの起動マスカレード オプションに相当し、指定された接続 (ssh) のみが受け入れられ、他の接続はドロップされるか受け入れられません。

(5) 隔離ゾーン (DMZ ゾーン): 一部のサービスのみ外部からのアクセスを許可したい場合、DMZ ゾーン内に定義することができ、選択された接続のみを許可する機能もあります。 ssh. このゾーンも 非武装地帯 と呼ばれます。

(6)工作区域(Work Zone):在这个区域中,我们只能定义内部网络,比如私有网络通信才被允许, 只允许ssh、ipp-client和dhcpv6-client。

(7)家庭区域(Home Zone):这个区域专门用于家庭环境,它同样只允许被选中的连接, 即ssh、ipp-client、mdns、samba-client和dhcpv6-client。

(8)内部区域(Internal Zone):这个区域和 工作区域(Work Zone) 类似,只允许通过被选中的连接,与 家庭区域(Home Zone) 相同。

(9)信任区域(Trusted Zone):信任区域允许所有网络通信通过,因为 信任区域(Trusted Zone)是最被信任的,即使没有设置任何的服务,那么也是被允许的,因为 信任区域(Trusted Zone)是允许所有连接的。

————以上是系统定义的所有的区域(Zone),但是,不是所有的区域(Zone)都在使用,只有活跃的区域(Zone)才有实际操作意义。

注意:因为默认区域只允许ssh和dhcp,所以在没有任何配置的情况下默认是拒绝ping包的。

常用命令

# 查看所有放行端口
firewall-cmd --zone=public --list-ports
 
# 禁止IP访问机器
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="192.168.0.1" drop'
 
# 禁止一个IP段,比如禁止192.168.*.*
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="192.168.0.1/16" drop'
 
# 禁止一个IP段,比如禁止192.168.0.*
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="192.168.0.1/24" drop'
 
# 禁止机器IP从防火墙中删除
firewall-cmd --permanent --remove-rich-rule='rule family=ipv4 source address="192.168.0.1" drop'
 
# 允许http服务(对应服务策略目录:/usr/lib/firewalld/services/)
firewall-cmd --permanent --add-service=http
 
# 关闭http服务(对应服务策略目录:/usr/lib/firewalld/services/)
firewall-cmd --permanent --remove-service=http
 
# 允许端口:3306
firewall-cmd --permanent --add-port=3306/tcp
 
# 允许端口:1-3306
firewall-cmd --permanent --add-port=1-3306/tcp
 
# 关闭放行中端口:3306
firewall-cmd --permanent --remove-port=3306/tcp
 
# 查看firewall的状态
firewall-cmd --state
 
# 查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略)
firewall-cmd --list-all
 
# 查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略)
firewall-cmd --list-all-zones
 
# 重新加载配置文件
firewall-cmd --reload
 
# 更改配置后一定要重新加载配置文件
firewall-cmd --reload

# Postgresql端口设置。允许192.168.142.166访问5432端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port port="5432" protocol="tcp" accept"

# redis端口设置。允许192.168.142.166访问6379端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port port="6379" protocol="tcp" accept"

# beanstalkd端口设置。允许192.168.142.166访问11300端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port port="11300" protocol="tcp" accept"

# 查看防火墙端口列表
firewall-cmd --list-ports

# 添加指定端口tcp
firewall-cmd --zone=public --add-port=8080/tcp --permanent# 开放8080/tcp端口 
firewall-cmd --zone=public --add-port=10002-10010/tcp --permanent# 开放10002-10010/tcp端口范围

# 添加指定端口udp
firewall-cmd --zone=public --add-port=9200/udp --permanent # 开放9200/udp端口
firewall-cmd --zone=public --add-port=20015-20020/udp --permanent# 开放20015-20020/udp端口范围

# 删除指定端口
firewall-cmd --zone= public --remove-port=19800/tcp --permanent # 删除已开放的19880/tcp端口
firewall-cmd --zone= public --remove-port=9200-9300/udp --permanent# 删除已开放的9200-9300/udp 端口范围

# 热加载防火墙,使之生效
firewall-cmd --reload

# 指定某IP访问某端口
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.107" port protocol="tcp" port="3306" accept"

# 删除策略
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.107" port protocol="tcp" port="3306" accept"

# 指定某个网段访问某个端口范围
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="11.76.168.0/24" port protocol="udp" port="1-65535" accept"

# 删除策略
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="11.76.168.0/24" port protocol="tcp" port="1-65535" accept"

# 禁止指定ip 访问某个端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.200" port protocol="tcp" port="80" reject"
 
# 禁止某个段的ip 访问某个端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="80" reject"
 
# 允许指定ip 访问所有端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.100" port protocol="tcp" accept"

# 允许指定ip段 访问所有端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" accept"

# 允许192.168.1.10所有访问所有端口
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" accept' --permanent

# 移除192.168.1.10所有访问所有端口
firewall-cmd --zone=public --remove-rich-rule 'rule family="ipv4" source address="192.168.1.10" accept' --permanent

# 允许192.168.2.0/24(0-255)所有访问所有端口
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.2.0/24" accept' --permanent

# 允许192.168.1.10所有访问TCP协议的22端口
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp reject' --permanent

# 移除192.168.1.10所有访问TCP协议的22端口
firewall-cmd --zone=public --remove-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp reject' --permanent

# 防火墙重新载入(必须重新载入后才能生效)
firewall-cmd --reload

# 查看rich-rules(富规则)
firewall-cmd --list-rich-rules

# 查看防火墙服务规则
firewall-cmd --list-services

# 查看防火墙所有规则
firewall-cmd --list-all

# 查看防火墙所有区域的配置规则
firewall-cmd --list-all-zones

# 查看默认区域
firewall-cmd --get-default-zone

# 查看网络接口使用区域
firewall-cmd --get-active-zones

# 查看默认的可用服务
firewall-cmd --get-services

# 要启用或禁用HTTP服务
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --remove-service=http --permanent





# 移除现有规则(此步骤相当重要,很多文章和博客都没提及到)
firewall-cmd --permanent --zone=public --remove-port=80/tcp
firewall-cmd --reload
 
# 在192.168.100.100102上测试访问
curl192.168.100.101
发现均无法再访问101的80端口

# 设置规则
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.102" port protocol="tcp" port="80" accept"
firewall-cmd --reload

# 测试访问
curl 192.168.100.101
# 100无法访问102可以访问
至此实现了通过防火墙firewalld设置规则,指定ip访问指定端口
ログイン後にコピー

以上がFirewalld Linux ファイアウォールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:mryunwei.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート