반대 방향으로 iptables '-mlimit'를 사용하십시오.

반대 방향으로 iptables '-mlimit'를 사용하십시오.

를 사용하여 패킷 수락을 iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT제한 할 수 있다는 것을 알고 있습니다 . 따라서 패킷이 이 속도를 초과하지 않으면 으로 점프합니다 .tcp syn
tcp synACCEPT

이 규칙을 반대 방향으로 작성하는 방법이 있나요?
나는 다음과 같은 규칙을 작성하고 싶습니다.

If ok (doesn't cross the rate), continue down. Else drop<-- (1)???
iptables -A INPUT -j OTHER_CHAIN_STUFF

쓰는 방법이 있나요 (1)?

시도했지만 iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j DROP다음과 같이 작동합니다.
속도에 도달할 때까지 감소한 다음 속도 제한을 초과하면 더 이상 감소하지 않으므로 DROP계속 감소합니다. 이는 제가 원하는 것이 아닙니다.

내가 원하는 것을 쓸 수 있는 방법이 있나요?
유사: ( iptables -A INPUT -p tcp --syn ! -m limit --limit 1/s -j DROP
참고 !)

답변1

hashlimit가능한 경우 이 모듈을 사용하는 것이 쉬운 방법일 수 있습니다 .

iptables -A INPUT -p tcp --syn -m hashlimit --hashlimit-name mylimit --hashlimit-above 1/s -j DROP

limitman iptables-extensions내 Fedora 23의 모듈 보다 약간 덜 효율적입니다 .

답변2

방금 간단한 해결책을 깨달았습니다.

  • iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
  • iptables -A INPUT -p tcp --syn -j DROP
  • 내가 하고 싶은 일을 계속해

관련 정보