ipset을 사용하여 특정 프로토콜을 차단하는 방법은 무엇입니까?

ipset을 사용하여 특정 프로토콜을 차단하는 방법은 무엇입니까?

문제는 현재 3개의 가상 테스트 머신이 있다는 것입니다.고객 1,아이피 192.168.1.10,클라이언트 2, IP 192.168.2.20라우터IP를 게이트웨이 192.168.1.1로 사용하여 Client1과 Client2를 연결합니다.192.168.2.1

존재하다라우터, hash:ip,port예를 들어 다음과 같이 설정했습니다.
ipset add myset 192.168.2.20,tcp:80
ipset add myset 192.168.2.20,tcp:443

존재하다클라이언트 2포트 80에서 수신 대기하도록 nginx 설정이 있지만 원하지 않습니다.고객 1연결할 수 있는클라이언트 2포트 80의 TCP를 통해,라우터규칙을 추가합니다.iptables -A FORWARD -m set --match-set myset dst -j DROP

존재하다고객 1나는 실행했고 wget 192.168.2.20/index.html내 iptables 규칙으로 인해라우터,고객 1에 연결할 수 없어야 합니다.클라이언트 2그러나 Grab이 index.html작동하지 않고 파일이 성공적으로 검색되었습니다.

hash:ip,port문제는 설정된 유형의 ipset 에서만 발생합니다 . 유형을 선택 hash:ip하고 프로토콜/포트 부분을 ipset에서 iptables로 이동하면 모든 것이 잘 작동합니다. 그러나 언제든지 차단 목록을 교환하려면 ipset을 정확하게 사용해야 합니다.

내가 뭘 잘못했나요? 3개의 가상 머신은 모두 Ubuntu 17.04에서 실행되며 최소 설치, GUI가 없습니다.

답변1

감사해요이것댓글, 문제 해결:
대신 (두 개)를
iptables -A FORWARD -m set --match-set myset dst -j DROP
사용해야 했습니다.
iptables -A FORWARD -m set --match-set myset dst,dst -j DROP목적지하나 대신)

관련 정보