본문 바로가기
Oracle

[Oracle VM] CentOs 환경 NAT 서버 구축해서 내부망 접근하기

by moveho 2023. 5. 26.

[서버구성]

Oracle VM - CentOS 서버 2대를 사용합니다.

서버의 네트워크 어댑터 설정은 다음과 같습니다.

192.168.56.107 (NAT 서버) ==> 어댑터 브리지 // 호스트 전용 어댑터

192.168.56.106 (내부망 서버) ==> NAT // 호스트 전용 어댑터

 

[개요]

다음과 같이 Iptables를 설정하여 NAT 서버의 Public IP를 가정한 192.168.0.13 으로 요청을 보내면 192.168.56.106번 서버로 패킷의 흐름을 변환하여 192.168.56.106번의 데이터를 싣고 외부로 반환되게 됩니다.

 

 

[192.168.56.107 서버 iptables]

[root@mail ~]# iptables -t nat -nL

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination

DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 to:192.168.56.106:80

DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 to:192.168.56.106:80

 

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

 

Chain POSTROUTING (policy ACCEPT)

target     prot opt source               destination

RETURN     all  --  192.168.122.0/24     224.0.0.0/24

RETURN     all  --  192.168.122.0/24     255.255.255.255

MASQUERADE  tcp  --  192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535

MASQUERADE  udp  --  192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535

MASQUERADE  all  --  192.168.122.0/24    !192.168.122.0/24

SNAT       tcp  --  0.0.0.0/0            192.168.56.106       tcp dpt:80 to:192.168.56.107

 

---

 

[192.168.56.106 서버 iptables]

[root@mail ~]# iptables -t nat -nL

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination

DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 to:192.168.56.106:80

 

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

 

Chain POSTROUTING (policy ACCEPT)

target     prot opt source               destination

RETURN     all  --  192.168.122.0/24     224.0.0.0/24

RETURN     all  --  192.168.122.0/24     255.255.255.255

MASQUERADE  tcp  --  192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535

MASQUERADE  udp  --  192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535

MASQUERADE  all  --  192.168.122.0/24    !192.168.122.0/24

MASQUERADE  all  --  192.168.56.106       0.0.0.0/0

 

 

[192.168.56.107 서버 추가 작업]

sysctl net.ipv4.ip_forward=1

다음 명령어를 통해 IP를 포워딩을 활성화 시킵니다., IP 포워딩을 통해 네트워크 트래픽이 한 네트워크 인터페이스를 통과하여 다른 네트워크 인터페이스로 전달되는것을 뜻합니다. 

 

 

[iptables 작업 코드]

[192.168.56.107]
iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 80 -j DNAT --to-destination 192.168.56.106:80
iptables -t nat -A POSTROUTING -o enp0s8 -p tcp --dport 80 -d 192.168.56.106 -j SNAT --to-source 192.168.56.107



[192.168.56.106]
iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 80 -j DNAT --to-destination 192.168.56.106:80
iptables -t nat -A POSTROUTING -s 192.168.56.106 -j MASQUERADE

 

[테스트]

기존의 192.168.56.106번 서버의 출력
기존의 192.168.56.107번 서버의 출력

[완성]

다른 대역대인 192.168.0.13의 경로로 접속했을때 192.168.56.106번의 데이터를 출력하는 것을 확인.

 

네트워크 어댑터를 브릿지를 이용

네트워크 어댑터를 브릿지를 이용하였기 때문에 동일 와이파이를 사용하는 대역의 기기에서 똑같이 접속 가능.

[시연]

https://www.youtube.com/watch?v=WK9VWxNW2NU 

 

 

댓글