티스토리 뷰
본 포스팅은 TCP Packet 분석기인 WireShark 사용 가이드입니다.
WireShark는 세계에서 가장 널리 쓰이는 네트워크 프로토콜 분석기입니다. 무료, 오픈소스 (GNU General Public License)로써 많은 산업, 교육 기관들 사이에서 사실상 표준으로 자리잡아 왔습니다. Ethereal 이라는 이름에서 2006년 Wireshark로 변경되었으며, 패킷 캡쳐를 위한 pcap 네트워크 라이브러리를 사용합니다.
Linux/UNIX의 tcpdump와 유사하나 GUI와 강력한 기능을 제공한다는 장점이 있습니다.
먼저 Wireshark가 무엇인지 알아보겠습니다.
WireShark의 역사는 캔자스 주의 미주리 대학교에서 제럴드 콤즈(Gerald Combs)에 의해 만들어졌습니다.
WireShark의 장점으로는 다음과 같습니다.
먼저 다양한 프로토콜을 지원하는데 대략 850개 이상의 프로토콜을 지원합니다.
다음으로 친 사용자 환경을 제공합니다. 와이어샤크의 인터페이스는 가장 쉬운 패킷 스니핑 애플리케이션 중 하나입니다. GUI 방식이고 다양한 특징도 있습니다.
세번째로 비용에 장점이 있습니다. 와이어샤크는 GPL의 원칙 아래 무료 배포 소프트웨어로 제공되는 오픈소스 프로그램이기 때문에 비용 걱정이 없습니다.
네번째로 프로그램 지원의 경우 사용하는 사용자간의 상호 지원을 받을 수 있습니다. 와이어샤크의 홈페이지는 지원 가능한 다양한 정보를 제공한다. 질문도 할 수 있습니다.
마지막으로 운영체제 지원입니다. 윈도우, 맥 OS X, 리눅스를 바탕으로 한 운영체제 등 거의 모든 운영체제를 지원합니다.
자 그럼 이제 Wireshark를 설치해 보도록 하겠습니다.
설치 방법은 매우 간단하다. WireShark 홈페이지를 통해 바이너리를 다운로드 받고 인스톨을 진행하면 됩니다.
인스톨 방법은 별도로 설명하지 않겠습니다. 넥스트 하고 인스톨만 하면 끝입니다.
실제 Wireshark 화면구성을 알아보겠습니다.
크게 3도막으로 나뉘는데, 위부터 패킷 리스트(Packet list), 패킷 분석(Packet detail), 실제 패킷 모습(Packet bytes)입니다.
조작 방법은 좌측 상단의 두 번째 줄의 버튼 클릭으로 조작이 가능합니다.
상어 지느러미 = 수집 실행
빨간 네모 버튼 = 수집 중지
녹색 지느러미 = 다시 시작
회색 톱니 버튼 = 다른 네트워크 목록
또한 맨 위에 File, Edit, View, Go, Capture, Analyze, Statistics, Thelephony, Wireless, Tools, Help 가 존재합니다. 이 기본기능들 중 중요한 것들을 요약하면 다음과 같습니다.
File 탭에는 다음과 같은 메뉴가 포함되어 있습니다.
Save는 수집한 패킷을 파일로 저장합니다.
Merge는 파일 여러 개를 선택해 합쳐서 볼수 있습니다.
Export는 특정한 패킷만 보낼 수 있습니다.
Edit 탭에는 다음과 같은 메뉴가 포함되어 있습니다.
Find Packet는 특정한 패킷을 찾을 수 있습니다.
Mark/Unmamrk Packet는 패킷에 마킹을 할 수 있습니다.
Ignore/Unignore Packet는 불필요한 패킷을 제외할 수 있다. Unignore 하면 다시 볼 수 있습니다.
Preference는 설정, 패킷 레이아웃, 칼럼, 색상, 폰트 구성 등을 설정 가능합니다.
View 탭에는 다음과 같은 메뉴가 포함되어 있습니다.
화면 구성요소들을 on/off 가능합니다.
Colorize Packet List는 패킷 목록의 컬러 지정 구분이 가능합니다. (on/off)
Go 탭에는 다음과 같은 메뉴가 포함되어 있습니다.
Go to Packet는 특정 패킷을 찾을 수 있습니다.(바로 가기).
Capture 탭에는 다음과 같은 메뉴가 포함되어 있습니다.
Options는 어떠한 인터페이스에서 수집을 할지, 캡처 필터링 룰을 설정 가능합니다.
Analyze 탭에는 다음과 같은 메뉴가 포함되어 있습니다.
Follow는 선택한 패킷에 대해 관련된 패킷들만 보여줍니다.
Statistics 탭에는 다음과 같은 메뉴가 포함되어 있습니다.
Capture File Properties는 선택한 패킷의 자세한 부분을 보여줍니다.
Thelephony 탭에는 다음과 같은 메뉴가 포함되어 있습니다.
VoIP Calls는 VoIP를 볼 수 있습니다.
Wireless 탭에는 다음과 같은 메뉴가 포함되어 있습니다.
무선 통신을 볼 수 있습니다.
Tools 탭에는 다음과 같은 메뉴가 포함되어 있습니다.
Firewell ACL Rules는 설정된 패킷으로 방화벽을 생성해 줍니다.
첫번째 상단 메인 구분 화면은 '패킷 리스트'로, 여기서 수집된 패킷을 볼 수 있습니다. 읽는 법은 간단합니다.
No는 수집된 패킷을 순서대로 번호를 매겨 표시합니다.
Time는 수집된 패킷을 시간대로 표시합니다.
Source는 출발지 주소입니다.
Destination는 도착지 주소입니다.
Protocol는 사용 프로토콜의 명칭(TCP, SMTP, ARP 등)입니다.
Length는 패킷의 길이를 나타냅니다.
Info는 패킷의 정보를 출력합니다.
두 번째 부분은 '패킷 분석'으로 패킷 리스트에서 나오지 않은 자세한 내용을 보여줍니다.
마지막으로 '실제 패킷 모습'은 말 그대로 가공되지 않은 실제 패킷의 모습을 보여주는 공간입니다.
마지막으로 Wireshark 필터링 방법에 대해 알아보고 포스팅을 마치도록 하겠습니다.
인터넷에 연결 된 네트워크 카드의 패킷들을 캡쳐하는 방법은 메뉴 -> Capture -> interfaces -> start를 통해 가능합니다.
Wireshark에서는 크게 두가지 필터링을 제공하며, 먼저 Wireshark 캡쳐 필터링에 대해 알아보겠습니다.
패킷을 수집 할 때 필터링을 적용합니다.
필터링에 적용된 패킷만을 수집하거나, 적용되지 않은 패킷만 수집하지 않거나 정할 수 있습니다.
복잡한 룰(필터 조건)을 사용하지 않도록 되어 있습니다.(물론 성능에 영향이 갈 수 있습니다.)
Capture Fitrers 버튼으로 룰 관리 창을 엽니다.
Option 버튼으로 룰(필터 조건)을 적용시킵니다.
캡쳐를 시작할 때 필터를 적용할 수 있습니다. 필터를 적용하지 않고 캡쳐를 시작할 경우 많은 양의 패킷으로 인해 원하는 패킷을 찾기 힘듭니다. 캡쳐를 시작한 이후 화면 출력 필터를 적용할 수 있으나 이는 모든 패킷을 캡쳐 후 필터하므로 불필요한 패킷이 캡쳐되어 파일의 크기가 커지게 됩니다. 이에 필요에 의한 필터를 등록하여 패킷을 수집해야 합니다.
필더링 방법에 대해 몇가지 예를 들자면, port 80이라고 필터링 값을 넣을 경우 해당 80 포트에 대한 캡쳐링을 수행하겠다는 의미로 해석하시면 됩니다. 또한 host 1.1.1.1이라고 필터링을 넣을 경우 1.1.1.1 호스트의 패킷을 캡쳐하겠다고 해석하면 되겠습니다.
Wireshark에서 제공하는 두번째 필터링 방법은 화면출력 필터링입니다.
이미 수집 '된' 패킷을 화면에 보여줄 때 필터링을 적용합니다.
화면에서만 보이지 않을 뿐 수집은 합니다.
연산자가 사용 가능합니다.
Display Fitrers 버튼으로 룰(필터 조건) 관리 창을 엽니다.
메인화면 상단 입력창에 룰을 적용시킵니다.
캡쳐를 한 뒤 원하는 패킷만 화면에 출력 한다. 필러링 캡쳐 시 입력하는 필터 문구와 약간 다릅니다.
필더링 방법에 대해 몇가지 예를 들자면, ip.addr == 1.1.1.1이라고 입력한다면 해당 호스트의 패킷 만 캡쳐를 수행합니다. 또한 tcp.port == 80이라고 입력한다면 해당 80 포트의 패킷 만 캡쳐를 수행합니다.
Wireshark를 활용하여 다양한 네트워크 패킷을 분석하는데 활용하시기를 부탁드립니다.
고맙습니다.
'⑥ 네트워크, 운영체제 > ⓝ Network' 카테고리의 다른 글
[ETC] TCP/IP 알아보기 (0) | 2018.06.26 |
---|---|
[ETC] 다양한 네트워크 장비들 알아보기 (0) | 2018.03.25 |
- Total
- Today
- Yesterday
- 쿠버네티스
- node.js
- apache
- jeus
- 아키텍처
- openstack tenant
- Da
- MSA
- API Gateway
- SA
- aa
- 오픈스택
- nodejs
- JBoss
- 마이크로서비스 아키텍처
- OpenStack
- Architecture
- SWA
- JEUS7
- TA
- aws
- wildfly
- JEUS6
- git
- kubernetes
- Docker
- openstack token issue
- 마이크로서비스
- k8s
- webtob
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |