8.8. nftables를 사용하여 연결 수 제한


nftables 를 사용하여 연결 수를 제한하거나 지정된 양의 연결을 설정하여 시스템 리소스를 너무 많이 사용하지 못하도록 하는 IP 주소를 차단할 수 있습니다.

8.8.1. nftables를 사용하여 연결 수 제한

nft 유틸리티의 ct count 매개변수를 사용하면 IP 주소당 동시 연결 수를 제한할 수 있습니다. 예를 들어 이 기능을 사용하여 각 소스 IP 주소가 호스트에 대한 두 개의 병렬 SSH 연결만 설정할 수 있도록 구성할 수 있습니다.

프로세스

  1. inet 주소 제품군을 사용하여 filter 테이블을 생성합니다.

    # nft add table inet filter
    Copy to Clipboard Toggle word wrap
  2. inet 필터 테이블에 입력 체인을 추가합니다.

    # nft add chain inet filter input { type filter hook input priority 0 \; }
    Copy to Clipboard Toggle word wrap
  3. IPv4 주소에 대한 동적 세트를 생성합니다.

    # nft add set inet filter limit-ssh { type ipv4_addr\; flags dynamic \;}
    Copy to Clipboard Toggle word wrap
  4. IPv4 주소에서 SSH 포트(22)에 동시에 들어오는 연결만 허용하는 입력 체인에 규칙을 추가하고 동일한 IP에서 추가 연결을 모두 거부합니다.

    # nft add rule inet filter input tcp dport ssh ct state new add @limit-ssh { ip saddr ct count over 2 } counter reject
    Copy to Clipboard Toggle word wrap

검증

  1. 동일한 IP 주소에서 호스트로의 두 개 이상의 새 동시 SSH 연결을 설정합니다. 두 연결이 이미 설정된 경우 nftables는 SSH 포트에 대한 연결을 거부합니다.
  2. limit-ssh 동적 세트를 표시합니다.

    # nft list set inet filter limit-ssh
    table inet filter {
      set limit-ssh {
        type ipv4_addr
        size 65535
        flags dynamic
        elements = { 192.0.2.1 ct count over 2 , 192.0.2.2 ct count over 2 }
      }
    }
    Copy to Clipboard Toggle word wrap

    elements 항목에는 현재 규칙과 일치하는 주소가 표시됩니다. 이 예제에서 요소는 SSH 포트에 대한 활성 연결이 있는 IP 주소를 나열합니다. 출력은 활성 연결 수를 표시하지 않거나 연결이 거부된 경우입니다.

1분 이내에 10개 이상의 IPv4 TCP 연결을 설정하는 호스트를 일시적으로 차단할 수 있습니다.

프로세스

  1. IP 주소 제품군을 사용하여 필터 테이블을 생성합니다.

    # nft add table ip filter
    Copy to Clipboard Toggle word wrap
  2. 필터 테이블에 입력 체인을 추가합니다.

    # nft add chain ip filter input { type filter hook input priority 0 \; }
    Copy to Clipboard Toggle word wrap
  3. 1분 이내에 10개 이상의 TCP 연결을 설정하려는 소스 주소에서 모든 패킷을 삭제하는 규칙을 추가합니다.

    # nft add rule ip filter input ip protocol tcp ct state new, untracked meter ratemeter { ip saddr timeout 5m limit rate over 10/minute } drop
    Copy to Clipboard Toggle word wrap

    timeout 5m 매개변수는 계측이 오래된 항목으로 채워지지 않도록 nftables 가 5분 후에 자동으로 항목을 제거하도록 정의합니다.

검증

  • 측정기의 내용을 표시하려면 다음을 입력합니다.

    # nft list meter ip filter ratemeter
    table ip filter {
      meter ratemeter {
        type ipv4_addr
        size 65535
        flags dynamic,timeout
        elements = { 192.0.2.1 limit rate over 10/minute timeout 5m expires 4m58s224ms }
      }
    }
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat