20條IPTables防火牆規則用法!
IPTables 包括一組內建和由使用者定義規則的「鏈」,管理員可以在「鏈」上附加各種資料包處理規則。
- FILTER 預設過濾表,內建的鏈有:
- INPUT:處理流入本地的資料包
- FORWARD:處理透過系統路由的資料包
- OUTPUT:處理本地流出的資料包
- NAT 實現網路地址轉換的表,內建的鏈有:
- PREROUTING:處理即將接收的資料包
- OUTPUT:處理本地產生的資料包
- POSTROUTING:處理即將傳出的資料包
- MANGLE 此表用於改變資料包,共 5 條鏈:
- PREROUTING:處理傳入連線
- OUTPUT:處理本地生成的資料包
- INPUT:處理報文
- POSTROUTING:處理即將傳出資料包
- FORWARD:處理透過本機轉發的資料包
接下來我們將由簡入難介紹 25 條 Linux 管理員最常會用到的 IPTables 規則。
雖然 IPTables 並不是一項服務,但在 Linux 中還是可以像服務一樣對其狀態進行管理。
基於SystemD的系統
systemctl start iptables systemctl stop iptables systemctl restart iptables
基於SysVinit的系統
/etc/init.d/iptables start /etc/init.d/iptables stop /etc/init.d/iptables restart
你可以使用如下 來檢視 IPtables 防火牆策略:
iptables -L -n -v
以上命令應該返回資料下圖的輸出:
以上命令是檢視預設的 FILTER 表,如果你只希望檢視特定的表,可以在 -t 引數後跟上要單獨檢視的表名。例如只檢視 NAT 表中的規則,可以使用如下命令:
iptables -t nat -L -v –n
如果你釋出有某個 IP 向伺服器匯入攻擊或非正常流量,可以使用如下規則遮蔽其 IP 地址:
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
注意需要將上述的 XXX 改成要遮蔽的實際 IP 地址,其中的 -A 參數列示在 INPUT 鏈的最後追加本條規則。(IPTables 中的規則是從上到下匹配的,一旦匹配成功就不再繼續往下匹配)
如果你只想遮蔽 TCP 流量,可以使用 -p 引數的指定協議,例如:
iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP
要解封對 IP 地址的遮蔽,可以使用如下命令進行刪除:
iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
其中 -D 參數列示從鏈中刪除一條或多條規則。
很多時候,我們需要阻止某個特定埠的網路連線,可以使用 IPtables 關閉特定埠。
阻止特定的傳出連線:
iptables -A OUTPUT -p tcp --dport xxx -j DROP
阻止特定的傳入連線:
iptables -A INPUT -p tcp --dport xxx -j ACCEPT
使用 multiport 我們可以一次性在單條規則中寫入多個埠,例如:
iptables -A INPUT -p tcp -m multiport --dports 22,80,443 -j ACCEPT iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT
在 IPtables 中 IP 地址範圍是可以直接使用 CIDR 進行表示的,例如:
iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT
有時我們需要將 Linux 伺服器的某個服務流量轉發到另一埠,此時可以使用如下命令:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525
上述命令會將所有到達 eth0 網路卡 25 埠的流量重定向轉發到 2525 埠。
有時會有使用者在某個服務,例如 HTTP 80 上發起大量連線請求,此時我們可以啟用如下規則:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT
上述命令會將連線限制到每分鐘 100 個,上限設定為 200。
對 Linux 禁 PING 可以使用如下規則遮蔽 ICMP 傳入連線:
iptables -A INPUT -p icmp -i eth0 -j DROP
環回訪問(127.0.0.1)是比較重要的,建議大家都開放:
iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
使用如下規則可以遮蔽指定的 MAC 地址:
iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP
如果你不希望來自特定埠的過多併發連線,可以使用如下規則:
iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
以上規則限制每客戶端不超過 3 個連線。
要清空 IPtables 鏈可以使用如下命令:
iptables -F
要清空特定的表可以使用 -t 引數進行指定,例如:
iptables -t nat –F
預設情況下,管理員對 IPtables 規則的操作會立即生效。但由於規則都是儲存在記憶體當中的,所以重啟系統會造成配置丟失,要永久儲存 IPtables 規則可以使用 iptables-save 命令:
iptables-save > ~/iptables.rules
儲存的名稱大家可以自己改。
有儲存自然就對應有還原,大家可以使用 iptables-restore 命令還原已儲存的規則:
iptables-restore < ~/iptables.rules
隨著網路流量的進出分離,要允許建立傳入相關連線,可以使用如下規則:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
允許建立傳出相關連線的規則:
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
很多網路攻擊都會嘗試用駭客自定義的非法資料包進行嘗試,我們可以使用如下命令來丟棄無效資料包:
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
如果你的系統不會用於郵件傳送,我們可以在規則中遮蔽 SMTP 傳出埠:
iptables -A OUTPUT -p tcp --dports 25,465,587 -j REJECT
如果你的系統有多塊網路卡,我們可以限制 IP 範圍訪問某塊網路卡:
iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP
源地址可以是 IP 或 CIDR。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2919098/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iptables防火牆規則防火牆
- Linux IPTables:如何新增防火牆規則Linux防火牆
- iptables防火牆簡介,原理,規則編寫,常見案例防火牆
- iptables防火牆防火牆
- 防火牆iptables防火牆
- Kali && Debain 防火牆規則AI防火牆
- Linux——防火牆、SELinux規則Linux防火牆
- Iptables防火牆應用防火牆
- 基於iptables防火牆堵漏防火牆
- Linux設定防火牆iptablesLinux防火牆
- 配置ModSecurity防火牆與OWASP規則防火牆
- Linux基礎命令---iptables防火牆Linux防火牆
- Docker 埠對映防火牆規則配置Docker防火牆
- windows/Linux 防火牆安裝配置規則WindowsLinux防火牆
- linux iptables安全技術與防火牆Linux防火牆
- iptables防火牆如何記錄日誌防火牆
- 在Linux中,如何設定防火牆規則?Linux防火牆
- iptables配置-Linux系統安全防火牆Linux防火牆
- win10怎麼自定義防火牆入站規則_win10設定防火牆入站規則的方法Win10防火牆
- 在Linux中,如何配置防火牆和安全規則?Linux防火牆
- NSIS 指令碼,安裝時新增防火牆規則指令碼防火牆
- firewall-cmd - 防火牆規則管理工具防火牆
- Linux 防火牆配置(iptables和firewalld)詳細教程。Linux防火牆
- Linux系統iptables與Firewalld防火牆區別?Linux防火牆
- 超級實用的 iptables 防火牆指令碼防火牆指令碼
- docker上面部署nginx-waf 防火牆“modsecurity”,使用CRS規則,搭建WEB應用防火牆DockerNginx防火牆Web
- linux系統檢視防火牆是否開啟並清除防火牆規則的方法步驟Linux防火牆
- iptables詳解及docker的iptables規則Docker
- CentOS 中 iptables 和 firewall 防火牆的相關命令CentOS防火牆
- Linux 防火牆:關於 iptables 和 firewalld 的那些事Linux防火牆
- 體驗iptables 企業級的防火牆實戰防火牆
- Linux防火牆介紹和iptables常用命令Linux防火牆
- Debian使用iptables-persistent持久化iptables規則持久化
- 1、iptables-基礎-包過濾防火牆-四層防火牆(只支援4層協議)防火牆協議
- win10系統怎麼更改防火牆預設規則Win10防火牆
- iptables 常用規則使用例項
- 在 Rocky Linux 中,你可以使用 firewalld 來管理防火牆規則。Linux防火牆
- 25個常用的Linux iptables規則Linux