본문 바로가기

해봐야 안다.OTL/Linux

[리눅스] iptables: NAT_1 SNAT, DNAT(고정 IP 사용환경에서 사용)

<S_NAT, D_NAT:고정 IP 사용환경에서 사용>

현재 제가 쓰고 있는 네트워크 환경이 사설 IP 환경이기 때문에 192.168.10.0 네트워크 대역을 공인IP

대역이라 가정하고 적용합니다.

 

S_NAT : 내가 나갈 때 필요한 NAT(내가 이용하기 위해)

Iptables –t nat –I [A] POSTROUTING –o [나가는 인터페이스] –s [나가려는 src IP] –j SNAT --to

[밖으로 나갈 때 쓸 공인 IP]

[root@jo:~]#ip addr add 192.168.10.188/24 dev eth0 à 앞으로 NAT로 쓸 IP

 

[root@jo:~]#ip addr show eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 00:0c:29:a9:92:8a brd ff:ff:ff:ff:ff:ff

inet 192.168.10.181/24 brd 192.168.10.255 scope global eth0

inet 192.168.10.188/24 scope global secondary eth0

inet6 fe80::20c:29ff:fea9:928a/64 scope link

valid_lft forever preferred_lft forever

 

[root@jo:~]#iptables -I INPUT -p icmp -j ACCEPT

à ping 되게 풀어준다.

 

[root@jo:~]#iptables -t nat -I POSTROUTING -o eth0 -s 192.168.100.100

à [메일서버(반대편 다른 서버)]IP] : 192.168.100.100

 

내가 사용하기 위한 NAT 일명 source NAT

[root@jo:~]#iptables -t nat -I POSTROUTING -o eth0 -s 192.168.100.100 -j SNAT --to 192.168.10.188 à SNAT 연결

 

Ping test

[메일서버(반대편 다른 서버)]IP : 192.168.100.100]

[root@woo:~]#ping 192.168.10.188 à 새로 만들어준 NAT IP로 ping test

PING 192.168.10.188 (192.168.10.188) 56(84) bytes of data.

64 bytes from 192.168.10.188: icmp_seq=1 ttl=64 time=0.136 ms

64 bytes from 192.168.10.188: icmp_seq=2 ttl=64 time=0.711 ms

64 bytes from 192.168.10.188: icmp_seq=3 ttl=64 time=9.98 ms

64 bytes from 192.168.10.188: icmp_seq=4 ttl=64 time=0.194 ms

 

 

cat /proc/sys/net/ipv4/ip_forward à 혹시 ping 안되면 확인

출력 값이 "1"이어야 한다.

"0"이면 echo "1" > /proc/sys/net/ipv4/ip_forward

 

 

D_NAT : 남이 들어올 때 필요한 NAT(내가 서비스 해주기 위해 즉, 남이 이용하는 것)

[BIND서버, 방화벽서버_ip:192.168.10.181]에서

[root@jo:~]#iptables -t nat -I PREROUTING -d 192.168.10.188(공인IP) –j DNAT --to-destination 192.168.100.100

    

Xshell:\> ssh 192.168.10.188 22 à 이제는 공인 IP로 접속이 된다.

 

<MASQUERADE:유동 IP 사용환경에서 사용>