Linux
如何將 Linux 防火牆 IP 白名單與數據庫連接?
問題是我的專用盒子正在消失。我想設置Linux防火牆,將數據庫中列出的IP地址列入白名單。
基本上這個過程應該是 - 使用者連接到我們的網站。ip 地址被記錄並被發送到應用程序伺服器以列入白名單。
我不知道如何在 Linux 上做的唯一部分是如何實時更新防火牆(我假設是 iptables,我不熟悉不同的解決方案)以阻止或允許特定的 ip
感謝您的幫助!
我認為在您的情況下更好的解決方案是 iptables 和 ipset 的組合。您不需要每次都更改 iptables 規則集,只需執行 ‘ipset add …’ 以允許 IP 地址。
使用預設條目 ttl 3600 秒創建 db_allow ip 列表。進入ttl超時後,IP地址將被刪除。
ipset create db_allow hash:ip counters timeout 3600
在 iptables 規則集中,您需要兩個額外的規則。請記住,規則的順序非常重要。
# pass connections from allowed addresses in db_allow ipset iptables -A INPUT -p tcp --dport 3306 -m set --match-set db_allow src -j ACCEPT # block connections from other addresses iptables -A INPUT -p tcp --dport 3306 -j DROP
內部腳本以允許您剛剛執行的 IP 地址
ipset add db_allow <ip> timeout <ttl>
。要從允許列表中刪除 IP 地址,請執行ipset -! del db_allow <ip>
。執行ipset list db_allow
命令列出允許的 IP 地址。此外,最好使用 iptables-save / iptables-restore / iptables-apply 代替從腳本或手動執行 iptables 命令。ipset 列表不會在重新啟動之間儲存,因此您需要一個啟動腳本來創建/恢復它們,然後再創建/恢復 iptables 規則集。