connlimit
클라이언트/서비스당 연결 수를 제한하겠습니다. 이러한 규칙을 최신 버전의 Linux 커널 및 넷필터에서 사용할 수 있는 IP 세트와 어떻게 결합합니까?
답변1
이라는 이름의 ipset이 있고 MYTESTSET
ipset 유형이 이라고 가정합니다 hash:ip
. IP 주소만 저장됩니다.
그런 다음 IPset과 일치시키고 connlimit
일치 확장자와 일치시킨 후 원하는 매개변수를 사용하십시오.
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의 각 소스1로. (다른 방법으로 일치시킬 수도 있습니다. 대신 --connlimit-upto xxx
and 를 사용하세요 )-j ACCEPT
DROP
전체 세트를 고려하여 1개의 연결을 허용하려는 경우ipset의 모든 소스에 대해그런 다음 --connlimit-mask
스위치를 0으로 설정합니다.