SoftEther VPN IPv6 NAT

IPv6 에 NAT이라니;;
쓰는 호스팅이 IPv6 을 단 1 개만 줘서 어쩔수없이 NAT을 쓰게되었다.

DHCP 서버 설정

/etc/dnsmasq.conf

softether tap 인터페이스에 ip 할당 (IP는 필요하지 않음)

Centos 7 IPv6 Forward 활성화

/etc/sysctl.conf

ip6tables를 통한 SNAT 적용

SoftEther VPN에 VPN 클라이언트 어댑터를 하나 더 추가. 이 어댑터에는 IPv4 비활성화. IPv6만 활성화.

 

 

AWS 라이트세일에서 SoftEther VPN 서버 구축 (3) – 서버 설정

AWS Lightsail + SoftEther VPN 서버 설정하기

앞에서 SofEtherVPN서버를 설치했으면 셋팅을 해줌니다.
콘솔은 어렵기 때문에 아무튼 GUI로 된 VPN Admin Tool을 사용하겠읍니다.
여기서 받을 수 있읍니다. (Windows 4.28 바로 받기)

관리모드로 접속하기

쩌걸 누름니다.

셋팅이름과 써버 Public IP와 포트를 입력해줍니다. 내 아이피는 13.124.244.119 이었네오.
비밀번호는 처음이라 설정되지 않았으므로 입력하지 않고 건너뛰세오.

쩌걸 눌러 접속합니다.

처음 접속해서 관리자 비밀번호를 뭐로할지 물어보네오. 입력해주면됩니다.

반갑다고 뜨네요. 하지만 여기선 안 쓸거라서요. 닫아줌니다

이것도 안 쓸거에오.

본격적으로 설정에 들어갑시다.

먼저 로컬브릿지 설정으로 들어가요.

그 다음 난 TAP 디바이스를 만들거에요. 따라올거라면 똑같이 디바이스 이름에 sevpn 이라고 붙여줍시다.

뭐 디바이스가 생성된 것 같네요.

VPN 설정하기 앞서

VPN 설정하기 앞서, VPN서버를 구축하면 가상네트워크를 구성하는데 아이피를 할당해줘야해요.
나는 아래와 같이 지정할거에요.

Public IP : 13.124.244.119 (라이트세일 콘트롤패널에 있음)
Private IP : 172.26.8.36 (라이트세일 콘트롤패널에 있음)
VPN 게이트웨이 IP : 192.168.151.254
VPN 서브넷마스크 : 255.255.255.0
VPN DHCP 아이피 범위 : 192.168.151.100 ~ 192.168.151.199

이 과정에서 Private IP 만 주의하면 아마도 따라하는게 문제는 없겠지오.

본격적으로 설정해봅시다

DHCP 서버 설치

참고 : https://www.server-world.info/en/note?os=Ubuntu_18.04&p=dhcp&f=1

를 입력해요.

설치가 되었네요.

앗! 이제부터 vi 에디터를 이용해서 설정파일을 수정해야하네요. vi 는 저도 자주 안쓰니 외워지지 않네요. 구체적인 설명은 생략하겠습니다. 기본상태는 ESC키에요. 기본상태에서 i 누르면 입력모드가 되구요 : (콜론)을 입력후 x! 를 입력하면 입력한 내용을 저장해요 그럼 이만.

명령을 입력해서 dhcpd.conf 파일을 수정할 거에요.

2019.04.12 수정

이렇게 맨 위에추가하셔도 됩니다.

ESC – :x! 로 저장을해요.

인터페이스 지정을 해줍니다. 안해주니까 dhcp 서버가 알아서 서버를 꺼버리네요.

이렇게 tap_sevpn 이라고 지정했으면 :x! 로 저장합니다.

NAT Forward 허용하기

VPN 을 쓰는데, 우리가 VPN을 사설망으로 다른개인과 보안통신하고 그럴 목적이아니라. AWS 네트워크를 통해 트래픽 우회용으로 쓸거잖아요? 그래서 NAT (192.168.151.0/24) 네트워크를 AWS (13.124.244.119)로 변환시켜주는 NAT 포워드를 허가시켜줘야해용.

귀찮으니 명령도 간단간단하게 설정해주자구요.

아래 명령으로 잘 적용됐는지 확인해줘요.

VPN 트래픽이 AWS로 전달되도록 설정

NAT 트래픽이 변환되도록 허용하는 설정은 했지만, VPN 트래픽이 나간다고는 안했어요.
iptables 로 그걸 설정할거에요. 우분투에서는 iptables를 유지시켜주는 프로그램이 딱히 없어서 성가시네요. 그래서 그냥 안하기로 했어요. 서버가 꺼질 일도 없으니까요. 그냥 센토스로 할걸

