您好,登錄后才能下訂單哦!
這篇文章主要介紹IPTables防火墻怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
iptables是組成Linux平臺下的包過濾防火墻,與大多數的Linux軟件一樣,這個包過濾防火墻是免費的,它可以代替昂貴的商業防火墻解決方案,完成封包過濾、封包重定向和網絡地址轉換(NAT)等功能。在日常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 -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。
以上是“IPTables防火墻怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。