wire shark 사용법 및 네트워크 개론 살짝 설명

30

Upload: -

Post on 13-Jan-2017

332 views

Category:

Software


6 download

TRANSCRIPT

Page 1: Wire shark 사용법 및 네트워크 개론 살짝 설명
Page 2: Wire shark 사용법 및 네트워크 개론 살짝 설명

Wireshark 와 네트워크 개론이진우

[email protected]

Page 3: Wire shark 사용법 및 네트워크 개론 살짝 설명

진행 순서1. Wireshark 사용법

– 아주 간단한 소켓 프로그램 예제 ( Server <-> Client )– Wireshark 을 이용한 패킷 분석

2. 네트워크 살짝 설명– OSI 7 계층 , TCP/IP 4 계층 설명– L2, L3, L4 스위치 설명

Page 4: Wire shark 사용법 및 네트워크 개론 살짝 설명

아주 간단한 소켓 프로그램 예제

Page 5: Wire shark 사용법 및 네트워크 개론 살짝 설명

실험 환경의 Network Topology

내 컴퓨터1. SSH Client

2. Socket Server

공유기(L3, NAT)

넷북1. SSH Server(22)2. Socket Client

Internet

192.168.219.168192.168.219.134192.168.219.1

180.228.181.128

Page 6: Wire shark 사용법 및 네트워크 개론 살짝 설명

아주 간단한 소켓 프로그램서버 (192.168.219.168)

# Echo server programimport socket

HOST = '' # Symbolic name meaning all available interfacesPORT = 50007 # Arbitrary non-privileged ports = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind((HOST, PORT))s.listen(1)conn, addr = s.accept()

