강좌
클라우드/리눅스에 관한 강좌입니다.
해킹&보안 분류

OpenVPN으로 VPN 구성 및 활용 5편_OpenVPN 확장기능 활용

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

OpenVPN으로 VPN 구성 및 활용 5_OpenVPN 확장기능 활용

 

OpenVPN의 확장 기능 활용

 

OpenVPN과 관련하여 아래의 사항에 대해 추가적으로 살펴보자.

방화벽 정책

 

만약 서버에 방화벽이 설치되어 있다면 VPN 패킷을 허용하기 위해 아래와 같이 특정 패킷을 추가하여야 터널링 된 패킷이 통과할 것이다.

 

물론 서버와 방화벽이 동일한 장비가 아니라 방화벽 내부에 VPN이 있다면 INPUT 대신 FORWARD를 지정하여야 하며 상태추적을 이용하고자 한다면 “-m state --state NEW”를 추가하면 된다.

 

 

 

$IPTABLES -A INPUT -p udp --dport 5000 -j ACCEPT

 

OpenVPN은 기본적으로 5000/udp를 사용하는데, 다른 프로토콜이나 포트를 사용한다면 해당 포트를 허용하면 된다.

 

 

물론 특정 IP에서의 VPN 접속만 허용하려면 "-s 1.1.1.1"과 같이 IP를 지정해 주면 된다.

 

 

 

 

$IPTABLES -A INPUT -i tun+ -j ACCEPT

$IPTABLES -A OUTPUT -o tun+ -j ACCEPT

$IPTABLES -A INPUT -i tap+ -j ACCEPT

$IPTABLES -A OUTPUT -o tap+ -j ACCEPT

 

위와 같이 인터페이스에서 tun+의 의미는 tun0이나 tun1.... tunn과 같이 tun으로 시작하는 모든 인터페이스를 의미하는 것이며 따라서 위의 룰은 모든 tun이나 tap 인터페이스를 통과하는 패킷에 대해 허용한다는 의미이다.

 

 

 

특히 VPN에서는 통상적으로 상호 사설IP로 설정하여 통신하는데, 방화벽에서 해당 IP 대역을 차단해 두었다면 VPN에서 사용하는 IP 대역은 미리 허용해 두기 바란다.

 

즉 위와 같이 10.1.0.0/24 대역을 사용한다면 당연히 이 대역은 허용되어야 하므로 10.0.0.0/8 대역을 차단한 룰의 앞에 10.1.0.0/24 대역을 허용하는 룰을 설정하면 된다.

 

 

 

OpenVPN GUI 프로그램 사용

 

Windows에서 OpenVPN을 사용할 때 GUI가 지원되지 않아 설정이나 가동시 번거로운 것이 사실이다.

 

또한 OpenVPN을 가동할 때 화면을 계속 띄워두어야 하는 문제도 있는데, 이를 위해서 OpenVPN GUI라는 별도의 프로그램을 사용하면 다음과 같은 편리한 기능을 이용할 수 있다.

 

 

- OpenVPN을 제어하기 위한 Tray 아이콘이 있어 이를 통해 OpenVPN의 설정이나 가 동, 멈춤 등을 제어할 수 있다.

 

 

- 콘솔 윈도우를 숨기거나 별도로 로그에 남기도록 할 수 있다.

 

 

- 현재의 연결 상태를 Tray 아이콘에서 보여준다.

 

 

- 계속적으로 업그레이드되고 있어 많은 부가 기능을 제공한다.

 

 

 

OpenVPN GUI 프로그램은 OpenVPN 홈페이지나 아래 URL에서 다운로드할 수 있다.

 

 

http://openvpn.se/

 

기존에 OpenVPN을 설치하지 않았다면 OpenVPN이 포함된 Installation Package를 설치하면 되고 만약 설치하였다면 Application only를 다운로드한 후 실행하면 아래 그림과 같이 우측 하단에 Tray 아이콘이 생긴다.


d9b788a441468cf23f7e98216dbb1a41_1660272457_4832.png
 

[그림]OpenVPN Tray

 

여기에서 우측 마우스를 클릭하면 사용할 수 있는 메뉴가 나오는데, connect를 선택하면 아래와 같은 화면이 나오면서 VPN에 연결이 되는 것을 알 수 있다.

 

 

 

d9b788a441468cf23f7e98216dbb1a41_1660272469_6567.png
 

[그림] OpenVPN GUI를 통해 연결된 화면

“Edit Config”를 선택하면 config.ovpn 파일을 바로 수정할 수 있도록 메모장이 뜨고 “View Log”를 선택하면 로그파일의 내용을 바로 확인할 수 있는데, 이외 사용할 수 있는 메뉴는 아래 그림을 참고하기 바란다.

 

 

d9b788a441468cf23f7e98216dbb1a41_1660272482_9325.png
 

