계층 2 터널링 프로토콜(L2TP: Layer Two Tunneling Protocol)은 PPTP 포럼에서 Microsoft와 다른 기업들이 개발한 기술인 포인트-투-포인트 터널링 프로토콜(PPTP: Point-to-Point Tunneling Protocol)과 Cisco Systems가 제안한 계층 2 포워딩(L2F: Layer 2 Forwarding)을 결합한 것입니다. 인터넷 엔지니어링 태스크 포스(IETF: Internet Engineering Task Force)에서는, 시장에서 경쟁적인 비호환적인 터널링 프로토콜 두 개를 유지 보수하는 것보다는, 최상의 PPTP 및 L2F 기능을 갖는 하나의 터널링 프로토콜로 두 기술을 결합할 것을 권하였습니다. L2TP는 RFC 2661에 문서화되어 있습니다.
L2TP는 IP, X.25, 프레임 릴레이, 그리고 ATM 네트워크를 통해 전송되는 PPP 프레임을 캡슐화합니다. IP 네트워크로 전송된 L2TP 프레임은 다음 그림에서와 같이 사용자 데이터그램 프로토콜(UDP: User Datagram Protocol) 메시지로 캡슐화됩니다.
L2TP 프레임은 L2TP 연결 유지보수 메시지와 터널링된 데이터를 포함합니다. L2TP 연결 유지보수 메시지에는 L2TP 헤더만이 포함됩니다. 터널링된 L2TP 데이터에는 PPP 헤더와 PPP 유료부하가 포함됩니다. PPP 유료부하는 표준 PPP 암호화 및 압축 방법을 통해 암호화되거나 압축 또는 둘 모두 가능합니다.
Windows 2000에서 L2TP 연결은 Microsoft Point-to-Point Encryption (MPPE)를 통한 PPP 암호화를 사용하지 않습니다. 대신IP Security (IPSec) Encapsulating Security Payload (ESP) 헤더와 트레일러를 통해 암호화가 제공됩니다. 다음 그림은 L2TP 프레임을 포함하는 IP 데이터그램에서 ESP를 사용한 결과를 보여주고 있습니다.
캡슐화를 위한 L2TP와 암호화를 위한 IPSec의 결합은 L2TP/IPSec라고 합니다.
L2TP 대 PPTP
Windows 2000 기반의 VPN을 설치할 때는 L2TP/IPSec와 PPTP 중 하나를 선택해야 합니다. Windows XP VPN 클라이언트 컴퓨터와 Windows 2000 VPN 클라이언트 및 서버 컴퓨터는 기본적으로 L2TP/IPSec와 PPTP 모두를 지원합니다. 그러나 자신의 네트워크에서 둘 중 어느 것을 사용할 것인지, 혹은 둘 다를 사용할 것인지를 결정해야 합니다.
L2TP/IPSec와 PPTP는 다음과 같은 점에서 유사합니다.
· PPP 유료부하를 전송하는 논리적인 전송 메커니즘을 제공합니다.
· 어떠한 프로토콜을 기반으로 하는 PPP 유료부하라도 IP 네트워크를 통해 전송이 가능하도록 터널링이나 캡슐화를 제공합니다.
· PPP 연결 과정에 의존하여 사용자 인증 및 프로토콜 설정을 수행합니다.
L2TP/IPSec와 PPTP는 다음과 같은 점에서 차이가 있습니다.
· PPTP는 PPP 연결 과정(결국 PPP 인증)이 완료된 후 데이터 암호화가 시작됩니다. L2TP/IPSec에서는 PPP 연결 과정 전에 데이터 암호화가 시작됩니다.
· PPTP 연결은 Rivest-Shamir-Aldeman RC-4 암호화 알고리즘을 기반으로 하며, 40, 56, 혹은 128 비트의 암호화 키를 제공하는 스트림 암호화 알고리즘인 MPPE를 사용합니다. 스트림 암호화 알고리즘은 데이터를 비트 스트림으로 암호화합니다. L2TP/IPSec 연결은 데이터 암호화 표준(DES: Data Encryption Standard)을 사용합니다. 이것은 DES에 있어서는 하나의 56 비트 키, 3-DES에 있어서는 세 개의 56 비트 키를 사용하는 블록 암호화 알고리즘입니다. 블록 암호화 알고리즘은 데이터를 별도의 블록으로 암호화합니다(DES의 경우 64 비트 블록).
· PPTP 연결을 위해서는 PPP 기반 인증 프로토콜을 통한 사용자 수준의 인증만이 필요합니다. L2TP/IPSec 연결에는 이와 같은 사용자 수준의 인증과 함께, 컴퓨터 인증서를 통한 컴퓨터 수준의 인증도 필요합니다.
L2TP의 장점
Windows 2000에서 L2TP를 사용하면 다음과 같은 장점이 있습니다.
· IPSec는 패킷 데이터 인증(인증된 사용자가 데이터를 전송하였다는 증거), 데이터 무결성(전송 중 데이터가 변경되지 않았다는 증거), 재시도 방지(캡쳐된 패킷 스트림의 재전송 방지), 그리고 데이터 기밀성(암호화 키 없이 캡쳐된 패킷을 해석하는 것 방지)을 제공합니다. 반대로 PPTP는 패킷 데이터 기밀성만을 제공합니다.
· L2TP/IPSec 연결은 인증서를 통한 컴퓨터 수준의 인증과 PPP 인증 프로토콜을 통한 사용자 수준의 인증을 모두 요구하여 더욱 강력한 인증을 제공합니다.
· 사용자 수준 인증 중 교환된 PPP 패킷은 암호화되지 않은 형태로는 전송되지 않습니다. 왜냐하면 L2TP/IPSec을 위한 PPP 연결 과정은 IPSec 보안 연결(SA: Security Association)이 수립된 후 가능하기 때문입니다. 만일 방해를 받으면, 특정 종류의 PPP 인증 프로토콜에 대한 PPP 인증 교환을 통해 오프라인 딕셔너리 공격을 수행하고 사용자 패스워드를 확인할 수 있습니다. PPP 인증 교환을 암호화하면, 오프라인 딕셔너리 공격은 암호화된 패킷이 성공적으로 해독된 후에만 가능합니다.
L2TP/IPSec는 보안성이 우수한 IPSec의 기능을 필요로 하므로 다음과 같은 결과를 낳습니다.
· L2TP/IPSec는 VPN 서버 컴퓨터와 모든 VPN 클라이언트 컴퓨터에 인증서를 발행하기 위해 인증 인프라가 필요합니다. 컴퓨터 인증서는 IPSec 보안 연결을 위해서 필요합니다. 반대로 PPTP는 패스워드 기반의 인증 프로토콜을 사용하며 인증서 설치가 필요하지 않습니다.
· L2TP/IPSec는 Windows XP와 Windows 2000 VPN 클라이언트로만 사용이 가능합니다. 이 클라이언트만이 인증서의 안전한 저장과 IPSec 그리고 인증서의 사용을 지원합니다. 반대로 현재 모든 Windows VPN 클라이언트는 PPTP를 지원합니다.
· L2TP/IPSec 기반의 VPN 클라이언트나 서버는 네트워크 주소 변환기(NAT: network address translator)에 연결하여 설치할 수 없습니다. 왜냐하면 인터넷 키 교환(IKE: Internet Key Exchange) (보안 연결 협상에 필요한 프로토콜)과 IPSec 보호 트래픽은 NAT 변환이 불가능하기 때문입니다. 반대로 NAT은 PPTP 트래픽 대부분을 지원합니다.
참고
Windows XP와 Windows 2000 컴퓨터를 사전 공유 키 IPSec 인증을 위해 설정할 수는 있으나, 권장되지는 않습니다. 사전 공유 키 인증이 가능하도록 Windows XP를 운영하는 컴퓨터를 구성하려면, Windows XP 온라인 도움말을 참조하십시오. Windows 2000을 운영하는 컴퓨터를 사전 공유 키 인증이 가능하도록 구성하려면, Windows 2000 Server Resource Kit Internetworking Guide의 '가상 사설 네트워킹(Virtual Private Networking)' 나 Microsoft Knowledge Base의 문서 Q240262를 참조하십시오.
L2TP/IPSec는 PPTP 사용을 쓸모없게 하지 않습니다. L2TP/IPSec는 PPTP보다 보안성이 우수한 VPN 기술입니다. 그러나 PPTP가 아직도 널리 사용되고 있으며, Microsoft Challenge-Handshake Authentication Protocol Ver. 2 (MS-CHAP v2) 인증 프로토콜과 강력한 패스워드를 사용할 때는 여러 상황에서 충분한 보안성을 제공합니다.
컴퓨터 인증 배치
인증을 위해 Windows 2000 IPSec 정책을 설정할 때, IPSec 피어(peer)가 인증서를 받는 최상위 인증 기관(CA: Certification Authority)의 리스트를 수동으로 규정할 수 있습니다. L2TP 연결을 위한 IPSec 정책은 수동으로 설정할 필요가 없습니다. VPN 클라이언트에서 VPN 연결을 초기화하거나 VPN 서버에서 라우팅과 원격 접속 서비스를 시작하면 자동으로 설정됩니다.
그러나 L2TP 트래픽에 대해 자동으로 생성된 IPSec 정책의 경우, CA 리스트는 설정할 수 없습니다. 대신 각각의 L2TP/IPSec 피어가 로컬 시스템 저장소에 설치된 컴퓨터 인증서의 최상위 CA에 해당하는 IPSec 피어(여기에서 L2TP/IPSec 피어는 인증서를 받습니다)로 최상위 CA의 리스트를 전송합니다. 예를 들어, A 컴퓨터가 최상위 CA인 CertAuth1과 CertAuth2로부터 컴퓨터 인증서를 받으면, A 컴퓨터는 IPSec 피어에게 주 모드 협상 중에 CertAuth1과 CertAuth2로부터만 인증서를 받을 것이라고 통보해야 합니다. IPSec 피어인 B 컴퓨터가 CertAuth1이나 CertAuth2로부터 유효한 컴퓨터 인증서를 발급 받지 못한 경우에는, IPSec 보안 협상은 실패합니다.
L2TP/IPSec 연결을 시도하기 전에 다음 중 한 가지에 해당되는지 확인해야 합니다.
1. VPN 클라이언트와 VPN 서버가 같은 CA로부터 컴퓨터 인증서를 받음.
2. VPN 클라이언트와 VPN 서버가 최상위 CA가 동일한 인증 체계의 CA로부터 컴퓨터 인증서를 받음.
일반적으로 VPN 클라이언트에는 발행 CA로부터 VPN 서버가 신뢰하는 최상위 CA까지의 유효한 인증 체계를 따르는 CA가 발행한 유효한 컴퓨터 인증서가 설치되어야 있어야 합니다. 또한 VPN 서버에는 발행 CA로부터 VPN 클라이언트가 신뢰하는 최상위 CA까지의 유효한 인증 체계를 따르는 CA가 발행한 유효한 컴퓨터 인증서가 설치되어 있어야 합니다.
하나의 CA가 조직내의 모든 컴퓨터에 컴퓨터 인증서를 발급합니다. 따라서 조직 내의 모든 컴퓨터는 하나의 CA로부터의 컴퓨터 인증서를 받게 되며, 이 하나의 CA에 인증을 요구합니다.
CA 설치 및 자동 등록 설정
컴퓨터 인증서를 설치하려면, 인증서를 발행할 CA가 있어야 합니다. 이 인증서 서비스를 Windows 2000이나 제 3자 인증 서버에 사용할 수 있습니다.
Windows 2000 CA가 설정된 후에는, 다음 중 한 가지 방법으로 컴퓨터 인증서를 설치합니다.
1. Windows 2000 도메인의 컴퓨터에 컴퓨터 인증서의 자동 할당을 설정.
이 방법에서는 전체 도메인에 하나의 설정 지점을 갖게 됩니다. 이 도메인의 모든 구성원은 로그온 과정에서 그룹 정책(Group Policy)을 통해 자동으로 컴퓨터 인증서를 받게 됩니다.
2. 인증 관리자(Certificate Manager)를 사용하여 컴퓨터 인증서를 획득.
이 방법에서는 각각의 컴퓨터가 CA에 컴퓨터 인증서를 개별적으로 요구해야 합니다.
여러분은 조직 내의 인증 정책에 따라 이 중 하나의 할당을 선택하여 시행해야 합니다.
하나의 CA를 기업의 최상위 CA로 설정하려면 다음과 같은 과정을 따릅니다.
1. 필요한 경우, CA가 될 컴퓨터를 도메인 컨트롤러로 구성합니다. 더 자세한 정보는 Windows Server 2000 온라인 도움말에 있는 '체크리스트: 도메인 컨트롤러 설치하기'를 참조하십시오.
2. Windows 2000 Certificate Services 구성요소를 기업의 최상위 CA로 설치합니다. 더 자세한 정보는 Windows 2000 Server 온라인 도움말에 있는 '기업의 최상위 인증 기관 설치하기'를 참조하십시오.
모든 도메인 구성원에 컴퓨터 인증서를 자동으로 발행하도록 Windows 2000 도메인을 설정하려면, Windows 2000 Server 온라인 도움말에 있는 '기업 CA로부터의 자동 인증 할당 설정하기'를 참조하십시오.
제 3자 인증 서버의 경우에는, 인증 서버 소프트웨어에 관한 자료를 통해 Windows 2000 도메인 환경에 설치하는 방법에 관한 정보를 확인하실 수 있습니다.
컴퓨터 인증서 얻기
자동 등록이 설정된 도메인의 구성원인 Windows 2000을 구동하는 컴퓨터에 대해 컴퓨터 인증서를 받으려면, 컴퓨터를 재시동하거나 명령어 프롬프트에 secedit /refreshpolicy machine_policy 라고 입력합니다. Windows XP를 구동하는 컴퓨터의 경우에는, 컴퓨터를 재시동하거나 명령어 프롬프트에 gpupdate /target:computer 라고 입력합니다.
컴퓨터 인증서를 수동으로 요구하려면, 인증 관리자(Certificate Manager) 스냅 인을 사용합니다. 더 자세한 정보는 Windows 2000 Server 온라인 도움말에 있는 '컴퓨터 인증 관리하기'와 '인증 요구하기'를 참조하십시오.
제 3자 인증 서버에서 인증서를 받으려면, 인증 서버 소프트웨어에 관한 자료를 통해, Windows XP나 Windows 2000을 구동하는 컴퓨터의 시스템 저장소로 가져오기가 가능한 인증서를 발행하도록 서버를 설정하는 방법을 확인하십시오.
L2TP 연결의 단계
L2TP/IPSec 연결 시도가 성공하려면, 다음이 성공적으로 확립되어야 합니다.
1. L2TP트래픽에 대한 IPSec SA
2. L2TP 연결
3. PPP 연결
IPSec SA 협상
L2TP 트래픽에 대한 IPSec SA 협상은 다음과 같이 이루어집니다.
1. 주 모드 협상
암호화 키 발행 정보의 교환, 차후의 주 모드 패킷의 결정, 그리고 IPSec 피어 인증에 의한 주 모드 SA의 생성
2. 빠른 모드 협상
IPSec 피어간에 전송된 데이터의 보안 결정에 의한 빠른 모드 SA 생성
L2TP 데이터를 위한 IPSec 정책과 필터 환경은 자동으로 설정됩니다. 따라서 IPSec SA를 수립하지 못 하는 것은 주로 컴퓨터 인증서를 받지 못 하거나 설정을 잘 못하여 주 모드 SA 협상에 실패한 데에서 기인합니다. IPSec의 보안성 때문에 협상 실패는 사용자에게 보고되지 않습니다.
다음과 같은 문제 해결 툴을 사용하여 주 모드 협상 실패의 원인을 파악하십시오.
1. 감사 로그(Audit logging)
감사 로그는 보안 로그에서 SA 협상의 실패나 성공에 해당하는 이벤트의 기록입니다. 이것은 이벤트 뷰어(Event Viewer) 스냅 인을 통해 볼 수 있습니다. 감사 로그를 활성화하려면, 여러분의 도메인이나 로컬 컴퓨터 그룹 정책에 대하여 감사 로그온 이벤트(Audit logon events) 감사 정책에 대한 감사의 성공 및 실패를 활성화합니다 (Computer Configuration\Windows Settings\Security Settings\Local Policies\Audit Policy에서 가능).
2. 오클리 로그(Oakley logging)
오클리 로그는 SystemRoot\Debug\Oakley.log 파일의 주 모드와 빠른 모드 SA 협상에 관한 세부 사항의 기록입니다. 오클리 로그를 활성화하려면, HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \PolicyAgent\Oakley\EnableLogging 레지스트리를 1로 설정합니다. 그리고 VPN 서버 컴퓨터를 재시동하거나, 명령어 프롬프트에서 다음 명령어를 실행합니다.
net stop remoteaccess
net stop policyagent
net start policyagent
net start remoteaccess
L2TP 연결 협상
주 모드와 빠른 모드 SA가 설정된 후에는, VPN 클라이언트와 VPN 서버는 L2TP 제어 연결과 세션을 생성하기 위한 일련의 L2TP 메시지를 교환합니다. 더 자세한 정보는 RFC 2661의 5.0 항을 참조하십시오. 라우팅과 원격 접속 서비스의 WAN Miniport (L2TP) 장치를 다음과 같이 잘못 설정하면 L2TP 제어 연결이나 세션이 실패하게 됩니다.
· WAN Miniport (L2TP) 장치에 포트 수가 너무 적게 설정되어 있습니다. 라우팅 및 원격 저속 서버 설치 마법사에서 어떻게 선택하느냐에 따라, 기본값으로 다섯 개 또는 128 L2TP 포트를 사용할 수 있습니다. VPN 서버에 동시에 최대한 많이 L2TP 연결을 할 수 있도록 L2TP 포트가 충분한지 확인해야 합니다.
· WAN Miniport (L2TP) 장치가 인바운드 원격 접속 연결이 가능하도록 활성화되어 있지 않습니다. 이것 역시 라우팅 및 원격 접속 서버 설치 마법사에서 어떻게 선택하느냐에 따라 결정됩니다. WAN Miniport (L2TP) 장치가 인바운드 원격 접속 연결이 가능하도록 설정되어 있는지 확인해야 합니다.
WAN Miniport (L2TP) 장치에서 포트의 수와 인바운드 원격 접속 연결의 활성화는 라우팅 및 원격 접속 스냅 인의 포트(Ports) 객체의 속성에서 설정됩니다.
라우팅 및 원격 서버 설치 마법사에서의 선택사항과 그 결과에 대한 더 자세한 정보는 Configuring the Routing and Remote Access Service in Windows 2000 를 참조하시기 바랍니다.
PPP 연결 협상
L2TP 연결을 위한 PPP 연결 협상은 다음과 같은 단계로 이루어집니다.
1. 링크 제어 프로토콜(LCP: Link Control Protocol)을 통한 PPP 링크 협상
2. 연결을 시도하는 사용자의 인증
3. PPP 네트워크 제어 프로토콜(NCP: network control protocol)을 사용하여 TCP/IP와 같은 LAN 프로토콜의 협상 및 설정
연결 시도에서 PPP 부분의 문제 해결은 인증과 권한 부여를 수반하며, 사용자 계정의 다이얼 인 속성, 도메인과 VPN 서버의 설정, 그리고 원격 접속 정책에 의해 좌우됩니다.
PPP 연결에 관한 문제를 해결하는데 유용한 방법은 PPP 로그입니다. PPP 로그는 PPP 연결 시도 중 일련의 프로그래밍 기능과 PPP 제어 메시지를 기록합니다. PPP 로그를 활성화하려면, 라우팅 및 원격 접속 스냅 인에 있는 VPN 서버 속성의 PPP 탭에서 Enable Point-to-Point Protocol (PPP) logging 옵션을 선택합니다.
VPN 연결 문제 해결에 대한 자세한 사항은 Windows 2000 서버 리소스 키트에 있는 Troubleshooting VPNs를 참조하시기 바랍니다.
VPN과 라우팅, 윈도우 2000의 원격접속에 대한 자세한 사항은 다음의 리소스를 참조하시기 바랍니다. :
· Microsoft technical documents on remote access
· Virtual Private Networking: An Overview
· Windows 2000 Virtual Private Networking Scenario
· 'Virtual Private Networking'
· Windows 2000 Server Documentation (Networking\Routing and Remote Access and Networking\Virtual Private Networks)