connlimit
클라이언트/서비스당 연결 수를 제한할 수 있습니다. 이러한 규칙을 최신 버전의 Linux 커널 및 netfilter에서 사용할 수 있는 IP 세트와 어떻게 결합합니까?
답변1
MYTESTSET
이라는 이름의 ipset이 있고 이 ipset의 유형이 이라고 가정해 보겠습니다 hash:ip
. IP 주소만 저장됩니다.
connlimit
그런 다음 원하는 매개변수를 사용하여 IPset과 일치하고 일치 확장과 일치합니다 .
iptables -A INPUT -p tcp -m set --match-set MYTESTSET src -m connlimit --connlimit-above 1 --connlimit-saddr --connlimit-mask 32 -j DROP
이는 다음을 수행합니다. IP 세트 내부의 각 소스에 대해 연결이 계산되고 둘 이상이면(--connlimit-above 1) 연결이 삭제되어 연결 수가 제한됩니다.ipset의 소스당( 대신 --connlimit-upto xxx
및를 사용하여 다른 방법으로 일치시킬 수도 있습니다 )-j ACCEPT
DROP
전체 세트를 고려하여 1개의 연결을 허용하려는 경우ipset의 모든 소스에 대해그런 다음 스위치를 0으로 설정하십시오 --connlimit-mask
.