내 컴퓨터와 VPN 서버 간 UDP 연결의 초기 핸드셰이크를 캡처하고 싶습니다. 이를 위해 사용하고 있지만 tcpdump
이유를 이해하지 못합니다.
tcpdump dst port 1194 and "tcp[tcpflags] & (tcp-syn) != 0"
그동안 아무것도 캡처하지 않습니다
tcpdump dst port 1194 and "(tcp-syn) != 0"
핸드셰이크를 시작하는 첫 번째 SYN 패킷만 캡처해야 하는 경우 연결 중에 여러 패킷을 캡처합니다.
tcp[tcpflags]
그것은 무엇을 위해 사용됩니까?
답변1
tcp[tcpflags]
현재 캡처된 TCP 패킷에 TCP 플래그(비트)를 저장하는 변수입니다.tcp-syn
TCP SYN 패킷에 해당하는 비트를 제외하고는 상수이며 다른 모든 위치는 0입니다. 그러므로:tcpdump dst port 1194 and "(tcp-syn) != 0"
동등하다
tcpdump dst port 1194 and 1 = 1
UDP 프로토콜은 더 간단하며 이러한 플래그가 없습니다. UDP 트래픽에는 SYN, ACK 등이 없습니다. 따라서 UDP 패킷의 내용을 검사하지 않으면 실제 핸드셰이크를 캡처할 수 없습니다.
VPN 통신이 UDP를 통해 실행되는 경우. 그러면 첫 번째 규칙은 TCP 패킷에만 적용되므로 "핸드셰이크"를 캡처하지 않습니다. 두 번째는 이를 캡처하지만 포트 1194(TCP 및 UDP)를 가리키는 모든 항목과 함께 캡처됩니다.