<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] > [home](https://firewalld.org/) ## firewall-cmd 概述 firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性, **特性:** 1. 支持動態更新,不用重啟服務 2. 第二個就是加入了防火墻的“zone”概念。 **firewalld跟iptables比起來至少有兩大好處**: 1. firewalld可以動態修改單條規則,而不需要像iptables那樣,在修改了規則后必須得全部刷新才可以生效。 2. firewalld在使用上要比iptables人性化很多,即使不明白“五張表五條鏈”而且對TCP/IP協議也不理解也可以實現大部分功能。 firewalld自身并不具備防火墻的功能,而是和iptables一樣需要通過內核的netfilter來實現,也就是說firewalld和 iptables一樣,他們的作用都是用于維護規則,而真正使用規則干活的是內核的netfilter,只不過firewalld和iptables的結 構以及使用方法不一樣罷了。 ## 安裝/啟動 安裝 ``` yum install firewalld firewall-config ``` 啟動 ``` systemctl start firewalld # 啟動 systemctl stop firewalld # 停止 systemctl enable firewalld # 啟用自動啟動 systemctl disable firewalld # 禁用自動啟動 systemctl status firewalld # 或者 firewall-cmd --state 查看狀態 ``` ## 格式 ``` firewall-cmd [選項 ... ] ``` ## 狀態選項 ``` --state # 顯示firewalld的狀態; --reload # 不中斷服務的重新加載; --complete-reload # 中斷所有連接的重新加載; --runtime-to-permanent # 將當前防火墻的規則永久保存; --check-config # 檢查配置正確性; ``` ## 日志選項 ``` --get-log-denied # 獲取記錄被拒絕的日志; --set-log-denied=<value> # 設置記錄被拒絕的日志,只能為 'all','unicast','broadcast','multicast','off' 其中的一個; ``` ## Zone 區域 將不同類型的網絡流量分類到不同的區域中,每個區域有自己的防火墻規則 1. **public**:公共區域,用于不受信任的網絡,比如連接到互聯網的公共網絡。通常設置了最嚴格的防火墻規則。 2. **private**:私有區域,用于信任的網絡,比如局域網。通常設置了較寬松的防火墻規則。 3. **internal**:內部區域,用于內部網絡,通常是在私有網絡中的受信任主機之間的通信。 4. **dmz**:DMZ(Demilitarized Zone,非軍事區),用于將公共網絡和受信任的網絡分隔開來,通常用于托管公共服務器,如 Web 服務器或郵件服務器。 5. **trusted**:受信任區域,用于完全信任的網絡,通常用于管理服務器之間的通信。 6. **external**:外部區域,用于連接到其他外部網絡的網絡接口。 7. **work**:工作區域,用于信任的工作網絡,通常是指辦公場所的網絡。 8. **home**:家庭區域,用于家庭網絡環境,比如家庭內部的局域網。 9. **block**:阻止區域,用于完全阻止特定接口的所有網絡流量。 10. **drop**:任何傳入的網絡數據包都被丟棄,沒有回復。只有傳出網絡連接是可能的。 命令 ``` #顯示支持的區域列表 firewall-cmd --get-zones # 設置為家庭區域 firewall-cmd --set-default-zone=home # 查看當前區域 firewall-cmd --get-active-zones # 設置當前區域的接口 firewall-cmd --get-zone-of-interface=enp03s # 顯示指定區域 firewall-cmd [--zone=public] --list-all # 臨時修改網絡接口(enp0s3)為內部區域(internal) firewall-cmd --zone=internal --change-interface=enp03s # 永久修改網絡接口enp03s為內部區域(internal) firewall-cmd --permanent --zone=internal --change-interface=enp03s ``` ## 端口管理 ``` # 打開443/TCP端口 ,添加 permanent 表示永久 firewall-cmd --add-port=443/tcp [--permanent] #啟動服務 firewall-cmd --reload # 查看防火墻,添加的端口也可以看到 firewall-cmd --list-all ``` ## 服務管理 ``` # 顯示服務列表 如FTP, http,mysql 等 firewall-cmd --get-services # 顯示當前服務 firewall-cmd --list-services # 創建一個自定義發服務,并進行在`/etc/firewalld/services/` 進行配置 firewall-cmd [--permanent] --new-service=my_custom_service # 顯示該服務的相關信息 firewall-cmd --info-service=my_custom_service # 顯示該服務的文件的相關路徑 firewall-cmd --path-service=my_custom_service # 刪除指定服務 firewall-cmd --delete-service=my_custom_service # 永久打開TCP的8080端口 firewall-cmd --enable ports=8080/tcp # 臨時允許Samba服務通過600秒 firewall-cmd --enable service=samba --timeout=600 # 添加HTTP服務到內部區域(internal) firewall-cmd --permanent --zone=internal --add-service=http firewall-cmd --reload # 在不改變狀態的條件下重新加載防火墻 ``` ### 如何配置一個自定義發服務 firewall 的系統默認服務在`/usr/lib/firewalld/services/` 中如何需要添加一個自定的服務,可從此目錄復制一個 xml 的格式 ``` <service [version="string"]> [<short>short description</short>] [<description>description</description>] [<port [port="portid[-portid]"] protocol="protocol"/>] [<module name="helper"/>] [<destination ipv4="address[/mask]" ipv6="address[/mask]"/>] </service> ``` **示例** /etc/firewalld/services/ant.xml ``` <?xml version="1.0" encoding="utf-8"?> <service> <short>Short description of the service</short> <description>Detailed description of the service</description> <port protocol="tcp" port="8000"/> <!-- Add more <port> elements for additional ports --> </service> ``` > 注意名字不能于已有服務的 systemctl 中的名字重名 ``` firewall-cmd --new-service=ant // 注冊服務 firewall-cmd --add-service=ant // 添加服務 ``` ## 端口轉發 轉發的端口或地址不指定,則使用原來的端口或地址 ``` # 將80端口的流量轉發至8080 firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 將80端口的流量轉發至192.168.0.1 firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1 # 將80端口的流量轉發至192.168.0.1的8080端口 firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080 ``` 1. 當我們想把某個端口隱藏起來的時候,就可以在防火墻上阻止那個端口訪問,然后再開一個不規則的端口,之后配置防火墻的端口轉發,將流量轉發過去(類似nginx 的端口代理)。 2. 端口轉發還可以做流量分發,一個防火墻拖著好多臺運行著不同服務的機器,然后用防火墻將不同端口的流量轉發至不同機器。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看