그래서 서버 다시 실행할때마다 이 설정을 적용해야해요 ㅋㅋ

위에서 TAP 디바이스에 아이피할당도 안해줬는데요, 어차피 이것도 서버를 켤떄마다 해야되는거니깐요, 그냥 같이하도록 합시다.

상기의 명령을 자신의 서버에 맞게 바꿔주고 적용하면 될 것 같아요.

2019.04.12 추가
– isc-dhcp-server먼저 켜면 tap_sevpn에 아이피 없다고 못 켜게함

SEVPN 계정을 만들고 접속을 해봅시다

계정만들기

참 쉽죠?

SEVPN Client 로 접속하기

Add VPN Connection 을 눌러서요 서버아이피, 포트, 가상허브이름을 입력하고, 위에서 만든 계정으로 설정을 만들어줍니다.

이제 연결을 하면!!

짜잔~!

인터넷도 잘 될까요?

잘 되네

현재까지 설정으로 불가능한 것들

OpenVPN은 SEVPN 서버매니저에서 OpenVPN을 켜주시고,
OpenVPN 기본 포트가 1194이므로 라이트세일에서 TCP, UDP 각각 1194 포트를 허용해주면됩니다.
L2TP/IPSec 도 이용하고자하면, 서버매니저에서 설정하실 수 있습니다. 라이트세일에서 포트도 당연히 열어야하는데요, 이전포스팅에 있을거에요.

AWS 네트워크 vs KT 인터넷 일본서버 핑 비교

SoftLayer HONGKONG

KT

KT -> AWS SEOUL

Vultr Tokyo

KT

KT -> AWS SEOUL

후술

현재까지의 가장 가성비 뛰어난 개인VPN이 될 수 밖에 없겠다. 해외망도 좋지.. 암튼 좋지.
주의해야할 것은
Amazon Lightsail의 트래픽 요금정책은 Amazon EC2 와 약간 차이가 있다.
$3.5 플랜 기준으로 1 TB 트래픽을 제공한다.
EC2 에서는 Inbound가 모두 무료이지만,
Lightsail은 첫 1 TB는 Inbound + Outbound 로 계산하고,
그 이후의 트래픽은 Outbound 요금을 계산한다. VPN은 따운받은게 있으면 똑같이 전달을 하기위한 업로드가 발생하므로 In+Out 두배의 트래픽이 발생하니깐 사용자들은 과금발생의 우려에 대해 경각심을 가져야한다. (이짓하는것 자체가 돈과 관련이 되니깐.. 돈많으면 전문VPN을 쓰지)

 

번거로워서 
SoftEther VPN Server 및 시스템 재 시작을 고려하지 않았습니다.
softether 서버 재시작 후
ifconfig을 통한 아이피 부여명령 후
isc-dhcp-server 재시작명령해주세요.

AWS 라이트세일에서 SoftEther VPN 서버 구축 (2) – 서버 설치

Lightsail 에서 SoftEther VPN 설치하기

이전 포스트에서 Lightsail 의 서버생성을 시도했다. 이어서 서버 SSH에 접속해서 SoftEther VPN서버를 설치해보겠다.

SSH에 연결하기

SSH는 서버컴퓨터를 조작할 수 있도록 커맨드를 입력하는 쉘에 원격으로 접속하는 한 방법으로 아무튼 접속한다.

SSH 접속 확인

암튼 서버에 접속했다.

소프트웨어 패키지 업데이트

새로 서버를 세팅하면 기본적으로 소프트웨어가 업데이트 되지 않았을 것이다. 그래서 명렁어로 최신소프트웨어로 판올림해주자.

를 쳤으면, 업데이트 가능한 패키지가 몇개 있는지 나온다.

여기서 해당 명령어를 입력해서 소프트웨어를 업데이트 해준다.

부트로더에 업데이트가 생겨서 어찌할지 물어봐서 대충 업데이트 해준다.

업데이트 해주는것만인데 힘들다.

빌드환경 설치

SoftEther VPN 서버를 다운하기 앞서, SEVPN 설치에 필요한 소프트웨어 (빌드툴)를 받아야한다.
아래 명령을 치면 아마 설치가 가능할거.

SEVPN 소스파일 내려받기

SEVPN 소스파일을 받아야 한다. SoftEther VPN 공식홈페이지에서 따운 할 수있다. Linux x64 아키텍처로 받으면 된다. (4.28 링크)

