EdgeRouter: 사이트-투-사이트 (Site-to-Site) OpenVPN

download at 2017-07-27T21:02:42Z origin

Overview


이 문서는 2개의 Ubiquiti EdgeRouter과 OpenVPN을 사용하여 사이트-투-사이트 (Site-to-Site) VPN을 설정하는 방법에 대하여 설명합니다.

**가정: **OpenVPN을 사용하는 2개의 EdgeRouter는 서로 연결 되어 있으며 다음의 설정을 사용합니다.

Router 1:
External IP/Name: system1.dyndns.com (외부 IP 주소 사용 가능)
Internal IP: 192.168.1.1
Router 2:
External IP/Name: system2.dyndns.com (외부 IP 주소 사용 가능)
Internal IP: 192.168.2.1

라우터가 서로 다른 이름과 IP 대역을 사용하고 있다면, 다음 명령어를 통해서 설정을 변경합니다.

Steps


Step 1: 라우터 1에서 커맨드 라인에 접속하여 미리 공유된 키를 생성합니다. (설정 모드가 아닌 운운용모드에서 수행합니다).

generate vpn openvpn-key /config/auth/secret

Step 2: 미리 공유된 키를 다른 머신에 전송합니다

첫번째 방법:

   방법 A. 이 방법은 원격 시스템의 사용자 이름이 ubnt라고 가정합니다. 초기 사용자 이름을 바꾸었다면, 새로운 사용자를 생성하고 이름을 ubnt로 설정하세요. 이 방법은 ssh로의 연결이 가능하다고 가정합니다. 즉, 22번 포트 (SSH/SCP)에 인터넷으로부터 입력을 받을 수 있다는 것을 의미합니다. 외부 인터넷으로부터 입력을 받을 수 없다면, 방법 B를 시도하십시오:
sudo scp /config/auth/secret ubnt@system2.dyndns.com:/config/auth/secret

또는:

**   방법 B:** 라우터 1에서 미리 공유된 키를 확인하기:

sudo cat /config/auth/secret

결과를 클립보드에 복사하여 라우터 2에 ssh를 사용하여 로그인 한 후, 다음의 파일을 생성합니다:

cat > /config/auth/secret

클립보드의 내용을 붙여넣습니다.

CTRL-D를 입력하여 파일을 저장합니다.

만든 파일의 권한을 변경합니다:

chmod 600 /config/auth/secret

Step 3: 라우터 1 설정

 # 설정 모드로 진입합니다

configure

# OpenVPN이 vtun0을 사용하도록 설정합니다

set interfaces openvpn vtun0
set interfaces openvpn vtun0 mode site-to-site

# OpenVPN이 사용할 포트를 지정합니다

set interfaces openvpn vtun0 local-port 1194
set interfaces openvpn vtun0 remote-port 1194

# OpenVPN이 사용할 로컬 주소를 할당합니다

set interfaces openvpn vtun0 local-address 10.99.99.1

# OpenVPN이 사용할 리모트 주소를 할당합니다

set interfaces openvpn vtun0 remote-address 10.99.99.2

# OpenVPN의 리모트 시스템의 퍼블릭 주소를 지정합니다.

set interfaces openvpn vtun0 remote-host system2.dyndns.com

# OpenVPN에 secret file의 위치를 입력합니다

set interfaces openvpn vtun0 shared-secret-key-file /config/auth/secret

# (선택사항: 양쪽에 모두 설정하거나 모두 설정하지 않아야 합니다.) 압축옵션을 설정합니다

set interfaces openvpn vtun0 openvpn-option "--comp-lzo"

# 플로트 (Float), 핑 (Ping), 기타 보안 옵션을 활성화합니다 (자세한 내용은 OpenVPN의 매뉴얼을 참조하세요)

