博文目錄:
為周至等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及周至網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站制作、成都網(wǎng)站制作、周至網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
一、firewalld高級配置
1、firewalld支持的NAT
2、IP地址偽裝
3、端口轉(zhuǎn)發(fā)
二、firewalld-cmd高級配置
1、firewalld中理解直接規(guī)則
2、使用富語言
3、富規(guī)則命令
4、富規(guī)則配置舉例:
firewalld支持兩種類型的NAT:
IP地址偽裝;
- 端口轉(zhuǎn)發(fā);
地址偽裝:通過地址偽裝,NAT設備將經(jīng)過設備的包轉(zhuǎn)發(fā)到指定的接收方,同時將通過的數(shù)據(jù)包的源地址更改為其自己的接口地址。當返回的數(shù)據(jù)包到達時,會將目的地址修改為原始主機的地址并做路由。地址偽裝可以實現(xiàn)局域網(wǎng)多個地址共享單一公網(wǎng)地址上網(wǎng)。類似于NAT技術(shù)中的端口多路復用(PAT)。IP地址偽裝僅支持ipv4,不支持ipv6。
端口轉(zhuǎn)發(fā):也可以稱之為目的地址轉(zhuǎn)換或端口映射。通過端口轉(zhuǎn)發(fā),將指定IP地址及端口的流量轉(zhuǎn)發(fā)到相同計算機上的不同端口,或不同計算機上的端口。一般公司內(nèi)網(wǎng)的服務器都采用私網(wǎng)地址,然后通過端口轉(zhuǎn)發(fā)將使用私網(wǎng)地址的服務器發(fā)布到公網(wǎng)上,以便讓互聯(lián)網(wǎng)用戶訪問。(例如,當接收互聯(lián)網(wǎng)用戶的HTTP請求時,網(wǎng)關(guān)服務器判斷數(shù)據(jù)包的目標地址與目標端口,一旦匹配指定規(guī)則,則將其目標地址修改為內(nèi)網(wǎng)真正的服務器地址,從而建立有效連接)。
firewalld提供了“direct interface”(直接端口),它允許管理員手動編寫的iptables、ip6tables和ebtables規(guī)則插入firewalld管理的區(qū)域中,適用于應用程序,而不是用戶。如果對iptables不太熟,不建議使用直接接口,可能會無意中導致防火墻被***。firewalld保持對所增加項目的追蹤,所以他還能質(zhì)詢firewalld和發(fā)現(xiàn)使用直接端口模式的程序造成的更改。直接端口通過firewalld-cmd命令中的--direct選項實現(xiàn)。除非將直接規(guī)則顯式插入firewalld管理的區(qū)域,否則將首先解析直接規(guī)則,然后再解析其他firewalld規(guī)則。
執(zhí)行以下命令即可添加一些直接規(guī)則以將某個IP范圍列入黑名單:
[root@centos01 ~]# firewall-cmd --direct --permanent --add-chain ipv4 raw blacklist
success
[root@centos01 ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw PREROUTING 0 -s 192.168.10.0/24 -j blacklist
success
[root@centos01 ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw blacklist 0 -m limit --limit 1/min -j LOG --log-prefix "blacklisted"
success
[root@centos01 ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw blacklist 1 -j DROP
success
firewalld的富語言提供了一種不需要了解iptables語法的通過高級語言配置復雜的IPv4和IPv6防火墻規(guī)則的機制,為管理員提供了一種表達性語言,通過這種語言,可以表達firewalld的基本語法中未涵蓋的自定義防火墻規(guī)則。(例如,僅允許從單個IP地址而非通過某個區(qū)域路由的所以IP地址連接到服務)。
富規(guī)則可用于表達基本的允許/拒絕規(guī)則,也可以用于配置記錄(面向syslog和auditd),以及端口轉(zhuǎn)發(fā)、偽裝和速率限制。下面簡單看一下表達富規(guī)則的基本語法:
規(guī)則的每個單一元素都能夠以option=value的形式來采用附加參數(shù)。
一旦向某個區(qū)域(一般是指防火墻)中添加了多個規(guī)則,規(guī)則的排序會在很大程度上影響防火墻的行為。對于所有的區(qū)域,區(qū)域內(nèi)的規(guī)則的基本排序是相同的。如果區(qū)域中的任何規(guī)則與包均不匹配,通常會拒絕此包,但是區(qū)域可能具有不同的默認值。(例如,可信區(qū)域?qū)⒔邮杖魏尾黄ヅ涞陌?。此外,在匹配某個記錄規(guī)則后,將繼續(xù)正常處理包)。
直接規(guī)則是個例外。大部分直接規(guī)則將首先進行解析,然后由firewalld進行其他處理,但是直接規(guī)則語法允許管理員在任何區(qū)域中的任何位置插入任何規(guī)則。
為了便于測試和調(diào)試,幾乎所有規(guī)則都可以與超時一起添加到運行時配置。當包含超時的規(guī)則添加到防火墻時,計時器便針對該規(guī)則開始倒計時,一旦規(guī)則的計時器到達0秒,便從運行時配置中刪除該規(guī)則。
在使用遠程防火墻時,使用超時會是一種極其有用的工具,特別是在測試更復制的規(guī)則集時。如果規(guī)則有效,則管理員可以再次添加該規(guī)則;如果規(guī)則沒有按照預期運行,甚至可能將管理員鎖定而使其無法進入系統(tǒng),那么規(guī)則將被自動刪除,以允許管理員可以繼續(xù)工作。通過在啟用規(guī)則的firewalld-cmd命令的結(jié)尾追加選項--timeout
firewalld-cmd有四個選項可以用于處理富規(guī)則,所有這些選項都可以同常規(guī)的--permanent或--zone=
--add-rich-rule='RULE' #向指定區(qū)域添加RULE,如果沒有指定區(qū)域,則為默認區(qū)域;
--remove-rich-rule='RULE' #從指定區(qū)域中刪除RULE,如果沒有指定區(qū)域,則為默認區(qū)域;
--query-rich-rule='RULE' #查詢RULE是否已添加到指定區(qū)域,如果未指定區(qū)域,則為默認區(qū)域。規(guī)則存在,則返回0,否則返回1;
- --list-rich-rules #輸出指定區(qū)域的所有富規(guī)則,如果未指定區(qū)域,則為默認區(qū)域;
任何已配置的富規(guī)則都會顯示在firewall-cmd --list-all 和 firewall-cmd --list-all-zone的輸出結(jié)果中。具有語法解釋如下所示:
source:限制源IP地址,源地址可以是一個IPv4、IPv6地址或者一個網(wǎng)絡地址段;
destination:限制目標地址,目標地址使用跟源地址相同的語法;
- element:要素,該項只能是以下幾種要素類型之一:service、port、protocol、icmp-block、masquerade和forward-port;
①service:服務名稱是firewalld提供的其中一種服務。要獲得支持的服務列表,輸入以下命令:firewalld-cmd--get-services。如果一個服務提供了一個目標地址,它和規(guī)則中的目標地址沖突,則會導致一個錯誤。命令格式為:service name=service_name;
②port:端口可以是一個獨立端口數(shù)字,或者是端口范圍,如5060~5062.協(xié)議為TCP或UDP。命令格式為:port port=number_or_range protocol=protocol;
③protocol:協(xié)議,可以是一個協(xié)議ID號,或者一個協(xié)議名。查詢可用協(xié)議,請查看/etc/protocols。命令格式為:protocol value=protocol_name_or_ID;
④icmp-block:阻斷一盒或多個ICMP類型。要獲得支持的ICMP類型列表,輸入firewalld-cmd--get-icmptypes命令即可查看。命令格式為:icmp-blick name=icmptype_name;
⑤masquerade:規(guī)則里的IP偽裝。用源地址而部署目的地址來把偽裝限制在一個范圍內(nèi);
⑥forward-port:將指定的TCP或UDP協(xié)議的數(shù)據(jù)包轉(zhuǎn)發(fā)到本機的其他端口,或另一臺機器,或另一臺機器上的其他端口。port和to-port可以是一個單獨的端口數(shù)字,或一個端口范圍。而目的地址是一個簡單的IP地址。命令格式為:forward-port port=number_or_range protocol=protocol to-port=number_or_range to-addr=address;
log:注冊有內(nèi)核日志的連接請求到規(guī)則中,如系統(tǒng)日志??梢远x一個前綴文本把日志信息作為前綴加入。日志等級可以是emerg、alert、crit、error、warning、notice、info或者debug中的一個??梢赃x擇日志的用法,按以下方式限制日志:log [prefix text] [level=log level] limint value=rate/duration。持續(xù)時間的單位為s、m、h、d。s表示秒,m表示分鐘,h表示小時,d表示天。大限定值是1/d(每天最多有一條日志進入);
audit:審核,審核類型可以是accept、reject或drop中的一種,但不能再audit命令后指定,因為審核類型將會從規(guī)則動作中自動收集。審核不包含自身參數(shù),但可以選擇性地增加限制。審核的使用是可選擇的;
- accept|reject|drop:可以是accept、reject或drop中的一個行為。命令格式為:accept | reject連接將被拒絕,發(fā)起端將接到一個拒絕信息。指定drop時,所有數(shù)據(jù)包會被丟棄,并且不會向發(fā)起端發(fā)送任何信息;
[root@centos01 ~]# firewall-cmd --add-rich-rule= 'rule protocolvalue=ah accept'
success
[root@centos01 ~]# firewall-cmd --add-rich-rule= 'rule service name=ftp log limit value=1/m audit accept'
success
[root@centos01 ~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" service name= "tftp" log prefix="tftp" level="info" limit value="1/m" accept'
success
[root@centos01 ~]# firewall-cmd --add-rich-rule= 'rule family="ipv6" source address="1:2:3:4:6::" service name="radius" log prefix="dns" level="info" limit value="3/m" reject'
success
[root@centos01 ~]# firewall-cmd --add-rich-rule= 'rule family="ipv6" service name="radius" accept'
success
[root@centos01 ~]# firewall-cmd --add-rich-rule= 'rule family="ipv4" source address="192.168.2.2" accept'
success
[root@centos01 ~]# firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.0.11/32 reject'
success
[root@centos01 ~]# firewall-cmd --add-rich-rule= 'rule protocol value="esp" drop'
success
[root@centos01 ~]# firewall-cmd --zone=dmz --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 port port=7900-7905 protocol=tcp accept'
success
[root@centos01 ~]# firewall-cmd --zone=work --add-rich-rule='rule service name=ssh log prefix="ssh" level="notice" limit value="3/m" accept'
success
[root@centos01 ~]# firewall-cmd --add-rich-rule= 'rule family=ipv4 source address=192.168.2.0/24 service name=dns audit limit value="1/h" reject' --timeout=300
success
下一篇博客再配置firewalld防火墻的地址偽裝和端口轉(zhuǎn)發(fā)案例。
—————— 本文至此結(jié)束,感謝閱讀 ——————
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。