wget 명령으로 받으면 되겠다.

SoftEther VPN 소스파일 압축해제

위 명령을 입력해서 압축을 풀어준다. 버전이 다르면 해당파일에 맞게 변경해주기로.

압축을 풀었다.

명령을 입력해서 vpnserver 디렉터리 내부로 들어간다.

SoftEther VPN 소스 빌드

이 make 명령을 입력해서 빌드를 하자.

이것저것 소프트웨어 사용권에 동의하라고 한다. 동의를 해준다.

이렇게 뜨면 OK

컴파일 산출물 이동

/home/ubuntu/vpnserver 에 컴파일 결과물이 있는데 /usr/local/에 옮겨주도록 하겠다.

를 입력해서 쉘의 현재디렉터리를 루트로 변경해준다.

아 처음부터 루트권한으로 작업했어야했는데 잊었다.

명령을 입력해서 루트권한을 취득한다.

다음 /usr/local/ 에 vpnserver 디렉터리를 이동시킨다.

잘 옮겨졌는지 확인 ㄱㄱ

다음 vpnserver 바이너리파일 권한을 설정해준다.

데몬설정

SoftEtherVPN 서버가 계속 켜져있도록 리눅스 서비스인 데몬? 대몬?에 스크립트를 넣어준다.

위 스크립트를 복사(AWS SSH에서 붙여넣기 어려운데) 해서 Ctrl+D 키를 입력해주면 생성이 된다.

아래 명령으로 권한설정과 서비스등록등등을 해줍시다.

그 다음 vpnserver를 켭시다.

Lightsail 방화벽설정

SoftEther VPN에 접속하기 위해 AWS Lightsail의 방화벽에서 TCP 5555포트를 풀어줍시다.
이거말고도 TCP 443, 992, 1194, 5555 UDP 1194, 500, 1701, 1723, 4500 등도 풀어야되는데 뭐 일단 풉시다.

아마존 라이트세일 우분투는 기본적으로 AWS에서 방화벽을 지원해선가, 우분투 기본 방화벽은 비활성화 된것같아보이네요.

AWS 라이트세일에서 SoftEther VPN 서버 구축 (1) – 서버생성

AWS Lightsail 에서 SoftEther VPN 서버 구축하기

AWS 라이트세일은 굉장히 저렴할 뿐만아니라, AWS 네트워크 자체도 품질이 괜찮기에 VPN을 써보면 어떨까 싶어서 글을 쓰게 되었다. 가 아니라 사실 누가 라이트세일에서 VPN서버가 구축이 안 된다고 하길래 왜 그런지 궁금해서 글을 쓰게 되었다. 실제로 KT쓰는 내가 금요일 밤 11시만 되면 핑이 100ms 이상 치솟거나 엄청난 패킷로스를 경험하는데, AWS 내부적으로 라우팅되는 해외망은 꽤나 쾌적한 것 같았다. (31ms 이내)

AWS Lightsail 에서 서버를 생성하자

AWS Lightsail를 가입하여 콘트롤 패널까지 접속하는 방법은 생략하겠다.
Lightsail 에 접속해서 서버를 생성한다.

Create instance 를 선택

서버 생성

서버 지역을 고르는데, 역시 가장 빠른 한국 지역(ap-norteast-2)을 선택…
별다른 용도가 있으면 일본이 가장 괜찮지만, 앞서 말하다시피 국내 – AWS Tokyo 리전간도 해외망이기 때문에 별로 좋진 않다. (평상시엔 남들보단 쾌적하긴한데 핑이 튀는걸 경험하는후부턴 영………)

운영체제는 본 글에선 Ubuntu 18.04 LTS 를 선택하겠다.  앞에선 CentOS 를 추천하더니 왜 이번엔 우분투냐?? 이 글을 보는 사람은 우분투를 선호할거라고 생각하기 때문이다. 별 다른이유는 없다. 글을 읽는 사람이 있긴할까? 나는 이글을 보면서 다른 운영체제를 쓸래! 인경우에는 본 문단을 보고 창을 닫는것이 좋다. 운영체제별로, 운영체제버전별로 설정하는방법이 달라지기 때문에 설정을 따라할 수 없어.

서버 스펙 선택

이렇게 되었으면, VPS 플랜을 선택하라고 한다. 돈이 없으니 난 가장 저렴한 3.5 달러의 머신을 생성해야지. VPN 서버를 혼자쓰거나 그러면 512MB서버로 충분하다고 생각한다.

서버가 생성되었다

