사용자를 관리자로 만들지 않고 Windows에서 OpenVPN 실행하기
OpenVPN은 어댑터와 경로에 권한이 필요하지, 모든 것에 필요한 것은 아닙니다. 서비스를 사용하고 네트워크 권한을 위임한 뒤 사용자 계정에서 확인하세요.
사용자가 OpenVPN GUI를 두 번 클릭하고 UAC 프롬프트를 승인하며, 다음 재연결에서도 같은 의식을 반복합니다. 이 프롬프트는 패키징 실수가 아닙니다: 클라이언트가 가상 어댑터를 만들고 라우팅 테이블을 편집하며, 둘 다 권한이 필요한 변경입니다. 정말 물어야 할 것은 그중 어떤 권한을 사용자가 실제로 필요로 하는가입니다. 서비스와 좁은 위임으로 관리자 구성원 자격을 나눠주지 않고도 연결을 감당할 수 있습니다.
어떤 작업에 실제로 권한 상승이 필요한가
터널은 가상 네트워크 인터페이스에서 끝나며, 그 인터페이스를 설치하는 것은 한 번 관리자 권한이 필요한 드라이버 작업입니다. 어댑터가 존재한 뒤에도 각 연결은 여전히 경로를 쓰고, 프로필에 따라 DNS 구성을 바꿉니다. 일반 계정에서 권한 상승을 일으키는 것은 바로 이 두 단계입니다. 인증이나 암호화에는 관리자 권한이 전혀 필요 없으며, 바로 그래서 이 권한을 분리할 수 있습니다.
권한을 고르기 전에 설치 시점과 연결 시점을 분리하세요. 둘은 소유자도 수명도 다릅니다.
서비스를 권한 있는 구성 요소로 사용하세요
지원되는 구성은 필요한 권한을 가진 Windows 서비스를 실행하고, GUI가 그 서비스에 연결을 요청합니다. 그러면 권한 있는 코드가 사용자 세션 안에서 실행되는 일이 없습니다.
sc query OpenVPNService
sc qc OpenVPNService바이너리 경로가 설치된 클라이언트를 가리키는 서비스가 실행 중인지가 무엇이든 위임하기 전에 확인할 첫 번째 사실입니다. 어댑터와 경로는 서비스가 소유하므로 사용자는 연결을 시작하고 중지할 뿐입니다. 공유 머신에서는, 연결을 클릭하는 계정이 상시 권한을 갖지 않기 때문에 이 형태를 써야 합니다. 설명자는 sc sdshow 로 읽고, 편집하기 전에 출력의 정상 사본을 보관하세요.
기본 제공 그룹으로 경로 변경을 위임하세요
대화식으로 실행해야 하는 클라이언트의 경우 위임된 기본 제공 그룹은 Network Configuration Operators입니다. 네트워크 설정과 경로 변경을 다루되 소프트웨어 설치와 일반 관리 작업은 제외합니다.
net localgroup "Network Configuration Operators" alice /add
sc sdshow OpenVPNService계정 추가는 조용하지 않습니다: 기본 정책은 세션마다 여전히 프롬프트를 한 번 띄우므로, 이 권한 부여는 권한 상승으로 할 수 있는 일을 줄일 뿐 없애지는 않습니다. 조용히 쌓이고 거의 검토되지 않기 때문에 구성원 자격을 문서화하세요. 서비스 경로에서는 sc sdset 로 설명자를 편집해 시작과 중지를 그룹에 위임할 수 있지만, 설명자의 오타는 모든 계정의 시작 권한을 거부할 수 있고 되돌리려면 관리자가 필요합니다. 설명자 변경은 프로덕션 호스트에 도달하기 전에 랩 머신에서 시험하세요.
사용자 계정에서 확인하세요
관리자 세션에서 수행한 구성은 그것을 사용할 계정에 대해 아무것도 증명하지 않습니다. 그 사용자로 로그인해 연결하고, 전후의 머신 상태를 비교하세요.
route print -4
Get-DnsClientServerAddress라우팅 테이블에는 터널 경로가 추가되어야 하고, 연결 중에는 리졸버가 VPN이 제공하는 서버를 가리켜야 합니다. 연결을 끊은 뒤에는 두 출력 모두 미리 찍어 둔 사본과 일치해야 하며, 그래서 먼저 찍어 두는 것이 중요합니다. 드라이버 업데이트가 관리자 요구를 다시 들여올 수 있으므로 결과 옆에 클라이언트 버전을 기록하세요. 프로필과 키 파일은 공유 설치를 위해 권한을 느슨하게 하지 말고, 사용하는 계정만 읽을 수 있게 하세요.
누가 터널을 시작할 수 있고, 어느 그룹이 그것을 부여하며, 무엇에 아직 관리자가 필요한지 적어 두세요. 그 메모는 다음 클라이언트 업데이트를 추측으로 보내는 오후가 아니라 계획된 작업으로 바꿉니다.