문제는 현재 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
목적지하나 대신)