네트워크 인터페이스에 대한 할당량을 설정하고 필요할 때 재설정할 수 있습니까?
내 의도는 할당량(예: 500MB)에 도달한 경우 eth0에서 아웃바운드 네트워크 트래픽을 차단하는 것입니다. 필요한 경우 재설정할 수도 있습니다(아마도 쿨다운 기간이 지난 후).
답변1
iptables~의quota
쉽게 재설정할 수 있도록 전용 사용자 체인에서 match를 사용할 수 있었지만 오랫동안 손상되었습니다(수정되었는지는 모르겠습니다). 업데이트가 있을 때마다 재설정됩니다. 관련 없는 규칙이 설정되었습니다. 이거 쳐봐
당신이 사용할 수있는:
quota2
~에서xtables 플러그인추가 제공iptables모듈의 경우 컴파일이 필요할 수 있습니다(일반적으로 Debian에서 xtables-addons-dkms를 설치하면 자동으로 처리되지만,dkms mkbmdeb
(다른 시스템에서) .deb 바이너리 버전 빌드 와 같은 특수 기능을 사용하지 않는 한 전체 컴파일 제품군을 가져옵니다.) ). 이는/proc/net/xt_quota/
할당량을 얻기 위해 읽기 또는 할당량을 재설정하기 위해 쓰기를 통해 일부 상호 작용을 수행합니다 .최신 기술을 수용하고
quota
사용nftables. 에서 사용될 때명명 된(다른 유사한 객체로부터) 독립적으로 재설정할 수 있는 상태 저장 객체입니다. 다음은 느슨하게 적용된 예입니다.nftables 위키:nft add table inet quotahandling nft add quota inet quotahandling eth0output over 500 mbytes nft add chain inet quotahandling dropafterquota '{ type filter hook output priority 0; policy accept; }' nft add rule inet quotahandling dropafterquota oif eth0 quota name "eth0output" drop
이것몫일치합니다(그래서 실행을 계속합니다)줄이다) 이 모든 것은 정의된 할당량에 도달한 경우에만 제한됩니다.이더넷 0상호 작용.
다음과 같은 방법으로 할당량을 나열할 수 있습니다.
# nft list quota inet quotahandling eth0output table inet quotahandling { quota eth0output { over 500 mbytes used 991177 bytes } }
그리고 원자적으로 나열하고 재설정합니다.
nft reset quota inet quotahandling eth0output