Raspi를 포트 미러링 허브로 사용하여 패킷 캡처

추세


최근 아파트는 공용 광선을 당겨 방마다 무선 AP를 설치했다.
연결된 PC에 차인 IP 설정을 본 느낌방의 AP는 다리 모드로 움직였고 아파트의 단말기는 개인 네트워크의 구성에 속하는 것 같았다.
역시 상류의 통신은 이웃에게 누락되지 않을 것 같지만 어떤 내용이 상류로 흘러갈지 궁금하다.
따라서 무선 AP와 벽에 설치된 LAN 포트 간의 통신을 확인하기로 했습니다.

방침


여러 개의 네트워크 카드가 있는 Linux 컴퓨터를 네트워크 카드 사이에 브리지를 설정하는 경우 허브로 사용할 수 있습니다.
참조: Brctl에서 Linux 시스템을 HUB로 설정
이번 무선 AP와 LAN 포트는 냉장고 뒷면에 있어 컴퓨터에서 멀기 때문에 라스피3를 통과하는 데이터 패키지를 포착해 와이파이를 통해 감시한다.

운영 체제는 최신 Raspbian Stretch Lite를 사용하여 NetworkManager에서 브리지와 Wi-Fi를 구성합니다.

준비물

  • Raspberry Pi 3 Model B
  • USB 이더넷 어댑터
  • MicroSD 카드
  • LAN 케이블
  • Raspi3는 LAN 포트가 하나밖에 없기 때문에 USB 이더넷 어댑터로 증설합니다.

    설치하다


    Raspbian 이미지를 MicroSD 설정으로 적절히 굽습니다(자세히 생략).
    완료 후 소프트웨어 패키지를 설치합니다.
    sudo apt install network-manager tcpdump
    
    네트워크 관리자의 설정을 진행하세요.

    Wi-Fi 액세스 포인트 설정


    인터넷을 통해 일하고 싶어서 일단 라스피를 AP로 삼았습니다.
    sudo nmtui
    
    에서 설명한 대로 해당 매개변수의 값을 수정합니다.
    Edit a Connection에서 Wi-Fi 연결을 추가합니다.
    ┌──────────────────────────┤ Edit Connection ├───────────────────────────┐
    │                                                                        │
    │         Profile name wlan0_ap________________________________          │
    │               Device wlan0___________________________________         ▒│
    │                                                                       ▒│
    │ + WI-FI                                                       <Hide>  ▒│
    │ |               SSID your-ssid_______________________________         ▒│
    │ |               Mode <Access Point>                                   ▒│
    │ |            Channel <Automatic>                                      ▒│
    │ |                                                                     ▒│
    │ |           Security <WPA & WPA2 Personal>                            ▒│
    │ |           Password ************____________________________         ▒│
    │ |                    [ ] Show password                                ▒│
    │ |                                                                     ▒│
    │ |              BSSID ________________________________________         ▒│
    │ | Cloned MAC address ________________________________________         ▒│
    │ |                MTU __________ (default)                             ▒│
    │ \                                                                     ▒│
    │                                                                       ▒│
    │ - IPv4 CONFIGURATION <Shared>                                 <Show>  ▒│
    │ - IPv6 CONFIGURATION <Ignore>                                 <Show>  ▒│
    │                                                                       ▒│
    │ [X] Automatically connect                                             ▒│
    │                                                                        │
    └────────────────────────────────────────────────────────────────────────┘
    
    IPv4를 Shared로 설정하면 DHCP 서버가 활성화됩니다.
    wpa_supplicant 죽었는지 네트워크 관리자에서 wlan0을 활성화할 수 없습니다.
    pi@raspberrypi:~ $ sudo systemctl status wpa_supplicant.service 
    ● wpa_supplicant.service - WPA supplicant
       Loaded: loaded (/lib/systemd/system/wpa_supplicant.service; disabled; vendor preset: enabled)
       Active: inactive (dead)
    
    Mar 18 22:09:59 raspberrypi wpa_supplicant[2794]: ctrl_iface exists and seems to be in use - cannot override it
    Mar 18 22:09:59 raspberrypi wpa_supplicant[2794]: Delete '/run/wpa_supplicant/wlan0' manually if it is not used anymore
    Mar 18 22:09:59 raspberrypi wpa_supplicant[2794]: Failed to initialize control interface '/run/wpa_supplicant'.
                                                      You may have another wpa_supplicant process already running or the file was
                                                      left by an unclean termination of wpa_supplicant in which case you will need
                                                      to manually remove this file before starting wpa_supplicant again.
    
    ...
    
    오류 정보에 따라 삭제/run/wpa_supplicant/wlan0하고 와이파이를 다시 엽니다.
    sudo rm /run/wpa_supplicant/wlan0
    
    sudo nmcli radio wifi off
    sudo nmcli radio wifi on
    
    액세스 포인트가 설정되었습니다.
    pi@raspberrypi:~ $ sudo nmcli dev
    DEVICE  TYPE      STATE        CONNECTION
    eth0    ethernet  connected    eth0
    wlan0   wifi      connected    wlan0_ap
    eth1    ethernet  unavailable  --
    lo      loopback  unmanaged    --
    
    작업 컴퓨터에서 AP에 연결하고 Wi-Fi를 통해 ssh를 다시 연결합니다.
    ssh [email protected]
    

    다리를 배치하다

    nmtui에 Bridge 연결을 추가합니다.
    Slaves에 eth0 및 eth1을 추가합니다.Slave 설정은 기본값을 유지합니다.
    ┌───────────────────────────┤ Edit Connection ├───────────────────────────
    │                                                                        
    │         Profile name br0_____________________________________          
    │               Device br0_____________________________________          ▒
    │                                                                        ▒
    │ + BRIDGE                                                      <Hide>   ▒
    │ | Slaves                                                               ▒
    │ | ┌───────────────────────────────────────────────┐                    ▒
    │ | │ eth0_slave                                    │ <Add>              ▒
    │ | │ eth1_slave                                  ▒ │                    ▒
    │ | │                                               │ <Edit...>          ▒
    │ | │                                             ▒ │                    ▒
    │ | │                                             ▒ │ <Delete>           ▒
    │ | │                                               │                    ▒
    │ | └───────────────────────────────────────────────┘                    ▒
    │ |         Aging time 300_______ seconds                                ▒
    │ | [X] Enable IGMP snooping                                             ▒
    │ | [ ] Enable STP (Spanning Tree Protocol)                              ▒
    │ |           Priority 32768_____                                        ▒
    │ |      Forward delay 15________ seconds                                ▒
    │ |         Hello time 2_________ seconds                                ▒
    │ |            Max age 20________ seconds                                ▒
    │ \                                                                      ▒
    
    IPv4 및 IPv6는 Manual에서 주소를 0.0.0.0, :: 로 설정하여 라우팅을 일시적으로 비활성화합니다.
    |
    │ + IPv4 CONFIGURATION <Manual>                                 <Hide>   ▒
    │ |          Addresses 0.0.0.0/32_______________ <Remove>                ▒
    │ |                    <Add...>                                          ▒
    │ |            Gateway _________________________                         ▒
    │ |        DNS servers <Add...>                                          ▒
    │ |     Search domains <Add...>                                          ▒
    │ |                                                                      ▒
    │ |            Routing (No custom routes) <Edit...>                      ▒
    │ | [X] Never use this network for default route                         ▒
    │ | [X] Ignore automatically obtained routes                             ▒
    │ |                                                                      ▒
    │ | [ ] Require IPv4 addressing for this connection                      ▒
    │ \                                                                      ▒
    │                                                                        ▒
    │ + IPv6 CONFIGURATION <Automatic>                              <Hide>   ▒
    │ |          Addresses ::/128___________________ <Remove>                ▒
    │ |                    <Add...>                                          ▒
    │ |            Gateway _________________________                         ▒
    │ |        DNS servers <Add...>                                          ▒
    │ |     Search domains <Add...>                                          ▒
    │ |            Routing (No custom routes) <Edit...>                      ▒
    │ | [X] Never use this network for default route                         ▒
    │ | [X] Ignore automatically obtained routes                             ▒
    │ |                                                                      ▒
    │ | [ ] Require IPv6 addressing for this connection                      ▒
    │ \                                                                      ▒
    │                                                                        ▒
    │ [X] Automatically connect                                              ▒
    │ [X] Available to all users                                             ▒
    │                                                                        ▒
    │                                                           <Cancel> <OK>
    │                                                                        
    └─────────────────────────────────────────────────────────────────────────
    
    마지막으로 네트워크 관리자를 무시하고 DHCP를 자동으로 설정하는 클라이언트dhcpcd.service를 비활성화합니다.
    sudo systemctl disable dhcpcd.service 
    
    재부팅하면 와이파이에서 연결을 기다리는 동시에 두 LAN 포트 사이에 브리지를 하는 장치가 완성됩니다.
    상태 확인해 볼게요.
    pi@raspberrypi:~ $ sudo nmcli dev
    DEVICE  TYPE      STATE      CONNECTION
    br0     bridge    connected  br0
    eth0    ethernet  connected  eth0_slave
    eth1    ethernet  connected  eth1_slave
    wlan0   wifi      connected  wlan0_ap
    lo      loopback  unmanaged  --
    
    pi@raspberrypi:~ $ sudo route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    10.42.0.0       0.0.0.0         255.255.255.0   U     600    0        0 wlan0
    
    패킷이 라스피에서 LAN으로 가는 노선이 없고 다리의 패킷을 통해 이더넷 프레임을 직접 전송하기 때문에 통신 사이를 감지할 수 없나요?태그 요소의 표시 속성을 수정합니다.

    패킷 캡처


    Wi-Fi에서 ssh 연결
    sudo tcpdump -i br0
    
    에서 기술한 장면은 다음과 같은 절차를 이용하여 명세표를 작성하여 개념 디자인에서 체량의 부피를 분석하도록 한다.
    작업 컴퓨터에 Wireshark를 설치하면 ssh를 관리할 수 있습니다
    ssh [email protected] sudo tcpdump -i br0 -w - | wireshark -k -i -
    
    따라서 Wireshark를 사용하여 캡처된 패키지를 분석할 수 있습니다.tcpdump 옵션은
  • -i br0: 캡처할 인터페이스 지정
  • -w -: 원본 패킷을 파일로 출력(출력 목적지 -, 표준 출력)
  • wireshark 옵션은
  • -k: 지금 세션 시작
  • -i -: 열 파일 지정- 표준 입력 열기
  • 태그 요소의 표시 속성을 수정합니다.

    끝내다


    그러면 패킷을 관측한 결과 새로 설정된 무선 AP는 센터로만 실행될 것으로 예상됩니다.냉장고 뒤의 전파도 좋지 않고 고정 IP를 휘두르거나 개인 DNS 서버를 구축하기도 어려워 이전에 사용하던 공유기를 대체할 수 있다.
    네트워크 구성은 DHCP 서버가 상류에 있고 아파트의 단말기는 개인 네트워크에 속하는 것 같다.근처 IP 주소에서 핑을 해도 돌아오지 않으니 방 사이의 통신이 차단됐죠.
    이번에는 엄밀히 말하면 제목에 있는 포트 미러 센터가 아니지만, 데이터 패키지를 감시할 수 있으니까 용서해 주세요.포트 미러링을 엄격하게 하려면 NIC를 추가하고 iptables의 TEE 목표를 사용할 수 있습니다.
    그럼
    IP는 172.16.120.13 서브넷 마스크는 255.255.0.0 게이트웨이는 172.16.110.254
    아마도 AP는 하나의 브리지가 아니라 어떤 인증이 있을지도 모른다

    좋은 웹페이지 즐겨찾기