SoftEther VPN 서버 구축 (4) – TAP Device를 통한 Local Bridge 설정

SoftEther VPN SecureNAT

SoftEther VPN에 있는 SecureNAT은 Virtual DHCP 서버와 Virtual NAT을 구현한 SoftEther의 소프트웨어이다. 커널을 건들지 않아서 정말 어떠한 권한이나 시스템 설정 없이 바로바로 VPN을 구현시켜주는 가상 인터페이스이다.

참고 : https://blog.lincoln.hk/blog/2013/05/17/softether-on-vps-using-local-bridge/

문제점

  • 느리다.
  • 서버에 ICMP PING이 중복으로 처리되서 DUP 문제가 생긴다.
  • 호스트서버와 연결을 할 수 없다.

서버에 존재하지 않은 가상의 인터페이스이므로 호스트서버와 연결을 할 수 없다.

서버 아이피가 168.126.63.1 이고, 192.168.1.0/24 에 클라이언트가 있다고 쳐보자.
SecureNAT을 이용하는 클라이언트는 가상 DHCP 서버에게서 게이트웨이로 192.168.30.1의 주소를 받고, 192.168.30.101 의 아이피를 받았다.
그러나 게이트웨이 주소인 192.168.30.1은 서버에 없는 가상의 인터페이스이다.
서버와 통신까지 하고 싶다면, 서버가 그 SecureNAT VPN Client를 실행시켜 VPN에 접속해 아이피를 부여받는 방법 뿐이다.

 

해답은 SecureNAT 대신 Local Bridge을 이용

방법은 SecureNAT 대신 Local Bridge을 사용하는 것이다.
Local Bridge는 TAP어댑터를 이용해 구성을 할 것이다. OpenVZ 컨테이너에서는 커널을 변경할 수 없다. 그러나 대부분 TUN/TAP 어댑터를 지원하기 떄문에 이 방법으로 이용할 수 있다.

 

Disable SecureNAT

SecureNAT과 로컬브릿지 모드가 함께 작동하면, 트래픽이 무한루프에 빠져 CPU가 100%에 달하게 된다. 그래서 비활성화 해야한다.

Disable SoftEther VPN SecureNAT허브 관리메뉴에

SecureNAT 클릭.

Disable SecureNAT 클릭.

SecureNAT 비활성화 완료.

 

Local Bridge 설정

SoftEther VPN Local Bridge

Local Bridge Setting 클릭

SoftEther VPN Local Bridge기존의 Virtual Hub를 선택후,
New Tap Device 에 탭 디바이스이름을 넣고 로컬 브릿지 생성을 한다.
탭 디바이스는 어댑터에 머릿말로 tap_ 이 붙기 때문에 tap 이라는 이름은 삼가하자 ㅎㅎ

tap 디바이스가 생성되었는지 SSH 에서 확인한다.

DHCP 서버 설치

SecureNAT은 Virtual DHCP 서버가 포함돼 있었는데, 로컬 브리지로 설정하면 DHCP 서버도 구현해줘야한다. dnsmasq 소프트웨어로 DHCP서버를 구축하겠다.

설정할 NAT 주소 정보
네트워크 아이디 10.255.255.0
서브넷마스크 255.255.255.0 (/24)
게이트웨이 10.255.255.254
DHCP 할당 범위 10.255.255.100 – 10.255.255.250

dnsmasq 설치

RHEL 6, 7

yum install dnsmasq

Debian 9
apt install dnsmasq

dnsmasq 설정

/etc/dnsmasq.conf 를 에디터로 열어서 보기좋게

맨위에 있는 이 주석 라인 밑에 DHCP 설정값을 입력해야지.

를 입력해준다.

port=0 은 dnsmasq 가 기본적으로 DNS서버를 구현하는데 필요없어서 비활성화하였다.
필요한 경우 dns-server 옵션을 제거 후 기본 포트인 53으로 설정해서 쓰면 된다.

dnsmasq 재시작

systemctl restart dnsmasq

 

daemon 스크립트 변경

생성한 TAP 인터페이스에 아이피를 할당해야한다.
SoftEther VPN 서버가 실행될 때마다 자동으로 할당해주기 위해
/etc/init.d/vpnserver  를 에디터로 수정한다. (RHEL 7 기준)

데비안/우분투의 경우 스크립트가 조금 다르다. 주의.
어 그런데, 데비안/우분투 계열 최신 배포판에는 ifconfig 이 없는걸로 아는데??

수정한 데몬적용 및 서버 재시작

TAP 인터페이스에 아이피주소가 할당되었는지 확인.

 

