您好,登錄后才能下訂單哦!
通過保證Linux系統安全之firewalld防火墻入門詳解認識Linux系統firewalld防火墻,并可以編寫一些相對簡單一些的防火墻規則。Linux防火墻可以充當路由器(網關)。路由器上的NAT技術,同樣可以通過Linux防火墻來實現。地址偽裝和端口轉發說白了就是路由器中的NAT技術。
firewalld防火墻支持兩種類型的NAT:
地址偽裝:基于源地址進行轉換,通過地址偽裝,NAT設備將經過設備的數據包轉發到指定接收方,同時將通過的數據包的源地址更改為其本身的接口地址。當返回的數據包到達時,會將目的地址修改為原始主機的地址并做路由。地址偽裝可以實現局域網多個IP地址共享單一公網地址上網。類似于NAT技術中的端口多路復用(PAT)。IP地址偽裝僅支持IPV4,不支持IPV6。
端口轉發:基于目標地址進行轉換,也稱為目的地址轉換或端口映射。通過端口轉發,將指定IP地址及端口的流量轉發到相同計算機上的不同端口。或不同計算機上的端口,企業內部的服務器一般使用私網地址,可以通過端口轉發將使用私網地址的服務器發布到公網上,供互聯網用戶進行訪問。類似于NAT技術中的靜態NAT。
直接規則特性:
- 允許管理員手動編寫的iptables、ip6tables和ebtables 規則插入到Firewalld管理的區域中;
- 通過firewall-cmd命令中的--direct選項實現;
- 除顯示插入方式之外,優先匹配直接規則;
[root@localhost ~]# firewall-cmd --direct --add-chain ipv4 raw blacklist
success
[root@localhost ~]# firewall-cmd --direct --add-rule ipv4 raw PREROUTING 0 -s 192.168.0.0/24 -j blacklist
success
[root@localhost ~]# firewall-cmd --direct --add-rule ipv4 raw blacklist 0 -m limit --limit 1/min -j LOG --log-prefix "blacklisted"
success
[root@localhost ~]# firewall-cmd --direct --add-rule ipv4 raw blacklist 1 -j DROP
success
這些僅是把192.168.0.0網段的地址添加到黑名單(使用直接規則)!太麻煩!
富語言特性:
- 表達性配置語言,無需了解iptables語法;
- 用于表達基本的允許/拒絕規則、配置記錄(面向syslog和auditd)、端口轉發、偽裝和速率限制;
富語言語法格式:
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 ]
規則的每個單一元素都能夠以option=value的形式來采用附加參數。
富語言規則各常用選項:
任何已配置的富規則都會顯示在firewall-cmd --list-all和firewall-cmd --list-all-zones的輸出結果中。
富語言規則各語法解釋:
富語言規則配置示例:
- [root@localhost ~]# firewall-cmd --add-rich-rule='rule protocol value=ah accept'
success
//為認證包頭協議AH使用IPV4和IPV6連接- [root@localhost ~]# firewall-cmd --add-rich-rule='rule service name=ftp log limit value=1/m audit accept'
success
//允許新的IPV4和IPV6連接FTP,并使用審核每分鐘記錄一次- [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
//允許來自192.168.0.0/24地址的TFTP協議的IPV4連接,并且使用系統日志每分鐘記錄一次- [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
//為RADIUS協議拒絕所有來自1:2:3:4:6::的新ipv6連接,日志前綴為“dns”,級別為“info”,并每分鐘最多記錄3次。接受來自其他發起端新的ipv6連接- [root@localhost ~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.2.2" accept'
success
//將源192.168.2.2地址加入白名單,以允許來自這個源地址的所有連接- [root@localhost ~]# firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.0.11/32 reject'
success
//拒絕來自public區域中IP地址192.168.0.11的所有流量- [root@localhost ~]# firewall-cmd --add-rich-rule='rule protocol value="esp" drop'
success
//丟棄來自默認區域中任何位置的所有傳入的ipsec esp協議包- [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
//在192.168.1.0/24子網的DMZ區域中,接收端口7900~7905的所有TCP包- [root@localhost ~]# firewall-cmd --zone=work --add-rich-rule='rule service name=ssh log prefix="ssh" level="notice" limit value="3/m" accept'
success
//接收從work區域到SSH的新連接,以notice級別且每分鐘最多三條消息的方式將新連接記錄到syslog- [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
//在接下來的5min內(通過--timeout=300配置項實現),拒絕從默認區域中的子網192.168.2.0/24到DNS的新連接,并且拒絕的連接將記錄到audit系統,且每小時最多一條消息
firewalld防火墻檢查規則的順序是:
1.直接規則;
2.富規則;
3.區域規則
在實際環境中如何配置請參考保證Linux系統安全之配置firewalld防火墻的地址偽裝及端口轉發實例,可跟做!!!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。