centos 7的firewalld防火牆配置IP假裝和端口轉發(內附配置案例)

IP地址假裝和端口轉發都屬於NAT(網絡地址轉換)。centos

地址假裝和端口轉發的區別以下:服務器

IP地址假裝:
經過地址假裝,NAT設備將通過設備的包轉發到指定的接收方,同時將經過的數據包
源地址更改成其NAT設備本身的接口地址。當返回的數據包到達時,會將目的地址修改
爲原始主機的地址並作路由。地址假裝能夠實現局域網多個地址共享單一公網地址上網。
相似於NAT技術中的端口多路複用(PAT)。IP地址假裝僅支持ipv4,不支持ipv6。網絡


端口轉發:
也能夠稱之爲目的地址轉換或端口映射。經過端口轉發,將指定IP地址及端口的流量轉發到相同計算機上的不一樣端口,或不一樣計算機上的端口。通常公司內網的服務器都採用私網地址,而後經過端口轉發將使用私網地址的服務器發佈到公網上。運維

在firewalld中,有一個富語言的概念,firewalld的富語言提供了一種不須要了解iptables語法的經過高級語言配置複雜的防火牆規則的機制,經過這種語言,能夠表達firewalld的基本語法中不能實現的自定義防火牆規則。ssh

富規則可用於表達基本的容許/拒絕規則,也能夠用於配置記錄(面向syslog和auditd),以及端口轉發、假裝和速率限制。tcp

在firewalld防火牆配置中有一個超時的工具,當包含超時的規則添加到防火牆時,計時器便針對該規則開始倒計時,一旦倒計時達到0秒,便從運行時配置中刪除該規則。ide

在測試更復雜的規則集時,若是規則有效,那麼咱們能夠再次添加該規則,若是規則沒有實現咱們預期的效果,甚至可能將咱們管理員鎖定而使其沒法進入系統,那麼規則將被自動刪除,以便咱們運維人員繼續進行測試工做。工具

在使用firewall-cmd進行配置規則時,在命令的結尾追加選項--timeout=<timeval> 便可,--help中關於該選項的參考以下(單位能夠是秒、分、時):測試

Enable an option for timeval time, where timeval is
                       a number followed by one of letters 's' or 'm' or 'h'
                       Usable for options marked with [T]

firewall-cmd有四個選項能夠用於處理富規則,全部這些選項均可以和常規的--permanent或--zone=<ZONE>選項組合使用,具體以下:
centos 7的firewalld防火牆配置IP假裝和端口轉發(內附配置案例)日誌

在任何已配置的富規則都會顯示在firewall-cmd --list-all 和 firewall-cmd --list-all-zone的輸出結果中。具備語法解釋以下所示:

centos 7的firewalld防火牆配置IP假裝和端口轉發(內附配置案例)

富規則配置舉例:

① 爲認證報頭協議AH使用新的ipv4和ipv6鏈接
[root@localhost /]# firewall-cmd --add-rich-rule='rule protocol value=ah accept'
②容許新的ipv4和ipv6鏈接ftp,並使用審覈每分鐘記錄一次
[root@localhost /]# firewall-cmd --add-rich-rule='rule service name=ftp log limit value=1/m audit accept'
③容許來自192.168.1.0/24地址的TFTP協議的ipv4鏈接,而且使用系統日誌每分鐘記錄一次
[root@localhost /]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="tftp" log prefix="tftp" level="info" limit value="1/m" accept'
④爲RADIUS協議拒絕全部來自1:2:3:4:6::的新ipv6鏈接,日誌前綴爲「dns」,級別爲「info」,並每分鐘最多記錄3次。接受來自其餘發起端新的ipv6鏈接:
[root@localhost /]# 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'
[root@localhost /]# firewall-cmd --add-rich-rule='rule family="ipv6" service name="radius" accept'
⑤將源192.168.2.2地址加入白名單,以容許來自這個源地址的全部鏈接:
[root@localhost /]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.2.2" accept'
⑥拒絕來自public區域中IP地址192.168.0.11的全部流量:
[root@localhost /]# firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.0.11/32 reject'
⑦丟棄來自默認區域中任何位置的全部傳入的ipsec esp協議包:
[root@localhost /]# firewall-cmd --add-rich-rule='rule protocol value="esp" drop'
⑧在192.168.1.0/24子網的DMZ區域中,接收端口7900~7905的全部TCP包:
[root@localhost /]# firewall-cmd --zone=dmz --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 port port=7900-1905 protocol=tcp accept'
⑨接收從work區域到SSH的新鏈接,以notice級別且每分鐘最多三條消息的方式將新鏈接記錄到syslog:
[root@localhost /]# firewall-cmd --zone=work --add-rich-rule='rule service name=ssh log prefix="ssh" level="notice" limit value="3/m" accept'
⑩在接下來的5min內(經過--timeout=300配置項實現),拒絕從默認區域中的子網192.168.2.0/24到DNS的新鏈接,而且拒絕的鏈接將記錄到audit系統,且每小時最多一條消息。

[root@localhost /]# 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

這篇文章寫的有點多了,爲了不雜亂,因此就將配置firewall防火牆的地址假裝和端口轉發的配置實例寫到另外一篇博文裏吧!博文連接: http://www.javashuo.com/article/p-ymgskfrz-mq.html

相關文章
相關標籤/搜索