외부에서 openvpn으로 접속하였다면, 모든 트래픽을 openvpn 서버로 보낼 수 있다. 그러나 이 상태는 서버에 물린 인터넷을 이용할 수 없는 상태이다. 서버와 vpn 통신만 되는 상태이다. CentOS(6.3) 기준으로 마스커레이딩기능을 이용하여 서버의 인터넷을 공유하는 방법은 다음과 같다.


커널에서 ip포워딩을 할 수 있도록 설정한다.

# echo "1" > /proc/sys/net/ipv4/ip_forward


openvpn 가상 어댑터로부터 나오는 ip를 머스커레이딩 하도록 설정한다. 아래 보이는 아이피는 openvpn 서버에 할당된 아이피이다.

# iptables -t nat -A POSTROUTING -s 17.8.0.1/255.255.255.0 -o eth0 -j MASQUERADE


그리고 클라이언트에서 168.126.63.1 (KT DNS 서버)에 핑을 해본다.


만약 되지 않으면 다음과 같이 iptables를 확인해본다.

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited


위와 같이 FORWARD 체인에 모든 것이 REJECT로 되어있다면 해당 체인의 룰을 지워준다. 포워딩시 차단되어서 외부로 트래픽이 나갈 수 없다. 이는 시스템마다 다르다. 본인은 초기상태에서 확인한 것이다. 맨 뒤의 숫자는 룰의 위치를 지정한 것이다. 다른 룰이 몇 개 있다면, 맨 앞에서부터 1이므로 적당히 수정한다.

# iptables -D FORWARD 1


이젠 vpn서버를 통해 외부로 트래픽이 나갈 수 있을 것이다.


이를 부팅시 자동으로 되게 하고 싶다면, /etc/rc.d/rc.local 파일을 편집하여 다음과 같이 넣어주면 된다. 물론 바로 윗단계에서 iptables FORWARD 체인의 룰을 삭제하지 않은 분들은 적당히 아래 내용을 조정하면 된다.(빼거나 넣거나. 본인은 필요하여 넣음)

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 17.8.0.1/255.255.255.0 -o eth0 -j MASQUERADE
iptables -D FORWARD 1


저작자 표시 비영리 변경 금지
신고

'컴퓨터 > CentOS' 카테고리의 다른 글

SSH 보안설정  (0) 2013.01.31
리눅스 장비에 USB 유선랜카드 설치기  (0) 2013.01.28
CentOS에 설치한 OpenVPN을 통한 인터넷 공유  (2) 2012.12.10
CentOS에 vsftpd 설치  (0) 2012.12.05
CentOS의 ssh 데몬 포트 변경하기  (0) 2012.11.29
CentOS 파티션 구성  (0) 2012.11.29
Posted by Life 스토리