질문:현재 포트 80 요청을 포트 1000의 다른 시스템으로 리디렉션하고 있습니다.
수행 방법은 다음과 같습니다.
iptables -t nat -A PREROUTING ! -s 172.20.1.2 -p tcp --dport 80 -j DNAT --to-destination 172.20.1.2:1000
그러나 MSIE가 포함된 필터링된 패킷에 추가되면 -m string --algo kmp --string 'MSIE'
사전 라우팅은 첫 번째 SYN 패킷만 평가하므로 무시됩니다(따라서 평가하려는 헤더가 있는 HTTP 패킷이 누락됨).
깨진 규칙:
iptables -t nat -A PREROUTING ! -s 172.20.1.2 -p tcp --dport 80 -j DNAT --to-destination 172.20.1.2:1000 --algo kmp -m string --string 'MSIE'
내 질문:문자열 일치가 발생할 때 HTTP 헤더를 평가하고 패킷을 리디렉션하거나 시스템 이벤트를 트리거하려면 어떻게 해야 합니까?
답변1
매뉴얼 페이지를 인용하면 다음과 같습니다.
DNAT(IPv4 전용)
이 대상은 nat 테이블, PREROUTING 및 OUTPUT 체인, 그리고 이러한 체인에서만 호출되는 사용자 정의 체인에서만 유효합니다.
즉, 패배하면 불가능합니다. 연결 도중에 대상 주소를 변경할 수 없기 때문에 이는 분명합니다(새 대상에서 수정하지 않고).
애플리케이션 계층을 원하면 애플리케이션이 필요합니다. 연결 처리 방법을 결정할 수 있는 (투명한) 프록시로 모든 패킷을 리디렉션합니다.