ipset

Posted by Adam on August 24, 2022
1. 限制來源IP: 使用ipset可以輕易地限制特定來源IP的訪問,可以有效防止DDoS攻擊或其他惡意行為。 ```bash # 創建一個名為blacklist的IP set ipset create blacklist hash:ip # 將惡意IP地址加入黑名單 ipset add blacklist 1.2.3.4 # 使用iptables將黑名單中的IP封鎖 iptables -A INPUT -m set --match-set blacklist src -j DROP ``` 在這個指令中,hash:ip 是指創建一個使用IP地址作為鍵值的Hash類型的IP集合(ipset)。這表示當您將IP地址添加到此ipset時,系統將使用專門的哈希函數來存儲和查找這些IP地址。 您可以替換hash:ip中的ip為其他合適的值,例如: - hash:net 代表使用IP網絡作為鍵值的hash類型的ipset。 - hash:ip,port 表示使用IP地址和端口號作為鍵值的hash類型的ipset。 請根據您的需求,選擇適合的ipset類型。 2. 阻擋廣告IP: 使用ipset可以將已知的廣告伺服器IP地址加入到一個IP set中,然後透過iptables封鎖這些IP地址,從而幫助過濾網頁上的廣告。 ```bash # 創建一個名為ads的IP set ipset create ads hash:ip # 將廣告伺服器IP地址加入到ads IP set ipset add ads 5.6.7.8 # 使用iptables將ads IP set中的IP封鎖 iptables -A INPUT -m set --match-set ads src -j DROP ``` 3. 加速反向代理: 在反向代理伺服器上使用ipset可以快速地過濾掉已知的惡意IP地址或機器,從而提升反向代理的性能。 ```bash # 創建一個名為whitelist的IP set ipset create whitelist hash:ip # 將信任的IP地址加入到whitelist IP set ipset add whitelist 10.20.30.40 # 使用iptables將whitelist中的IP地址添加到允許的訪問規則 iptables -A INPUT -m set --match-set whitelist src -j ACCEPT ``` ``` # 列出目前在ipset中的清單 ipset list # 這條指令將會列出所有目前在ipset中的IP地址或者網段的清單。 # 列出一個特定的ipset清單下的所有內容 ipset list set_name # 其中,set_name 是你想要查看的ipset清單的名稱 # 刪除ipset清單 ipset destroy set_name # 不刪除ipset清單的情況下清空內容 ipset flush set_name # 將ipset配置保存到文件中,這樣可以在需要時重新加載 ipset save > /etc/ipset.conf # 重新加載配置 ipset restore < /etc/ipset.conf ```