TCP/IP 프로토콜 분석 프로그램 개발
PC 1대로 논리적 분리 환경을 구축하여 A, B를 운영하고 A에서 HTTP / DNS / ICMP를 요청하고 B에서 패킷을 캡쳐 후 로그로 저장 및 필터링 기능을 갖춘 프로그램을 구현
- HTTP, HTTPS, DNS, ICMP 패킷 캡쳐
- 패킷 캡쳐 중지
- 필터링
- 전체 패킷을 log.txt, 필터링된 패킷을 filter.txt로 출력
- Installation
git clone https://github.com/oognuyh/packet-sniffer.git
cd packet-sniffer
gcc -o packet_sniffer packet_sniffer.c
./packet_sniffer
- Filtering
엔터키 입력 시 필터링 모드로 전환
필터링 모드에서 값을 주지 않을 시 종료
<http|https|dns|icmp|all>
<http|https|dns|icmp|all> <ip>
<http|https|dns|icmp|all> <source ip|all> <dest ip|all>
- HTTP / DNS / ICMP 프로토콜에 대한 이해
- 각 프로토콜 별 패킷의 구조 및 이해
- Raw Socket에 대한 이해
- 3-Way Handshaking 동작 원리
- 네트워크 속 패킷의 송수신 과정에 대한 원리