미크로틱으로 VPN_Client + Proxy Server 구축하기.

알토냥   
   조회 2898   추천 0    

간단설명)

VPN을 통하여 일부의 프로그램 또는 일부의 사이트만 보내기 위해, 프록시 서버를 통과하는 패킷은 모두 VPN으로 보내도록 하는 설정입니다.

기존에 별도의 서버에서 'VPN 클라이언트' + '스퀴드 프록시 서버'의 조합으로 운용중이었으나,

새로 구입한 미크로틱에서 VPN의 속도가 충분히 나오기에 미크로틱만으로 작업해봤습니다.


주 사용용도)

다양하게 이용할 수 있지만 저는 유튜브 이용시 국가 변경을 위해 이용했습니다.


작업환경)

아무 미크로틱이나, hEX이상의 cpu성능이 나오는 장비에서의 이용을 추천드립니다.

필자의 환경... 

MIkrotik hEX S ( https://mikrotik.com/product/hex_s ) - 기존의 hEX에 sfp포트가 하나 붙어있습니다.


작업순서)

1) VPN클라이언트를 구성한다. (winbox)

미크로틱으로 VPN클라이언트를 구성하는 것은 서버측의 호환성 문제로 약간의 삽질이 있었지만, 일단 용도에 맞는 해결법을 찾아 진행하였습니다.

PPP > Interface > VPN Client 구성.

이 과정에서 주의할 점은 VPN Client를 구성할 때 'Dial Out'항목에 있는 'Add Default Route'를 '체크 해제'하는 것 입니다.

----------------------------------------------------------------------------------------------------

2) 프록시 서버 설정하기

프록시 서버의 설정은 매우 간단합니다.

IP > Web Proxy >Enable에 체크. 

이후에 추가적으로 용도에 맞게 설정하시면 됩니다.

ps. 저는 캐싱 기능을 원하지 않기에 캐시 크기를 none로 설정하였습니다.

----------------------------------------------------------------------------------------------------

3) 방화벽 설정. (라우팅 설정을 위한 설정)

프록시를 통해 나가는 패킷들이 무조건적으로 VPN을 통하여 나가도록 설정해야 합니다.

이 과정에서 좀 삽질이 있었지만 미크로틱의 패킷 처리과정을 확인하여 해결법을 찾았습니다. 

(https://wiki.mikrotik.com/wiki/Manual:Packet_Flow)

Mangle의 Output 체인을 이용할 경우, 미크로틱의 외부에서 들어온 패킷이 아닌, 미크로틱에서 생성된 패킷에 대한 간섭이 가능합니다.

ex) 미크로틱 기기의 VPN연결이나, 프록시를 통해 나가는 패킷, 미크로틱의 DNS쿼리 등등...


-1. 미크로틱에 대상에서 제외할 목록을 추가합니다. 

IP > Firewall >AddressList > VPN_Exception 이라는 리스트 추가. (이름은 알아서 변경하세요)

주의) 만약에 이용하시는 VPN이 443번이나 80번 포트를 사용한다면 리스트에 추가하세요.


-2. 방화벽에 규칙을 추가

IP > Firewall > Mangle > Mangle 룰 추가. 



체인: output

목적지 포트: 80, 443 (웹페이지)

(주의) 목적지 주소 리스트: VPN_Exception 을 제외하고 나머지!!

<콘솔에서>

/ip firewall mangle 

add action=mark-routing chain=output protocol=tcp dst-port=80,443 \

dst-address-list=!VPN_Exception new-routing-mark="ProxyOut" passthrough=no

----------------------------------------------------------------------------------------------------

4) 라우팅 룰 추가.

IP > Route > 룰 추가.

1. 게이트웨이를 처음에 추가한 VPN 클라이언트의 이름으로 설정한다. (드롭다운 매뉴에 표시된다.)

2. 라우팅 마스크를 아까 방화벽에서 추가한 라우팅 마스크로 설정한다.

3. 목적지 주소는 기본으로 설정된 0.0.0.0/0으로 설정한다. (모든 패킷을 보내기 원할경우. 기본설정)




완료.


추천 사용환경)

크롬에서 찾아보시면 'Proxy SwitchySharp'라는 플러그인이 있습니다. 

이 플러그인은 한 페이지 내부의 컨텐츠라고 해도 원하는 URL에 대해서만 선택적으로 프록시를 이용하도록 해줍니다.

예를들어, 유튜브만 해외를 통하여 접속하시기를 원하신다면 그 주소를 해당 플러그인에 추가하시면 됩니다.

주의) 유튜브의 경우 유튜브만 추가해서는 소용이 없습니다. *.googlevideo.com을 꼭 같이 추가하셔야 합니다.


예제1,2)  간단, 심화









감사합니다.




제목Page 3/40
08-09   1139   오한량
08-08   1403   회원K
08-07   1389   탱쟈가라사대
08-04   1829   오한량
08-03   1609   스린
08-01   1619   민달팽이
07-29   2702   민달팽이
07-28   1619   Galvanizer
07-14   3209   SMN920T
07-13   2899   알토냥
07-09   3037   회원K
07-08   2986   김은호
07-04   3659   CUBEN
07-02   3275   작은악마
06-30   2568   탱쟈가라사대
06-29   2938   이니스
06-27   2433   kathar0s
06-27   2251   NGC
06-25   2679   사랑하라
06-25   2472   초생달