네트워크
[네트워크] 서버 패킷 미러링
세브웁스
2022. 11. 1. 15:58
반응형
패킷 미러링
이번 주제는 TEE 모듈을 사용하여 서버2 IP 패킷을 서버1에서 받은 다음, 파일로 저장해 보는 것
TEE란?
- 어떤 명령어의 출력 결과를 파일과 화면에 동시에 출력할 수 있도록 해주는 명령어
옵션
- a : 덮어쓰기 말고 파일에 추가해서 입력
- i : 인터럽트를 무시하는 옵션
형식
- tee [ 옵션 ] [File]
실습내용
같은 대역 안에 있는 1번 서버의 트래픽을 2번 서버에서 받아서 파일로 저장
추후 이 파일을 suricata나 Bro와 같은 오픈소스를 설치해서 모니터링하는 서비스를 만들 수 있음
1. 내부 private ip를 외부 public ip로 변환, mirroring 정책 추가
sudo iptables -t mangle -I POSTROUTING -j TEE --gateway [패킷을 보고싶은 IP]
# 예시
sudo iptables -t mangle -I POSTROUTING -j TEE --gateway 172.16.40.102
2. 외부 public ip를 내부의 사설 ip로 변환, mirroring 정책 추가
sudo iptables -t mangle -I PREROUTING -j TEE --gateway [패킷을 보고싶은 IP]
# 예시
sudo iptables -t mangle -I PREROUTING -j TEE --gateway 172.16.40.102
3. 설정 확인
# 상태 저장
iptables-save
# 상태 확인
sudo iptables -t mangle -
# 필자 상태
[root@qab2 opc]# sudo iptables -t mangle -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
PREROUTING_direct all -- anywhere anywhere
PREROUTING_ZONES_SOURCE all -- anywhere anywhere
PREROUTING_ZONES all -- anywhere anywhere
...
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
POSTROUTING_direct all -- anywhere
...
4. Mirroring 확인 및 파일로 저장
tcpdump -nni ens3 -A src [패킷을 보고싶은 IP] | tee [저장하고싶은 파일경로/파일이름]
# 예시
tcpdump -nni ens3 -A src 172.16.40.102 | tee /home/opc/packet.txt
5. 파일 확인
cat [파일경로/파일]
#예시
cat /home/opc/packet.txt
# 필자 파일 확인
...
06:43:13.282616 IP 172.16.40.102.22 > 172.16.30.101.54806: Flags [P.], seq 159652:163784, ack 109, win 280, options [ nop,nop,TS val 4867713 ecr 436009683], length 4132
...
AWS의 경우
필자는 OCI를 통해 세팅했기에 상관없지만, 기본적으로 EC2는 자기 자신의 트래픽만 받도록 되어있다.
이를 해결하기 위해서는 EC2 설정란의 Actions - Networking - Change Source/Dest. Check를 통해 disable로 바꾸면 된다.
반응형