Wireshark 로 IPv6 트래픽 분석

WiresharkBeginner
지금 연습하기

소개

이 랩에서는 강력한 네트워크 프로토콜 분석기인 Wireshark 를 사용하여 IPv6 네트워크 트래픽을 캡처하고 분석하는 방법을 배우게 됩니다. 차세대 인터넷 프로토콜인 IPv6 는 IPv4 에 비해 더 큰 주소 공간과 향상된 보안 기능을 제공합니다.

IPv6 채택이 증가함에 따라 사이버 보안 전문가가 Wireshark 와 같은 도구를 사용하여 IPv6 네트워크를 모니터링하고 문제 해결하는 방법을 아는 것이 중요합니다. 이 실습 랩은 실제 네트워크 환경에 적용 가능한 IPv6 트래픽 모니터링에 대한 실질적인 경험을 제공합니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 97%입니다.학습자들로부터 95%의 긍정적인 리뷰율을 받았습니다.

IPv6 트래픽 캡처

이 단계에서는 IPv6 네트워크 트래픽 캡처에 중점을 둡니다. IPv6 는 사용 가능한 IP 주소 고갈과 같은 IPv4 의 제한 사항을 해결하기 위해 설계된 최신 버전의 인터넷 프로토콜입니다. 네트워크 인터페이스를 통해 이동하는 IPv6 패킷을 캡처하고 관찰하기 위해 강력하고 널리 사용되는 네트워크 프로토콜 분석기인 Wireshark 를 사용합니다. 이를 통해 네트워크 트래픽의 세부 정보를 확인할 수 있으며, 이는 네트워크 모니터링 및 문제 해결에 필수적입니다.

시스템에서 IPv6 활성화

IPv6 트래픽 캡처를 시작하기 전에 시스템에서 IPv6 가 활성화되어 있는지 확인해야 합니다. IPv6 가 비활성화된 경우 시스템에서 IPv6 패킷을 송수신할 수 없으므로 관련 트래픽을 캡처할 수 없습니다.

  1. 터미널 창을 엽니다. 작업 표시줄에서 터미널 아이콘을 클릭하거나 Ctrl+Alt+T를 눌러 이 작업을 수행할 수 있습니다. 터미널은 시스템과 상호 작용하기 위해 명령을 입력할 수 있는 명령줄 인터페이스입니다.

  2. 프로젝트 디렉토리로 이동합니다. IPv6 를 활성화하는 스크립트가 있는 곳입니다. 다음 명령을 사용합니다.

    cd /home/labex/project/

    cd 명령은 "change directory"의 약자입니다. 파일 시스템에서 한 디렉토리에서 다른 디렉토리로 이동할 수 있습니다.

  3. 시스템에서 IPv6 를 활성화하는 스크립트를 실행합니다. 다음 명령을 사용합니다.

    sudo ./enable_ipv6.sh

    sudo 명령은 관리자 권한으로 명령을 실행하는 데 사용됩니다. ./는 스크립트가 현재 디렉토리에 있음을 나타냅니다. 이 스크립트는 네트워크 인터페이스를 구성하고 시스템 설정에서 IPv6 가 비활성화되지 않도록 하여 Linux 시스템에서 IPv6 기능을 활성화합니다.

    예상 출력:

    net.ipv6.conf.all.disable_ipv6 = 0
    net.ipv6.conf.default.disable_ipv6 = 0
    net.ipv6.conf.lo.disable_ipv6 = 0

    이러한 줄은 각각 모든 네트워크 인터페이스, 기본 인터페이스 및 루프백 인터페이스에 대해 IPv6 가 활성화되었음을 나타냅니다.

Wireshark 시작 및 캡처 구성

