Azure Point-to-Site VPN 터널 설정 방법
Dec 17, 2024
이 글에서는 Windows 서버에서 실행 중인 Netwrix Access Analyzer 를 통해 포인트-투-사이트 VPN 연결을 설정하는 단계를 안내합니다. 이를 통해 모든 Azure SQL 데이터베이스를 찾아내고 모니터링할 수 있습니다.
배경
Microsoft Azure 클라우드에서 SQL 데이터베이스를 호스팅하는 경우, 외부 네트워크에서 해당 데이터베이스에 액세스해야 할 수 있습니다. 연결을 설정하는 방법은 두 가지가 있습니다:
- 공용 엔드포인트— 외부 애플리케이션이 액세스할 수 있도록 각 Azure SQL 데이터베이스에 대해 공용 엔드포인트를 정의할 수 있습니다. 보안을 위해 데이터베이스 액세스가 필요한 외부 네트워크 주소 풀의 IP 주소(클라이언트 주소)를 화이트리스트에 추가해야 합니다.
- 가상 사설망(Virtual Private Network, VPN)— 또는 외부 네트워크 또는 애플리케이션과 Azure SQL 데이터베이스를 호스팅하는 Azure 환경 사이에 VPN 연결을 설정할 수 있습니다. 이 옵션은 Azure SQL 데이터베이스에 대한 공용 엔드포인트를 정의할 필요가 없습니다. VPN 연결은 사이트-대-사이트 또는 포인트-대-사이트 중 하나일 수 있습니다:
- 사이트-대-사이트 VPN 연결을 통해 전체 외부 네트워크에서 실행되는 애플리케이션이 Azure SQL 데이터베이스에 원활하게 액세스할 수 있습니다.
- 포인트-대-사이트 VPN 연결은 Azure 외부에 있는 개별 클라이언트 컴퓨터에 대해 적용됩니다. 이것이 이 블로그 게시물에서 다루는 옵션입니다.
Azure 사이트 간(P2S) VPN 설정
1단계. 루트 인증서를 생성합니다.
Azure 인증서 인증을 사용할 때 인증에는 클라이언트 인증서가 필요하므로, 첫 번째 단계는 자체 서명된 루트 인증서를 만들고 내보내는 것입니다. 아래의 PowerShell 스크립트를 Windows 10 또는 Windows Server 2016을 실행 중인 컴퓨터에서 실행하세요. (또는 Windows 10 SDK가 설치되어 있으면, 자체 서명 인증서를 만들기 위해 makecert 유틸리티를 사용할 수 있습니다.)
$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject “CN=AzureRootCert” -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation “Cert:CurrentUserMy” -KeyUsageProperty Sign -KeyUsage CertSign
이 스크립트는 AzureRootCert 라는 루트 인증서를 Certificates-Current userPersonalCertificate에 생성합니다. Certificate Manager 도구(certmgr.exe)를 사용하면 확인할 수 있습니다:
2단계. 클라이언트 인증서를 생성합니다.
아래 PowerShell 스크립트를 사용해 클라이언트 인증서를 생성하세요. 이 스크립트는 생성일로부터 6년 동안 유효한 키를 생성합니다. 필요에 따라 기간 수를 조정하세요.
New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
-Subject “CN=AzureChildCert” -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation “Cert:CurrentUserMy” `
-NotAfter (Get-Date).AddYears(6)`
-Signer $cert -TextExtension @(“2.5.29.37={text}1.3.6.1.5.5.7.3.2”)
이 작업은 다음 이름의 클라이언트 인증서를 생성합니다: AzureChildCert 는 ‘Certificates-Current userPersonalCertificate’에 저장됩니다. Certificate Manager Tool을 사용해서도 확인할 수 있습니다:
3단계. 루트 인증서의 공개 키 부분을 내보내세요.
다음으로 1단계에서 생성한 루트 인증서의 공개 키 부분을 내보내야 합니다.
3.1. 시작하려면 아래와 같이 Certificate Export Wizard를 실행하세요:
"Export..." option highlighted."
decoding="async"
/>
3.2. Certificate Export Wizard의 시작 화면에서 Next 를 클릭하여 계속합니다.
3.3. “Export Private Key” 화면에서 기본 옵션인 “No, do not export the private key”를 선택한 다음 Next 을 클릭합니다.
3.4. “Export File Format” 화면에서 Base-64 encoded X.509 (.CER) 옵션을 선택하고 Next 를 클릭합니다.
3.5. “File to Export” 화면에서 인증서를 저장할 위치를 찾아 선택하고, 인증서 이름을 지정한 다음 Next 를 클릭합니다.
3.6. 다음 화면에서 Finish 를 클릭하여 인증서를 내보냅니다. 이 파일의 정보는 Azure VPN 구성을 위한 이후 단계에서 필요합니다.
4단계. 클라이언트 인증서를 내보내기(선택 사항).
이 단계는 인증서를 생성하는 데 사용한 서버 외의 서버에서 Azure로 VPN 연결을 구성해야 하는 경우에만 필요합니다.
4.1. 아래와 같이 인증서 내보내기 마법사를 실행합니다:
4.2. 인증서 내보내기 마법사의 시작 화면에서 다음 을 클릭하여 계속합니다.
4.3. 개인 키 내보내기 화면에서 예, 개인 키를 내보냅니다 를 선택한 다음 다음 을 클릭합니다.
4.4. Export File Format 화면에서 기본 옵션을 선택합니다:
4.5. 클라이언트 인증서에 대한 비밀번호를 지정합니다. 이 인증서는 Azure VPN에 인증하는 데 사용할 수 있으므로, 강력한 비밀번호로 보호해야 합니다.
4.6. File to Export 마법사 화면에서 파일 이름을 입력한 다음 다음.
4.7. 설정을 확인한 다음 마침을 클릭하여 인증서를 내보냅니다.
5단계. 가상 네트워크 게이트웨이를 구성합니다.
다음으로 Azure 포털에 로그인한 후 가상 네트워크 게이트웨이를 찾아야 합니다. 해당 항목이 없으면 계속 진행하기 전에 하나를 생성하세요(가상 네트워크 및 Gateway 서브넷 생성에 대한 Azure 문서를 참고하세요).
5.1. 가상 네트워크 게이트웨이 하이퍼링크를 클릭하세요. 제 것은 Gateway-pkjuebl4yqscro 입니다.
5.2. 구성 화면에서 Point-to-site configuration 링크를 클릭하세요.
5.3. 3단계에서 내보낸 루트 인증서를 찾아서 원하는 텍스트 편집기로 여세요. 인증서 내용은 아래 스크린샷과 유사하게 보일 것입니다. 저는 인증서 데이터를 Azure에 영구적으로 남길 의도가 없기 때문에, 인증서 데이터의 전체 내용을 일부러 모두 보여드리고 있습니다. 이 인증서를 만든 것은 이 블로그 글을 작성하기 위한 목적뿐입니다.
5.4. 텍스트 편집기에서 줄 바꿈을 삭제하세요. Azure는 인증서 데이터를 모두 한 줄에 넣을 것으로 기대합니다. 키의 어떤 문자도 삭제하지 않도록 주의하세요! 그런 다음 인증서 데이터를 클립보드에 복사합니다.
5.5. 이제 Azure 포털에서 가상 네트워크 게이트웨이의 Point-to-Site 구성 화면으로 다시 이동하세요. 페이지의 Root Certificate 섹션에서:
- 인증서의 이름을 지정하세요.
- 5.3단계에서 인증서 내용을 Public certificate data
- 다음이 올바르게 설정되었는지 확인하세요. Tunnel Type을(를) IKEv2 and SSTP (SSL)로 설정하고, Authentication Type을(를) Azure certificate로 설정합니다.
저장 을 클릭해 설정을 저장합니다.
6단계. VPN 클라이언트 패키지를 다운로드한 후 실행합니다.
6.1. 이 시점에서는 아래 스크린샷에 표시된 링크를 사용해 VPN 클라이언트를 다운로드해야 합니다:
6.2. 다운로드 파일은 세 개의 디렉터리가 들어 있는 zip 파일입니다. 그중 두 디렉터리에는 32비트 및 64비트 플랫폼용 VPN 클라이언트 소프트웨어 설치 파일이 들어 있습니다. 세 번째 디렉터리(이름은 Generic )에는 VPN 설정 정보 파일이 들어 있습니다.
64비트 Windows 운영 체제를 사용하고 있다고 가정하면 WindowsAmd64 디렉터리로 이동한 뒤 VPN 클라이언트 패키지를 실행합니다. 그러면 vnet-xxxxxxx 라는 이름의 Azure vnet이 생성됩니다. 제 경우에는 이름이 vnet-fvmisql 였습니다.
7단계. VPN 연결을 설정합니다.
새 VPN 연결 프로필을 선택한 다음 Connect을 클릭하세요. 사용하시는 환경에서 작동한다면(진심으로 그럴 거라 바랍니다), 여기서 완료입니다!
하지만 작동하지 않을 수도 있습니다. 다음 오류가 표시될 수 있습니다: “Error 798 – A certificate could not be found that can be used with this Extensible Authentication Protocol”. 그런 경우에는 아래에 설명된 대로 정상 동작하는 VPN 연결을 수동으로 설정해야 합니다.
8단계. 필요한 경우 VPN 연결을 수동으로 설정합니다.
다른 컴퓨터에서 VPN 연결을 설정할 계획이라면, 해당 컴퓨터에 클라이언트 인증서를 가져와야 합니다.
8.1. '네트워크 및 공유 센터'를 열고 Set up a new connection or network.
8.2. “연결 옵션 선택” 화면에서 직장에 연결 을 선택한 다음 다음을 클릭합니다.
8.3. “이미 사용 중인 연결을 사용하시겠습니까?” 화면에서 아니요. 새 연결을 만듭니다 옵션을 선택한 다음 다음 을 클릭합니다.
8.4. “어떻게 연결하시겠습니까?” 화면에서 내 인터넷 연결을 사용(VPN) 옵션을 클릭합니다
8.5. Azure에서 다운로드한 VPN 클라이언트 패키지의 일반 폴더로 이동합니다. VpnSettings 파일을 열고 Azure VPN 게이트웨이의 공용 이름을 복사합니다.
8.6. “연결할 인터넷 주소를 입력하세요” 화면에서 복사한 텍스트를 “인터넷 주소” 상자에 붙여넣습니다. 대상 이름을 입력하고, 나머지 옵션은 기본 설정 그대로 둡니다. 만들기 를 클릭합니다.
8.7. 다시 Network and Sharing Center 로 이동한 다음 Change adapter settings 링크를 클릭하세요. 설정한 VPN 연결을 마우스 오른쪽 버튼으로 클릭하고 Properties 를 선택합니다. VPN 주소 또는 호스트 이름을 확인하세요.
8.8. [보안] 탭으로 이동합니다. “Data encryption” 아래에서 Require encryption (disconnect if server declines) 옵션을 선택하세요. “Authentication”의 경우 Microsoft Smart Card or other certificate (encryption enabled) 옵션을 선택합니다.
8.9. 인증(Authentication) 섹션에서 Properties 버튼을 클릭하세요. Use a certificate on this computer 옵션을 선택한 다음 OK 를 클릭합니다.
8.10. [Networking] 탭을 클릭한 다음 Internet Protocol Version 4 (TCP/IPv4) 옵션을 선택하세요. 그런 다음 Properties 버튼을 클릭합니다.
8.11. Advanced 버튼을 클릭하세요. [IP Settings] 탭에서 Use default gateway on remote network 확인란의 선택을 해제한 다음 OK 를 클릭합니다.
8.12. 작업 표시줄에서 네트워크 아이콘을 클릭합니다. 방금 생성한 Azure VPN 연결 프로필을 선택한 다음 Connect을 클릭합니다.
이제 Azure VPN 게이트웨이에 연결되었으며, 프라이빗 엔드포인트를 사용하여 Azure SQL 데이터베이스와 상호 작용을 시작할 수 있습니다.
Netwrix StealthAUDIT를 실행하는 온프레미스 서버에 VPN 게이트웨이를 구성하면, Netwrix StealthAUDIT for Azure SQL 작업을 실행하고 Azure SQL 환경을 감사(오디팅)하기 시작할 수 있습니다.
SQL Server 데이터베이스 보안 강화
SQL Server에는 매우 민감한 정보가 자주 포함되므로 공격자에게 매력적인 주요 표적이 됩니다. SQL 데이터베이스 인스턴스는 네트워크 전반에 걸쳐 배포되는 경우가 많기 때문에, 데이터베이스 관리자(DBA)는 그 안에 포함된 민감한 데이터를 적절하게 보호할 수 있는 효과적인 도구가 필요합니다.
Netwrix Access Analyzer 는 도움을 줄 수 있습니다. 사용자 권한과 데이터베이스 구성을 파악해 보고하고, 철저한 취약점 평가를 제공하며, Azure SQL 데이터베이스에 저장된 민감한 데이터를 찾아낼 수 있습니다. 또한 사용자 활동을 면밀히 모니터링 하며, 실행 중인 SQL 문의 유형 또는 사용자 이름, 애플리케이션, 실행 시간과 같은 여러 기준을 조합해 특정 작업을 감사(audit)할 수도 있습니다.
Netwrix Access Analyzer로 SQL을 안전하게 보호하세요
자주 묻는 질문
포인트-투-사이트 VPN과 사이트-투-사이트 VPN이란 무엇인가요?
포인트-투-사이트 VPN 연결은 Azure 외부에 있는 특정 서버 또는 데스크톱에 해당하는 반면, 사이트-투-사이트 VPN 연결은 전체 네트워크를 Azure에 연결하는 용도입니다.
Azure 점대점(point-to-site)에서 지원하는 VPN 유형은 무엇인가요?
Azure 점대점(point-to-site) VPN은 Secure Socket Tunneling Protocol (SSTP), OpenVPN, IKEv2 VPN의 세 가지 VPN 연결 유형을 지원합니다.
공유하기
더 알아보기
저자 소개
Joe Dibley
보안 연구원
Netwrix의 보안 연구원이며 Netwrix Security Research Team의 일원입니다. Joe는 Active Directory, Windows 및 다양한 엔터프라이즈 소프트웨어 플랫폼과 기술 분야의 전문가로, 새로운 보안 위험, 복잡한 공격 기법, 그리고 이에 대한 대응(완화)과 탐지 방법을 연구합니다.