VPN 서버 연결 테스트

10.255.255. 로 정상적으로 아이피를 부여받았다.

게이트웨이 아이피에 핑도 잘 된다.

IP 포워드

바로 위 상태까지 진행했다면, 당연히 인터넷이 되질 않는다. 내부 네트워크 (tap_sevpn)에서 인터넷(eth) IP를 이용해 나갈 수 있도록 포워딩을 해야한다.

/etc/sysctl.d/1-ipv4_forward.conf 를 생성 혹은 수정한다.

아래명령을 통해 sysctl 를 적용한다.

iptables POSTROUTING rule 추가

위는 IP 주소를 지정해야한다. 일반적인 서버에 그럴 일 없지만 IP주소가 동적아이피인경우

으로 사용한다.

iptables 저장

iptables 룰은 iptables 서비스가 재시작되거나 시스템이 재부팅되면, 룰이 날라가버린다.
이를 방지하기 위해 iptables를 유지시켜주는 프로그램을 설치한다. (RHEL 7 기준)

 

기타 참고사항

iptables 를 첫 실행시 iptables의 기본 방화벽이 설정되어 DHCP 서버가 차단되는 불상사가?? 있었다. 이 경우 iptables 룰을 제거 후, 다시 설정한 뒤 save를 하자.

iptables 룰 제거 명령 (참고: https://serverfault.com/questions/200635/best-way-to-clear-all-iptables-rules)

SoftEther VPN 서버 구축 (3) – SoftEther VPN Client로 VPN 연결

SoftEther VPN Client

SoftEther VPN 에서 제공하는 VPN Client 또는
VPNGate 에서 제공하는 SoftEther VPN Client + VPN Gate Client Plugin 을 사용한다.

설치 과정 생략.

VPN 어댑터가 없는경우 어댑터를 추가한다는 메시지가 뜰수있다.

Add VPN Connection 을 누른다.

SoftEther VPN Client

이전단계에서 생성한 계정과 서버 호스트네임으로 프로필을 생성한다.

생성된 VPN 프로필에 연결을 하면

성공.

SoftEther VPN 서버 구축 (2) – 계정 및 SecureNAT 설정

SoftEther VPN Manager for Windows

를 실행하여 관리할 서버에 접속 후

가상허브 VPN 을 선택 후 Manage Virtual Hub 를 클릭

계정생성

Manage Users를 클릭.

계정 새로만들기 (New) 클릭.

사용자 이름, 사용자 ID, 패스워드를 설정하고 확인을 누른다.

계정이 생성됨을 확인하였으면, 창을 닫는다.

SecureNAT 설정

가상허브 관리창에서

Virtual NAT and Virtual DHCP Server (SecureNAT) 을 클릭.

Enable SecureNAT 을 클릭하면 SecureNAT이 활성화 됨.

SecureNAT 의 네트워크주소를 변경하고자 할 때

굳이 건들 필요가 없으므로, 이 섹션은 스킵해도 됩니다.

SecureNAT Configuration 을 클릭.

원하는 NAT 주소로 변경한다.
내부네트워크 사정으로 192.168.30.0/24 를 사용할 수 없거나, 접속클라이언트가 200 세션이상 뛰어넘는다는 등의 경우에 특히 필요할 것이다.

보안설정

Encryption and Network 를 클릭

암호 알고리즘을 선택, 아래 ECDHE-RSA- 가 가장 강력하지만, VPN으로 쓰기엔 처리속도가 매우 느리다. 메신저등의 용도로 쓰는 경우가 아니라면, AES128-SHA 또는 AES128-GCM-SHA256 을 추천한다.

VPN over ICMP / DNS Settings는 필요한 경우 설정한다.

확인을 누르면 VPN을 사용할 수 있는 기본적인 설정은 끝났다.

SoftEther VPN 서버 구축 (1) – SoftEther VPN을 이용한 겁나 쉬운 VPN 서버 구축

SoftEther VPN

SoftEther VPN 은 Tsukuba University 에서 만든 겁나 좋은 VPN 소프트웨어다.

  • 서버 소프트웨어는 다양한 플랫폼에서 지원하고 있다.

나는 Centos 7 로 구축해야지.

SoftEther VPN 공식 사이트에서는 리눅스플랫폼의 경우 RHEL (Centos, Fedora) 계열의 배포판을 매우 권장하고 있다.

 

Download

이곳에서 각 플랫폼별로 파일을 제공한다. 리눅스는 빌드해서 써야되나보다.
VPN 서버를 구축할 거니깐 SoftEtherVPN Server 리눅스 tar.gz 파일로 내려받는다.

 

SoftEther VPN Server Download

 

설치

라이브러리 설치

SoftEther VPN 패키지 설치에 필요한 라이브러리를 먼저 설치한다.

RHEL7 (Centos 7, Fedora >=19)

Debian (Ubuntu)

또는 구버전 OS인 경우 apt-get

패키지 압축해제

다운받은 tar.gz 파일을 압축한다. tar xvzf [받은파일명]

 

프로그램 생성

vpnserver 디렉토리가 생성됨을 알 수있다.
cd 명령으로 vpnserver 디렉토리로 접속한다.
[[email protected] ~]# cd vpnserver/
[[email protected] vpnserver]#

make 를 이용해 실행파일을 생성한다.

License Agreement 에 동의한다. 1 입력 후 엔터를 누르면 된다… 과정이 두번 정도 더 있다.

 

이게 뜨면 됐겠지.

 

VPN 서버위치

생성된 vpnserver의 위치를 변경할거다.

 

VPN 서버 실행파일 권한변경

보안을 위해 vpnserver 관련파일의 권한을 root 만 손댈수 있도록 변경해준다.

 

vpnserver 서비스 등록

/etc/init.d/vpnserver 파일을 생성 및 수정하여 아래와 같은 스크립트를 넣는다.

데비안 계열 (우분투 포함) 사용자는 설정 방법이 좀 다르다. 자세한건 인터넷을 참조

데몬 스크립트 권한 수정

데몬 적용

서버 시작

 

서버 셋팅

여기서 이번엔 SoftEther VPN Server Manager for Windows 를 내려받아 설치 및 실행시킨다.

새로운 설정 (New Settings) 를 눌러 VPN서버와의 연결을 설정한다.
softether vpn manager
포트는 443이 HTTPS 포트라서 이미 쓰고 있는 경우가 생긴다면 5555포트 등으로 시도한다.

첫 접속 시도시 관리자 비밀번호를 설정하라는 메시지가 뜬다. 설정해주자.


난 전문가가 아니니 VPN을 쉽게쉽게 설정해 줄 팝업을 이용한다.
Remote Access VPN Server 를 선택 후 다음.

초기화됩니다. – 예.

VPN 가상 허브의 이름을 주라고 한다. 상관없으니 기본값인 VPN 이라고 명명하겠다.

SoftEther VPN 서버 설정시 DDNS 를 강제이자? 무료로 가입시켜준다. 확인하면 닫는다.

닫으면 IPsec / L2TP 설정창이 뜬다.

암호화되지 않는 L2TP 서버, Ether IP / L2TPv3 over IPsec 들은 우리와 크게 친화적이지 않으니,
L2TP over IPsec 만 체크한다.

아래 있는 IPsec pre-shared 키는 약간의 비밀아이디 같은건데, 잊기 쉬우므로 그냥 확인을 누른다.

VPN Azure Cloud… 도 친하지 않으므로 그냥 사용 안 함으로 설정한 뒤 확인을 누른다.

마지막 나머지 설정을 하라고 하는데, 우선 패스하겠다.
창을 닫는다.

여기까지 과정을 마쳤으면 OpenVPN 까지 기본으로 설정된다.

 

방화벽 설정에 대하여

방화벽이 설정되어있다면, VPN 서버에 대한 방화벽을 허용해 주자.
SoftEther VPN 은 기본적으로 5555 포트를 사용하며,
기본값으로 설정되어있는 포트는 443, 993, 1194, 5555 포트로
993 포트는 IMAP (메일서버),
1194 포트는 OpenVPN 의 기본포트고, 443 포트는 HTTPS 서버의 포트다.
ISP/회사/학교/China Great Firewall 등 특수한 환경에서 VPN 포트를 차단할 가능성이 높기때문에, 통상 사용하는 443 포트도 기본적으로 쓰인다. 웹서버와 겹치기 때문에, HTTPS 서버를 같이 운용한다면 포트를 제거해줘야 정상적으로 운용할 수있다.

iptables의 경우

이건 5555 포트만을 위한 예시이며, 상황에 맞게 당연히 변경해야한다. OpenVPN는 UDP를 기본적으로 사용하는듯.

 

나머지 설정은 다음포스트에서!

해외인터넷 최상의 핑 (RTT) (4) – VPN 으로 핑 줄여보기

VPN 을 통해 국제핑을 줄여보자

이전 포스트에선 VPN 이라는 좋은 걸 알았다. 이번엔 VPN 을 사용하여, 어떻게 핑이 줄게 되는지 실험을 해보겠다. VPN 은 무료로 이용할 수 있는 VPN Gate를 이용한다.

VPN Gate + SoftEther VPN 를 통한 실제 핑 실험

사례 1 – 홍콩서버

실험을 위해 어느 홍콩 서버의 아이피를 가져왔다. (실제 어떤 서버인진 모른다.)

traceroute from korea to hong kong홍콩의 아이피 인데 112.174.83.182 (KT) -> Tokyo (tok02) PCCW -> Tokyo (tok01) SoftLayer -> Hong kong (hkg01) SoftLayer -> 216. 홍콩서버
이런식으로 홍콩으로 가는데 일본을 거쳐서 통행을 한다.

핑은 87ms 이다.

우리나라 국제 트래픽의 90% 는 일본을 거치게 된다고 한다. 지리적인 이유가 가장 커보인다.
북쪽과 서쪽은 체제유지에 열광하는 공산주의, 남쪽으로는 멀리 펼쳐지는 빈 공터, 이런 이유로
많은 트래픽을 일본에 우선 연결한 것으로 보인다.

홍콩으로 바로 접속하면 빠를까?

VPNGate SoftEther VPN

아쉽게도 VPNGate에 Hong Kong 서버가 없었다. 있더라도 나는 KT를 이용하기에 KT가 위의 결과 처럼 홍콩으로 바로 보내준다는 보장도 없다.

나의 예전 경험에 의하면 국내에서 홍콩으로 바로 보내는 통신사는 LG DACOM (구 Xpeed) 이었던걸로 기억한다. 물론 VPN Gate 에 LG 유플러스 인터넷 서버가 없었다. (왜 죄다 SK랑 LG야… ㅠㅠ)

노다지

서버리스트에 우리나라 국내 모 대학교 서버가 있었다.

연결 후

softether vpngate ping87ms 의 핑이 50ms 로 줄었다. 37ms, 항상 도쿄로 보냈던 KT 홍콩 연결을, 국내 모 대학교SNU 네트워크에 연결해 직접 홍콩으로 접속해 절반에 가까운 핑을 절약하였다.

vpngate tracert blocked

방화벽에 의해 경로추적은 차단되었지만, 다른 방법으로 알아낸 값으로,
모 대학 네트워크SNU는 홍콩 (HKIX) 에서 LG DACOM 또는 KISTI 라는 기관으로 연결되는 듯 하다.

사례 2 – 블라디보스토크

이번엔 블라디보스토크의 어느 서버 아이피를 가져왔다.

VLADIVOSTOK PING???

VLADIVOSTOK

홍콩보다 가까워 보이는데 290ms 라니!?

그렇다.

우리 케이블은 러시아와 연결되어 있지않다. 아마 러시아의 동쪽은 지방이라 불리는 도시들만 가득해서 그럴 것이다. 우리나라와 연결한들 상업적으로 득이 될게 없다.

경로추적결과

이번 경로는 유추하기가 어렵다만,
KT > PCCW 일본 > PCCW 홍콩 > PCCW 베이징 > ? > Rostelecom 러시아 하바로프스크 > 블라디보스토크 순으로 연결되는 것 같다. ISP 에도 보안이 있으므로 정확한 정보가 안나오는건 당연하다.

일본을 경유해 갈 순 없을까?

위 해저케이블 사이트에 블라디보스토크 쪽 (정확히 Nakhodka)에 일본의 Naoetsu 라는 지역에 연결 된 선이 있다고 한다.
소유주는 Rostelecom (러시아) 과 KDDI (일본).
그럼 간단하다. 일본 KDDI 를 사용하는 VPN 에 연결해 보면 될 것 같다.

VPNGate KDDIdion은 KDDI 의 옛날 이름인듯 하다

연결 후 핑 테스트

97ms 의 결과를 가졌다. VPN을 통한 경로우회를 통해 290ms 에서 약 200ms 를 줄일 수 있었다.

 

해외인터넷 최상의 핑 (RTT) (3) – 핑을 줄이는 방법

해외인터넷의 핑을 최대한 줄여보자

이전 포스트엔 핑에 대해서 알아보았다. 그럼 핑이 늘어나는 요인부터 어떻게 줄여볼 수 있을지 서술해보겠다.

핑이 늘어나는 요인

핑이 늘어나는 요인은 여러가지가 있다.

  1. 물리적 연결 거리가 늘어나는 경우
  2. 패킷을 처리해 줄 각 네트워크 기기들의 처리시간이 그렇게 빠르지 않는경우, 혹은 패킷을 처리하는 네트워크 기기 사이에 패킷을 검열하는 보안장비 (방화벽)가 있는 경우
  3. 보내는 패킷의 양이 많은 경우
  4. 통신 선의 트래픽 부하량이 많은 경우 : 만약 이 경우가 발생하면 QoS 라는 기술을 사용해서 모든 트래픽이 원할하게 처리가 되어야한다.
  5. 송신자 및 수신자 컴퓨터의 처리가 느린경우
  6. 네트워크 장비가 손상된 경우

어떻게 핑을 줄여야 할까?

핑을 줄이는 방법 중, 개인 이용자의 우리는 ISP 에서 제공하는 대로 사용할 수 밖에 없다. 우리가 라우팅라우터 간의 경로를 선택하는 행위를 말한다.을 바꿔달라니 어떻니는 비즈니스 레벨이기에 그냥 주는대로 써야한다.

ISP 에서 제공하는 인터넷은 역시나 핑을 줄일 수도 없고, 어떤 것도 하지 못한다. 간혹 아파트나, 주거단지 내 회선 부하가 심해서 로컬 단위부터 심한 핑폭 을 느낄 수 있기도 하다. 특히 케이블방송에서 제공하는 인터넷이 이 현상이 많은 듯 하다.

인터넷 통신사에 대해

우리나라에 태평양 국제 케이블을 이용할 수 있는 권한을 가진 ISP는 KT, LG, SKT, KINX 뿐 밖에 없다시피하다. 그럼 위 통신사 말고 다른 회사는 해외와의 통신을 어떻게 하냐? 라면, 국제 케이블에 타사의 고객들도 같이 동승시켜 주는 것이다. 규모가 작은 통신 회사는 아무래도 국제케이블 설비, 참여 같은 일은 조금 무리일 것이다. 이것은 아무래도 국제트래픽 이용량의 제약이 있을 것이다. 주인은 다른 사람이니까. 심지어 인터넷을 차별화하는 망 중립성과도 조금 연관된다.

 

방법이 존재하나?

해답은 가상 사설 네트워크 (VPN, Virtual Personal Network) 이다. VPN은 말 그대로 가상의 사설망을 구현해주는 것으로. 회사의 인트라넷에 연결하는 목적으로도 쓰고, VPN은 라우터가 패킷을 대신 전달해주는 역할도 한다. VPN은 VPN서버와 클라이언트간 패킷 암호화 된 통신도 가능해 보안 목적으로도 쓰인다.

VPN 으로 어떻게 하나?

VPN은 패킷을 대신 전달해준다. 상용 VPN 서버는 우리가 가려는 목적지 (서버) 까지 굉장히 최적의 경로를 제공해 줄 수도 있고, 아닐 수도 있다. ????
각 인터넷 업체마다, IP 주소 마다 가지는 경로는 모두 다르기 때문이다.
최적의 경로로 탑승하는지는 직접 확인해 비교해 볼 수 밖에없다.
그런데,  IP 주소 마다 가지는 경로는 모두 다르다고 했다. 이게 무슨 말이냐면, 원할하고 빠른 경로를 가지는 VPN 서버도 있다는 뜻이다.
이 서버들에게 패킷을 대신 전해달라고 하면, 핑이 높은 구간을 피할 수 있다는 것이다.

VPN 종류 및 어디서?

VPN을 제공하는 업체도 많고, 종류도 다양하다. 대표적으로 PPTP, L2TP, OpenVPN 등 여러가지가 있는데.
앞의 PPTP, L2TP 는 조금 까다롭기 때문에흔한 소프트웨어 방식과는 거리가 멀기 때문이다. 오픈 소스 소프트웨어로 제작된 OpenVPN 을 기반으로 주로 이용한다. 각 회사별로 자체 제작한 VPN 프로그램도 있다.

VPN을 제공하는 유명한 업체들
  • 미꾸라지 VPN (한국)
  • ExpressVPN
  • NordVPN

등이 있다. 아니 무수히 많이 있다.

무료로 VPN 을 제공해주는 곳도 있다

Public VPN 이라고 불리는데, 주로 개인이나 비영리 단체에서 자유로운 인터넷 기여를 위해, 서버의 자원을 대여해주는것으로. VPN Gate 등이 있다.

서버를 임대해 개인 VPN 서버를 구축

하는 방법도 있다. 직접 관리해야하고, 서버 구축이 힘들지만, IP 주소를 독점하여 사용할 수 있고 가격도 일정사용량이 넘는다면 VPN 업체보다 저렴하다는 것이 장점이다.