다른 연결 끊김과 관련된 연결을 끊는 방법은 무엇입니까?

다른 연결 끊김과 관련된 연결을 끊는 방법은 무엇입니까?

대본:나는 DPI 엔진이 Netfilter 대기열을 감시하는 호스트에 대한 규칙을 작성했습니다 . 방화벽 규칙은 트래픽이 내 iptables특정 호스트에서 오는지 여부에 따라 이 호스트로 들어오는 트래픽을 다른 Netfilter 대기열에 추가합니다 .ipset

체인 에서 FORWARD모든 연결은 서로 다른 큐에 추가됩니다 NFQUEUES. DPI 엔진은 사용자 공간 큐에서 iptables가 보낸 패킷을 감시하고, 금지된 연결이 관찰되면 패킷에 특수 값을 표시합니다. DPI 엔진은 금지된 패킷을 스택에 다시 삽입합니다. 체인 에서 POSTROUTING연결에 특별한 값이 표시되어 있는지 확인하고, 그렇다면 표시합니다 DROP.

모두 잘 작동하고 있지만...

문제: DPI 엔진은 괜찮지만 완벽하지는 않습니다.

  1. 금지된 것으로 식별되어야 하는 트래픽은 금지된 것으로 식별되지 않으므로 차단되지 않습니다.
  2. 금지된 트래픽은 차단되지만 즉시 차단되지는 않으며 그 동안 금지된 연결은 RELATED금지된 것으로 표시되지 않은 다른 연결(conntrack 시스템에 따르면)을 열 수 있지만 관련 연결도 차단하고 싶습니다.

두 번째 경우는 조치를 취하고 싶은 경우입니다. 사례 2의 예로 DPI 엔진이 YouTube를 차단하려고 하지만 신속하게 처리하지 못한다고 상상해 보세요. DPI 엔진에서 SSL로 라벨이 지정된 다른 연결을 열 수 있도록 YouTube 연결을 허용합니다. DPI 엔진은 마침내 YouTube를 차단하지만 SSL 연결은 거칠고 무료입니다. 어떤 연결을 열었는지에 관계없이 SSL 연결을 차단하도록 DPI 엔진에 지시할 수 없습니다.

고려사항: 설명대로대본, 체인으로 들어오는 패킷은 POSTROUTING0(기본값이므로 DPI 엔진이 아무런 조치도 취하지 않음) 또는 특수 값(DPI 엔진이 금지된 연결을 확인하여 표시함)으로 표시될 수 있습니다.

iptables -t mangle -A POSTROUTING -m mark --mark DROPVALUE -j DROP

거의 항상 충분하지만문제섹션에서는 금지된 연결과 관련된 연결을 작성했지만 DPI 엔진에서는 그렇게 표시되지 않습니다.금지된 연결에 의해 생성된 경우에도 해당 프로토콜은 블랙리스트에 포함되지 않으며 이로 인해 금지된 것으로 간주되지 않습니다.. 블랙리스트 SSL에 올릴 수 없기 때문에 그렇습니다 HTTPS.

RELATED금지된 연결에 대한 연결을 차단해야 합니다 . RELATED그리고 ESTABLISHED(내가 잘 이해했다면) 특정 연결을 참조하지 않고 금지된 연결을 참조해야 합니다.

질문RELATED: 에서 삭제(또는 이미 삭제)된 연결에 대한 연결을 삭제하는 것이 가능합니까 iptables? 아니면 해킹이 conntrack필요합니까?

어떤 제안이라도 미리 감사드립니다.

답변1

당신은 오해하고 있습니다 RELATED. 단일 주소가 만들 수 있는 모든 연결에 사용되는 것은 아닙니다. 이는 FTP 제어 연결과 관련된 FTP 데이터 스트림 또는 열린 연결과 관련된 ICMP 오류 메시지와 같이 실제로 관련된 데이터에만 사용됩니다. 실제로 일치하는 연결은 거의 없습니다 RELATED.

관련 정보