linux之openEuler /centos7防火牆基本使用指南
防火牆是一種防火牆管理解決方案,可用於許多 Linux 發行版,它充當 Linux 核心提供的 iptables 資料包篩選系統的前端。在本指南中,將介紹如何為伺服器設定防火牆,並向你展示使用管理工具管理防火牆的基礎知識
注: 你可能正在使用比本指南釋出時可用的較新版本的防火牆,或者你的伺服器設定與本指南中使用的示例伺服器略有不同。因此,本指南中解釋的一些命令的行為可能因你的特定配置而異。
防火牆中的基本概念
在我們開始介紹如何實際使用實用程式來管理防火牆配置之前,我們應該熟悉該工具介紹的一些基本概念。 firewall-cmd
區域
守護程式使用稱為 " 區域 " 的實體管理規則組。區域基本上是一組規則,根據計算機連線到的網路的信任級別,規定應允許哪些流量。網路介面被分配一個區域,以指示防火牆應允許的行為。
無論你所處的網路環境有多動態,熟悉每個預定義區域仍然很有用。從最 不信任 到 最受信任的順序 ,中的預定義區域是
- drop (丟棄) :最低信任級別。所有傳入連線在沒有回覆的情況下丟棄,並且只能進行傳出連線。
- block (限制) :與上述類似,但傳入請求不是簡單地丟棄連線,而是使用 或 訊息被拒絕。 icmp-host-prohibited icmp6-adm-prohibited
- public (公共) :表示公共、不受信任的網路。您不信任其他計算機,但可能會根據情況允許選定的傳入連線。
- external (外部) :使用防火牆作為閘道器時的外部網路。它配置為 NAT 偽裝,以便你的內部網路保持私有但可訪問。
- internal (內部) :外部區域的另一側,用於閘道器的內部部分。計算機是相當值得信賴的,一些額外的服務是可用的。
- dmz : 用於位於 DMZ 中的計算機(無法訪問網路其餘部分的隔離計算機)。僅允許某些傳入連線。
- work (工作) :用於工作機器。信任網路中的大多數計算機。可能允許使用更多服務。
- home (家) :家庭環境。它通常意味著你信任大多數其他計算機,並且將接受更多服務。
- trusted (受信任) :信任網路中的所有計算機。最開放的可用選項,應謹慎使用。
要使用防火牆,我們可以建立規則並更改區域的屬性,然後將網路介面分配給最合適的區域。
永久性規則
在防火牆中,規則可以指定為永久規則或即時規則。如果新增或修改了規則,預設情況下,將修改當前執行的防火牆的行為。在下次啟動時,將恢復舊規則。
大多數操作都可以採取該標誌來指示非臨時防火牆應作為目標。這將影響啟動時重新載入的規則集。這種分離意味著您可以在活動防火牆例項中測試規則,然後在出現問題時重新載入。還可以使用標誌來構建一整組規則,這些規則將在發出過載命令時同時應用。 firewall-cmd --permanent --permanent
安裝並啟用防火牆啟動
firewalld 預設情況下安裝在某些 Linux 發行版上,包括 openEuler/CentOS 7 的許多映像。但是,您可能有必要自行安裝防火牆:
sudo yum install firewalldsudo systemctl enable firewalldsudo reboot
驗證防火牆服務是否正在執行:
sudo firewall-cmd --state
修改防火牆規則
在開始修改之前,我們應該熟悉守護程式提供的預設環境和規則。
瀏覽預設值
透過鍵入以下型別,我們可以看到當前選擇哪個區域為預設值:
firewall-cmd --get-default-zone
由於我們沒有給出任何指定區域的命令,並且我們的介面都沒有配置為繫結到另一個區域,因此該區域也將是唯一的 " 活動 " 區域(控制我們介面的流量的區域)。我們可以透過鍵入以下型別來驗證這一點:
firewall-cmd --get-active-zones輸出:interfaces: eth0 eth1
我們可以看到,我們的示例伺服器有兩個網路介面由防火牆控制。它們目前都按照為公共區域定義的規則進行管理。
我們怎麼知道哪些規則與公共區域相關?我們可以透過鍵入以下型別列印出預設區域的配置:
sudo firewall-cmd --list-all輸出:public (default, active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
我們可以從輸出中判斷此區域是預設的和活躍的,並且和介面與此區域關聯,我們也可以看到,此區域允許與 DHCP 客戶端(用於 IP 地址分配)和 SSH (用於遠端管理)關聯的正常操作。
為你的介面選擇區域
除非已配置網路介面,否則在啟動防火牆時,每個介面都將置於預設區域。
更改介面區域
可以在會話期間將介面與引數結合使用,在會話期間在區域之間轉換介面。與修改防火牆的所有命令一樣,您需要使用 。
例如,可以透過鍵入以下內容將介面轉換為 " 主 " 區域: eth0
sudo firewall-cmd --zone=home --change-interface=eth0輸出:success
可以透過再次請求活動區域來驗證這是否成功:
firewall-cmd --get-active-zones輸出:home interfaces: eth0public interfaces: eth1
調整預設區域
如果所有介面由單個區域處理,則只需選擇最佳預設區域,然後將它用於配置可能更容易。
可以使用引數更改預設區域。這將立即更改已返回預設到新區域的任何介面: --set-default-zone=
sudo firewall-cmd --set-default-zone=home輸出:success
為應用程式設定規則
向區域新增服務
最簡單的方法是將所需的服務或埠新增到您使用的區域。同樣,您可以使用以下選項獲取可用服務的列表: --get-services
firewall-cmd --get-services輸出:RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server
例如,如果我們執行一個為常規 HTTP 流量服務的 Web 伺服器,我們可以透過鍵入以下方式,為此會話的 " 公共 " 區域中的介面允許此流量:
sudo firewall-cmd --zone=public --add-service=http
可以透過使用 或 操作驗證操作是否成功: --zone= --list-all --list-services
sudo firewall-cmd --zone=public --list-services輸出:dhcpv6-client http ssh
測試到所有內容都正常工作後,如果想要修改永久防火牆規則,以便重新啟動後服務仍然可用。我們可以透過鍵入:
sudo firewall-cmd --zone=public --permanent --add-service=http輸出:success
可以透過向操作新增標誌來驗證這是否成功。需要用於任何操作: --permanent --list-services sudo``--permanent
sudo firewall-cmd --zone=public --permanent --list-services輸出:dhcpv6-client http ssh
現在你的 " 公共 " 區域現在將允許埠 80 上的 HTTP Web 流量。如果你的 Web 伺服器配置為使用 SSL/TLS ,還需要新增該服務。我們可以透過鍵入以下型別將其新增到當前會話和永久規則集中: https
sudo firewall-cmd --zone=public --add-service=httpssudo firewall-cmd --zone=public --permanent --add-service=https
建立屬於自己的區域
雖然預定義區域對於大多數使用者來說可能已經足夠了,但定義自己的區域可以更描述其功能會很有幫助。
例如,你可能希望為 Web 伺服器建立一個區域,稱為 " 公共網站 " 。但是,你可能希望為專用網路上提供 DNS 服務配置其他區域。為此,需要建一個名為 " 私有 DNS" 的區域。
新增區域時,必須將其新增到永久防火牆配置中。然後可以重新載入以將配置引入正在執行的會話中。例如,我們可以透過鍵入以下兩個區域來建立上面討論的兩個區域:
sudo firewall-cmd --permanent --new-zone=publicwebsudo firewall-cmd --permanent --new-zone=privateDNS
可以透過鍵入以下型別來驗證這些配置是否存在於永久配置中:
sudo firewall-cmd --permanent --get-zones輸出:block dmz drop external home internal privateDNS public publicweb trusted work
如之前所述,這些在防火牆的當前例項中尚不可用:
firewall-cmd --get-zones輸出:block dmz drop external home internal public trusted work
需要重新載入防火牆以將這些新區域引入活動配置:
sudo firewall-cmd --reloadfirewall-cmd --get-zones輸出:block dmz drop external home internal privateDNS public publicweb trusted work
現在,你可以開始為區域分配適當的服務和埠。透過調整活動例項,然後在測試後將這些更改傳輸到永久配置。例如,對於 " 公共 web" 區域,如果你需要新增 SSH 、 HTTP 和 HTTPS 服務:
sudo firewall-cmd --zone=publicweb --add-service=sshsudo firewall-cmd --zone=publicweb --add-service=httpsudo firewall-cmd --zone=publicweb --add-service=httpssudo firewall-cmd --zone=publicweb --list-all輸出:publicweb target: default icmp-block-inversion: no interfaces: sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
同樣,我們可以將 DNS 服務新增到我們的 " 私有 DNS" 區域:
sudo firewall-cmd --zone=privateDNS --add-service=dnssudo firewall-cmd --zone=privateDNS --list-all輸出:privateDNS interfaces: sources: services: dns ports: masquerade: no forward-ports: icmp-blocks: rich rules:
然後,我們可以將介面更改為這些新區域以測試它們:
sudo firewall-cmd --zone=publicweb --change-interface=eth0sudo firewall-cmd --zone=privateDNS --change-interface=eth1
來測試執行配置。除錯完成後 ( 即符合自己的要求 ) 需要向永久配置新增相同的規則。可以透過使用標誌重新應用規則來做到這一點: --permanent
sudo firewall-cmd --zone=publicweb --permanent --add-service=sshsudo firewall-cmd --zone=publicweb --permanent --add-service=httpsudo firewall-cmd --zone=publicweb --permanent --add-service=httpssudo firewall-cmd --zone=privateDNS --permanent --add-service=dns
永久應用這些規則後,重啟防火牆服務:
sudo systemctl restart networksudo systemctl reload firewalld
驗證是否分配了正確的區域:
firewall-cmd --get-active-zones輸出:privateDNS interfaces: eth1publicweb interfaces: eth0
並驗證兩個區域都提供相應的服務:
sudo firewall-cmd --zone=publicweb --list-services輸出:http https sshsudo firewall-cmd --zone=privateDNS --list-services輸出:dns
這是就成功地設定了自己的區域,如果要使這些區域之一成為其他介面的預設區域之一,請記住使用這個引數配置該行為: --set-default-zone=
sudo firewall-cmd --set-default-zone=publicweb
總結
防火牆服務允許你配置可維護的規則和規則集,這些規則和規則集可以考慮你的網路環境。你可以透過使用區域在不同防火牆策略之間無縫切換,並允許管理員將埠管理抽象為更友好的服務。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2718137/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 5招詳解linux之openEuler /centos7防火牆基本使用指南LinuxCentOS防火牆
- Linux防火牆之netfilter/ptablesLinux防火牆Filter
- centos7關閉防火牆命令 centos7永久防火牆關閉CentOS防火牆
- CentOS7 防火牆命令CentOS防火牆
- Linux防火牆命令Linux防火牆
- Linux配置防火牆Linux防火牆
- LINUX 防火牆 firewalldLinux防火牆
- Centos7預設防火牆之firewalld講解及配置CentOS防火牆
- linux 7 防火牆操作Linux防火牆
- Linux防火牆基礎Linux防火牆
- Linux 防火牆配置使用Linux防火牆
- Centos6防火牆基本配置CentOS防火牆
- linux關閉防火牆命令 linux防火牆關閉和開啟命令Linux防火牆
- Linux設定防火牆iptablesLinux防火牆
- Linux防火牆入門教程Linux防火牆
- Linux——防火牆、SELinux規則Linux防火牆
- Linux 7新增防火牆埠Linux防火牆
- CentOS7檢視和關閉防火牆CentOS防火牆
- centos7怎麼永久關閉防火牆CentOS防火牆
- linux關閉防火牆命令是什麼 linux永久關閉防火牆命令分享Linux防火牆
- CentOS7下Firewall防火牆配置用法詳解CentOS防火牆
- Linux基礎命令---iptables防火牆Linux防火牆
- linux中的firewalld防火牆配置Linux防火牆
- 在Linux中,如何配置防火牆?Linux防火牆
- linux防火牆使用以及配置Linux防火牆
- Linux 7關閉防火牆方法Linux防火牆
- WAb防火牆與傳統防火牆防火牆
- linux apf 防火牆安裝與配置Linux防火牆
- linux iptables安全技術與防火牆Linux防火牆
- Linux firewalld防火牆學習總結Linux防火牆
- Linux IPTables:如何新增防火牆規則Linux防火牆
- 防火牆防火牆
- CentOS7使用firewalld開啟關閉防火牆與埠CentOS防火牆
- 使用centos7的wall防火牆可能存在失效問題CentOS防火牆
- windows/Linux 防火牆安裝配置規則WindowsLinux防火牆
- linux 防火牆埠號開發情況Linux防火牆
- linux下修改防火牆,開啟8080埠Linux防火牆
- iptables配置-Linux系統安全防火牆Linux防火牆