리눅스 분류
NAT 설정
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 28,166 조회
- 0 추천
- 목록
본문
NAT 는 Network Address Translation 의 약자로 외부망과 내부망을 연결하는
다리역할을 한다. NAT는 2개의 chain을 포함하는데 PREROUTING 과 POSTROUTING 이다. PREROUTING 은
DNAT를 이용하여 처음패킷이 생길때 이용되고 POSTROUTING은 SNAT를 이용하여 패킷이 나갈때 이용된다.
여 기서 DNAT 와 SNAT 에 대해서 살펴보면 DNAT 는 Destination NAT 의 약자로 박화벽에서 특정 공인 IP를 내부의 사설 IP로 포워딩하는 경우 이용되며 SNAT는 Source NAT 의 약자로 내부의 사설 IP를 이용하여 외부 인터넷으로 연결된 공인IP로 변환하고자 하는 경우 이용된다.
이제 NAT 설정에 대해서 살펴보자.
IP forwarding 기능을 사용하고자 한다면
# echo 1 > /proc/sys/net/ipv4/ip_forward
라고 명령을 내리면 된다. 이 방법은 컴퓨터를 재부팅할 때 값이 0으로 되돌아가기 때문에 재부팅할 때마다 실행시켜줘야한다.
재부팅해도 1을 가지려면
# vi /etc/sysctl.conf 에서 net.ipv4.ip_forward 값을 1로 준다.
vi 열고 값 수정하고 저장하고 나오는게 귀찮다면 아래방법을 이용해도 무관하다.
find /etc -type f -name "sysctl.conf" -exec perl -pi -e "s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g" {} \;
내부네트워크에서 기본게이트웨이는 외부네트워크 주소를 준다.
예) 네트워크 설정
eth0 (내부)
IPADDR = 192.168.0.1
NETMASK = 255.255.255.0
GATEWAY = 1.2.3.4 ==> 이부분이 eth1 의 IPADDR 과 동일해야 한다.
eth1 (외부)
IPADDR = 1.2.3.4
NETMASK = 255.255.255.0
GATEWAY = 1.2.3.1
이제 방화벽 설정을 해보자.
iptables -A FORWARD -o eth0 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
위 방법은 앞서 설명한 바에 의하면 SNAT을 이용하여 설정을 한 것이다.
SNAT와 DNAT 을 정확히 이해하기 위해 MASQUERADE 대신 SNAT와 DNAT를 이용한다면
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.0.2-254
이렇게 될 것이다.
설정이 정상적으로 되었는지 확인은 iptables -L 과 iptables -t nat 로 가능하다.
여 기서 DNAT 와 SNAT 에 대해서 살펴보면 DNAT 는 Destination NAT 의 약자로 박화벽에서 특정 공인 IP를 내부의 사설 IP로 포워딩하는 경우 이용되며 SNAT는 Source NAT 의 약자로 내부의 사설 IP를 이용하여 외부 인터넷으로 연결된 공인IP로 변환하고자 하는 경우 이용된다.
이제 NAT 설정에 대해서 살펴보자.
IP forwarding 기능을 사용하고자 한다면
# echo 1 > /proc/sys/net/ipv4/ip_forward
라고 명령을 내리면 된다. 이 방법은 컴퓨터를 재부팅할 때 값이 0으로 되돌아가기 때문에 재부팅할 때마다 실행시켜줘야한다.
재부팅해도 1을 가지려면
# vi /etc/sysctl.conf 에서 net.ipv4.ip_forward 값을 1로 준다.
vi 열고 값 수정하고 저장하고 나오는게 귀찮다면 아래방법을 이용해도 무관하다.
find /etc -type f -name "sysctl.conf" -exec perl -pi -e "s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g" {} \;
내부네트워크에서 기본게이트웨이는 외부네트워크 주소를 준다.
예) 네트워크 설정
eth0 (내부)
IPADDR = 192.168.0.1
NETMASK = 255.255.255.0
GATEWAY = 1.2.3.4 ==> 이부분이 eth1 의 IPADDR 과 동일해야 한다.
eth1 (외부)
IPADDR = 1.2.3.4
NETMASK = 255.255.255.0
GATEWAY = 1.2.3.1
이제 방화벽 설정을 해보자.
iptables -A FORWARD -o eth0 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
위 방법은 앞서 설명한 바에 의하면 SNAT을 이용하여 설정을 한 것이다.
SNAT와 DNAT 을 정확히 이해하기 위해 MASQUERADE 대신 SNAT와 DNAT를 이용한다면
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.0.2-254
이렇게 될 것이다.
설정이 정상적으로 되었는지 확인은 iptables -L 과 iptables -t nat 로 가능하다.
"무단배포금지: 클라우드포털(www.linux.co.kr)의 모든 강좌는 저작권에 의해 보호되는 콘텐츠입니다. 무단으로 복제하여 배포하는 행위는 금지되어 있습니다."
관련자료
-
이전
-
다음
댓글 0
등록된 댓글이 없습니다.