[그림] 메뉴화면

 

tap 대신 tun을 이용할 경우

 

앞에서는 tap을 이용한 예를 살펴보았는데, tap 대신 tun을 이용한다고 해서 특별히 달라질 것은 없다.

 

tun으로 하였을 경우 달라지는 설정은 각각 아래와 같다.

 

[tun 이용 시의 서버쪽 설정]

 

dev tap0

ifconfig 10.1.0.1 255.255.255.0

tap이었을 경우 기존 설정은 위와 같았는데, tun으로 변경하면 아래와 같게 된다.

 

 

 

 

dev tun0

ifconfig 10.1.0.1 10.1.0.2

 

이때 ifconfig를 실행하면 아래와 같이 보이게 된다.

 

d9b788a441468cf23f7e98216dbb1a41_1660272497_6003.png
 

[그림] tun0 로 설정된 인터페이스

 

 

[tun 이용시의 클라이언트쪽 설정]

 

같은 방법으로 클라이언트 역시 아래와 같이 바뀌게 되고 ipconfig /all을 실행하면 기존의 tap과 동일하다는 것을 알 수 있다.

 

 

dev tun0

ifconfig 10.1.0.2 10.1.0.1

동시 접속을 허용하여야 할 경우

 

이제 OpenVPN을 자유롭게 사용할 수 있을 것이다.

 

그러나 위와 같이 OpenVPN을 설정한 후에 한 가지 문제가 있는데, 바로 동시접속이 지원되지 않는다는 점이다.

 

, 1명이 여러 번 접속하는 것은 관계없지만 사무실 등에서 또는 외국의 여러 PC에서 동시에 한 VPN 서버에 접속하게 되면 기존의 접속이 끊겨버리게 된다.

 

 

사실상 이는 서비스를 제공하는 입장에서 매우 치명적인 문제점인데, 따라서 이러한 경우 해결할 수 있는 방법으로는 아래와 같이 두 가지 방법이 있다.

 

 

 

방법A : 각 클라이언트에 해당하는 별도의 설정 파일을 만들어 별도의 데몬을 띄우거나

방법B : 클라이언트와 서버의 인증서를 활용한 공개키 암호를 이용하는 방법이 있다.

 

 

먼저 첫 번째 방법인 A에 대해 알아보고 방법 B에 대해서는 .5절에서 별도로 자세히 다루도록 하겠다.

 

 

[방법A : 별도의 데몬을 띄우는 방법]

 

여러 클라이언트 PC나 서버에서 한 서버로 동시 접속하는 것이므로 서버에서 추가적인 별도의 데몬을 띄우려면 서버에는 기존의 config와는 충돌되지 않도록 다른 포트, 다른 tap 인터페이스 및 다른 대역의 IP를 설정하고 별도의 데몬을 가동하여야 한다.

 

이를테면, 기존 설정과 동일하게 하되, 아래 부분만 다르게 설정 후 별도로 데몬을 띄우면 되는 것이다.

 

이때 키는 동일한 것을 사용해도 무방하다.

 

 

port 5001

dev tap1

ifconfig 10.1.1.1 255.255.255.0

 

여기에서 주의할 점은 변경되는 IP는 기존과는 다른 대역의 IP를 설정하여야 한다는 것이다.

 

만약 그렇지 않으면 라우팅 테이블에 IP 대역은 같으면서 인터페이스가 다르게 설정되어 네트워크가 제대로 작동하지 않게 된다.

 

 

아래는 route를 실행했을 때의 결과인데, 보는 바와 같이 서로 다른 대역으로 설정되어야 하며 만약 다른 대역에 같은 인터페이스로 설정되면 한 곳만 네트워크가 되고 나머지는 네트워크가 안 될 것이기 때문이다.

 

 

 

# route

Destination Gateway Genmask Flags Metric Ref Use Iface

10.1.0.0 * 255.255.255.0 U 0 0 0 tap0

10.1.1.0 * 255.255.255.0 U 0 0 0 tap1

 

따라서 이러한 경우에는 1:1 접속이므로 굳이 netmask255.255.255.0으로 할 필요 없이 255.255.255.252로 설정하는 것이 좋다.

 

 

이후 ps를 실행하면 아래와 같이 두개의 프로세스가 보이게 될 것이다.

 

이 프로세스는 클라이언트의 개수만큼 있어야 하나 간단한 스크립트를 이용하면 많은 스크립트를 한 번에 띄울 수도 있다.

 

 

 

./openvpn --config openvpn.conf --daemon

./openvpn --config second.conf --daemon

 

아울러 추가되는 다른 Windows에서도 마찬가지로 포트(5001) IP(10.1.1.2) 설정을 변경하여 접속하여야 한다.  

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,159 명
  • 현재 강좌수 :  36,519 개
  • 현재 접속자 :  322 명