VDI란?
데이터센터에 연결하는 개인용 박스(컴퓨터) 이다.
VDI는 전통적인 데스크톱PC에 대한 대안으로 고안되었으며 이론적으로 VDI는 사용자의 PC에 OS와 SW를 설치하지 않고
클라우드 데이터센터와 연결된다.
데이터센터의 대규모 서버, 스토리지 팜에서 모든 SW 구동이 이뤄지며, 사용자는 자신의 단말기를 이미지 뷰어로 이용하는 것이다.
VDI를 사용하는 이유?
문서보안의 혜택과 데이터센터에 모든 정보를 저장하고 사용자 단말기 저장을 최소화하므로 중요한 기업정보의 유출우려가 적다.
비밀번호 관리만 잘 한다면 완벽에 가깝다. 또, 기업 IT 관리자의 직원PC 관리에 대한 비용과 수고를 덜어준다.
Master image란?
여러 VDI Client들이 동일한 버전의 OS를 사용할수 있게 하기 위한 원본 image 이다.
01. Hyper-V 사용 및 가상 머신 설치
Azure 가상머신으로 만들어도 되지만 로컬 컴퓨터의 Hyper-V를 사용해서 만들면 더 빠르기 때문에 Hyper-V를 사용
VM을 만든 후 VM 설정창에 들어가 검사점을 꼭 제거 해줘야 함!
설치 후 부팅 디스크를 제거해줘야 함
참조 문서: https://learn.microsoft.com/ko-kr/azure/virtual-machines/windows/prepare-for-upload-vhd-image
02. PowerShell 스크립트 작성
PowerShell 관리자 모드로 들어간 후 SFC 명령 실행.
sfc.exe /scannow
WinHTTP 프록시 제거
netsh.exe winhttp reset proxy
DiskPart 열기
diskpart.exe
디스크 SAN 정책을 Onlineall로 설정
DISKPART> san policy=onlineall
DISKPART> exit
Windows UTC 시간 설정 및 시간 서비스인 w32time의 시작 유형을 자동으로 설정
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation -Name RealTimeIsUniversal -Value 1 -Type DWord -Force
Set-Service -Name w32time -StartupType Automatic
전원 프로필을 고성능으로 설정
powercfg.exe /setactive SCHEME_MIN
powercfg /setacvalueindex SCHEME_CURRENT SUB_VIDEO VIDEOIDLE 0
TEMP 및 TMP 환경 변수가 기본값으로 설정되어 있는지 확인
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' -Name TEMP -Value "%SystemRoot%\TEMP" -Type ExpandString -Force
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' -Name TMP -Value "%SystemRoot%\TEMP" -Type ExpandString -Force
Windows 서비스가 Windows 기본값으로 설정되어 있는지 확인
Get-Service -Name BFE, Dhcp, Dnscache, IKEEXT, iphlpsvc, nsi, mpssvc, RemoteRegistry |
Where-Object StartType -ne Automatic |
Set-Service -StartupType Automatic
Get-Service -Name Netlogon, Netman, TermService |
Where-Object StartType -ne Manual |
Set-Service -StartupType Manual
RDP(원격 데스크톱 프로토콜) 활성화 확인
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections -Value 0 -Type DWord -Force
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' -Name fDenyTSConnections -Value 0 -Type DWord -Force
기본 3389 사용하여 RDP 포트 올바르게 설정되어 있는지 확인
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp' -Name PortNumber -Value 3389 -Type DWord -Force
수신기가 모든 네트워크 인터페이스에서 수신 대기 하는지 확인
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp' -Name LanAdapter -Value 0 -Type DWord -Force
RDP 연결의 NLA 모드를 구성
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 1 -Type DWord -Force
연결 유지 값 설정
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' -Name KeepAliveEnable -Value 1 -Type DWord -Force
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' -Name KeepAliveInterval -Value 1 -Type DWord -Force
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp' -Name KeepAliveTimeout -Value 1 -Type DWord -Force
다시 연결 옵션 설정
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' -Name fDisableAutoReconnect -Value 0 -Type DWord -Force
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp' -Name fInheritReconnectSame -Value 1 -Type DWord -Force
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp' -Name fReconnectSame -Value 0 -Type DWord -Force
동시 연결 수 제한
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp' -Name MaxInstanceCount -Value 4294967295 -Type DWord -Force
RDP 수신기에 연결된 자체 서명된 인증서를 모두 제거
if ((Get-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp').Property -contains 'SSLCertificateSHA1Hash')
{
Remove-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name SSLCertificateSHA1Hash -Force
}
세 개 프로필(도메인, 표준 및 공용)에서 Windows 방화벽 킴
Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled True
세 개의 방화벽 프로필(도메인, 프라이빗 및 공용)을 통해 WinRM을 허용하고 PowerShell 원격 서비스를 사용하도록 설정
Enable-PSRemoting -Force
Set-NetFirewallRule -Name WINRM-HTTP-In-TCP, WINRM-HTTP-In-TCP-PUBLIC -Enabled True
방화벽 규칙을 사용하도록 설정하여 RDP 트래픽을 허용
Set-NetFirewallRule -Group '@FirewallAPI.dll,-28752' -Enabled True
VM이 가상 네트워크 내의 ping 요청에 응답할 수 있도록 파일 및 프린터 공유에 대한 규칙을 사용하도록 설정
Set-NetFirewallRule -Name FPS-ICMP4-ERQ-In -Enabled True
Azure 플랫폼 네트워크 규칙 만듬
New-NetFirewallRule -DisplayName AzurePlatform -Direction Inbound -RemoteAddress 168.63.129.16 -Profile Any -Action Allow -EdgeTraversalPolicy Allow
New-NetFirewallRule -DisplayName AzurePlatform -Direction Outbound -RemoteAddress 168.63.129.16 -Profile Any -Action Allow
VM이 다시 시작할 때 디스크를 검사하게 설정
chkdsk.exe /f
03. Sysprep
sysprep이란? 다른 PC에 이 OS를 설치할 수 있도록 하기 위해서 PC 관련 정보를 제거 해주는 작업임.
제거를 해주지 않으면 OS는 PC에 종속이 되어서 다른 PC에 설치할수 없음.
Sysprep 돌리기
가상 하드 디스크 편집 마법사에서 VHD로 변환(Virtual Box로 했으면 생략)
04. Azure Storage Explorer
Azure Storage Explorer에 Azure 계정을 로그인 후 구독을 켜줌
Azure Storage Explorer을 사용하여 파일 업로드를 함.
05. 이미지 생성 및 이미지를 사용하여 VM 생성
Azure 포탈에 접속해서 이미지 검색 후 이미지를 만들어 줌
이미지를 사용하여 VM 생성 , 라이선스 형식 체크를 하면 VM 생성 후 원격 접속시 보안 관련해서 에러뜰수도 있음. 공란으로 두는 것을 추천
부트 진단을 통하여 이미지 부팅시에 이상이 없는지 확인 , mstsc를 통하여 접속
06. 번외 Virtual box 사용(Hyper-V로 안될 시)
작성은 Virtual box 6.1 버전이며 안정적인 버전이라 6.1을 추천
양방향과 마우스 통합 설치를 해주어야 마우스로 복붙이 됨. Sysprep 돌리기전 통합 설치 삭제.
VM 설치를 다했으면 OS 디스크 제거 후 02번의 Power shell 부터 진행해주면 됨
'Azure' 카테고리의 다른 글
Azure S2S 실습 (1) | 2022.12.07 |
---|