IP地僞裝與端口轉發及(富規則)

Firewalld支持兩種類型的網絡地址轉換

1)地址僞裝(masquerade)

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

  • 可以實現局域網多個地址共享單一公網地址上網 
  • IP地址僞裝僅支持IPv4,不支持IPv6

2)端口轉發(Forward-port)

   也稱爲目的地址轉換或端口映射。通過端口轉發,將指定IP地址及端口的流量轉發到相同計算機上的不同端口。或不同計算機上的端口,企業內部的服務器一般使用私網地址,可以通過端口轉發將使用私網地址的服務器發佈到公網上,供互聯網用戶進行訪問。類似於NAT技術中的靜態NAT

  • 也稱爲目的地址轉換或端口映射
  • 通過端口轉發,指定IP地址及端口的流量將被轉發到相同計算機上的不同端口,或者轉發到不同計算機上的端口。

 

firewalld中理解直接規則

直接規則(direct interface)

  • 允許管理員手動編寫的iptables、ip6tables和ebtables 規則插入到Firewalld管理的區域中
  • 通過firewall-cmd命令中的--direct選項實現
  • 除顯示插入方式之外,優先匹配直接規則

使用直接規則麻煩命令繁瑣

 

使用富語言

富語言(rich language)

  • 表達性配置語言,無需瞭解iptables語法
  • 用於表達基本的允許/拒絕規則、配置記錄(面向syslog和auditd)、端口轉發、僞裝和速率限制

1.基本語法:

rule [family="<rule family>"]
    [ source address="<address>" [invert="True"] ]
    [ destination address="<address>" [invert="True"] ]
    [ <element> ]
    [ log [prefix="<prefix text>"] [level="<log level>"] [limit value="rate/duration"] ]
    [ audit ]
    [ accept|reject|drop ]

2.理解富規則命令

1)常用規則選項

 

3.規則配置舉例

1)爲認證包頭協議AH使用IPV4和IPV6連接。

[root@localhost ~]# firewall-cmd --add-rich-rule='rule protocol value=ah accept'
success

2)允許新的IPV4和IPV6連接FTP,並使用審覈每分鐘記錄一次。

[root@localhost ~]# firewall-cmd --add-rich-rule='rule service name=ftp log limit value=1/m audit accept'
success

3)允許來自192.168.0.0/24地址的TFTP協議的IPV4連接,並且使用系統日誌每分鐘記錄一次

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

4)爲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'
success
[root@localhost ~]# firewall-cmd --add-rich-rule='rule family="ipv6" service name="radius" accept'
success

5)將源192.168.2.2地址加入白名單,以允許來自這個源地址的所有連接

[root@localhost ~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.2.2" accept'
success

6)拒絕來自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'
success

7)丟棄來自默認區域中任何位置的所有傳入的ipsec esp協議包

[root@localhost ~]# firewall-cmd --add-rich-rule='rule protocol value="esp" drop'
success

8)在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'
success

9)接收從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'
success

10)在接下來的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
success

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章