메인 항목으로

[NAS 전체 VPN 적용] 시놀로지 NAS VPN 적용 방법

VPN 설정

시놀로지 NAS기준 ExpressVPN을 가정한 방법을 설명 합니다.

1. DSM에 접속해 "제어판 > 네트워크 > 네트워크 인터페이스"로 들어가 "생성"을 누릅니다.

NAS_VPN1.jpg

2. "VPN 프로파일 생성"을 선택하고 OpenVPN 항목을 선택 합니다.

NAS_VPN2.jpg

3.아래와 같이 값을 입력하고 .ovpen에 VPN 제공사에서 다운받은 원하시는 지역의 .opvn 파일을 업로드 합니다.

NAS_VPN3.jpg

4. 아래와 같이 고급 설정 값을 선택해 줍니다.

NAS_VPN4.jpg

5. "제어판 > 네트워크 > 네트워크 인터페이스"에 들어가보면 아래와 같이 VPN  프로파일이 생성됐음을 확인할 수 있으며 상단의 "연결"을 클릭합니다.

NAS_VPN5.jpg

자동 재연결 설정

이제 킬스위치 (VPN이 끊어질 시 자동 재연결)을 설정할 차례 입니다.

아래 내용으로 "killswitch.sh" 파일을 생성하고, DSM의 작업스케줄러에서 "생성", "예약된 작업", "사용자 정의 스크립트"로 들어가서 아래의 "bash /경로값/killswitch.sh"를 입력해 줍니다. (주기는 5분 주기로 설정해 줍니다.)

#-------------------------------------------------------------------------------
#  네트워크 작동 여부 확인
#-------------------------------------------------------------------------------
ping -c 1 8.8.8.8
if [ "$?" == "0" ] ; then
  echo "네트워크가 정상 작동중입니다." >> log.txt
else
  echo "네트워크가 정상 작동하지 않습니다. VPN 재연결을 시도합니다." >> log.txt
  if [[ -f /usr/syno/etc/synovpnclient/l2tp/l2tpclient.conf ]]; then
L2TP_CONFIG=$(cat /usr/syno/etc/synovpnclient/l2tp/l2tpclient.conf)
else
L2TP_CONFIG=""
fi

if [[ -f /usr/syno/etc/synovpnclient/openvpn/ovpnclient.conf ]]; then
OPENVPN_CONFIG=$(cat /usr/syno/etc/synovpnclient/openvpn/ovpnclient.conf)
else
OPENVPN_CONFIG=""
fi

if [[ -f /usr/syno/etc/synovpnclient/pptp/pptpclient.conf ]]; then
PPTP_CONFIG=$(cat /usr/syno/etc/synovpnclient/pptp/pptpclient.conf)
else
PPTP_CONFIG=""
fi

#-------------------------------------------------------------------------------
#  설정 파일 확인
#-------------------------------------------------------------------------------

# 설정 파일 연결
CONFIGS_ALL="$L2TP_CONFIG $OPENVPN_CONFIG $PPTP_CONFIG"

# VPN 프로필 개수 확인
CONFIGS_QTY=$(echo "$CONFIGS_ALL" | grep -e '\[l' -e '\[o' -e '\[p' | wc -l)

# VPN 프로필이 하나일 때만 작동하도록 하기
if [[ $CONFIGS_QTY -eq 1 ]]; then
echo "[I] 1개의 VPN 프로필이 있음. 계속 진행..."
elif [[ $CONFIGS_QTY -gt 1 ]]; then
echo "[E] $CONFIGS_QTY 개의 VPN 프로필이 있음. 이 스크립트는 1개의 VPN 프로필까지만 지원이 가능함. 종료..."
exit 1
else
echo "[W] VPN 프로필이 존재하지 않음. VPN 프로필 생성 필요. 종료..."
exit 1
fi

#-------------------------------------------------------------------------------
#  변수 설정
#-------------------------------------------------------------------------------

PROFILE_ID=$(echo $CONFIGS_ALL | cut -d "[" -f2 | cut -d "]" -f1)
PROFILE_NAME=$(echo "$CONFIGS_ALL" | grep -oP "conf_name=+\K\w+")
PROFILE_RECONNECT=$(echo "$CONFIGS_ALL" | grep -oP "reconnect=+\K\w+")

if [[ $(echo "$CONFIGS_ALL" | grep '\[l') ]]; then
PROFILE_PROTOCOL="l2tp"
elif [[ $(echo "$CONFIGS_ALL" | grep '\[o') ]]; then
PROFILE_PROTOCOL="openvpn"
elif [[ $(echo "$CONFIGS_ALL" | grep '\[p') ]]; then
PROFILE_PROTOCOL="pptp"
fi
/usr/syno/bin/synovpnc kill_client
sleep 20
echo conf_id=$PROFILE_ID > /usr/syno/etc/synovpnclient/vpnc_connecting
echo conf_name=$PROFILE_NAME >> /usr/syno/etc/synovpnclient/vpnc_connecting
echo proto=$PROFILE_PROTOCOL >> /usr/syno/etc/synovpnclient/vpnc_connecting
/usr/syno/bin/synovpnc connect --id=$PROFILE_ID
sleep 20

#-------------------------------------------------------------------------------
#  VPN 연결 여부 다시 확인
#-------------------------------------------------------------------------------

if [[ $(/usr/syno/bin/synovpnc get_conn | grep Uptime) ]]; then
echo "[I] VPN이 성공적으로 재접속됨. 종료..." >> log.txt
exit 1
else
echo "[E] VPN 재접속에 실패. 종료..." >> log.txt
exit 1
fi
sleep 20
echo conf_id=$PROFILE_ID > /usr/syno/etc/synovpnclient/vpnc_connecting
echo conf_name=$PROFILE_NAME >> /usr/syno/etc/synovpnclient/vpnc_connecting
echo proto=$PROFILE_PROTOCOL >> /usr/syno/etc/synovpnclient/vpnc_connecting
/usr/syno/bin/synovpnc connect --id=$PROFILE_ID
sleep 20
fi

외부 DSM 접속 허용

VPN 외부에서 DSM에 접속하기 위해서는 아래와 같이 다중게이트웨이 설정이 필요합니다.

1. DSM에 접속해 "제어판 > 네트워크 > 일반"으로 들어가 "고급설정"을 선택 합니다.

NAS_VPN6.jpg

2. "다중 게이트웨이 활성화"를 체크 합니다.

NAS_VPN7.jpg

3. NAS의 IPv4를 DHCP가 아닌 수동으로 IP를 설정해 줍니다. 예를 들어 제 경우 "192.168.1.200"으로 설정했습니다.

NAS_VPN8.jpg

4. "제어판 > 네트워크 > 일반"에서 기본 게이트웨이 옆 "편집"을 눌러줍니다.

NAS_VPN9.jpg

5. "서비스 순서"를 보면 사용하는 네트워크와 VPN네트워크가 보입니다. 순서를 조정해 VPN네트워크가 상단해 위치하게 조정합니다. 반드시 상단에 있어야 VPN 뒤에 실제 사용 네트워크를 위치시킬 수 있습니다.