IT/리눅스
NAT 설정
by 지니라
2017. 4. 1.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
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 로 가능하다. |
[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1742