긴 체인에서 iptables 성능

긴 체인에서 iptables 성능

iptables의 긴 체인이 성능 문제를 일으킬 수 있는지 궁금합니다. 여기서 긴 체인은 2,500개 이상의 개별 IP 금지가 될 수 있습니다.

내가 걱정하는 점은 iptables에 대한 나의 제한된 지식으로 인해 서버가 수신하는 모든 패킷에 대해 2,500개의 규칙이 검사된다는 것입니다.


내 사용 사례는 다음과 같습니다.

나는 IP가 하지 말아야 할 방식으로 내 서버를 반복적으로 검색하는 것을 방지하기 위해 iptables를 사용하고 있습니다(예: 반복적으로 SSH 로그인 실패). 나는 비슷한 Python 스크립트를 사용하고 있습니다.실패 2 금지.

최근에는 이러한 "공격"이 점점 더 똑똑해지고 속도가 느려지기 시작했습니다. 나는 그들이 IP/사용자 이름의 중첩 루프를 사용자 이름/IP로 바꾼 것으로 의심됩니다.그래서 이 문제를 해결하기 위해 금지 조치를 대폭 연장해야 했습니다. 나는 이것에 대해 매우 강경한 입장을 취했기 때문에 그들이 2개월의 보호 관찰 기간 동안 다시 시도한다면 나의 새로운 금지 기간은 1년 또는 2배가 될 것입니다.

나는 그러한 금지 조치로 인해 약 2,500건의 금지 조치가 내려졌다는 일화적인 증거를 발견했습니다. 현재의 새로운 차단 비율을 적용한다면 8,000명 정도가 될 것입니다. 하지만 서버가 악성 트래픽을 더 정확하게 차단하기 시작하면 그 비율은 느려질 것으로 예상됩니다.

답변1

모든 패킷이 영향을 받는다면 총 2500개의 규칙은 엄청난 CPU/대역폭 노력이 될 것입니다. 예를 들어 10,000개의 패키지를 보내는 경우 25,000,000개의 규칙을 분석하게 되므로 많은 작업이 필요합니다. 모든 수신 트래픽(확립된 트래픽 및 관련 트래픽 제외)을 차단한 다음 새로운 연결이 필요한 서비스를 시작하는 것이 더 정확하고 안전합니다.

IP 블랙리스트를 추가하려면 다음을 사용할 수 있습니다.IP 세트단일 규칙으로 이러한 목록을 생성하고 성능에 큰 영향을 주지 않고 규칙을 업데이트할 수도 있습니다. 예를 들어 2200개의 개별 IP를 차단하려는 경우 이를 목록에 저장하고 단일 규칙으로 확인할 수 있어 CPU 작업이 많이 절약됩니다.

관련 정보