- NAT 의 종류
SNAT(Source NAT) : Source IP 주소 변경
DNAT(Destination NAT): Destination IP 주소 변경
- SNAT & DNAT
|
-i eth0 -o eth0 PREROUTING --> 라우팅 ----------------->POSTROUTING-----> (D-NAT) | (S-NAT) | ^ | | +-------> 로컬 프로세스 -----+ |
|
- SNAT
소스의 주소를 1.2.3.4로 변경하는 예
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
|
S-IP |
S-Port |
D-IP |
D-port |
|
S-IP |
S-Port |
D-IP |
D-Port |
|
|
192.168.0.10 |
30000 |
www.daum.net |
80 |
|
1.2.3.4 |
30000 |
www.daum.net |
80 |
|
|
192.168.0.11 |
30000 |
www.daum.net |
80 |
|
1.2.3.4 |
30001 |
www.daum.net |
80 |
|
|
192.168,0.12 |
30000 |
www.daum.net |
80 |
|
1.2.3.4 |
30002 |
www.daum.net |
80 |
|
소스의 주소를 1.2.3.4 ~ 1.2.3.6 로 변경하는 예
#iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6
| S-IP | S-Port | D-IP | D-port |
| S-IP | S-Port | D-IP | D-Port |
|
| 192.168.0.10 | 30000 | www.daum.net | 80 |
| 1.2.3.4 | 30000 | www.daum.net | 80 |
|
| 192.168.0.11 | 30000 | www.daum.net | 80 |
| 1.2.3.5 | 30000 | www.daum.net | 80 |
|
| 192.168,0.12 | 30000 | www.daum.net | 80 |
| 1.2.3.6 | 30002 | www.daum.net | 80 |
|
소스의 주소를 1.2.3.4에 포트 1-1023으로 변경하는 예
#iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4:1-1023
| S-IP | S-Port | D-IP | D-port |
| S-IP | S-Port | D-IP | D-Port |
|
| 192.168.0.10 | 30000 | www.daum.net | 80 |
| 1.2.3.4 | 887 | www.daum.net | 80 |
|
| 192.168.0.11 | 30000 | www.daum.net | 80 |
| 1.2.3.4 | 888 | www.daum.net | 80 |
|
| 192.168,0.12 | 30000 | www.daum.net | 80 |
| 1.2.3.4 | 889 | www.daum.net | 80 |
|
마스쿼레이딩 설정 ( SNAT 방식의 특이한 경우 )
SNAT 는 외부로 통신할때 내부의 사설IP에서 공인 IP로 바꿔주는 역할을 한다.
하지만 일반 가정집과 같이 공인IP가 지정된 것이 아니라 DHCP 서버에서 할당 받는다면 공인 IP가 변경될 수 있다.
-> 지정된 공인 IP로 설정하는 iptables로는 설정이 불가능 하다.
-> 마스쿼레이딩은 IP를 지정하지 않고 외부로 나가는 NIC 카드를 지정하여 그때마다 지정된 NIC 카드의 IP를 부여한다.
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
-> SNAT는 주로 고정 IP 방식에서 사용(eth0 : 회사가 보유한 고정/공인 IP)
-> DNAT는 주로 유동 IP 방식에서 사용(ppp0 : 통신 회사가 제공하는 유동/공인 IP)
- DNAT
| S-IP | S-Port | D-IP | D-port |
| S-IP | S-Port | D-IP | D-Port |
|
| www.daum.net | 80 | 1.1.1.1 | 30000 |
| www.daum.net | 80 | 192.168.0.10 | 30000 |
|
| www.daum.net | 80 | 1.1.1.1 | 30001 |
| www.daum.net | 80 | 192.168.0.11 | 30001 |
|
| www.daum.net | 80 | 1.1.1.1 | 30002 | www.daum.net | 80 | 192.168.0.12 | 30002 |
|
목적지 주소를 1.2.3.4로 변경하는 경우
# iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 1.2.3.4
목적지 주소를 1.2.3.4-1.2.3.6 로 변경하는 경우
# iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 1.2.3.4-1.2.3.6
웹 트래픽에 대한 목적지 주소를 1.2.3.4의 8080 포트로 변경하는 경우
# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j NAT --to 1.2.3.4:8080
방향 재 설정 (Redirect) - Local Port Forwarding
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
외부에서 80번 포트로 tcp 패킷이 들어오면 먼저 3128 포트로 보낸다.
> 3128 포트에는 보통 패킷을 분석하기 위해 대기중인 프로그램이 존재한다. > 그리고 다시 80 포트로 보낸다.
> 자신의 포트로 잠깐 바꾸는 것이기 때문에 IP를 설정할 필요가 없다.
- 정리
■ MASQERADE 설정 -> (예) firewall 서버에서 설정
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
■ Network interface(eth0)을 통한 Port Forwarding
# iptables -t nat -A PREROUTING -p tcp -i eth0 --dport ${port} -j DNAT --to ${IP:Port}
■ 특정 IP를 통한 Port Forwarding
# iptables -t nat -A PREROUTING -p tcp -i eth0 -d ${IP} -j DNAT --to-destination ${IP:Port}
■ Local Port Forwarding -> (예) sslstrip
# iptables -t nat -A PREROUTING -p tcp -d ${IP} --dport ${Port} -j REDIRECT --to-port ${Port}
'Security > Linux Server' 카테고리의 다른 글
IDS (Instrusion Detect System)_환경 구성_snort 설치/설정 (0) | 2017.12.22 |
---|---|
TCP Wrappers ( TCP 서비스 필터링 ) (2) | 2017.12.21 |
방화벽 ( Firewall ) _ iptables ( 패킷 필터링 ) (0) | 2017.12.20 |
리눅스 서버 점검 (계정 잠금 임계값 설정 ) 쉘 스크립트 (0) | 2017.12.15 |
리눅스 서버 점검 ( 패스워드 복잡성 설정 ) 쉘 스크립트 (0) | 2017.12.15 |