Computer >> 컴퓨터 >  >> 시스템 >> Windows 7

Windows에서 RDP 연결 기록을 완전히 삭제하는 방법 총정리

Windows에 내장된 원격 데스크톱 연결(RDP) 클라이언트(mstsc.exe)는 원격 컴퓨터에 성공적으로 접속할 때마다 해당 컴퓨터의 이름(또는 IP 주소)과 로그인에 사용한 사용자 이름을 저장합니다. 다음에 RDP 클라이언트를 실행하면 이전에 사용한 연결 목록이 표시되고, 목록에서 RDS/RDP 호스트를 선택하면 클라이언트가 자동으로 이전에 사용했던 사용자 이름을 채워 줍니다.

사용자 입장에서는 편리한 기능이지만, 보안 관점에서는 위험할 수 있습니다. 특히 공공장소의 PC나 신뢰할 수 없는 컴퓨터에서 RDP 서버에 접속하는 경우 더욱 그렇습니다.

모든 RDP(터미널) 세션 정보는 각 사용자의 레지스트리 하이브에 개별적으로 저장되기 때문에, 일반 사용자 권한으로는 다른 사용자의 RDP 연결 기록을 볼 수 없습니다.

이 글에서는 Windows가 원격 데스크톱 연결 기록과 저장된 자격 증명을 어디에 보관하는지, mstsc 창에서 항목을 제거하는 방법, 그리고 RDP 로그를 삭제하는 방법까지 자세히 알아보겠습니다.

레지스트리에서 RDP 연결 캐시 삭제하기

모든 RDP 연결 정보는 각 사용자의 레지스트리에 저장됩니다. Windows 기본 도구만으로는 RDP 연결 기록 목록에서 컴퓨터를 제거할 수 없으므로, 레지스트리 키를 직접 정리해야 합니다.

  1. 레지스트리 편집기(regedit.exe)를 실행하고 HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client 키로 이동합니다.
  2. 이 위치에는 두 개의 중요한 키가 있습니다. Default(최근 10개의 RDP 연결 기록 저장)와 Servers(지금까지 접속한 모든 RDP 서버와 사용자 이름 목록 포함)입니다.
  3. HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default 키를 확장하면 최근 사용한 원격 컴퓨터의 IP 주소 또는 DNS 이름 10개(MRU – Most Recently Used)가 보입니다. 원격 데스크톱 서버의 이름은 MRU* 값에 저장되어 있으며, 최근 RDP 연결 기록을 지우려면 MRU0~MRU9 값을 모두 선택한 후 마우스 오른쪽 버튼을 눌러 삭제를 클릭합니다.
  4. 다음으로 HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers 키를 확장합니다. 여기에는 해당 사용자가 지금까지 설정한 모든 RDP 연결 목록이 들어 있습니다. 호스트 이름(또는 IP)으로 된 하위 키를 열어보면 UsernameHint 값을 확인할 수 있는데, 이것은 RDP/RDS 호스트에 접속할 때 사용된 사용자 이름입니다. 이 이름은 다음 접속 시 자동으로 사용됩니다. 또한 CertHash 변수에는 RDP 서버 SSL 인증서 지문이 저장되어 있습니다.
  5. 모든 RDP 연결 기록과 저장된 사용자 이름을 지우려면 Servers 키의 내용을 비워야 합니다. 중첩된 레지스트리 키를 한 번에 선택할 수 없으므로, Servers 키 전체를 삭제한 뒤 수동으로 다시 만드는 것이 더 간편합니다.
  6. 그다음 기본 RDP 연결 파일(가장 최근 rdp 세션 정보 포함)인 Default.rdp를 삭제합니다. 이 파일은 문서(Documents) 폴더에 있는 숨김 파일입니다.
  7. Windows는 최근 원격 데스크톱 연결을 점프 목록(Jump List)에도 저장합니다. Windows 검색 상자에 mstsc를 입력하면 이전에 사용한 RDP 연결이 목록에 나타납니다. 레지스트리 키 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced의 DWORD 값 Start_TrackDocs0으로 설정하면 최근 항목 추적을 완전히 끌 수 있고, %AppData%\Microsoft\Windows\Recent\AutomaticDestinations 폴더의 파일을 삭제하여 최근 항목 목록을 비울 수도 있습니다.

