centos7 iptables和firewalld學習記錄


centos7系統使用firewalld服務替代了iptables服務,但是依然可以使用iptables來管理內核的netfilter

但其實iptables服務和firewalld服務都不是真正的防火牆,只是用來定義防火牆規則功能的管理工具,將定義好的規則交由內核中的netfilter(網絡過濾器來讀取)從而實現真正的防火牆功能

在iptables命令中設置數據過濾或處理數據包的策略叫做規則,將多個規則合成一個鏈。

常見的控制類型

ACCEPT 允許通過

LOG  記錄日志信息,然后傳給下一條規則繼續匹配

REJECT  拒絕通過,必要時給出提示

DROP  直接丟棄,不給出任何回應。

規則鏈則依據處理數據包的位置不同而進行分類

PREROUTING進行路由選擇前處理數據包

INPUT  處理入站數據包

OUTPUT  處理出站數據包

FORWARD  處理轉發的數據包

POSTROUTING  在進行路由選擇后處理數據包

iptables中的規則表是用於容納規則鏈,規則表默認是允許狀態的,那么規則鏈就是設置被禁止的規則,而反之如果規則表是禁止狀態的,那么規則鏈就是設置被允許的規則。

raw表:確定是否對該數據包進行狀態跟蹤

mangle表:為數據包設置標記

nat表:修改數據包中的源,目標IP地址或端口

filter表:確定是否放行該數據包(過濾)

規則表的先后順序:raw-mangle-nat-filter

 規則鏈的先后順序:

入站順序:PREROUTING-INPUT

出站順序:OUTPUT-POSTROUTING

轉發順序:PREROUTING-FORWARD-POSTROUTING

注意事項

沒有指定規則表則默認指filter表。

不指定規則鏈則指表內所有的規則鏈。

在規則鏈中匹配規則時會依次檢查,匹配即停止(LOG規則除外),若沒匹配項則按鏈的默認狀態處理。

基本的命令參數

iptables命令用於管理防火牆的規則策略,格式為:“iptables [-t 表名] 選項[鏈名][條件]  [-j 控制類型]”不指定表,默認netfilter

 

禁止所有的ping操作

iptables -I INPUT -p icmp -j DROP

firewalld防火牆

區域規則

 

firewall-cmd

很多人因為防火牆的設置太繁雜,所以經常直接systemctl stop firewalld關閉防火牆。

其實這樣是不安全的,關閉防火牆之后,不法分子就可以輕易的攻擊服務器了。

下面我以開啟http為例子,展示如何讓http能通過防火牆

firewall-cmd --list-all獲取當前的防火牆規則

我的是dmz

firewall-cmd --add-service=http

如果是success,那么服務器上的http服務就能通過防火牆了。但是只是暫時的。

firewall-cmd --permanent --zone=dmz --add-service=http

如果是開放某個端口

firewall-cmd --permanent --zone=dmz --add-port=xxx/tcp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM