지난 문서에서 VPN의 접근 방법, 터널 생성 과정과 함께 패킷 전달 과정에 대해 설명했습니다. 이번 문서에서는 SSL VPN의 효율적인 활용과 내부 정보 보안에 큰 영향을 끼치는 기능과 비용과 관련된 정보에 대해 알아볼 건데요. 지난 문서부터 끊임없이 언급한 "Split tunneling(이하 스플릿 터널링)"에서부터 VPN의 정책 설정, 다중 인증 방식(Multi-factor authentication, MFA), 라이센스에 대한 내용이 바로 그것입니다. 스플릿 터널링은 효율적인 트래픽 처리와 내부 트래픽 통제에 대한 고민을 다루며 VPN 정책 설정 및 인증은 SSL VPN 사용자의 내부 진입 요건에 대해 다루죠. 그리고 라이센스는 SSL VPN 운용 중 흔히 겪을 수 있는 비용 관련 이슈입니다. #1과 #2 문서에서 SSL VPN의 정의, 구성 방법과 동작과정을 설명했다면 이 문서에서는 SSL VPN 운용을 위해 무엇을 알고 있어야 하는지에 대해 이야기해보겠습니다.
Split tunneling
가상 사설 네트워크(VPN) 분할 터널링을 사용하면 암호화된 VPN을 통해 일부 애플리케이션 또는 장치 트래픽을 라우팅할 수 있는 동시에, 다른 애플리케이션 또는 장치는 인터넷에 직접 액세스할 수 있습니다.
- 출처 : Fortinet(https://www.fortinet.com/kr/resources/cyberglossary/vpn-split-tunneling) -
Split tunneling(이하 스플릿 터널링)의 정의는 위 설명처럼 "일부 트래픽은 암호화된 VPN을 통해, 일부 트래픽은 인터넷에 직접 액세스하는 방법"을 의미합니다. SSL VPN을 통해 터널을 생성한 상태에서 모든 라우팅을 VPN으로 향하게 하는 것이 아닌 일부는 외부 인터넷으로 직접 나아가게 하는 방식이죠. 다시 말해 SSL VPN 터널을 뚫어 내부 네트워크에 접속하되, 외부 인터넷(구글, 네이버 등)을 활용해야 한다면 VPN 터널이 아닌 공유기 등의 공인 인터넷 인접 장비에서 바로 외부 인터넷으로 나아가 접속할 수 있도록 하는 것입니다.
사용자 입장에서는 외부 인터넷을 VPN이 아닌 직접 접속함으로써 빠른 속도로 접속할 수 있게 됩니다. 아무래도 VPN을 통해 내부 네트워크에 진입하였다가 다시 외부 인터넷으로 나아간다면 상대적으로 속도가 느릴 수밖에 없죠.(소위 "VPN 우회"가 이러한 방식을 통해 실현되지요.) VPN과 내부 네트워크 입장에서는 외부 인터넷으로 향하게 될 트래픽이 자신을 향하지 않고 공유기에서 직접 나가게 되므로 트래픽 부하가 감소합니다. 그러나 단점 또한 존재합니다. VPN을 통해 내부 네트워크와 연결된 상태에서 사용자가 외부 인터넷에서 바이러스나 랜섬웨어 감염 등 위험 요인에 노출된다면 내부 네트워크 또한 위험해집니다. 사용자의 컴퓨터가 랜섬웨어 등에 감염된 상태에서 내부 네트워크에 접속한다면 심각한 문제가 발생할 수 있죠. 그렇기에 스플릿 터널링은 사용자의 네트워크 환경, 내부 네트워크의 보안 환경 등 고려해야 할 요소가 많습니다. 그렇다고 해서 모든 트래픽을 VPN 터널로 돌리게 된다면 내부 트래픽이 크게 증가함과 동시에 장비의 부하가 심해질 수 있겠죠.
이렇듯 SSL VPN을 활용함에 있어서 스플릿 터널링은 대단히 중요한 기술이기에 SSL VPN 기능을 제공하는 장비들은 스플릿 터널링을 별도 기능으로 구현하거나 라우팅 제어를 통해 구현하도록 합니다. 예시를 통해 스플릿 터널링에 대해 살펴보겠습니다. 먼저 모든 트래픽을 VPN 터널을 통해 경유하는 경우를 보겠습니다.
위 그림에서는 SSL VPN에 접속한 사용자의 모든 트래픽이 내부 네트워크로 향하도록 한 것을 볼 수 있습니다. 라우팅 테이블을 보면 Default Routing(이하 디폴트 라우팅)이 SSL VPN 게이트웨이 IP로 지정되어 있어 모든 트래픽이 VPN을 경유하도록 한 것을 확인할 수 있습니다. 그렇기에 외부 인터넷 접속(붉은색 화살표)과 내부 네트워크 접속(푸른색 화살표)은 모두 VPN 터널을 통해 이루어집니다. 사용자가 접근하는 모든 리소스는 VPN 터널을 통해 지나가므로 VPN 관리자가 사용자의 네트워크 접근(외부 인터넷, 내부 네트워크)을 모두 통제할 수 있습니다. 여기서 VPN 혹은 방화벽에서 외부 인터넷 혹은 특정 외부 인터넷 사이트에 대한 접근을 제한한다면 사용자는 외부 인터넷 접근에 제약을 받게 됩니다. 이번에는 SSL VPN이 아닌 공유기가 디폴트 라우팅이 되는 경우를 보겠습니다.
위 그림에서는 SSL VPN에 접속한 사용자가 내부 네트워크에 해당하는 IP 대역에 대해서만 VPN 터널을 경유하도록 한 것을 볼 수 있습니다. 라우팅 테이블을 보면 디폴트 라우팅은 공유기의 게이트웨이 IP를 가리키고 있고, 내부 네트워크의 특정 대역에 대해서만 SSL VPN의 게이트웨이 IP를 가리킵니다. 이렇게 되면 내부 네트워크 접속(푸른색 화살표)이 아니라면 모두 공유기를 통해 외부 인터넷 접근(붉은색 화살표)에 바로 접근하게 됩니다. 사용자가 VPN 터널을 경유하지 않고 바로 인터넷에 접근하므로 상대적으로 빠른 속도로 체감할 수 있고 VPN 장비와 내부 네트워크의 트래픽 부하가 감소합니다. 그러나 VPN 터널이 연결된 상태에서 사용자의 컴퓨터가 취약한 보안 환경에 처한다면 내부 네트워크 또한 위험에 노출될 수 있습니다. 또 VPN이 사용자의 트래픽을 감시/통제할 수 없게 되죠.
지금까지 스플릿 터널링을 적용하는 2가지 예시만을 언급하였지만 네트워크 환경에 따라 스플릿 터널링을 적용할 수 있는 방법은 다양합니다. 그만큼 스플릿 터널링은 네트워크 부하와 보안 정책 등이 매우 큰 변수로 작용하므로 적절히 설정하는 것이 좋습니다.
VPN 정책 설정
SSL VPN은 VPN에 접근하는 사용자에게 크게 3가지를 요구할 수 있습니다. 사용자 인증 방식과 사용 환경(보안 환경) 점검, 트래픽 제어가 그것입니다. 이를 통해 VPN은 사용자를 인증하고 사용 환경을 점검하며 트래픽을 제어할 수 있지요. 앞서 SSL VPN 쉽게 이해하기 #2에서 사용자가 SSL 인증서를 통해 SSL VPN의 진위 여부를 검증한다고 말씀드렸는데 VPN 또한 사용자의 진위 여부를 인증하는 것입니다. 또한 사용자가 VPN에 접속 시 준수해야 할 사용 환경(보안 적합성)을 점검, 강제할 수 있습니다. VPN이 정한 OS(Window 10 이상 사용 등)과 백신 프로그램 등을 설치할 것을 강제할 수 있지요. 마지막으로 트래픽을 제어할 수 있습니다. 위에서 언급한 스플릿 터널링이 대표적입니다. 윗문단에서는 스플릿 터널링의 정의와 사용 이유, 예시를 언급했지만 사실 스플릿 터널링 또한 VPN 정책의 일환입니다. 워낙 자주 사용되다 보니 하나의 기술 용어로 자리 잡았지만 엄밀히 말하면 VPN 정책 중 하나에 해당합니다.
사용자 트래픽 제어
사용자 트래픽 제어는 VPN에 접속한 사용자의 내부 네트워크 및 외부 인터넷 접근을 제어하는 것을 말합니다. VPN에 접속한 사용자는 인터넷 사용 시 SSL VPN이 정한 라우팅 정책을 준수해야 합니다. 이 과정에서 사용자 혹은 사용자가 속한 그룹에게 모든 트래픽을 VPN을 통해 경유할 것인지 혹은 일부는 외부 인터넷에 접근 가능하도록 할 것인지 정할 수 있습니다. 아래 예시에서 Pulse Secure(Ivanti) SSL VPN을 관리하는 관리자가 사용자가 SSL VPN 접속 시 정해진 IP 대역(외부 인터넷, 첫 번째 사진)에 대해 VPN 터널을 타지 않고 즉시 외부 인터넷으로 이동하도록 정책을 설정한 것을 볼 수 있습니다. 나머지 트래픽은 VPN을 타도록 하고 말이죠.
사용자 인증 제어
두 번째 기능은 바로 사용자 인증 제어입니다. 사용자를 인증하는 것은 대단히 중요한 기능이죠. 인증 방식에는 다양한 방법이 사용되는데 가장 대표적인 방법이 인증 서버를 활용하는 것입니다.
네트워크 상에서, 모든 사용자 또는 서버에 대한 신원확인 및 신원증명을 하도록, 비밀사항을 중앙집중식 DB에 저장 관리하는 제3의 신뢰받는 인증용 서버
- 출처 : 정보통신기술용어해설(/www.ktword.co.kr) -
인증 서버는 말 그대로 한 조직의 모든 인원에 대한 인증 가능 사항(계정, 패스워드 등)을 중앙집중식 데이터베이스에 모아서 관리하고 (합당한) 인증 요청이 들어올 시 인증 정보를 전송하는 역할을 하는 서버입니다. 대표적인 인증 프로토콜로는 RADUIS, TACACS, Kerberos 등이 있죠. SSL VPN에 접속하고자 하는 사용자는 VPN 접속 시 자신의 계정 정보 등을 입력하게 되고 VPN은 이를 인증서버로 보내 진위 여부를 확인합니다. 사용자가 보낸 정보와 인증 서버 내 정보가 동일하다면 접근을 허용하게 됩니다.
아래 그림에서 F5 Networks 社의 APM(SSL VPN) 정책 설정 과정 중 사용자의 인증 가능 정보(계정, 패스워드 등)를 인증 서버를 통해 인증하도록 설정한 것을 볼 수 있습니다.("AD Auth" BOX) 그리고 인증에 성공한다면 접근을 허용(Allow)하도록 정책을 꾸몄군요.
최근에 사용되는 거의 모든 SSL VPN은 VPN이 보유한 로컬 서버에 사용자 정보를 입력하여 인증하는 것이 아닌 인증 서버를 두고 사용자를 인증하도록 하고 있습니다. 또한 지금까지 언급한 일차 인증 방식에 다중 인증 방식이 널리 사용되고 있습니다. 흔히 Multi-factor Authentication, 줄여서 MFA라고 부르죠. 일차 인증이 아닌 다중 인증을 통해 사용자 접근에 관한 보안을 더 강화하여 사용자 계정 정보가 탈취당한다 하더라도 다중 인증을 통해 사용자의 계정과 내부 네트워크를 보호하는 것입니다. 가장 대표적인 다중 인증 방식이 바로 OTP, One-time Password입니다. 사용자 계정 정보 입력을 통해 일차 인증을 마친 뒤, OTP를 추가로 입력하여 다중 인증을 실현하는 것입니다. 아래 그림에서 F5 Networks 社의 APM이 일차 인증 후 OTP를 실행하는 모습을 볼 수 있습니다.
사용자 사용 환경(보안 적합성) 제어
마지막으로 살펴볼 것은 사용자의 사용 환경(보안 적합성) 제어입니다. SSL VPN에 접속하는 사용자의 PC 환경을 확인하는 것은 아주 중요합니다. SSL VPN에 접속하는 사용자의 PC는 여태 내부 네트워크에 소속되었던 단말이 아닌 외부에서 공인인터넷과 같은 환경에 노출되어 있던, 보안 위험 요소를 다수 내재할 가능성이 있는 단말입니다. 만일 PC가 랜섬웨어 혹은 바이러스에 감염되어 있거나 매우 취약한 운영체제 등을 사용하고 있다면 SSL VPN 접속 시 심각한 보안 위협을 맞닥뜨릴 수 있죠. VPN을 타고 내부 리소스에 접근하는 순간, 바이러스가 퍼지는 것은 순식간일 것입니다. 그렇기에 SSL VPN은 접속하고자 하는 사용자의 PC 사용 환경(보안 적합성)을 면밀히 검토하고 허용되는 기준에 부합하는 사용자만이 접근이 가능하도록 합니다. 그리고 이를 정책 설정을 통해 실현하지요.
SSL VPN 정책 설정을 위해 사용자의 사용 환경(보안 적합성), 컴퓨터에 많이 확인하는 사항은 사용자 컴퓨터의 OS 버전과 패치 현황, 백신 설치 여부, 스파이웨어 감염 여부 등입니다. 그리고 VPN이 세운 기준, 다시 말해 일정 버전 이상의 OS 버전이나 특정 백신 설치, 스파이웨어 미검출 등에 부합하는 사용자만이 VPN을 접근할 수 있도록 허용합니다. 만약 사용 환경이 보안 기준을 충족하지 않는다면 접근을 거부하거나 필요한 백신 등을 설치할 수 있는 사이트로 Redirect(이하 리다이렉트)하기도 하죠.
위 그림은 Pulse Secure(Ivanti) SSL VPN의 사용자 환경 점검 기능인 Host Checker에서 정책(Policy)을 통해 확인할 수 있는 요소 일부를 표로 표현한 것입니다. 자세히 보면 안티바이러스, 방화벽, OS 버전 등을 확인하고 정책에 반영할 수 있는 것을 볼 수 있죠. 또 F5 Networks 社의 APM 정책 설정 과정에서도 사용자의 사용 환경(보안 적합성)을 검증하는 정책을 설정하는 것을 아래 그림을 통해 볼 수 있습니다.
SSL VPN의 라이센스
SSL VPN 기능을 제공하는 네트워크 장비는 라이센스 적용에 한 가지 특징을 지닙니다. 바로 동시 접속자 수에 대한 제한입니다. 보통 네트워크 장비의 라이센스는 라이센스 타입에 따라 장비의 성능을 일정 부분 제한하는 방식으로 사용되지요. 더 비싼 라이센스를 구입할수록 장비가 더 좋은 성능을 내도록 말입니다. 이와 별개로 대부분의 SSL VPN 장비들은 장비의 성능뿐만 아니라 동시 접속자의 수에 대한 라이센스까지 적용됩니다. SSL VPN은 발생 트래픽도 트래픽이지만 "얼마나 많은 숫자의 사용자가 동시에 접속할 수 있는가"가 중요한 지표가 됩니다. 사용자 입장에서는 보다 더 적고 저렴한 장비를 구매하여 보다 많은 사용자를 접속케하는 것이 목적이기 때문에 동시 접속자 수가 라이센스에 반영되는 것은 어떻게 보면 납득이 되죠.
위 그림을 통해 F5 Networks 社 APM의 라이센스를 한 번 살펴보겠습니다. 첫 행에 표현된 CCU는 User Connectivity License로 동시 접속할 수 있는 사용자 수를 나타내는 라이센스를 의미합니다. Base CCU는 기본적으로 제공되는 라이센스, Max CCU는 최대 제공 가능한 라이센스를 의미하지요. 모델별로 각기 다른 Base CCU를 가지고 있습니다. 그리고 라이센스를 추가 구매하면 동시 접속자를 더 늘릴 수 있고 최대 구매 시 Max CCU에 이르게 됩니다. 아래 표는 라이센스 추가(Add-on) 구매시 한 번에 늘릴 수 있는 동시접속자 수를 의미합니다.
여기까지가 SSL VPN에 대한 이야기입니다. 제가 그동안 SSL VPN을 구축하고 운영하면서 꼭 알아야 한다고 생각한 내용들을 나열해 봤습니다. SSL VPN은 어느 정도 규모가 있는 기업이라는 안 쓰는 곳이 없는 중요한 장비인만큼 자세히 알아두는 것을 추천합니다. 도움이 되셨으면 좋겠습니다.
2021년 여름부터 VPN에 대한 글을 연재하기 시작해 2년 가까운 시간이 지났습니다. IPSec / SSL VPN 이해하기 시리즈는 블로그 시작 당시 계획하지 않았던 탓에 자료 준비와 작성에 오랜 시간이 걸렸네요. L4 스위치 시리즈 연재 당시 하루 만에 글 1편씩 완성했던 것과는 대조적입니다.(물론 게임하느라 늦어진 것도 큽니다.) 오랜 시간이 걸린 만큼 작성하는 것도 힘들었지만 VPN 글이 많은 분께 사랑받는 것 같아 행복합니다. VPN 시리즈는 여기까지이지만 Dead Peer Detection(DPD) 등 VPN 활용 시 사용되는 부수적인 기능들은 지속적으로 연재할 예정입니다. 감사합니다.
'Network Infra 쉽게 이해하기 > VPN 쉽게 이해하기' 카테고리의 다른 글
SSL VPN 쉽게 이해하기 #2 (18) | 2023.03.11 |
---|---|
SSL VPN 쉽게 이해하기 #1 (15) | 2023.01.01 |
IPSec VPN 쉽게 이해하기 #4 (20) | 2021.09.12 |
IPSec VPN 쉽게 이해하기 #3 (10) | 2021.08.21 |
IPSec VPN 쉽게 이해하기 #2 (6) | 2021.08.07 |
댓글