Iptableテーブルを使用してipsetのレート制限を行うことは可能ですか?
Ipsetを使用して、blacklistという名前のブロックリストを作成できることを知っています。
つまり.
ipset create blacklist hash:ip
iptables -I INPUT -m set --match-set blacklist src -j DROP
ipset add blacklist 1.2.3.4
ipset add blacklist 1.2.3.5
しかし、ブラックリストと呼ばれるipsetをどのようにレート制限できますか?何かのようなもの ?
iptables -I INPUT -m set --match-set blacklist src -p TCP --dport 80 -m hashlimit --hashlimit 50/sec --hashlimit-burst 10 --hashlimit-name blacklisthash -j DROP
は–hashlimit-mode srcip
必要ですか?
ありがとう
はい、そうです。
simpleテストを使用して作成しました:
ipset create ratelimit hash:ip hashsize 4096
ipset add ratelimit <ip_address>
iptables -I INPUT -m set --match-set ratelimit src -p tcp --dport 80 -m hashlimit --hashlimit 10/sec --hashlimit-name ratelimithash -j DROP
と働いた:
Chain INPUT (policy ACCEPT 1537 packets, 89602 bytes)
pkts bytes target prot opt in out source destination
64 7562 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set ratelimit src tcp dpt:80 limit: up to 10/sec burst 5
--hashlimit-mode srcip
も機能しました。