이제 IPv6 가 활성화되었으므로 Wireshark 를 시작하고 네트워크 트래픽을 캡처하도록 구성할 수 있습니다.

  1. 터미널에서 다음 명령을 실행하여 Wireshark 를 시작합니다.

    wireshark &

    명령 끝에 있는 & 기호는 Wireshark 를 백그라운드에서 실행합니다. 즉, Wireshark 가 실행되는 동안 터미널을 계속 사용할 수 있습니다.

  2. Wireshark 가 열리면 사용 가능한 네트워크 인터페이스 목록이 표시됩니다. 이는 시스템에서 네트워크 트래픽을 송수신할 수 있는 물리적 또는 가상 연결입니다. any로 레이블이 지정된 인터페이스를 찾습니다. 이 인터페이스를 선택하면 Wireshark 가 시스템의 모든 네트워크 인터페이스에서 패킷을 캡처할 수 있습니다.

    Wireshark Interface Selection
  3. 패킷 캡처를 시작하려면 any 인터페이스를 두 번 클릭하거나 선택하고 도구 모음에서 파란색 상어 지느러미 버튼을 클릭합니다.

  4. 이제 Wireshark 는 시스템의 모든 네트워크 트래픽 캡처를 시작합니다. 패킷이 캡처되면 기본 창에 표시됩니다. 각 패킷 항목은 소스 및 대상 IP 주소, 사용된 프로토콜 및 캡처 시간과 같은 정보를 표시합니다.

캡처를 위한 IPv6 트래픽 생성

분석할 IPv6 트래픽이 있는지 확인하기 위해 IPv6 주소를 ping 하여 일부 IPv6 패킷을 생성합니다. Ping 은 두 네트워크 장치 간의 연결을 테스트하는 간단한 방법입니다.

  1. Wireshark 가 실행되고 패킷을 캡처하는 동안 새 터미널 창을 엽니다. 이렇게 하면 패킷 캡처 프로세스를 방해하지 않고 트래픽을 생성하는 명령을 실행할 수 있습니다.

  2. 먼저 eth1 인터페이스의 IPv6 주소를 찾습니다. 다음 명령을 실행합니다.

    ip addr show dev eth1 | grep inet6

    ip addr show 명령은 네트워크 인터페이스에 할당된 IP 주소를 표시합니다. dev eth1eth1 인터페이스의 주소를 보려는 것을 지정합니다. |는 파이프 연산자이며, 왼쪽 명령의 출력을 오른쪽 명령의 입력으로 사용합니다. grep inet6은 출력을 inet6 문자열을 포함하는 줄 (IPv6 주소) 만 표시하도록 필터링합니다.

    출력은 eth1 인터페이스와 관련된 IPv6 주소를 표시합니다. fe80::으로 시작하는 링크 - 로컬 IPv6 주소를 볼 수 있습니다. 이는 로컬 네트워크 세그먼트 내에서 통신하는 데 사용되는 로컬 IPv6 주소입니다.

    예시 출력:

    inet6 fe80::42:acff:fe14:3/64 scope link
  3. 이제 이 IPv6 주소를 ping 하여 일부 IPv6 트래픽을 생성합니다. IPv6 주소를 ping 하도록 특별히 설계된 ping6 명령을 사용합니다. 링크 - 로컬 주소이므로 인터페이스 이름 (eth1) 을 포함합니다. 통신에 사용할 네트워크 인터페이스를 지정하려면 인터페이스 이름이 필요합니다.

    ping6 -c 4 fe80::42:acff:fe14:3%eth1

    참고: fe80::42:acff:fe14:3을 시스템에 표시된 실제 IPv6 주소로 바꿉니다.

    -c 4 매개변수는 ping 이 4 개의 패킷을 보낸 다음 중지하도록 지시합니다. 이는 생성된 트래픽의 양을 제한하는 데 유용합니다.

    예상 출력:

    PING fe80::42:acff:fe14:3%eth1(fe80::42:acff:fe14:3%eth1) 56 data bytes
    64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=1 ttl=64 time=0.049 ms
    64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=2 ttl=64 time=0.064 ms
    64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=3 ttl=64 time=0.064 ms
    64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=4 ttl=64 time=0.064 ms
    
    --- fe80::42:acff:fe14:3%eth1 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3060ms
    rtt min/avg/max/mdev = 0.049/0.060/0.064/0.007 ms

    이 출력은 각 패킷이 대상까지 이동하는 데 걸린 시간, 다시 돌아오는 시간 및 패킷 손실률을 포함하여 ping 프로세스의 세부 정보를 보여줍니다.

  4. Wireshark 창으로 돌아갑니다. 이제 ping 명령으로 생성된 ICMPv6 패킷을 포함하여 캡처 목록에 몇 개의 새 패킷이 표시됩니다. ICMPv6 는 IPv6 용 인터넷 제어 메시지 프로토콜로, 오류 보고 및 진단 목적으로 사용됩니다.

  5. Wireshark 도구 모음에서 빨간색 사각형 "Stop" 버튼을 클릭하여 패킷 캡처를 중지합니다.

