【초보자】AWS VPC Traffic Mirroring 사용해보기

2869 단어 vpcAWS

목적


  • 온프레 시대에 네트워크에 TAP를 넣어 wireshark 등에서 패킷 캡처하는 일이 있었지만, 같은 것을 AWS에서 할 수 있다고 들었기 때문에, 어떤 것인지를 확인해보기로 했다.

  • VPC Traffic Mirroring이란(자신의 이해)


  • 특정 ENI를 통한 트래픽을 미러링하여 다른 ENI 또는 NLB로 출력 할 수 있습니다.

  • 했던 일


  • 인스턴스 1(Amazon Linux2) 및 인스턴스 2(WS2019)를 생성합니다. 인스턴스 2에는 RDP용 ENI와 미러링을 받기 위한 ENI의 2개를 첨부한다.
  • 인스턴스 1에 연결된 ENI를 미러링 소스, 인스턴스 2에 연결된 ENI를 미러링 대상으로 설정합니다.
  • 인스턴스 1에 ssh 연결. 패킷을 인스턴스 2의 wireshark에서 캡처하여 ssh 통신을 표시합니다.

  • 구성도





    작업 절차



    인스턴스 생성


  • 인스턴스 1(Amazon Linux2), 인스턴스 2(WS2019)를 생성합니다. VPC Traffic Mirroring을 하기 위해서는, Source가 되는 ENI를 어태치하는 인스턴스가 Nitro 세대일 필요가 있습니다(2019/11 시점). 따라서 이번에는 인스턴스 1은 t3.nano를 사용합니다. 인스턴스 2는 무엇이든 좋다.
  • 인스턴스 2에 추가 ENI를 연결합니다. 추가한 ENI는 OS상에서는 이더넷 3으로 인식되었다.
  • 인스턴스 2에 Wireshark(패킷 캡처 도구)를 설치합니다.

  • VPC Traffic Mirroring 설정



    VPC의 메뉴 화면에서 다음 순서로 설정합니다.
  • Target 설정 :
  • 미러링의 출력처가 되는 ENI 또는 NLB를 Target으로 설정한다.
  • 이번에는 출력처는 인스턴스 2의 추가 ENI(RDP에 사용하지 않는 쪽)를 지정한다.

  • Filter 설정 :
  • 소스 트래픽에 미러링을 출력하기 전에 필터를 적용 할 수 있습니다.
  • 이번은 tcp 모두를 취득하도록 설정한다.

  • Session 설정:
  • 「Source의 ENI」, 「Filter」, 「Target」의 3개를 조합해, Traffic Mirroring의 Session을 작성한다.
  • 이번에는 Source는 인스턴스 1의 ENI로 하고, Filter와 Target은 먼저 만든 것을 사용한다.
  • 미러링 할 때 원래 패킷이 VXLAN으로 캡슐화됩니다. VXLAN의 VNI (식별 ID)가 자동으로 설정됩니다.


  • ssh 트래픽 미러링 및 패킷 캡처


  • 인스턴스 2에서 Wireshark를 시작하고 이더넷 3의 통신을 캡처하는 설정으로 설정한 다음, 손 PC에서 인스턴스 1로 ssh 연결을 한다.


  • x.x.x.233(수중의 PC)로부터, 10.0.1.249(인스턴스 1의 ENI)에의 ssh 통신이, 인스턴스 2에서 캡쳐 할 수 있다. 또한 패킷이 VXLAN으로 캡슐화되어 있는지 확인할 수 있습니다.

  • 소감


  • 지금까지 Network형 IDS는 AWS에는 설치 불가라는 생각이었지만, Target으로서 IDS를 지정하면 그것도 가능하게 될 것 같다.

  • 참고


  • (공식 블로그) 최신 – VPC 트래픽 미러링 – 네트워크 트래픽을 포착하고 검사

  • [신기능] EC2 인스턴스(Nitro)의 통신 내용을 VPC측에서 미러하는 VPC Traffic Mirroring이 발표되었습니다!
  • GUI의 화면 첨부로 설명해 알기 쉽다.


  • AWS re:Inforce2019 re:Cap LT
  • Traffic Mirroring의 구조가 도해되어 있어 알기 쉽다.

  • 좋은 웹페이지 즐겨찾기