隨著網路安全威脅的不斷增加,安全中心掃描越來越頻繁。尤其是在大資料安全中心的漏洞報告中,許多漏洞在生產環境中無法透過服務升級來修復,例如:
-
Oracle MySQL cURL 元件輸入驗證錯誤漏洞(CVE-2022-32221)
-
MySQL 拒絕服務漏洞(CVE-2023-21912)
-
Oracle MySQL 安全漏洞(CVE-2022-37434)
-
Oracle MySQL curl/libcURL 安全漏洞(CVE-2023-38545)
生產環境直接升級 MySQL 版本往往不可行。因此,可以透過配置
iptables
規則限制流量和訪問許可權,間接修復這些安全漏洞。iptables
是 Linux 系統上功能強大且靈活的防火牆工具,能夠透過精細化規則實現流量控制和訪問限制。本文將介紹如何利用 iptables
修復常見的安全漏洞。下載安裝iptables(centos(線上、離線)安裝iptables_離線安裝iptables-CSDN部落格[1])
如果
iptables
正在執行,通常會有規則生效,可以透過以下命令檢視規則是否存在:
iptables -L -n -v
規則策略
#iptables 規則具有順序依賴性
# 新增允許特定IP地址訪問3306埠的規則
iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp -s 192.167.10.194 --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp -s 192.167.10.197 --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp -s 192.167.10.199 --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp -s 192.167.10.196 --dport 3306 -j ACCEPT
# 新增拒絕所有其他IP地址訪問3306埠的規則
# 這條規則會匹配所有到3306埠的TCP流量,但由於前面的允許規則,它只會對那些未被允許的IP地址生效。
iptables -A INPUT -p tcp --dport 3306 -j DROP
或者
iptables -A INPUT -p tcp --dport 3306 -j REJECT
執行效果
-
來自
127.0.0.1
、192.167.10.194
、192.167.10.197
、192.167.10.199
、192.167.10.196
的連線會被允許透過。 -
所有其他 IP 地址(即不在允許列表中的 IP 地址)將被拒絕訪問埠 3306。
DROP和REJECT區別:
1. DROP
-
功能:直接丟棄資料包,不傳送任何響應給傳送方。
-
效果:從傳送方的角度來看,請求像是被“忽略”了,沒有任何反饋。
-
適用場景:
-
增加安全性:攻擊者無法得知埠是否開放。
-
防止埠掃描:讓對方認為埠是“隱形的”。
-
節省頻寬:不需要傳送拒絕的響應。
2. REJECT
-
功能:拒絕資料包,同時向傳送方傳送一個拒絕響應(如 ICMP 錯誤訊息)。
-
效果:傳送方會收到明確的“拒絕”反饋。
-
適用場景:
-
明確拒絕:告知合法使用者埠不可用。
-
快速恢復:避免傳送方一直嘗試連線被阻止的埠。
-
測試除錯:便於檢查網路規則或通訊問題。
補充:
iptables
會按規則順序匹配,早匹配的規則優先順序高,因此插入位置至關重要。如果要在現有的策略上更新,可以使用 -I(插入)選項而不是 -A(追加)例:
如果你想在所有現有的 INPUT 鏈規則之前新增一條允許來自某個特定 IP 地址(比如 192.167.10.200)訪問 3306 埠的規則,你可以使用以下命令:
iptables -I INPUT -p tcp -s 192.167.10.200 --dport 3306 -j ACCEPT
這條命令會將新的規則插入到 INPUT 鏈的最前面,從而確保它優先於其他所有現有的 INPUT 鏈規則被處理。
連結:https://blog.csdn.net/m0_63004677/article/details/144269012?spm=1001.2014.3001.5502
(版權歸原作者所有,侵刪)