이제 Wireshark 를 사용하여 IPv6 트래픽을 성공적으로 캡처했습니다. 다음 단계에서는 이 트래픽을 필터링하고 분석하는 방법을 배우게 됩니다.

IPv6 트래픽 필터링 및 분석

이제 IPv6 트래픽을 캡처했으므로 이 트래픽을 필터링하고 분석하는 방법을 배울 차례입니다. 강력한 네트워크 프로토콜 분석기인 Wireshark 는 훌륭한 필터링 기능을 제공합니다. 캡처된 트래픽을 필터링하면 검사하려는 특정 유형의 IPv6 패킷에 집중할 수 있습니다. 크고 혼합된 네트워크 데이터 집합을 살펴보는 대신 필터링을 통해 관련 정보를 격리하여 분석 효율성을 높일 수 있습니다.

IPv6 에 대한 표시 필터 사용

Wireshark 의 표시 필터는 훌륭한 도구입니다. 특정 기준과 일치하는 패킷만 볼 수 있습니다. 이 경우 IPv6 패킷에 집중합니다.

  1. 기본 Wireshark 창에서 패킷 목록을 볼 수 있습니다. 이 목록 상단에는 표시 필터 막대가 있습니다. "표시 필터 적용"이라는 프롬프트가 있는 텍스트 필드가 있습니다. 이 막대에서 필터 기준을 입력합니다.

  2. IPv6 패킷만 표시하려면 표시 필터 막대에 다음 필터를 입력합니다.

    ipv6

    이 필터는 Wireshark 에 IPv6 프로토콜을 사용하는 패킷만 표시하도록 지시합니다.

    Wireshark Display Filter Bar
  3. 필터를 입력한 후 Enter 키를 누르거나 파란색 화살표 버튼을 클릭하여 적용합니다. 적용되면 패킷 목록에 IPv6 패킷만 표시됩니다. 즉, IPv4 또는 기타 프로토콜 패킷은 필터링되어 IPv6 트래픽만 남게 됩니다.

  4. ping6 명령으로 생성된 ICMPv6 패킷만 표시하도록 필터를 추가로 구체화하려면 다음 필터를 입력합니다.

    icmpv6

    ICMPv6 는 오류 보고 및 진단 메시지와 같은 작업에 사용되는 IPv6 네트워크의 핵심 프로토콜입니다. 이 필터를 사용하면 이러한 특정 유형의 패킷에 집중할 수 있습니다.

    Wireshark Display Filter Bar
  5. 이전과 같이 필터를 적용합니다. 이제 패킷 목록에서 ping 명령의 ICMPv6 패킷만 볼 수 있습니다.

IPv6 패킷 세부 정보 검사

