TCP 덤프로 패킷 가져오기

Adam·2024년 8월 8일
0

개발일지

목록 보기
9/15

레거시 코드 중 tcp 통신을 통해서 패킷을 받아 로직을 처리하는 서버가 있는데, 해당 통신이 외부로 노출 된 통신이 아니라 내부 통신이고 패킷을 보내는 부분에 커맨트로 작성 된 부분이 하나도 없어서 패킷을 분석하기 매우 어려웠다.
이를 위해 tcp dump 커맨드로 실제로 tcp 통신으로 전달된 패킷을 가져와서 하나하나 수동으로 테스트해보면서 배우고 느낀 점들에 대해서 간단하게 정리해 보려고 한다.

TCP 환경

TCP(Transmission Control Protocol)는 인터넷 프로토콜 스위트의 핵심 프로토콜 중 하나로, 데이터 전송의 신뢰성을 보장하는 연결 지향 프로토콜입니다. TCP는 IP(Internet Protocol)와 함께 사용되어 인터넷 상에서 데이터를 안정적으로 전달하는 역할을 합니다.

TCP의 주요 특징:

1.	연결 지향적: 데이터 전송 전에 발신자와 수신자 간에 연결이 설정됩니다.
2.	신뢰성: 데이터 패킷이 손실되거나 손상될 경우 재전송됩니다.
3.	흐름 제어: 송신자와 수신자 간의 데이터 전송 속도를 조절하여 데이터가 넘치지 않도록 합니다.
4.	혼잡 제어: 네트워크 혼잡을 방지하기 위한 메커니즘을 포함하고 있습니다.
5.	순서 제어: 전송된 데이터가 올바른 순서로 수신되도록 합니다.

TCP 연결 과정:

1.	3-way Handshake:
•	SYN: 클라이언트가 서버에게 연결 요청을 보냅니다.
•	SYN-ACK: 서버가 요청을 받고, 승인 신호를 클라이언트에게 보냅니다.
•	ACK: 클라이언트가 승인을 받고, 최종 승인 신호를 서버에게 보냅니다.
2.	데이터 전송: 연결이 설정되면 데이터를 주고받습니다.
3.	연결 종료: 데이터 전송이 완료되면 연결을 종료합니다.

TCPdump

TCPdump는 네트워크 트래픽을 캡처하고 분석하는 도구입니다. 네트워크 인터페이스를 통해 송수신되는 패킷을 실시간으로 캡처하고, 이를 분석할 수 있는 다양한 옵션을 제공합니다. TCPdump는 네트워크 관리 및 보안 분석에 매우 유용합니다.

TCPdump의 주요 기능:

1.	패킷 캡처: 네트워크 인터페이스를 통해 실시간으로 패킷을 캡처합니다.
2.	필터링: IP 주소, 포트 번호, 프로토콜 등 다양한 기준으로 패킷을 필터링할 수 있습니다.
3.	저장 및 분석: 캡처된 패킷을 파일로 저장하고, 나중에 분석할 수 있습니다.

TCPdump 사용 예:

  1. 모든 트래픽 캡쳐:
tcpdump -i eth0
  1. 특정 포트의 트래픽 캡쳐:
tcpdump -i eth0 port 80
  1. 특정 IP의 트래픽 캡처:
tcpdump -i eth0 host 192.168.1.1
  1. 캡처된 데이터를 파일로 저장:
tcpdump -i eth0 -w capture.pcap

실 사용

내 경우 11600 포트로 들어오는 패킷들을 캡처해야 했다

tcpdump -i any port 11600 -w /root/capture_latest.pcap

이후 바로 cntrl + c를 눌러 종료를 했다.
짧은 시간에도 정말 많은 트래픽이 발생했기 때문에 바로 종료를 하였지만 많은 패킷정보가 쌓인것을 확인할 수 있었다.

그 후 다음 커맨드로 해당 캡처 파일을 읽었다

tcpdump -r /root/capture_latest.pcap -XX

-XX 옵션은 패킷 데이터를 hex와 ASCII 포멧으로 모두 보여주어 해당 패킷의 구조를 보다 쉽게 이해할 수 있다.

profile
Keep going하는 개발자

0개의 댓글