tcpflow — TCP 흐름 재구성
Linux / 네트워크 및 방화벽 / tcpflow.html
캡처한 TCP 패킷을 연결 단위로 다시 조립해 양방향 데이터를 파일로 남기는 도구.
기본 정보
| 명령어 이름 | tcpflow |
|---|---|
| 한 줄 소개 | 캡처한 TCP 패킷을 연결 단위로 다시 조립해 양방향 데이터를 파일로 남기는 도구. |
| 제공 | tcpflow 프로젝트 (배포판 패키지로 제공) |
| 공식 문서 | https://man7.org/linux/man-pages/man1/tcpflow.1.html |
| 지원 운영체제 | Linux, macOS |
| 설치 여부 | 패키지 설치 필요 (apt install tcpflow) |
| 분류 | 리눅스 네트워크 (태그: 주소·포트·라우팅·방화벽 (태그: 패킷, TCP, 캡처, 분석)) |
이 명령어는 무엇인가?
tcpflow는 libpcap으로 패킷을 받아 TCP 순서 번호를 기준으로 각 연결을 재조립합니다.
연결마다 송신·수신 방향이 별도 파일로 저장되어, 평문 프로토콜 내용을 그대로 확인할 수 있습니다.
어떤 문제를 해결하는가?
- 캡처 파일에서 특정 연결의 본문을 꺼냅니다.
- 평문 HTTP 요청과 응답을 확인합니다.
- 포트별로 트래픽 양과 내용을 비교합니다.
- 재전송이나 순서 문제를 연결 단위로 봅니다.
주요 기능
실시간 캡처
인터페이스와 필터를 지정해 바로 캡처합니다.
- 활용 상황: 지금 발생하는 연결을 볼 때.
- 얻는 결과: 연결별 파일이 현재 디렉터리에 생성됩니다.
- 제한 사항: 권한이 필요하고 디스크를 빠르게 사용할 수 있습니다.
파일 재분석
이미 저장한 pcap을 입력으로 재조립합니다.
- 활용 상황: 나중에 증거를 다시 분석할 때.
- 얻는 결과: 동일한 방식으로 연결 파일이 만들어집니다.
- 제한 사항: 원본 캡처에 없는 패킷은 복원할 수 없습니다.
출력 위치 지정
출력 디렉터리와 파일명 형식을 지정합니다.
- 활용 상황: 여러 번 캡처해 비교할 때.
- 얻는 결과: 결과가 지정한 위치에 정리됩니다.
- 제한 사항: 경로가 없으면 실행이 실패합니다.
설치 및 실행
설치 여부 확인
tcpflow -h
sudo apt install tcpflow
실제 사용 예제
포트 필터
80번 포트만 캡처합니다.
sudo tcpflow -i eth0 'tcp port 80'
파일 재분석
저장한 캡처를 연결 단위로 분해합니다.
tcpflow -r capture.pcap
출력 지정
결과 파일을 지정 디렉터리에 저장합니다.
tcpflow -o /tmp/flows -r capture.pcap