Wireshark 는 각 패킷에 대한 자세한 정보를 제공합니다. IPv6 패킷의 구조를 자세히 살펴보겠습니다.

  1. 필터링된 패킷 목록에서 ICMPv6 에코 요청 패킷을 찾습니다. "Info" 열에서 "Echo (ping) request"를 찾아 식별할 수 있습니다. 이 패킷을 클릭하여 선택합니다.

  2. 패킷을 선택하면 중간 창에 해당 패킷의 자세한 분석이 표시됩니다. "Internet Protocol Version 6"으로 레이블이 지정된 섹션을 찾습니다. 아직 확장되지 않은 경우 옆에 있는 화살표를 클릭하여 확장합니다. 그러면 IPv6 헤더의 모든 필드가 표시됩니다.

    IPv6 Packet Details
  3. IPv6 헤더 정보에는 관찰해야 할 몇 가지 중요한 필드가 있습니다.

    • Version: 이 필드는 IPv6 의 경우 6 이어야 합니다. 패킷이 IPv6 프로토콜을 사용하고 있는지 확인하는 간단한 방법입니다.
    • Traffic Class: 이 필드는 QoS(Quality of Service) 에 사용됩니다. 네트워크에서 다양한 유형의 트래픽의 우선 순위를 지정하는 데 도움이 됩니다.
    • Flow Label: 동일한 흐름에 속하는 패킷의 상태를 유지하는 데 사용할 수 있습니다. 관련 패킷을 추적하는 데 유용합니다.
    • Payload Length: IPv6 헤더 뒤의 데이터 크기를 나타냅니다. 패킷에서 얼마나 많은 데이터가 전송되고 있는지 이해하는 데 도움이 됩니다.
    • Next Header: IPv6 헤더 다음에 오는 헤더 유형을 식별합니다. TCP 또는 UDP 와 같은 다른 프로토콜 헤더일 수 있습니다.
    • Hop Limit: IPv4 의 TTL(Time To Live) 과 유사하게 이 값은 각 라우터에서 감소합니다. 패킷이 네트워크에서 무기한으로 순환하는 것을 방지합니다.
    • Source Address: 발신자의 IPv6 주소입니다. 패킷이 어디에서 시작되었는지 알려줍니다.
    • Destination Address: 수신자의 IPv6 주소입니다. 패킷이 어디로 가는지 보여줍니다.
  4. IPv6 와 IPv4 주소의 차이점을 확인합니다. IPv6 는 128 비트 주소를 사용하며, 일반적으로 8 개의 4 자리 16 진수 그룹으로 작성됩니다. 반대로 IPv4 는 32 비트 주소를 사용합니다. 이로 인해 IPv6 주소가 훨씬 길어지고 훨씬 더 큰 주소 공간이 제공됩니다.

  5. 이제 "Internet Control Message Protocol v6" 섹션을 확장하여 ICMPv6 패킷의 세부 정보를 확인합니다.

    • Type: ICMPv6 메시지 유형을 나타냅니다. 예를 들어 128 은 에코 요청이고 129 는 에코 응답입니다.
    • Code: 메시지 유형을 추가로 지정합니다. ICMPv6 메시지에 대한 자세한 정보를 제공합니다.
    • Checksum: ICMPv6 메시지의 오류를 감지하는 데 사용됩니다. 데이터의 무결성을 보장하는 데 도움이 됩니다.
    • Identifier: 요청을 응답과 일치시키는 데 사용됩니다. 발신자가 어떤 응답이 어떤 요청에 해당하는지 추적할 수 있습니다.
    • Sequence: ping 세션의 각 패킷에 대해 증가하는 시퀀스 번호입니다. 패킷을 정렬하는 데 도움이 됩니다.

캡처된 패킷 저장

나중에 분석하거나 문서화하기 위해 패킷 캡처를 저장하는 것이 유용한 경우가 많습니다. 방법은 다음과 같습니다.

  1. Wireshark 에서 File 메뉴를 클릭한 다음 Save As를 선택합니다. 그러면 파일을 저장할 위치와 이름을 선택할 수 있는 대화 상자가 열립니다.

  2. /home/labex/project/ 디렉토리로 이동합니다. 이 위치에 패킷 캡처를 저장하려고 합니다.

  3. 파일 이름으로 capture.pcapng를 입력합니다. 이는 저장된 패킷 캡처를 식별하는 데 사용될 이름입니다.

  4. Save 버튼을 클릭하여 패킷 캡처를 저장합니다. 파일은 Wireshark 패킷 캡처의 표준 형식인 PCAPNG 형식으로 저장됩니다. 이 형식은 널리 지원되며 다른 네트워크 분석 도구에서 열 수 있습니다.

  5. 터미널에서 다음 명령을 실행하여 파일이 올바르게 저장되었는지 확인할 수 있습니다.

    ls -l /home/labex/project/capture.pcapng

    이 명령은 파일의 권한, 소유자, 크기 및 생성 날짜를 포함한 세부 정보를 나열합니다.

    예상 출력:

    -rw-r--r-- 1 labex labex [file size] [date] /home/labex/project/capture.pcapng