참고: 위에서 설명한 원격 데스크톱 연결 기록 삭제 방법은 Windows XP부터 Windows 10까지 모든 데스크톱 버전과 Windows Server에서 동일하게 작동합니다.

RDP 연결 기록 삭제 스크립트

앞서 RDP 연결 기록을 수동으로 삭제하는 방법을 살펴봤습니다. 하지만 여러 대의 컴퓨터에서 작업하려면 시간이 많이 걸립니다. 따라서 RDP 기록을 자동으로 정리해 주는 간단한 배치(BAT) 스크립트를 소개합니다.

RDP 기록 정리를 자동화하려면 이 스크립트를 Windows 시작 프로그램에 넣거나, GPO 로그오프 스크립트로 사용자 컴퓨터에 배포하면 됩니다.

@echo off
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"
attrib -s -h %userprofile%\documents\Default.rdp
del %userprofile%\documents\Default.rdp
del /f /s /q /a %AppData%\Microsoft\Windows\Recent\AutomaticDestinations

스크립트의 각 동작은 다음과 같습니다.

  1. 콘솔에 정보 출력을 비활성화합니다.
  2. HKCU\Software\Microsoft\Terminal Server Client\Default 키의 모든 값을 삭제합니다(최근 RDP 연결 목록 정리).
  3. HKCU\Software\Microsoft\Terminal Server Client\Servers 키 전체를 삭제합니다(모든 RDP 연결 및 저장된 사용자 이름 정리).
  4. 삭제했던 레지스트리 키를 다시 생성합니다.
  5. 현재 사용자 프로필 디렉터리의 Default.rdp 파일 속성을 변경합니다(기본값은 숨김 및 시스템 속성).
  6. Default.rdp 파일을 삭제합니다.
  7. 점프 목록의 최근 항목에서 원격 데스크톱 연결 기록을 제거합니다.

또한 아래 PowerShell 스크립트로도 RDP 연결 기록을 정리할 수 있습니다.

Get-ChildItem "HKCU:\Software\Microsoft\Terminal Server Client" -Recurse | Remove-ItemProperty -Name UsernameHint -Ea 0
Remove-Item -Path 'HKCU:\Software\Microsoft\Terminal Server Client\servers' -Recurse 2>&1 | Out-Null
Remove-ItemProperty -Path 'HKCU:\Software\Microsoft\Terminal Server Client\Default' 'MR*' 2>&1 | Out-Null
$docs = [environment]::getfolderpath("mydocuments") + '\Default.rdp'
remove-item $docs -Force 2>&1 | Out-Null

참고: 참고로 CCleaner 등 많은 시스템·레지스트리 클리너 프로그램에도 RDP 기록 정리 기능이 기본 탑재되어 있습니다.

Windows가 RDP 연결 기록을 저장하지 않게 하는 방법

Windows가 RDP 연결 기록을 저장하지 않길 원한다면, 모든 사용자 계정에 대해 HKCU\Software\Microsoft\Terminal Server Client 레지스트리 키에 대한 쓰기를 거부해야 합니다. 먼저 해당 키에서 권한 상속을 해제하고(권한 → 고급 → 상속 사용 안 함), 사용자에게 거부(Deny) 옵션을 체크하여 ACL을 변경합니다(단, 이는 공식적으로 지원되지 않는 구성임을 이해해야 합니다).

이렇게 하면 mstsc.exe가 레지스트리에 RDP 연결 정보를 기록할 수 없게 됩니다.

원격 데스크톱 비트맵 캐시 삭제하기

