환경

환경

환경

터미널 서비스 게이트웨이를 정당화하기에는 너무 작은 소규모 기업에서는 특정 사용자가 집에서 Windows 10 데스크톱에 액세스할 수 있기를 원합니다.

나는 이 목적을 위해 Windows 원격 데스크톱을 사용하여 행운을 누렸지만 모범 사례에서는 RDP 포트를 직접 노출하지 않는 것이 좋습니다. 그것은VPN을 통해 RDP를 보호하는 것이 좋습니다그러나 과거에는 일반적으로 이 목적을 위해 SSH 터널을 설정했습니다. 그 이유는 SSH 터널에 더 익숙했기 때문입니다.

클라이언트에 SSH 서버를 실행할 수 있는 컴퓨터가 있다고 가정하고 이를 SSH_SERVER. 내 경우에는 일반적으로 파일 서버나 방화벽(예: FreeNAS, pfSense) 역할을 하는 Linux 또는 BSD 컴퓨터가 이미 온프레미스에 있습니다. 그렇지 않은 경우 일반적으로 이 작업을 처리하기 위해 특별히 재구축된 PC를 사용합니다.

SSH 포트 전달 버전

이 섹션에는 Windows 원격 데스크톱 액세스가 필요한 클라이언트에 대해 SSH 포트 전달을 설정하는 방법에 대한 세부 정보가 포함되어 있습니다.

  1. SSH에 대한 키 전용 인증을 설정 SSH_SERVER하고 방화벽을 열어 일부 비표준 포트인 <EXT_SSH_PORT>. 참고: 이것은오직내가 열어 본 외부 포트,모두네트워크와의 통신은 SSH를 통한 포트 전달을 통해 수행됩니다.
  2. 원격으로 연결하려는 각 클라이언트에 대해 SSH_SERVER셸을 /bin/false.
  3. 사용자가 연결하려는 포트와 장치에 대해서만 포트 전달을 허용하는 SSH 제한을 추가합니다. 예를 들어 파일에 다음을 추가합니다 /etc/sshd_conf.
Match User <USERNAME>
  AllowAgentForwarding no
  PermitOpen <USER'S_WINDOWS_DESKTOP_IP>:3389
  ForceCommand echo 'This account is restricted.'

(더 깊은 논의여기).

  1. 각각장치사용자가 연결하려는 키 쌍을 생성합니다. 이 키 쌍은 사용자에게 제공한 비밀번호로 암호화됩니다. 그런 다음 (a) 사용자 ~/.ssh/authorized_keys파일에 공개 키를 추가하고 (b) 개인 키를 사용자 장치에 안전하게 전송합니다.
  2. 방금 실행되는 간단한 스크립트를 사용하여 SSH 터널을 쉽게 설정하는 방법을 만듭니다.ssh -L 10000:<USER'S_WINDOWS_DESKTOP_IP>:3389 <OFFICE_EXTERNAL_IP> -p <EXT_SSH_PORT> 나 도우미 소프트웨어(예:맥 OS, 을 위한윈도우).
  3. RDP 세션에 대한 바로가기를 localhost:10000.

이 방법은 충분히 효과가 있었지만 항상 "전문적"이지 못하다고 느꼈고 언젠가는 이러한 SSH 터널을 VPN으로 전환해야 한다고 생각했습니다.

VPN 제한

저는 L2TP/IPSEC(UniFi Dream Machine에서, 여기의 제한 사항이 라우터에만 국한된 것은 아니라고 생각하지만)를 사용하여 이 문제를 탐색 중이었고 즉시 몇 가지 제한 사항에 직면했습니다.

  1. 사무실 네트워크에는 클라이언트 서브넷과 다른 IP 서브넷이 있어야 합니다.이것은 약간의 성가심이겠지만, 내가 이것을 할 수 있다고 가정해보자. 반면에 클라이언트가 선택할 서브넷을 선택하기만을 바라고 있다는 점은 다소 불만족스럽습니다.절대우연히 켜져 있습니다. 그들이 다른 회사를 방문하고 Wi-Fi를 사용하고 있는데 우연히 그곳에서 IT 공급업체와 동일한 서브넷을 선택했다면 어떻게 될까요?
  2. 사용자별로 단일 PC의 단일 포트로 통신을 제한하는 방법이 명확하지 않습니다.VPN 사용자가 별도의 VLAN에 배치되도록 설정한 다음 해당 VLAN에서 특정 RDP 데스크톱의 포트 3389로의 연결을 제한하는 방화벽 규칙을 추가할 수 있지만 그래도 USER_A가 USER_B의 데스크톱에 연결을 시도하는 것을 막지는 못합니다. . 어떤 이유로 RDP 이외의 포트도 열면 모든 VPN 사용자는 이 포트에도 액세스할 수 있습니다.각 사용자그들의소유하다VLAN은 기본적으로 SSH를 통해 이미 "무료"로 제공되는 기능에 대한 추가 관리 오버헤드처럼 보입니다.
  3. 명확한 장치별 보안이 없습니다.위에서 언급한 SSH 접근 방식을 사용하면 USER_A가 노트북을 도난당하더라도 실제로 걱정할 필요가 없습니다. 우선, 개인 키는 암호화되어 있으므로 사용자가 연결되어 있는 동안 노트북을 도난당하지 않는 한 사무실 네트워크에 액세스할 수 없습니다. 또한 보안을 강화하기 위해 에서 도난당한 노트북과 관련된 키를 제거하면 ~/.ssh/authorized_keys클라이언트가 소유한 다른 모든 장치(예: 개인 데스크톱)는 추가 구성 없이 계속 작동합니다.

핵심요약: SSH 포트 전달을 통해 VPN을 선호하는 이유는 무엇입니까?

VPN이 선호되는 유일한 경우는 VPN을 원할 때인 것 같습니다.모두사무실 네트워크를 통해 통신이 이루어지며 원격 네트워크에 대해 어느 정도 인식/제어할 수 있습니다. (사이트 간 VPN이 이 범주에 속합니다.)

여기서 뭔가 빠졌나요? VPN은 SSH 포트 전달보다 더 나은 성능 및/또는 보안을 제공합니까?

답변1

귀하가 제안한 SSH 솔루션은 당면한 문제에 비해 지나치게 복잡한 것 같습니다.

두 가지 제안:

  1. Duo와 같은 2FA/MFA 솔루션과 함께 VPN을 사용하세요.

  2. VPN에 문제가 있는 경우 Teamviewer, AnyDesk 등과 같은 다른 원격 액세스 솔루션을 Duo와 같은 2FA/MFA 제공업체와 함께 사용하세요.

최대 10명의 사용자가 사용할 수 있는 무료 Duo 계정을 만들 수 있습니다.

관련 정보