aws 패킷 미러링

박건희·2022년 9월 20일
1
post-thumbnail
post-custom-banner

waf로 보안사고를 외부 ip를 막고 가드듀티로 보안사고를 감지한다.
그리고 패킷을 분석해서 보안사고가 어떤 source ip에서 발생하고 어떤 방식으로 공격했고,
그리고 이를 사전에 방지할 수 있는 방법을 연구하기 위해서 Wireshark를 사용한다.

eks와 같은 MY-VPC안에서 win12 인스턴스를 만들어 그 안에 Wireshark를 설치하고,
eks 노드들의 패킷을 win12 인스턴스로 미러링하여 모든 eks 트래픽을 win12 인스턴스로 받아서 Wireshark로 받게한다.

먼저 test용 서버와 win12 인스턴스를 생성한다.

1. 인스턴스 생성

EC2 (amazone linux)

이름은 workernode, 인스턴스는 아마존 리눅스2의 인스턴스를 생성한다.
MY-VPC를 선택해주고 서브넷은 MY-PUBLIC-SUBNET-2A를 선택해준다.
그리고 보안그룹은 dev-sg로 선택해준다.

EC2 (windows 2012)

Wireshark 전용 인스턴스는 다음과 같이 만들어준다.
OS유형은 win12로 만들고 VPC,서브넷,보안그룹은 위와 똑같이 만들어준다.

보안그룹이 같아야지 패킷 미러링을 할 수 있다.

보안그룹 설정

패킷을 보내는 인스턴스와 받는 인스턴스는 같은 보안그룹을 사용해야 한다.

그리고 먼저 rdp를 포트번호를 인바운드 그룹에 추가해준다음, 유형을 모든 트래픽으로 선택하고
소스를 dev-sg로 선택을 한다.

2. win12 인스턴스에 Wireshark 설치

win12로 들어가서 먼저 크롬을 설치해준다.
크롬을 내부에서 설치하고자 한다면 잘 안될것이다.

그래서 인스턴스가 아닌 본체 컴퓨터에서 오프라인용 크롬을 다운받아서 win12 인스턴스로 옮겨줘야한다.

먼저 오프라인용 크롬설치 파일을 다운받아준다.

만일 다운로드가 진행되지 않는다면 수동으로 다운로드를 눌러준다.

그리고 mobaxterm을 실행하여
win12에 접속을 해야한다.

이를 실천하기 위해서 wireshark라는 win12 인스턴스 클릭하고 연결을 눌러준다.

그리고 RDP 클라이언트를 클릭한다음 암호 가져오기를 클릭한다.

Browse를 클릭하여 win12 인스턴스를 만들 때 등록했던 키를 가져온다.
그리고 암호해독을 클릭해준다.

그리고 mobaxterm으로 가서 퍼블릭 DNS와 사용자이름, 그리고 암호를 입력하여 win12 인스턴스로 접속해준다.

접속이 되었으면 구글 크롬 인스톨러를 복사후 붙혀넣기를 해서 옮겨준다.

그리고 해당 인스톨러를 클릭하여 win12안에 크롬을 설치해준다.

설치가 완료되었다.

그리고 크롬에서 wireshark를 설치해준다.

그리고 설치를 진행해준다.

그리고 wireshark를 실행한다.

이더넷을 클릭한다.

이제 ddos를 테스트해보기 위해서 thor로 ddos를 iptables-test1에 발생시켜본다.

3. iptables mangle 등록

테스트를 하기전 받아야하는 window인스턴스와
보내야하는 eks 워커노드의 네트워크 설정을 해준다.

두개의 인스턴스에다가 전부 해준다.

그리고 windows 인스턴스의 private ip를 대상으로
iptables 명령어를 사용해서 패킷 미러링을 실시한다.

해당 명령어로 iptables를 다운받는다.

sudo yum install iptables-services

명령어를 입력하기 전에 iptables가 활성화 되어 있는지 확인한다.

sudo systemctl status iptables

만일 비활성화로 되어 있다면 start를 입력하여
iptables를 활성화 시켜준다.

sudo systemctl start iptables
sudo systemctl enable --now iptables

iptables를 활성화를 한다음 다음 명령어를 입력해준다. 활성화가 안되어 있으면
iptalbes 명령어가 입력되지 않는다.

sudo iptables -t mangle -I POSTROUTING -j TEE --gateway 10.19.10.134

내부 Private IP를 외부 Public IP로 변환하는 mirroring 정책을 추가한다.

sudo iptables -t mangle -I PREROUTING -j TEE --gateway 10.19.10.134

외부 Public IP를 내부의 사실IP로 변환하는 mirroring 정책을 추가한다.

POSTROUTING : 패킷이 OUTPUT rule 에서 나온 이후 ip 와 port 를 변경하는 역할을 한다.
PREROUTING : 패킷을 INPUT rule 로 보내기 전 ip 와 port를 변경하는 역할을 한다.

TEE : 패킷을 clone 하고 local network segment의 다른 호스트에게 redirect 한다.
즉, 받은 패킷을 처리하는 동시에 mirroring 해주는 기능이다.

sudo iptables -t mangle -L

명령 실행으로 정책들이 잘 들어 갔는지 확인한다.

그리고 ping을 보내면 다음과 같이 영상에 나오게 된다.

profile
hihihi
post-custom-banner

0개의 댓글