원격 데스크톱 연결 클라이언트에는 영구 비트맵 캐싱(persistent bitmap caching) 기능이 있습니다. RDP 클라이언트는 자주 변하지 않는 원격 화면 조각들을 래스터 이미지 캐시로 저장하고, mstsc.exe는 마지막 렌더링 이후 변하지 않은 화면 영역을 로컬 드라이브 캐시에서 불러옵니다. 이 기능 덕분에 네트워크로 전송되는 데이터 양이 줄어듭니다.

RDP 캐시는 %LOCALAPPDATA%\Microsoft\Terminal Server Client\Cache 디렉터리에 두 가지 유형의 파일로 저장됩니다.

  • *.bmc
  • *.bin

이 파일들은 64×64 픽셀 타일 형태의 원격 화면 비트맵을 담고 있습니다. 간단한 PowerShell이나 Python 스크립트(RDP Cached Bitmap Extractor로 검색하면 쉽게 찾을 수 있음)를 사용하면 원격 데스크톱 화면 조각이 담긴 PNG 파일을 추출해 민감한 정보를 얻을 수 있습니다. 타일 크기는 작지만, RDP 캐시를 분석하는 사람에게 유용한 정보를 충분히 제공할 수준입니다.

RDP 클라이언트가 원격 화면 이미지 캐시를 저장하지 않게 하려면, mstsc의 고급 탭에서 영구 비트맵 캐싱(Persistent bitmap caching) 옵션을 해제하면 됩니다.

때때로 RDP 캐시가 손상되어 다음과 같은 오류가 발생할 수 있습니다.

Bitmap Disk Cache Failure. Your disk is full or the cache directory is missing or corrupted. Some bitmaps may not appear.

이 경우 RDP 캐시 디렉터리를 비우거나 비트맵 캐싱 옵션을 비활성화해야 합니다.

저장된 RDP 자격 증명 삭제하기

새 RDP 연결을 설정할 때 비밀번호 입력 전에 암호 기억(Remember Me) 옵션을 체크하면, 사용자 이름과 비밀번호가 Windows 자격 증명 관리자에 저장됩니다. 같은 컴퓨터에 다음 번 접속할 때 RDP 클라이언트는 저장된 비밀번호를 자동으로 사용해 원격 호스트 인증을 진행합니다.

저장된 RDP 비밀번호는 mstsc.exe 클라이언트 창에서 바로 삭제할 수 있습니다. 연결 목록에서 해당 연결을 선택하고 삭제 버튼을 클릭한 뒤, 저장된 자격 증명 삭제를 확인하면 됩니다.

또는 Windows 자격 증명 관리자에서 직접 삭제할 수도 있습니다. 제어판 → 사용자 계정 → 자격 증명 관리자로 이동한 후 Windows 자격 증명 관리를 선택합니다. 저장된 암호 목록에서 컴퓨터 이름(TERMSRV/192.168.1.100 형식)을 찾아 항목을 확장한 뒤 제거 버튼을 클릭합니다.

Active Directory 도메인 환경에서는 특수 GPO인 네트워크 액세스: 네트워크 인증을 위해 암호 및 자격 증명 저장 허용 안 함(Network access: Do not allow storage of passwords and credentials for network authentication)을 사용해 RDP 연결 암호 저장을 차단할 수 있습니다.

원격 호스트에서 RDP 관련 이벤트 로그 삭제하기

연결 로그는 RDP/RDS 호스트 쪽에도 저장됩니다. 이벤트 뷰어 로그에서 RDP 연결 기록 정보를 확인할 수 있습니다.

  • 보안(Security)
  • 응용 프로그램 및 서비스 로그 → Microsoft → Windows → TerminalServices-RemoteConnectionManager → Operational
  • TerminalServices-LocalSessionManager → Admin

RDP 서버의 이벤트 로그는 wevtutil 명령이나 PowerShell을 사용해 삭제할 수 있습니다.