Ipset

前言

    IP sets are a framework inside the Linux kernel, which can be administered by the ipset utility. Depending on the type, an IP set may store IP addresses, networks, (TCP/UDP) port numbers, MAC addresses, interface names or combinations of them in a way, which ensures lightning speed when matching an entry against a set.html

    IP集是Linux內核內的框架,它能夠由IPSET實用程序。根據不一樣的類型,IP組能夠存儲IP地址,網絡(TCP / UDP)端口號,MAC地址,接口名稱,或在某種程度上,保證閃電般的速度匹配與一組條目中時,它們的組合。api

 

使用

    ipset 通常用來輔助 iptables 使用;在iptables中,能夠在建立規則的時候限制來源 IP,將這些 IP 地址寫入多條 iptables 的規則(這些IP都是無規律性的),可是一旦要限制的 IP 過多的時候,當須要匹配幾百甚至上千個IP地址的話,那麼性能就會受到嚴重的影響,實測下來很是慢;網絡

    ipset在這個方面作了很大的改善,其最主要是的在結構和規則的查找上面作了很大的改善,當出現上面的狀況的時候,ipset對性能就始終穩定在一個相對值上。根據提供的測試結果代表,當規則在300-1500之間的時候其對性能的影響基本是水平線。因此當你的防火牆規則過多的時候不妨試試看。框架

ipset 添加黑名單

    ipset create openapi hash:net maxelem 1000000tcp

    ipset add openapi 192.168.0.1ide

   使用 iptables 建立防火牆規則,openapi 這個 ipset 裏的 ip 都沒法訪問 22 端口:性能

    iptables -I INPUT -m set --match-set openapi src -p tcp --destination-port 22 -j DROP測試

相關文章
相關標籤/搜索