PfSense 를 이용한 OpenVPN서버 구축하기(1편)

   조회 32853   추천 13    

이 강좌는 OpenVPN을 이용하여 VPN을 구성한다.

VPN은 터널링을 통해서 데이터들이 암호화 되어 전송이 되므로 중간게 패킷을 가로채거나 수정하기가 어렵기 때문에

보호되어야 될 네트워크는 가급적 VPN을 이용하여 엑세스 하는 것이 조금 더 안전하다.

pfSense는 여러가지 VPN구성을 지원한다.(IPsec,L2TP,openVPN)

각각의 장단점들이 있고 구성에 따라서 속도들도 약간씩은 차이가 난다. 상황에 맞게 골라서 사용하면 된다.

나름 비교가 잘되어 있는 사이트를 참고해보도록 하자.(https://ko.vpnmentor.com/blog/vpn-protocol-comparison-pptp-vs-l2tp-vs-openvpn-vs-sstp-vs-ikev2/)

pfSense에서는 정말 간단하게 VPN 서버를 구성할 수 있다.

pfSense가 설치되어 있다고 가정하고 기본적으로 WAN,LAN으로만 구성이 되어있는 환경을 기준으로 구성을 해보도록 한다.

대부분의 경우 VPN을 구성하는 경우 일반적으로 아래처럼 두가지 정도의 형태로 구성을 한다.

  1. 다수의 클라이언트에게 특정 네트워크에  VPN 터널을 이용해서 연결하는 형태
     
  2. Site to Site(원격 사무소와 메인사무소등을 하나의 네트워크로 연결하는 형태)
     

 

일단 첫 번째 형태의 원격접속용 OpenVPN서버를 구성해도록 하겠다.

기본 네트워크 구성은 아래와 같다고 가정하고 구성해보도록 하자.

OpenVPN 서버구성하기
 pfSense에서 제공해주는 OpenVPN 마법사를 이용해서 간단히 10분 정도만 투자하면 훌륭한 VPN 서버를 구성할 수 있다.

  1. OpenVPN 구성마법사 실행(VPN->OpenVPN->Wizards)
     
  2. 인증 구성
     (Local database 말고 windows AD,LDAP,RADIUS등을 이용해서 유저인증이 가능하다.)
     
  3. CA 설치(인증서버)
     
  4. 서버인증서 추가
     
  5. OpenVPN 서버 셋업
     대부분은 기본값으로 두고 필요한 정보들만 입력해주면 된다.
     가장 중요한 부분은 터널 설정인데 Tunnel NetworkLocal Network만 잘 설정해주면 된다.
     터널 네트워크는 VPN클라이언트와 VPN서버와 터널로 연결할때 사용할 네트워크 대역이다.
     클라이언트,서버 양쪽 모두 사용하지 않고 있는 사설망으로 잡아주면 된다.
     로컬 네트워크는 VPN 서버를 통해서 접속할 내부 네트워크 대역을 적어주면 된다.
     즉  pfSense 방화벽의  LAN(혹은 추가적인 사설네트워크)를 적어주면 된다.
     

     

     

     
     
  6. 방화벽 설정
     자동으로 방화벽룰을 추가하는 부분이며 추가해주지 않는다면 나중에 수동으로 추가해 줘야 한다.
     

     

    위의 과정을 마치면 아래와 비슷한 화면을 만나게 될 것이다.
     
  7. VPN사용자 추가
     pfSense web config-> System->User Manager -> 사용자 추가
     보안을 강화하기 위해서 VPN서버 접속시 SSL/TLS + 사용자ID/PASSWD를 이용해서 접속하게 하는게 좋으므로
     사용자 인증서도 반드시 생성해두도록 한다.(Certificate 체크)
     Descriptive name 에는 사용자를 구분할 수 있는 정보를 넣어주도록 하자.

  8.  

  9. VPN서버 설정 변경
     서버 인증 방식을 변경해 준다. (VPN->OpenVPN)
     Server Mode를 SSL/TLS+User Auth로 설정해주도록 한다.
     
  10. OpenVPN export툴 설치
     인증서와 서버 접속 정보를 쉽게 내보내기를 해주는 도구를 설치하도록 한다.
     System->Package Manager-> Available Packages-> Openvpn-client-export
     
     

     정상적으로 설치가 되었다면 VPN->OpenVPN메뉴에 아래와 같이 client export 탭이 생겨난다.
     
  11. VPN클라이언트 내보내기
     VPN->OpenVPN-> Client Export
     각 사용자 별로  인증서와 서버 접속정보(.ovpn) 파일을  PC의 적당한 곳에
     다운로드(Standard Configurations->Archive) 한 다음 압축을 풀어두고
     OpenVPN client를  PC에 설치하고 VPN서버에 접속하면 된다.
     OpenVPN 클라이언트 설치 URL도 링크가 되어 있으니 다운로드 받아서 설치하면 된다.
     필자의 경우 MacOS를 사용중이라 TunnelblickViscosity 를 사용 중이다.
     Windows 사용자의 경우에는 Windows installer 버전을 받아서 설치하면 된다.
     

VPN client를 이용해서 OpenVPN서버에 접속 후 LAN서버와 통신이 된다면 모든 설정이 마무리가 된다.
 VPN서버에 접속 후 서버에서 설정한  Tunnel network 가 클라이언트쪽에 생성이 되면 정상적으로 터널링이 된 것이다.
 
 

맑은여름 2017-07
오~~ 뭔가 심오해 보입니다. 저같은 초보는 그냥 추천만 드립니다.
수고 많으셨습니다.
     
원격지의 사설망에 터널을 통해 직접적으로 연결하는 방법입니다.
거기에 패킷들도 암호화 되어서 통신이 되는 형태라 좀 더 안전하게 사용이 가능하게 됩니다.
그림이 많아서 복잡하게 보이지만 세번째 그림만 보시면 대충 아실 겁니다.

2편은  Site to Site 연결로 작성하고 마무리해야 할 듯 합니다...
          
맑은여름 2017-07
다른분들을 위해 이렇게 글을 써주시는게 얼마나 힘든일인지는 해본분들만이 아시죠..
다음회도 기다리겠습니다.
Christopher 2017-07
좋은 정보 감사드립니다.
jpross 2017-07
기대하던 내용인데..
이게 이렇게 어려운 내용이었군요.
해보고 싶은데 좀더 공부해야겠습니다.

좋은 강좌 진심으로 감사드립니다. (^^)(__)
     
복잡하게 보일지 모르지만 큰 개념을 이해하시면 쉽습니다.
따라하기 식으로 해도 금방 이해하실 겁니다.
PPC허인구 2017-07
한번 따라해보고 싶습니다.
고맙습니다. 좋은 내용입니다.
GoodWolf 2017-08
감사합니다~ 수고 많으셨습니다.
..
(그런데 사진이 안보이네요. ^^)
아나벨가토 2017-08
좋은 강좌 감사합니다. 추천합니다.
Mediapunta 2019-04
감사합니다:)


제목Page 17/28
2017-07   24176   허인구마틴
2017-07   26400   stone92김경민
2017-07   32854   stone92김경민
2017-06   23687   무아
2017-06   37763   민욱님
2017-06   23653   화령
2017-05   25328   turtl
2017-05   21232   turtl
2017-04   23993   Ansyncic
2017-04   17269   행복집
2017-04   33951   채선일
2017-04   16575   안형곤
2017-04   13840   스킬서포트
2017-03   17669   제온프로
2017-03   38054   엠브리오
2017-03   15496   안형곤
2017-03   21981   이태욱
2017-02   22961   stone92김경민
2017-01   29677   제온프로
2016-12   37244   민욱님