set interfaces openvpn vtun0 openvpn-option "--float"
set interfaces openvpn vtun0 openvpn-option "--ping 10"
set interfaces openvpn vtun0 openvpn-option "--ping-restart 20"
set interfaces openvpn vtun0 openvpn-option "--ping-timer-rem"
set interfaces openvpn vtun0 openvpn-option "--persist-tun"
set interfaces openvpn vtun0 openvpn-option "--persist-key"
set interfaces openvpn vtun0 openvpn-option "--user nobody"
set interfaces openvpn vtun0 openvpn-option "--group nogroup"

# EdgeRouter에 리모트 서브넷을 설정합니다

set protocols static interface-route 192.168.2.0/24 next-hop-interface vtun0

# 커밋, 저장후 설정 모드를 종료합니다

commit
save
exit

Step 4: 라우터2 설정하기

 # 설정 모드로 진입합니다

configure

# OpenVPN을 설정합니다

set interfaces openvpn vtun0
set interfaces openvpn vtun0 mode site-to-site

# OpenVPN이 사용할 포트를 지정합니다

set interfaces openvpn vtun0 local-port 1194
set interfaces openvpn vtun0 remote-port 1194

# OpenVPN이 사용할 로컬 주소를 지정합니다

set interfaces openvpn vtun0 local-address 10.99.99.2

# OpenVPN이 사용할 원격 주소를 지정합니다

set interfaces openvpn vtun0 remote-address 10.99.99.1

# OpenVPN에 리모트 시스템의 퍼블릭 주소를 입력합니다

set interfaces openvpn vtun0 remote-host system1.dyndns.com

# OpenVPN에 시크릿 파일(secret file)이 어느 위치에 저장되어 있는지 입려합니다

set interfaces openvpn vtun0 shared-secret-key-file /config/auth/secret

# (선택사항: 양쪽에 모두 설정하거나 모두 설정하지 않아야 합니다.) 압축옵션을 설정합니다

set interfaces openvpn vtun0 openvpn-option "--comp-lzo"

# 플로트 (Float), 핑 (Ping), 기타 보안 옵션을 활성화합니다 (자세한 내용은 OpenVPN의 매뉴얼을 참조하세요)

set interfaces openvpn vtun0 openvpn-option "--float"
set interfaces openvpn vtun0 openvpn-option "--ping 10"
set interfaces openvpn vtun0 openvpn-option "--ping-restart 20"
set interfaces openvpn vtun0 openvpn-option "--ping-timer-rem"
set interfaces openvpn vtun0 openvpn-option "--persist-tun"
set interfaces openvpn vtun0 openvpn-option "--persist-key"
set interfaces openvpn vtun0 openvpn-option "--user nobody"
set interfaces openvpn vtun0 openvpn-option "--group nogroup"

# EdgeRouter에 리모트 서브넷을 설정합니다

set protocols static interface-route 192.168.1.0/24 next-hop-interface vtun0

# 커밋, 저장후 설정 모드를 종료합니다

commit
save
exit

이제 완벽하게 동작해야합니다!

추가 명령어


터널링 작업이후 다음 추가 명령어를 사용할 수 있습니다.

터닐링의 상태를 확인합니다.

show interfaces openvpn
show interfaces openvpn detail
show openvpn status site-to-site

터널링 인터페이스를 다시 시작합니다.

reset openvpn interface vtun0

**Notes:  **리모트 주소와 로컬 주소는 VPN 내부에서 유일해야합니다. 각 주소는 각 머신의 로컬 서브넷 주소가 되어서는 안됩니다.

또 다른 터널링 작업을 설정하려 한다면 (라우터 1에서 라우터 3으로) vtun0을 vtun1로 변경하세요. 로컬, 리모트 포트를 다른 포트로 변경하고 (예를 들면 1195), 로컬 주소와 리모트 주소를 다른 주소로 변경하세요 (예를 들면 10.99.99.3 과 10.99.99.4).

각 라우터에 커넥션이 생성되면 라우터 바깥에 있는 장비는 접근할 수 없습니다. NAT Hairpin이 각 LAN에 설정되어 있지는 않는지 확인해보시기 바랍니다.