■ NAT 종류(Network 구분하는 경우)
* Normal NAT (사설 IP -> 공인 IP)
* Reverse NAT (공인 IP -> 사설 IP)
* Exclude NAT (NAT 적용하지 않는 host/Network 지정)
* Redirect NAT (특정 시스템으로 지정한 서비스 Forwarding)
■ NAT 종류(Network 구분하는 경우) 공인 IP 몇개를 물릴것인가?, 사설 IP가 고정되어 있는가?
* Dynamic NAT(N:1 or N:M)
여러개의 사설 IP : (여러개) 공인 IP
* Static NAT (1:1)
사설 IP : 공인 IP
■ NAT 종류(Network/Server 구분하는 경우) 어떤 주소(소스 주소/목적 주소)가 변경되는가?
* SNAT(Source NAT) : Source IP 주소 변경 (EX: 마스커레이딩)
* DNAT(Destination NAT) : Destination IP 주소 변경 (EX: Port Forwarding)
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.naver.com | 80 | 1.2.3.4 | 30000 | www.naver.com | 80 | |
192.168.0.11 | 30000 | www.naver.com | 80 | 1.2.3.4 | 30001 | www.naver.com | 80 | |
192.168.0.12 | 30000 | www.naver.com | 80 | 1.2.3.4 | 30002 | www.naver.com | 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.naver.com | 80 | 1.2.3.4 | 30000 | www.naver.com | 80 | |
192.168.0.11 | 30000 | www.naver.com | 80 | 1.2.3.5 | 30000 | www.naver.com | 80 | |
192.168.0.12 | 30000 | www.naver.com | 80 | 1.2.3.6 | 30000 | www.naver.com | 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.naver.com | 80 | 1.2.3.4 | 887 | www.naver.com | 80 | |
192.168.0.11 | 30000 | www.naver.com | 80 | 1.2.3.4 | 888 | www.naver.com | 80 | |
192.168.0.12 | 30000 | www.naver.com | 80 | 1.2.3.4 | 889 | www.naver.com | 80 |
마스쿼레이딩 설정(SNAT 방식의 특이한 경우)
- 카드가 부여받은 ip를 지정하는 방식으로 이해하면 쉽다. (공유기에서 많이 사용)
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE (N:1 방식, 유동IP/고정IP)
-> SNAT는 주로 고정 IP 방식에서 사용(eth0 : 회사가 보유한 고정/공인 IP)
-> DNAT는 주로 유동 IP 방식에서 사용(ppp0 : 통신 회사가 제공하는 유동/공인 IP)
■ DNAT 설정의 예
목적지 주소를 1.2.3.4로 변경하는 경우
# iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 1.2.3.4
S-IP | S-Port | D-IP | D-Port | S-IP | S-Port | D-IP | D-Port | |
공인 IP | 30000 | 1.2.3.4 | 80 | 공인 IP | 30000 | 192.168.0.10 | 80 | |
공인 IP | 30000 | 1.2.3.4 | 23 | 공인 IP | 30000 | 192.168.0.11 | 23 | |
공인 IP | 30000 | 1.2.3.4 | 25 | 공인 IP | 30000 | 192.168.0.12 | 25 |
목적지 주소를 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 포트로 변경하는 경우
# itpables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to 1.2.3.4:8080
외부에서 공유기를 통해 들어올때 port를 정해놓으면 다이렉트로 들어올 수 있게 하는것.
1.2.3.4 목적지 주소로 가는 지역 패킷을 loopback으로 재설정 하기
# iptables -t nat -A OUTPUT -d 1.2.3.4 -j DNAT --to 127.0.0.1
방향재설정(Redirect) - Local Port Forwarding
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
DNAT 종류 중 예제 - Remote Port Forwarding
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 1.2.3.4:8080
'리눅스' 카테고리의 다른 글
[Linux / CentOS] CentOS 점검 명령어 모음 (0) | 2018.08.27 |
---|---|
[Linux] Logrotate 리눅스 로그 순환 관리 (0) | 2018.08.22 |
[Linux] 리눅스 주요 로그 파일 정리 (0) | 2018.08.22 |
[Linux / Unix] 리눅스 접근통제 TCP Wrapper (0) | 2018.08.21 |
[Linux] 리눅스 유저 관리 명령어 (0) | 2018.08.17 |
[CentOS7] firewall-cmd 리눅스 방화벽 사용법 정리 (firewalld) (1) | 2018.08.17 |
[Linux] 리눅스 방화벽 Iptables 개념정리 (0) | 2018.08.14 |
[Linux] 리눅스 방화벽 Iptables 사용 예시 (0) | 2018.08.14 |