Ubuntu에서 Tcpdump로 패킷 캡처 및 Wireshark로 패킷 분석
이 가이드에서는 Linux에서 네트워크 패킷을 분석하는 방법을 보여 드리겠습니다. 도구 Tcpdump 및 Wireshark를 사용합니다. 이 튜토리얼은 Ubuntu를 OS로 사용하지만 다른 Linux 배포판에도 적용할 수 있습니다.
왜 Tcpdump가 필요한가요?
Wireshark로 거의 모든 것을 할 수 있는데 왜 Tcpdump에 신경을 써야 하는지에 대한 분명한 질문이 떠오를 수 있습니다. 이에 대한 대답은 다음과 같습니다. 때때로 Wireshark와 비교할 때 패킷 캡처에 Tcpdump를 사용하는 것이 더 편리합니다. 예를 들어, 패킷을 캡처하는 대상 시스템이 Wireshark가 설치되지 않은 원격 시스템이거나 원격 헤드리스 시스템인 경우 두 경우 모두 Tcpdump가 매우 편리합니다. Tcpdump와 함께 사용할 수 있는 다양한 옵션을 보려면 매뉴얼 페이지를 검색하십시오.
Tcpdump란 무엇입니까?
Tcpdump는 Wireshark에 대한 명령줄 대안입니다. 트래픽을 캡처하고 분석하는 Wireshark와 동일한 목적을 수행합니다. Tcpdump는 별도의 애플리케이션이며 Wireshark 명령줄 인터페이스로 생각하면 안 됩니다. 명령줄 인터페이스를 기반으로 하기 때문에 Wireshark만큼 다루기가 간단하지 않습니다. 새로운 사용자는 사용을 시작할 때 처음에는 어려울 수 있으며 기억하기 어려운 많은 명령과 구문을 찾을 수 있습니다.
이 튜토리얼의 개요
이제 이 가이드의 주요 목적을 살펴보겠습니다. 이 가이드에서는 Tcpdump와 Wireshark를 상호 작용하는 방법을 살펴봅니다. 여기서 우리는 이 가이드에서 수행할 작업을 지적합니다.
<올 스타일=텍스트-정렬:왼쪽>
비행 전 확인
이 튜토리얼에서는 두 대의 Ubuntu 20.04 머신을 사용하고 있습니다. 직접 구성해야 합니다. 우리의 IP 구성은 다음과 같습니다.
호스트 1(현장 시스템): 192.168.186.150
호스트 2(원격 머신): 192.168.186.201
이 가이드에 언급된 단계는 다음 요구 사항이 충족되는 모든 Linux 시스템에서 작동한다고 가정합니다.
<올 스타일=텍스트-정렬:왼쪽>
의 시작하자…
계속 진행하려면 SSH 액세스 프로토콜을 사용하여 온사이트 시스템(호스트 1)에서 원격 시스템(호스트 2)으로 연결하십시오. 우리는 이미 두 컴퓨터 사이에 SSH 연결을 설정했습니다. 따라서 호스트 1 터미널에서 아래 명령을 사용하여 호스트 2에 연결합니다.
$ ssh ‘user_name’@’IP_of_Host2’
여기에서 'user_name'을 연결하려는 호스트 2의 사용자 이름으로 바꾸고 'IP_of_Host2'는 호스트 2의 IP 주소입니다. 참조용으로 아래 그림을 참조하세요.
$ tcpdump --list-interfaces
샘플 출력:
1.enp0s3 [Up, Running]
2.lo [Up, Running, Loopback]
3.any (모든 인터페이스에서 캡처하는 의사 장치) [Up, Running]
4.eno1 [Up ]
5.bluetooth-monitor(Bluetooth Linux 모니터) [없음]
6.nflog(Linux 넷필터 로그(NFLOG) 인터페이스) [없음]
7.nfqueue(Linux 넷필터 대기열(NFQUEUE) 인터페이스) [없음]
8.bluetooth0(Bluetooth 어댑터 번호 0) [없음]
$ sudo tcpdump -s 65535 -i enp0s3 -w my_remote_capture.pcap
<올 스타일=텍스트-정렬:왼쪽>
캡처된 트래픽은 my_remote_capture.pcap이라는 파일에 저장됩니다. 이제 Wireshark로 분석하기 위해 이 파일을 호스트 1로 전송합니다. 파일 전송을 위해 scp 명령을 사용하고 있습니다. 다시 말하지만, 우리는 이미 scp가 두 머신 사이에서 작동하도록 구성했습니다. 명령 구문은 다음과 같습니다.
$ scp my_remote_capture.pcap 'username'@'IP_of_remote_machine':
여기서 username은 호스트 1의 사용자 이름이고 IP_of_remote_machine은 호스트 1의 IP이기도 합니다.
캡처 파일 분석
위의 파일에 표시 필터를 적용해 보겠습니다. SSH를 사용하여 호스트 2에 연결했으므로 SSH 프로토콜의 흔적이 있어야 합니다. 표시 필터에 해당하는 텍스트 필드에 'ssh'를 입력합니다.
마무리…
축하합니다. 마침내 컴퓨터에서 원격 캡처를 수행하는 방법을 시연했습니다. Tcpdump와 Wireshark를 결합하는 방법을 살펴보았습니다.