이제 IPv6 트래픽을 필터링하고, IPv6 패킷의 세부 정보를 검사하고, 나중에 참조할 수 있도록 패킷 캡처를 저장하는 방법을 배웠습니다. 다음 단계에서는 IPv6 확장 헤더를 자세히 살펴보겠습니다.

IPv6 확장 헤더 검토

이 단계에서는 IPv6 확장 헤더를 살펴보겠습니다. IPv6 는 IPv4 보다 많은 개선 사항을 제공하는 차세대 인터넷 프로토콜입니다. 이러한 주요 개선 사항 중 하나는 확장 헤더의 사용입니다. 이러한 헤더는 더 나은 라우팅 및 보안 기능과 같은 향상된 기능을 제공하므로 매우 중요합니다. 네트워크에서 패킷이 처리되는 방식에 대한 중요한 정보를 공개할 수 있으므로 IPv6 네트워크 모니터링 및 보안 분석에 관련된 모든 사람에게 이를 이해하는 것이 필수적입니다.

Wireshark 에서 확장 헤더 식별

이제 Wireshark 를 사용하여 이전에 캡처한 패킷에서 IPv6 확장 헤더를 식별하고 이해해 보겠습니다.

  1. 먼저 Wireshark 가 열려 있는지 확인합니다. 그렇지 않은 경우 터미널에서 다음 명령을 사용하여 열 수 있습니다.

    wireshark &

    끝에 있는 &는 명령이 백그라운드에서 실행되도록 하므로 다른 작업에 터미널을 계속 사용할 수 있습니다.

  2. 다음으로 이전 단계에서 저장한 캡처 파일을 엽니다. 방법은 다음과 같습니다.

    • Wireshark 메뉴에서 File > Open을 클릭합니다.
    • /home/labex/project/ 디렉토리로 이동합니다.
    • capture.pcapng라는 파일을 선택하고 Open을 클릭합니다. 이 파일에는 이전에 캡처한 네트워크 트래픽이 포함되어 있습니다.
  3. Wireshark 상단의 필터 막대에 다음 필터를 입력합니다.

    ipv6

    이 필터는 모든 IPv6 패킷을 표시합니다. 이러한 패킷의 Next Header 필드를 검사하여 확장 헤더를 식별합니다.

  4. Wireshark 왼쪽의 패킷 목록에서 IPv6 패킷을 선택합니다. 중간 창에서 "Internet Protocol Version 6" 섹션을 확장합니다. 그러면 IPv6 헤더의 세부 정보가 표시됩니다.

  5. 확장된 IPv6 헤더 내에서 "Next Header" 필드를 찾습니다. 이 필드는 IPv6 헤더 바로 다음에 오는 항목을 알려주므로 매우 중요합니다. 확장 헤더이거나 TCP 또는 UDP 와 같은 상위 계층 프로토콜일 수 있습니다.

  6. "Next Header" 값은 특정 프로토콜 번호에 해당합니다.

    • 0: Hop-by-Hop Options
    • 43: Routing
    • 44: Fragment
    • 50: ESP
    • 51: AH
    • 60: Destination Options
    • 58: ICMPv6
    • 6: TCP
    • 17: UDP
  7. 패킷에 확장 헤더가 있는 경우 패킷 세부 정보 창에서 IPv6 헤더 아래에 확장 가능한 섹션으로 나타납니다. 내용을 보려면 확장하여 패킷 처리에 대한 귀중한 정보를 제공할 수 있습니다.

