소개
이 문서에서는 Cisco ASA(Adaptive Security Appliance) SSLVPN(Clientless Secure Sockets Layer VPN) 사용자가 사용할 수 있는 RDP(Remote Desktop Protocol) 플러그인에 대해 자주 묻는 질문에 대한 답변을 제공합니다.
RDP 플러그인은 SSH(Secure Shell), VNC(Virtual Network Computing), Citrix 등 사용자가 사용할 수 있는 플러그인 중 하나뿐입니다. RDP 플러그인은 이 컬렉션에서 가장 자주 사용되는 플러그인 중 하나입니다. 이 문서에서는 이 플러그인의 구축 및 문제 해결 절차에 대해 자세히 설명합니다.
참고: 이 문서에서는 RDP 플러그인을 구성하는 방법에 대한 정보를 제공하지 않습니다. 자세한 내용은 Cisco ASA 5500 SSL VPN 구축 설명서 버전 8.x를 참조하십시오.
배경 정보
RDP 플러그인은 ActiveX RDP 클라이언트(Internet Explorer) 및 Java 클라이언트(Non-Internet Explorer 브라우저)를 모두 포함하도록 순수 Java 기반 RDP 플러그인에서 발전했습니다.
Java 플러그인
Java RDP Client는 적절한 Java RDP 애플릿을 사용합니다. 그런 다음 Java 애플릿은 ASA 클라이언트리스 포털 내에서 설치할 수 있는 플러그인 내에서 래핑됩니다.
활성-X 플러그인
RDP 플러그인에는 Microsoft ActiveX RDP Client도 포함되어 있으며, 플러그인은 브라우저를 기반으로 Java 또는 ActiveX Client를 사용할지 여부를 결정합니다. 즉,
- IE(Internet Explorer) 사용자가 클라이언트리스 SSLVPN 포털을 통해 RDP를 사용하려고 하는데 책갈피 URL에 ForceJava=true 인수가 포함되어 있지 않으면 ActiveX 클라이언트가 사용됩니다. ActiveX가 실행되지 않으면 플러그인이 Java 클라이언트를 시작합니다.
- IE가 아닌 사용자가 RDP 책갈피 또는 URL을 시작하려고 하면 Java Client만 실행됩니다.
RDP ActiveX 및 USER 권한의 요구 사항에 대한 자세한 내용은 Microsoft Requirements for Remote Desktop Web Connection 문서를 참조하십시오.
다음 그림에서는 플러그인이 시작된 후 브라우저 창에서 선택할 수 있는 세 개의 링크를 보여 줍니다.
- New Portal Page(새 포털 페이지) - 이 링크는 새 브라우저 창에서 포털 페이지를 엽니다.
- 전체 화면 - 전체 화면 모드에서 RDP 창을 사용합니다.
- Java와 다시 연결 - 플러그인이 다시 연결되고 ActiveX 대신 Java를 사용해야 합니다.
RDP 플러그인
RDP 및 RDP-2 플러그인 사용
- RDP 플러그인: Java 및 ActiveX 클라이언트를 모두 포함하는 원래 플러그인입니다.
- RDP2 플러그인: RDP 프로토콜 내의 변경 사항으로 인해 Microsoft Windows 2003 터미널 서버 및 Windows Vista 터미널 서버를 지원하기 위해 적절한 Java RDP 클라이언트가 업데이트되었습니다.
팁: 최신 RDP 플러그인은 RDP와 RDP2 프로토콜을 모두 통합합니다. 따라서 RDP2 플러그인은 더 이상 사용되지 않습니다. 최신 버전의 RDP 플러그인을 사용하는 것이 좋습니다. RDP 플러그인 명명법은 다음 구조를 따릅니다. rdp-plugin.ymdd.jar 여기서 yy는 2자리 연도 형식이고 mm은 2자리 월 형식이며 dd는 2자리 일 형식입니다.
플러그인을 다운로드하려면 Cisco 소프트웨어 다운로드 페이지를 방문하십시오.
ActiveX와 Java 클라이언트 포지셔닝 비교
RDP-ActiveX
RDP-Java
- Java가 활성화된 지원되는 모든 브라우저에서 작동합니다.
- ActiveX가 시작되지 않거나 ForceJava=true 인수가 RDP 북마크에서 전달되는 경우에만 Java Client가 IE에서 실행됩니다.
- RDP-Java 구현은 오픈 소스 이니셔티브인 적절한 Java RDP 프로젝트를 기반으로 합니다. 애플리케이션에 대해 최선형 지원이 제공됩니다.
RDP 책갈피 형식
다음은 RDP 책갈피의 예제 형식입니다.
rdp://server:port/?Parameter1=value&Parameter2=value&Parameter3=value
형식에 대한 몇 가지 중요한 참고 사항이 있습니다.
- server - 이 속성만 필요합니다. Microsoft 터미널 서비스를 호스팅하는 컴퓨터의 이름을 입력합니다.
- port(선택 사항) - Microsoft 터미널 서비스를 호스팅하는 원격 컴퓨터의 가상 주소입니다. 기본값 3389는 Microsoft 터미널 서비스의 잘 알려진 포트 번호와 일치합니다.
- parameters - 매개변수-값 쌍으로 구성된 선택적 쿼리 문자열입니다. 물음표는 인수 문자열의 시작 부분을 나타내고 각 매개 변수 값 쌍은 앰퍼샌드로 구분됩니다.
사용 가능한 매개변수 목록은 다음과 같습니다.
- geometry - 클라이언트 화면의 크기(픽셀(W x H)입니다.
- bpp - 픽셀당 비트(색 깊이), 8|16|24|32입니다.
- domain - 로그인 도메인입니다.
- username - 로그인 사용자 이름입니다.
- password - 로그인 비밀번호입니다. 비밀번호는 클라이언트 측에서 사용되며 관찰될 수 있으므로 주의하여 사용합니다.
- console - 서버의 콘솔 세션에 연결하기 위해 사용됩니다(예/아니요).
- ForceJava - Java 클라이언트만 사용하려면 이 매개 변수를 예로 설정합니다. 기본 설정은 no입니다.
- shell - 이 매개 변수를 RDP로 연결할 때 자동으로 시작되는 실행 파일/응용 프로그램 경로(예: rdp://server/?shell=path)로 설정합니다.
다음은 추가 ActiveX 전용 매개변수 목록입니다.
- RedirectDrives - 원격 드라이브를 로컬로 매핑하려면 이 매개 변수를 true로 설정합니다.
- RedirectPrinters - 원격 프린터를 로컬로 매핑하려면 이 매개 변수를 true로 설정합니다.
- FullScreen - FullScreen 모드에서 시작하려면 이 매개 변수를 true로 설정합니다.
- ForceJava - Java Client를 강제로 적용하려면 이 매개변수를 yes로 설정합니다.
- audio - 이 매개변수는 RDP 세션을 통한 오디오 전달에 사용됩니다.
- 0 - 원격 소리를 클라이언트 컴퓨터로 리디렉션합니다.
- 1 - 원격 컴퓨터에서 소리를 재생합니다.
- 2 - 사운드 리디렉션을 비활성화합니다. 원격 서버에서 소리를 재생하지 않습니다.
RDP 플러그인 및 VPN 로드 밸런싱
다중 지역 로드 밸런싱은 DNS(Domain Name Server) 기반 글로벌 서버 로드 밸런싱을 사용하여 지원됩니다. DNS 결과 캐싱 차이로 인해 플러그인이 다양한 운영 체제에서 다르게 작동할 수 있습니다. Windows DNS 캐시를 사용하면 플러그인이 Java 애플릿을 실행할 때 동일한 IP 주소를 확인할 수 있습니다. Macintosh(MAC) OS X에서는 Java 애플릿이 다른 IP 주소를 확인할 수 있습니다. 따라서 플러그인이 올바르게 시작되지 않습니다.
DNS 라운드 로빈의 예는 www.example.com에 대한 DNS 항목이 192.0.2.10(ASA1) 또는 198.51.100.50(ASA2)를 확인할 수 있는 단일 URL(https://www.example.com)이 있는 경우입니다.
사용자가 ASA1의 브라우저를 통해 클라이언트리스-WebVPN 포털에 로그인하면 RDP 플러그인을 시작할 수 있습니다. Java 클라이언트를 시작하는 동안 MAC OS X 컴퓨터는 새 DNS 확인 요청을 실행합니다. 라운드 로빈 DNS 컨피그레이션을 사용하면 이 두 번째 확인 응답이 초기 WebVPN 연결에 대해 선택한 동일한 사이트를 반환할 가능성이 50%가 됩니다. DNS 서버 응답이 192.0.2.10(ASA1)이 아닌 198.51.100.50(ASA2)인 경우 Java 클라이언트는 잘못된 ASA(ASA2)에 대한 연결을 시작합니다. 사용자 세션이 ASA2에 없으므로 연결 요청이 거부됩니다.
다음과 유사한 Java 오류 메시지가 나타날 수 있습니다.
java.lang.ClassFormatError: Incompatible magic value 1008813135 in
class file net/propero/rdp/applet/RdpApplet
FAQ
입력한 일부 문자가 원격 RDP 세션에 나타나지 않는 이유는 무엇입니까?
RDP 세션의 원격 컴퓨터에 로컬 컴퓨터와 다른 키보드 영역 설정이 있을 수 있습니다. 이러한 차이로 인해 원격 컴퓨터에 특정 형식화된 문자 또는 잘못된 문자가 표시되지 않을 수 있습니다. 이 동작은 Java 플러그인에서만 나타납니다. 이 문제를 해결하려면 keymap 특성을 사용하여 로컬 키 맵을 원격 PC에 매핑합니다.
예를 들어 독일어 키보드 매핑을 설정하려면 다음을 사용합니다.
rdp://
/?keymap=de
The following keymaps are available:
---------------------------------------------------------------------
ar de en-us fi fr-be it lt mk pl pt-br sl tk
da en-gb es fr hr ja lv no pt ru sv tr
---------------------------------------------------------------------
키보드 매핑의 알려진 문제
- Cisco 버그 ID CSCth38454 - RDP 플러그인용 헝가리어 키맵을 구현합니다.
- Cisco 버그 ID CSCsu77600 - WebVPN RDP 플러그인 창 키가 잘못되었습니다. Shift(키) .jar.
- Cisco 버그 ID CSCtt04614 - WebVPN - RDP 플러그인에서 잘못 관리되는 ES 키보드 분음 부호
- Cisco 버그 ID CSCtb07767 - ASA 플러그인 - 기본 매개변수를 구성합니다.
팁: 또 다른 가능한 해결 방법은 mstsc.exe에 대해 응용 프로그램 스마트 터널을 사용하는 것입니다. 이는 WebVPN 하위 구성 모드(smart-tunnel list RDP_List RDP mstsc.exe platform windows)에서 구성됩니다.
Java RDP 플러그인이 전체 화면 RDP 세션을 지원할 수 있습니까?
현재 전체 화면 RDP 세션에 대한 기본 지원은 없습니다. 이를 구현하기 위해 개선 요청 CSCto87451이 제출되었습니다. 형상 매개변수(형상 = 1024x768 등)가 사용자 모니터의 해상도로 설정된 경우 전체 화면 모드에서 작동합니다. 사용자 화면 크기가 다르므로 여러 책갈피 링크를 만들어야 할 수 있습니다. ActiveX 클라이언트는 기본적으로 전체 화면 RDP 세션을 지원합니다.
Java 클라이언트가 암호화에 AES-256을 사용하는 것과 통신할 수 있습니까?
Java 클라이언트가 SSL을 올바르게 협상하도록 허용하려면 ASA SSL 암호 집합의 순서를 다음과 일치하도록 조정하십시오.
Enabled cipher order: aes256-sha1 rc4-sha1 aes128-sha1 3des-sha1
Disabled ciphers: des-sha1 rc4-md5 null-sha1
암호 설정 순서가 다른 경우 Java 클라이언트에서 이 오류를 표시할 수 있습니다.
[Thread-12] INFO net.propero.rdp.Rdp - javax.net.ssl.SSLHandshakeException:
Received fatal alert: handshake_failure
RDP 문제 해결
RDP 플러그인에 다른 문제가 있는 경우 RDP 문제를 해결하기 위해 이 데이터를 수집하는 것이 유용할 수 있습니다.
- ASA의 show tech 출력
- show import webvpn plug-in은 ASA의 자세한 출력입니다.
- 사용자 컴퓨터 운영 체제 및 패치 수준
- 대상 컴퓨터 운영 체제 및 패치 수준
- 사용된 클라이언트(ActiveX 또는 Java) 및 Java JRE 버전
- ASA가 로드 밸런싱 클러스터, DNS 기반 또는 ASA 기반 상태인지 확인합니다.
알려진 주의 사항
Microsoft 보안 업데이트 문제
- KB2695962 - Microsoft 보안 자문: ActiveX 킬 비트에 대한 업데이트 롤업: 2012년 5월 8일.
- KB2675157 - MS12-023: Internet Explorer용 누적 보안 업데이트: 2012년 4월 10일.
- cisco-sa-20120314-asaclient - Cisco ASA 5500 Series Adaptive Security Appliance 클라이언트리스 VPN ActiveX 컨트롤 원격 코드 실행 취약성 3월 14일
- Cisco 버그 ID CSCtx68075 - Windows 패치 KB2585542가 적용될 때 ASA WebVPN 분리(8.2.5.29 / 8.4.3.9).
- KB2585542 - MS12-006: Windows의 Webio, Winhttp 및 채널에 대한 보안 업데이트에 대한 설명: 2012년 1월 10일.
ActiveX 클라이언트
- 증상: ASA OS 버전 8.4.3으로 업그레이드한 후 ActiveX 클라이언트가 IE 버전 6~9에서 로드되지 않습니다.
- Cisco 버그 ID CSCtx58556을 참조하십시오. 수정 사항은 버전 8.4.3.4 이상에서 사용할 수 있습니다.
- 해결 방법: Java 클라이언트를 강제로 사용합니다.
- 증상: ASA OS 버전이 8.4.3 이전 버전으로 다운그레이드된 후 ActiveX 클라이언트가 로드되지 않습니다. 이는 Cisco 버그 ID CSCtx58556의 수정 사항과 함께 ASA에서 ActiveX 클라이언트를 사용하고 8.4.3 이전 버전과 이 ASA에 연결한 사용자에게 영향을 줍니다. 이는 ASA 8.4.3에 새로 도입된 ActiveX RDP 플러그인이 이전 버전과 호환되지 않기 때문입니다.
- 증상: NLA(Network Level Authentication)가 활성화된 디바이스에 대한 RDP 연결이 실패합니다.
- ActiveX RDP 플러그인에 NLA를 통합하도록 요청하는 개선 사항은 Cisco 버그 ID CSCtu63661을 참조하십시오.
- Microsoft ActiveX Client는 NLA를 지원하지만 ASA 플러그인 내에서 해당 기능의 사용은 지원되지 않습니다.
- 해결 방법: RDP 플러그인(mstsc.exe)을 스마트 터널링하도록 구성합니다. Cisco ASA 5500 SSL VPN 배포 가이드 버전 8.x를 참조하십시오.
- 증상: ActiveX RDP가 로드되지 않고 빈 페이지를 표시합니다.
- Cisco 버그 ID CSCsx49794를 참조하십시오.
- 이는 ASA SSL 인증서의 인증서 체인이 4개 인증서(예: ROOT, SUBCA1, SUBCA2 및 ASA CERT)보다 클 때 발생합니다.
- 해결 방법:
- ASA에 큰 인증서 체인을 설치하지 마십시오.
- Java RDP 플러그인이 ActiveX 플러그인과 달리 제대로 작동하는 것으로 알려져 있습니다.
- RDP는 네이티브 Windows mstsc.exe를 스마트 터널로 구성할 때도 제대로 작동합니다.
- 증상: ActiveX RDP Client를 사용한 후 사용자는 Logout(로그아웃) 버튼을 클릭하고 HTTP 404 - Page Not found 오류를 수신합니다. Cisco 버그 ID CSCtz33266을 참조하십시오. 이 문제는 플러그인 버전 rdp-plugin.120424.jar 이상으로 해결되었습니다.
- 증상: 사용자는 IE에서 두 개의 탭을 엽니다. 하나는 RDP 세션이고 다른 하나는 빈 페이지나 다른 웹 페이지입니다. RDP 탭을 닫은 후 IE가 제대로 작동하지 않습니다.
- Cisco 버그 ID CSCua69129를 참조하십시오.
- 해결 방법: Java RDP 플러그인을 사용합니다(Set ForceJava=true).
- 증상: ActiveX 플러그인은 IE에서 CPU 사용량이 높습니다. Cisco 버그 ID CSCua16597을 참조하십시오.
- 증상: Windows 업데이트 KB2695962를 설치한 후 ActiveX RDP 플러그인이 로드되지 않습니다. 새 RDP 세션이 열리면 ActiveX 클라이언트는 Cisco SSL VPN 포트 전달자를 설치하려고 시도하고(항상 발생하는 것은 아님) 원격 컴퓨터에 연결하지 않고 클라이언트리스 포털 페이지로 돌아갑니다. 이는 취약성 CVE-2012-0358이 클라이언트 측에서 Microsoft Security Advisory(2695962)에 의해 해결되기 때문입니다.
Java 클라이언트
참고: Cisco는 변경 없이 플러그인을 재배포합니다. GNU General Public License로 인해 Cisco는 플러그인 애플리케이션을 변경하거나 확장하지 않습니다. 적절한 JavaRDP 플러그인은 오픈 소스 애플리케이션이며, 플러그인 소프트웨어의 모든 문제는 프로젝트 소유자가 해결해야 합니다.
- 증상: Java RDP Client를 통해 액세스하면 원격 컴퓨터에서 프로세서 집약적 애플리케이션이 실행되며 Java 애플릿 충돌이 발생합니다.
- 다음 오류 메시지가 표시될 수 있습니다. FATAL net.propero.rdp - javax.net.ssl.SSLException: 연결이 종료되었습니다. .....
- 둘 이상의 CPU 사용량이 많은 애플리케이션을 신속하게 전환할 때 동작이 트리거됩니다.
- 이 문제는 플러그인 버전 rdp.2012.6.4.jar 이상에서 해결되었습니다.
- 해결 방법:
- ActiveX 클라이언트를 사용하여 연결합니다.
- 애플리케이션을 신속하게 전환하지 마십시오.
- 증상: Java RDP 클라이언트는 다음 오류 메시지를 생성합니다. net.propero.rdp.rdp - java.net.SopacketException: 소켓이 닫혔습니다. java.net.SopacketException: 소켓을 닫았다가 닫힙니다.
- 이 문제는 FQDN(예: http://www.example.com)으로 구성된 그룹 URL이 있는 터널 그룹 때문에 발생합니다.
- Cisco 버그 ID CSCuh72888을 참조하십시오.
- 해결 방법:
- 터널 그룹에서 "/" 없이 group-URL 항목을 제거합니다.
- ActiveX 클라이언트를 사용합니다.
- 증상: Java RDP 클라이언트가 Windows 8 컴퓨터에 연결되어 있으면 실패합니다.
- Java RDP Client는 현재 이 기능을 지원하지 않습니다.
- Cisco 버그 ID CSCuc7990 참조
- 해결 방법:
- ActiveX RDP 클라이언트를 사용합니다.
- Windows 네이티브 RDP 클라이언트(mstsc.exe)를 스마트 터널링합니다.
- 증상: 다음 오류 메시지와 함께 Java RDP Client가 실패합니다. ARSiging예외: 리소스에서 서명되지 않은 항목을 찾았습니다. https://10.105.130.91/+CSCO+3a75676763663A2F2F2E637968747661662E++/vnc/VncViewer.jar
- 이 문제는 ASA webVPN Java 재작성기의 버그로 인해 발생합니다.
- Cisco 버그 ID CSCuj88114를 참조하십시오.
- 해결 방법: Java 버전 7u40으로 다운그레이드합니다.