while 1:data = conn.recv(1024)print 'Recevied ', dataif not data: breakconn.sendall("server is received the data

%s" % data)

conn.close()

클라이언트 (192.168.219.134)

# Echo client programimport socketimport time

HOST = '192.168.219.168' # The remote hostPORT = 50007 # The same port as used by the servers = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((HOST, PORT))

s.sendall('Hello, world')data = s.recv(1024)print 'Received from server', repr(data)time.sleep(1)

s.close()

Page 7: Wire shark 사용법 및 네트워크 개론 살짝 설명

아주 간단한 소켓 프로그램

클라이언트 (192.168.219.134)

서버 (192.168.219.168)

실행 장면

Page 8: Wire shark 사용법 및 네트워크 개론 살짝 설명

패킷 분석1. 필터를 이용하여 보고 싶은 패킷만 추출하자 .2. 각 패킷들을 분석하자 .

3. TCP 패킷의 생애주기를 관찰해보자 .

Page 9: Wire shark 사용법 및 네트워크 개론 살짝 설명

Wireshark 를 켰는데 쌓인 패킷 .. 분석하려면 ?

Page 10: Wire shark 사용법 및 네트워크 개론 살짝 설명

Wireshark 패킷 분석1. 쌓인 패킷들에서 필요한 것만 취함 . ( 패킷에 우클릭 후 Apply as Filter 적용 )

Page 11: Wire shark 사용법 및 네트워크 개론 살짝 설명

Wireshark 패킷 분석• 적용해본 필터링 Expression(((((((((!(ipv6.src == fe80::e441:aabb:82d1:6473)) && !(ipv6.src == fe80::428:b5f7:a283:4a08)) && !(ip.src == 45.121.186.10)) && !(ip.src == 52.91.152.165)) && !(eth.dst == 00:08:5b:7d:b1:e0)) && !(eth.src == 00:08:5b:7d:b1:e0)) && !(ip.dst == 239.255.255.250))))

Page 12: Wire shark 사용법 및 네트워크 개론 살짝 설명

Wireshark 패킷 분석2. 쌓인 패킷들에서 필요한 것만 취한 결과 . => SSH 패킷이 대부분 -_-; SSH 도 제거 !

Page 13: Wire shark 사용법 및 네트워크 개론 살짝 설명

Wireshark 패킷 분석• SSH 도 제거하려면 ?Port(22) 를 제외시키자 . => 추가해준 필터링 Expression : && !(tcp.port==22)

=> ((((((((((!(ipv6.src == fe80::e441:aabb:82d1:6473)) && !(ipv6.src == fe80::428:b5f7:a283:4a08)) && !(ip.src == 45.121.186.10)) && !(ip.src == 52.91.152.165)) && !(eth.dst == 00:08:5b:7d:b1:e0)) && !(eth.src == 00:08:5b:7d:b1:e0)) && !(ip.dst == 239.255.255.250))))) && !(tcp.port==22)

Page 14: Wire shark 사용법 및 네트워크 개론 살짝 설명

Wireshark 패킷 분석3. 소켓 통신에 사용된 패킷만 추출 성공 . ( 잡 패킷은 귀찮아서 무시 . )

Page 15: Wire shark 사용법 및 네트워크 개론 살짝 설명

Wireshark 패킷 분석4. Three Hand Shaking ( SYNchronize 패킷을 주고 받음 . )

Page 16: Wire shark 사용법 및 네트워크 개론 살짝 설명

Wireshark 패킷 분석5. 데이터 전달 ( 실제로 데이터를 보내기 위해 PuSH 패킷을 전달 . )

Page 17: Wire shark 사용법 및 네트워크 개론 살짝 설명

Wireshark 패킷 분석6. TCP 연결 종료 ( 연결을 끊기 위해 FINalize 패킷을 전달 . )

Page 18: Wire shark 사용법 및 네트워크 개론 살짝 설명

Wireshark 패킷 분석• ARP 패킷 구조

• TCP 패킷 구조 ( 클라이언트 , 서버 순 )

Page 19: Wire shark 사용법 및 네트워크 개론 살짝 설명

네트워크 개론웹서비스 개발에 필요한 네트워크 기초

Page 20: Wire shark 사용법 및 네트워크 개론 살짝 설명

OSI 7 계층 , TCP/IP 계층• 계층표

Page 21: Wire shark 사용법 및 네트워크 개론 살짝 설명

OSI 7 계층 , TCP/IP 계층• 계층표

- Data-Link Layer : Ethernet 은 데이터를 Frame 단위 , Broadcasting 방식으로 전송 . 각 호스트들은 MAC 주소를 인식하여 , 자신의 MAC 주소가 있으면 Frame 을 취한다 . 반이중 통신만 가능 .

- Network Layer : 모든 호스트들에 IP 어드레스를 부여하며 , Inter-network 구성이 가능해진다 . 각기 다른 Subnet 들끼리 통신이 가능하게 됨 .

- Transport Layer : IP Layer 에서 전달 받은 데이터를 검증하고 응답할 수 있게 됨 . 전이중 통신이 가능 . 연결지향

Page 22: Wire shark 사용법 및 네트워크 개론 살짝 설명

네트워크 토폴로지 스케치

공유기(L3)

WebServer

Switch(L4)

Host Host

Switch(L2)

Router(L3)

Router(L3)

Router(L3)

Router(L3)

Inter-Network

Router(L3)

∙∙ 공유기(L3)

Host Host

Switch(L2)

Switch(L2)

Host Host

Host Host

Switch(L2)

Sub-Network

Sub-Network

Sub-Network

Sub-NetworkWebServer

Page 23: Wire shark 사용법 및 네트워크 개론 살짝 설명

L2 Device - Data-Link

• L2 SwitchMAC 주소를 읽고 처리하는 스위치Ethernet 은 기본적으로 Broadcasting 을 사용 . 기존의 Hub 는 모든 호스트들에 Broadcasting 을 하기 때문에 전체 네트워크의 속도가 1/N 으로 떨어졌음 . L2 Switch 는 MAC 주소를 읽어서 해당 호스트에만 전달할 수 있게 호스트간의 Dedicated 대역폭을 제공 . 전체 네트워크 성능이 Hub 에 비해 비약적 향상 .

Page 24: Wire shark 사용법 및 네트워크 개론 살짝 설명

L3 Device - Network

• Router, L3 Switch서로 다른 네트워크를 연결하는 장치 . 패킷의 네트워크 주소 (IP) 를 보고 라우팅 시킴 .

Page 25: Wire shark 사용법 및 네트워크 개론 살짝 설명

L4 Device - Transport

• L4 Switch전송계층 정보 -> IP, Port 조합을 보고 트래픽을 스위칭해주는 장비 . 주로 Load Balancing 기능을 수행 .

Page 26: Wire shark 사용법 및 네트워크 개론 살짝 설명

시간이 남으면 ?

패킷 일일이 직접 까봅시다 . ㅎㅎ

Page 27: Wire shark 사용법 및 네트워크 개론 살짝 설명

기타

Page 28: Wire shark 사용법 및 네트워크 개론 살짝 설명

Ubuntu 에서 wireshark 설치sudo apt-get install wireshark sudo groupadd wireshark sudo usermod -a -G wireshark YOUR_USER_NAME sudo chgrp wireshark /usr/bin/dumpcap sudo chmod 750 /usr/bin/dumpcap sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap sudo getcap /usr/bin/dumpcap

출처 : https://ask.wireshark.org/questions/16343/install-wireshark-on-ubuntu

Page 29: Wire shark 사용법 및 네트워크 개론 살짝 설명

유용한 리눅스 네트워크 유틸리티 목록• Wireshark : 패킷 분석• iPerf : Network Bandwidth 측정• ethtool ( linux ) : Network Driver 및 Hardware Control

• traceroute : 종단에서 다른 종단으로 가는 길을 보여줌 .( 라우터 , 스위치 등 포함 )

• tcpdump : 리눅스에서 특정 인터페이스로 오고 가는 모든 패킷을 캡처 . 파일로 떨구는 옵션 가능 .

• route : 현재 장비의 IP Routing table 을 보여줌 .

Page 30: Wire shark 사용법 및 네트워크 개론 살짝 설명

출처• http://www.inetdaemon.com/tutorials/internet/tcp/3-way_handshake.shtml : 3-Way Handshake

• https://ask.wireshark.org/questions/16343/install-wireshark-on-ubuntu : wireshark 설치• http://asec.ahnlab.com/156 : 와이어샤크 잘 알려주는 사이트 . 강추 !

• https://www.microsoft.com/korea/technet/deploy/tcpintro4.mspx : TCP/IP 설명• http://beansberries.tistory.com/entry/%

EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-TCPIP-4%EA%B3%84%EC%B8%B5 : TCP/IP 설명

• http://terms.naver.com/entry.nhn?docId=2274898&cid=42171&categoryId=51118

• http://yellowh.tistory.com/entry/OSI-7-Layer%EB%9E%80 : OSI 7 Layer 설명• http://suns.tistory.com/24 : OSI 계층 및 L2~L4 스위치 설명• http://junleenet.blogspot.kr/2013/12/lan-1_31.html : 허브 , 스위치 등 설명