firewalld サービスには、CLI と GUI の 2 つの動作モードがあります。 iptables と比較して、ファイアウォールは動的更新をサポートし、ゾーンの概念を導入します。
つまり、ゾーンとは、ファイアウォールによって事前定義された一連のファイアウォール ポリシーを指します。これにより、これらのポリシーをファイアウォール間で迅速に切り替えることができるため、ファイアウォールの切り替え効率とアプリケーション速度が大幅に向上します。
デフォルトポリシールール | |
すべてのパケットを許可する | ###家### |
###内部### | 自宅エリアに相当 |
受信トラフィックを拒否しますが、ssh、ipp-client、および dhcpv6-client サービスの通過を許可します | ###公共### |
###外部の### | 受信トラフィックを拒否しますが、SSH サービスに関連する場合は許可します |
dmz | 受信トラフィックを拒否しますが、SSH サービスに関連する場合は許可します |
送信トラフィックに関連しない限り、受信トラフィックを拒否します | ###落とす### |
firewalld は、Linux システム上の動的ファイアウォール管理ツールです。これは、Centos7 システムのデフォルトのファイアウォール管理ツールであり、以前の iptables ファイアウォールに代わるものです。 Firewalld は主にネットワーク層で動作し、パケット フィルタリング ファイアウォールです。従来の iptables と比較して、firewalld はより柔軟で使いやすく、より詳細なネットワーク アクセス制御を実現できます。 firewalld ファイアウォールは主に、ゾーンとサービスの 2 つの側面で構成されます。ゾーンはネットワークのさまざまな部分を定義し、ゾーンごとに一連のルールがあります。たとえば、パブリック ゾーンはパブリック インターネット環境のホストに適しており、内部ゾーンは内部ネットワーク環境のホストに適しています。一方、サービスは、特定のポートへのアクセスを制御する事前定義されたルールのセットです。ゾーンとサービス ルールを構成することにより、ファイアウォールを効果的に管理してネットワーク セキュリティを確保できます。 firewalld は、ネットワーク ゾーンとセキュリティ レベルによって定義されたネットワーク接続とインターフェイスをサポートする動的ファイアウォール管理ツールです。 IPv4 および IPv6 ファイアウォール設定、およびイーサネット ブリッジを構成します。ランタイム構成と永続構成の 2 つのモードを提供します。 ファイアウォール ステータス クエリ コマンド: 一般的に使用される一部のファイアウォール ステータス クエリ コマンドでは、完全なパラメータを指定するだけで現在のファイアウォール ステータスを取得できます。 リーリー ファイアウォール サービスのリリース コマンド: まず、パラメータ ファイアウォール ポート解放コマンド: ファイアウォール構成のポート転送: ポート転送機能は、ユーザーがマシンのポート 80 にアクセスすると、ローカル マシンまたはターゲット ホストのポートに自動的に転送されます。 リーリーデフォルト エリアのクエリと設定: ファイアウォール サービスによって現在使用されているエリアをクエリし、サービスの新しいデフォルト エリアを ens32 ポート転送ポリシーの設定: 192.168.1.0/24 ネットワーク内のシステムの場合、ローカル ポート (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 サイトの他の関連記事を参照してください。