분석을 위해 패킷 바이트 내보내기

"Next Header" 필드를 추가로 분석하기 위해 이를 포함하는 패킷의 바이트를 내보내겠습니다.

  1. 패킷 목록에서 IPv6 패킷을 선택합니다.

  2. 중간 창에서 "Internet Protocol Version 6" 섹션이 확장되었는지 확인합니다. 그렇지 않은 경우 확장하여 IPv6 헤더의 세부 정보를 확인합니다.

  3. "Next Header" 필드를 찾습니다. 일반적으로 IPv6 헤더 세부 정보의 맨 위에 있습니다.

  4. "Next Header" 필드를 마우스 오른쪽 버튼으로 클릭하고 "Export Selected Packet Bytes"를 선택합니다.

    Wireshark Export Packet Bytes
  5. 나타나는 대화 상자에서 /home/labex/project/ 디렉토리로 이동합니다. 여기에서 내보낸 바이트를 저장합니다.

  6. 파일 이름으로 extension_header.txt를 입력합니다.

  7. "Save"를 클릭하여 파일을 저장합니다.

  8. 터미널에서 다음 명령을 실행하여 파일이 성공적으로 생성되었는지 확인할 수 있습니다.

    cat /home/labex/project/extension_header.txt

    출력은 Next Header 값을 나타내는 단일 문자일 가능성이 높습니다. 이는 추가 분석 또는 스크립팅에 유용할 수 있습니다.

확장 헤더 체인 분석

IPv6 에서 패킷은 여러 확장 헤더를 가질 수 있으며, 이는 체인을 형성합니다. 각 확장 헤더에는 다음에 오는 항목을 나타내는 "Next Header" 필드가 있습니다.

예를 들어 IPv6 패킷은 다음과 같은 구조를 가질 수 있습니다.

  1. "Next Header" 값이 0 인 기본 IPv6 헤더. 즉, 다음 헤더는 Hop-by-Hop Options 헤더입니다.
  2. "Next Header" 값이 43 인 Hop-by-Hop Options 헤더. 즉, 다음 헤더는 Routing 헤더입니다.
  3. "Next Header" 값이 6 인 Routing 헤더. 즉, 다음 헤더는 TCP 헤더입니다.
  4. 마지막으로 TCP 헤더와 페이로드.

이 체인 메커니즘은 패킷 처리에 많은 유연성을 제공합니다. 그러나 방화벽 규칙을 우회하려는 시도와 같은 보안 공격에 악용될 수도 있습니다. 그렇기 때문에 확장 헤더를 이해하는 것이 네트워크 보안 모니터링에 매우 중요합니다.

이제 Wireshark 에서 IPv6 확장 헤더를 식별하고 검사하는 방법을 배웠습니다. 이는 IPv6 네트워크 모니터링 및 보안 분석에 관련된 모든 사람에게 필수적인 기술입니다.

요약

이 랩에서는 Wireshark 를 사용하여 IPv6 네트워크 모니터링에 필요한 필수 기술을 배웠습니다. 먼저 ping6 명령을 사용하여 IPv6 트래픽을 캡처하고 패킷을 생성했습니다. 그런 다음 IPv6 헤더의 고유한 구조와 필드에 중점을 두고 캡처된 패킷을 필터링하고 분석했습니다.

획득한 주요 기술에는 IPv6 트래픽 캡처, 특정 패킷 유형에 대한 표시 필터 사용, 패킷 구조 및 헤더 검사, 나중 분석을 위한 캡처 저장, IPv6 확장 헤더 식별, Next Header 필드 및 확장 헤더 체인 이해가 포함됩니다. 이러한 기술은 IPv6 가 널리 사용되는 환경에서 네트워크 보안, 문제 해결 및 네트워크 동작 이해에 중요한 네트워크 관리자 및 사이버 보안 전문가에게 필수적입니다. IPv6 채택이 전 세계적으로 증가함에 따라 이 지식은 고급 개념을 위한 견고한 기반을 제공합니다.