iptables 是 Linux 中的一個防火墻軟件,它可以管理 Linux 系統上的網絡流量,幫助保護網絡安全。下面是一些常用的 iptables 命令及其功能:
1. iptables -L:列出 iptables 規則,可以查看當前系統中的所有防火墻規則。
2. iptables -F:清空 iptables 規則,可以刪除所有規則,從而重新開始配置。
3. iptables -P INPUT DROP:將 INPUT 鏈的默認策略設置為 DROP,拒絕所有的入站數據包。
4. iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT:允許來自 192.168.1.0/24 網段的數據包進入系統。
5. iptables -A INPUT -p tcp --dport 22 -j ACCEPT:允許通過 SSH 連接進入系統,前提是 SSH 服務已經開啟并監聽在 22 端口上。
6. iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT:允許已經建立的連接數據包通過防火墻。
7. iptables -A INPUT -i lo -j ACCEPT:允許本地回環接口的數據包通過防火墻。
8. iptables -A INPUT -j DROP:拒絕所有未匹配到規則的數據包進入系統。
9. iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT:在 INPUT 鏈的第一條規則之前插入一條允許 HTTP 流量的規則。
10. iptables-save:保存 iptables 規則,可以將當前配置的防火墻規則保存到一個文件中。
11. iptables-restore:還原 iptables 規則,可以從一個文件中加載之前保存的防火墻規則。
12. iptables -D:刪除指定規則,可以根據規則的編號或者內容來刪除已經存在的規則。例如:
13. iptables -D INPUT 2:刪除 INPUT 鏈中的第二條規則。
14. iptables -D INPUT -s 192.168.1.0/24 -j ACCEPT:刪除允許 192.168.1.0/24 網段的數據包進入系統的規則。
15. iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT:允許從 eth0 接口到 eth1 接口的數據包轉發,用于多網卡的情況。
16. iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE:使用 NAT 技術將內部網絡的 IP 地址轉換成公網 IP 地址,從而實現對外訪問。這個命令是在 nat 表中新增 POSTROUTING 規則,表示對從 192.168.1.0/24 網段發出的數據包,通過 eth0 接口發送出去時進行地址轉換,使用 MASQUERADE 參數可以自動獲取外部網絡的 IP 地址。
17. iptables -A OUTPUT -d 192.168.1.10 -j DROP:拒絕系統向指定 IP 地址發送數據包,用于限制系統對某些地址的訪問。
18. iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT:限制 HTTP 流量,每分鐘最多接受 25 個數據包,最大緩沖 100 個數據包。
19. iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT:限制 ICMP 流量,每秒最多接受一個 echo-request 數據包。
20. iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT:限制 HTTP 流量,最多允許 10 個并發連接,超過限制則拒絕連接。
21. iptables -A INPUT -p tcp --dport 22 -m recent --name ssh --set -j ACCEPT:使用 recent 模塊記錄 SSH 連接,設置為 SSH,如果連續多次連接失敗,則拒絕連接。可以通過以下命令實現:
22. iptables -A INPUT -p tcp --dport 22 -m recent --name ssh --rcheck --seconds 60 --hitcount 3 -j DROP:檢查 SSH 連接是否已經超過 3 次,如果在 60 秒內達到了 3 次,則拒絕連接。
23. iptables -A INPUT -m geoip --src-cc CN -j DROP:使用 geoip 模塊限制國家/地區訪問,只允許來自中國的數據包進入系統。
iptables 是一個非常強大的工具,可以幫助我們保障系統的網絡安全,但需要掌握一定的網絡知識和技能,才能夠正確地配置和使用 iptables。在使用 iptables 的時候,需要注意以下幾點:
1. 確保自己已經備份了原始的 iptables 配置,以防止在操作過程中出現意外情況,導致系統無法訪問網絡。
2. iptables 規則的優先級很重要,如果某個規則匹配了數據包,則之后的規則就不再執行,因此必須保證規則的順序正確。
3. 避免在 iptables 中使用 DROP 命令,除非非常必要,因為 DROP 會丟棄數據包,而 REJECT 會向發送方發送拒絕連接的消息,可以讓發送方知道連接失敗的原因。
4. 避免在 iptables 中使用 ACCEPT 命令,因為 ACCEPT 會接受所有的數據包,包括惡意數據包,容易被攻擊者利用。
5. iptables 支持多個鏈,可以根據不同的目的和功能,將規則添加到不同的鏈中,從而更加靈活地管理網絡安全。
6. iptables 支持模塊化設計,可以使用不同的模塊來擴展 iptables 的功能,例如使用 conntrack 模塊來跟蹤連接狀態,使用 limit 模塊限制流量,使用 geoip 模塊限制地理位置等。
7. iptables 規則是在內核中執行的,因此對性能有一定的影響,需要合理地配置規則,避免過多的規則和不必要的復雜度,以保證系統的穩定性和安全性。
文中如有誤請后臺留言指正,感謝支持。
一顆小胡椒
D1Net
安全內參
聚銘網絡
D1Net
黑白之道
公安部網安局
GoUpSec
安全牛
E安全
LemonSec
一顆小胡椒