8.8. nftables를 사용하여 연결 수 제한
nftables
를 사용하여 연결 수를 제한하거나 지정된 양의 연결을 설정하여 시스템 리소스를 너무 많이 사용하지 못하도록 하는 IP 주소를 차단할 수 있습니다.
8.8.1. nftables를 사용하여 연결 수 제한 링크 복사링크가 클립보드에 복사되었습니다!
nft
유틸리티의 ct count
매개변수를 사용하면 IP 주소당 동시 연결 수를 제한할 수 있습니다. 예를 들어 이 기능을 사용하여 각 소스 IP 주소가 호스트에 대한 두 개의 병렬 SSH 연결만 설정할 수 있도록 구성할 수 있습니다.
프로세스
inet
주소 제품군을 사용하여filter
테이블을 생성합니다.nft add table inet filter
# nft add table inet filter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow inet 필터
테이블에입력
체인을 추가합니다.nft add chain inet filter input { type filter hook input priority 0 \; }
# nft add chain inet filter input { type filter hook input priority 0 \; }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow IPv4 주소에 대한 동적 세트를 생성합니다.
nft add set inet filter limit-ssh { type ipv4_addr\; flags dynamic \;}
# nft add set inet filter limit-ssh { type ipv4_addr\; flags dynamic \;}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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 Copied! Toggle word wrap Toggle overflow
검증
- 동일한 IP 주소에서 호스트로의 두 개 이상의 새 동시 SSH 연결을 설정합니다. 두 연결이 이미 설정된 경우 nftables는 SSH 포트에 대한 연결을 거부합니다.
limit-ssh
동적 세트를 표시합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow elements
항목에는 현재 규칙과 일치하는 주소가 표시됩니다. 이 예제에서요소는
SSH 포트에 대한 활성 연결이 있는 IP 주소를 나열합니다. 출력은 활성 연결 수를 표시하지 않거나 연결이 거부된 경우입니다.
8.8.2. 1분 이내에 10개 이상의 새 들어오는 TCP 연결을 시도하는 IP 주소 차단 링크 복사링크가 클립보드에 복사되었습니다!
1분 이내에 10개 이상의 IPv4 TCP 연결을 설정하는 호스트를 일시적으로 차단할 수 있습니다.
프로세스
IP 주소 제품군을 사용하여
필터
테이블을 생성합니다.nft add table ip filter
# nft add table ip filter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필터
테이블에입력
체인을 추가합니다.nft add chain ip filter input { type filter hook input priority 0 \; }
# nft add chain ip filter input { type filter hook input priority 0 \; }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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 Copied! Toggle word wrap Toggle overflow timeout 5m
매개변수는 계측이 오래된 항목으로 채워지지 않도록nftables
가 5분 후에 자동으로 항목을 제거하도록 정의합니다.
검증
측정기의 내용을 표시하려면 다음을 입력합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow