프로그래밍/기타2012.06.03 17:26

한동안 해야지, 해야지 생각만 했던 OpenVPN 설치 작업을 이번주 내내 삽질을 통해 처리했습니다. 왜 하필 이것 저것 할일이 많았을때 그런 맘을 먹었는지 모르겠습니다. ^^


기존에는 사내에서 사설망을 사용하는 관계로 방화벽에서 제공하는 웹기반의 vpn을 사용하다가 너무 불편하고 실효성이 떨어져서 외부에서의 접속이 필요한 서버만 별도 공인 IP를 매핑시켜 사용하였습니다. 하지만, 보안 등의 문제가 계속 맘에 걸렸는데 그렇다고 vpn 솔루션을 구입할 수 있는 상황도 아니고 해서 OpenVPN을 사용해 보기로 마음을 먹었습니다. 사실 사용할 사람이 나밖에 없을 것 같기도 하고...


개인적으로 운영하는 우분투 서버가 있어 이것을 OpenVPN 서버로 같이 운영하기로 했고 다음의 문서들을 참고하여 설치했습니다.


- OpenVPN으로 VPN 구축하기 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/System_management/VPN/OpenVPN


- OpenVPN 설치 및 사용하기 : http://wiki.kldp.org/wiki.php/OpenVPN


- OpenVPN 구축 및 활용 : http://www.365managed.com/bbs/board.php?bo_table=magazine&wr_id=6


서버와 클라이언트 설정 시 구글링으로 기타 여러 문서를 참고했습니다.

설치 환경은 서버의 경우 Ubuntu 12.04, 클라이언트는 Windows 7 64bit...

위의 문서를 참고하여 설치하면서 다른 문제는 없었으나 두번의 삽질(?)이 있었습니다.


1. Windows 7 64bit 에서 연결이 안되는 문제

  - 최근 버전인 2.1.2 버전을 클라이언트에 설치 시 연결이 되지 않습니다.

  - 2.1.0 버전을 설치하여 해결


2. OpenVPN 서버가 설치된 네트워크의 subnet에 있는 다른 서버의 접근 문제

위의 문서를 비롯하여 여러 가이드에 따라 다음과 같이 작업하였으나 OpenVPN 서버만 해당 subnet의 IP로 접근이 되고 다른 서버들은 접근이 안됐습니다.


    - 서버 VPN 설정 추가(openvpn.conf)

      push "route [vpn 서버의 subnet 주소] [서브넷마스크] [VPN의 게이트웨이]"

      예) push "route 192.168.56.0 255.255.255.0 192.168.100.1"

    - 서버의 시스템 설정

      . ip forward 설정

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

      . 시스템 재시작시 설정을 위해 /etc/sysctl.conf 에 다음과 같이 설정

      net.ipv4.ip_forward = 1

      . tun 디바이스를 ip forward 가능하도록 설정

      # iptables -A INPUT -i tun+ -j ACCEPT

      # iptables -A FORWARD -i tun+ -j ACCEPT


위의 문제로 비교적 오랜 시간을 삽질했는데 결국 다음의 iptables 설정을 추가하여 해결했습니다.

      # iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE


우선 설치 후 사용은 무척 만족스럽습니다. 다른 작업에도 활용을 해보고 방화벽 설정을 좀 더 타이트하게 변경도 할 수 있을 것 같습니다.


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

티스토리 툴바