Huny's Dev Blog

Windows 11 ARM64용 FortiClient 대안: WSL과 OpenFortiVPN 사용하기

Hun Jang
Hun JangFeb 16, 2025
Windows 11 ARM64용 FortiClient 대안: WSL과 OpenFortiVPN 사용하기

재택 근무를 하거나 외근지에 나가 있을 때 회사 업무를 하기 위해 FortiClient VPN을 사용하곤 했다. 회사에서는 공식적으로 VPN 접속을 FortiClient 프로그램 사용하도록 안내하였고, 이전까지는 Windows amd64를 사용했기 때문에 문제 없이 사용할 수가 있었다. 그러나 새로운 노트북으로 Windows11 arm64 가 설치된 제품을 구매하면서 FortiClient가 호환되지 않는 다는 것을 알게 되었다. 갤럭시북4 Edge를 구매하였는데, 삼성 홈페이지(갤럭시 북4 Edge 호환성 관련 안내 (samsung.com)) 에서도 호환성 관련 안내 사항에서 호환되지 않는 어플리케이션 목록에 FortiClient VPN을 명시하고 있다.

갤럭시북4 Edge 호환성 안내 일부, samsung.com
갤럭시북4 Edge 호환성 안내 일부, samsung.com

검색을 해보니 ARM64 기반의 Windows를 사용하는 사람들이 FortiClient가 실행되지 않아 어려움을 호소하고 있는 글을 많이 접하게 되었다.

나도 이러한 글에서 해답을 찾아보고자 노력했지만 결국 해결하지 못했다. 하지만 다양한 방법을 시도해본 끝에 FortiClient를 사용하지 않고도 회사 VPN에 접속할 수 있는 방법을 찾게 되었고, 그 과정에서 겪었던 접근 방법과 해결 방안을 아래와 같이 정리하였다.

1. Microsoft Store에서 FortiClient 설치 후 정상 동작 실패

구글 검색에서는 대부분 Windows 11에서는 아직 FortiClient를 지원하지 않는다는 결과만 있었지만 그 중에 Microsoft Store에서 FortiClient를 설치할 수 있다는 내용이 있었다. 먼저, Microsoft Store를 통해 FortiClient를 설치했다. 설치 과정은 비교적 간단했으며, 몇 번의 클릭 만으로 설치가 완료되었다.

정상 동작하지 않는 FortiClient

설치된 FortiClient는 정상적으로 실행되지 않았다. 프로그램을 실행하려 할 때 오류 메시지가 나타났거나, VPN 연결 시도가 실패하는 등의 문제가 발생했다. 이러한 문제는 ARM64 아키텍처와 FortiClient 간의 호환성 이슈 때문인 것으로 보인다. 공식 문서를 통해 확인한 결과, FortiClient는 ARM64를 공식적으로 지원하지 않는 것으로 나타났다.

호환성 문제 분석

ARM64 아키텍처는 기존의 x86_64 아키텍처와는 다른 명령어 세트를 사용하기 때문에, 일부 소프트웨어는 호환성 문제를 겪을 수 있다. FortiClient의 경우, 공식적으로 ARM64를 지원하지 않기 때문에 설치는 가능하지만 정상적으로 동작하지 않는 문제가 발생한다. 이러한 호환성 문제를 해결하기 위해 대안을 모색할 필요가 있었다.

2. Linux 환경에서의 FortiClient 대안: OpenFortiVPN

OpenFortiVPN 소개

FortiClient의 대안으로 Linux 환경에서는 OpenFortiVPN이라는 오픈소스 VPN 클라이언트를 사용할 수 있다. OpenFortiVPN은 Fortinet의 FortiGate 장비와 호환되는 VPN 연결을 지원하며, 경량화된 클라이언트로 다양한 Linux 배포판에서 안정적으로 동작한다. 오픈소스 프로젝트인 만큼 자유롭게 소스 코드를 검토하고 수정할 수 있는 장점도 있다.

Linux에서의 성공적인 동작 사례

기존에 Linux 환경에서 OpenFortiVPN을 사용하여 FortiGate VPN에 성공적으로 연결한 경험이 있었다. Linux에서는 패키지 매니저를 통해 간편하게 OpenFortiVPN을 설치할 수 있었고, 간단한 설정만으로 안정적인 VPN 연결을 구축할 수 있었다. 이러한 경험을 바탕으로 Windows 11 ARM64 환경에서도 유사한 방법을 적용할 수 있을지 고민하게 되었다.

3. WSL을 활용한 OpenFortiVPN 설치 및 구성

WSL(Windows Subsystem for Linux) 개요

WSL(Windows Subsystem for Linux)**은 Windows 환경에서 Linux 배포판을 실행할 수 있게 해주는 호환성 계층이다. WSL을 사용하면 Windows에서 직접 Linux 명령어와 도구를 사용할 수 있으며, 개발자들에게 매우 유용한 기능을 제공한다. 특히, ARM64 아키텍처에서도 WSL을 통해 Linux 환경을 손쉽게 구축할 수 있는 점이 큰 장점이다.

WSL 설치 방법

Windows 11에서 WSL을 설치하는 방법은 다음과 같습니다:

  1. PowerShell 관리자 권한으로 실행:
    wsl --install
    
    
    powershell
  1. 설치가 완료되면 시스템을 재부팅
  1. 재부팅 후 원하는 Linux 배포판(예: Ubuntu)을 Microsoft Store에서 설치

WSL 내 OpenFortiVPN 설치

WSL을 통해 설치한 Linux 배포판에서 OpenFortiVPN을 설치하는 방법은 다음과 같다:

  1. 패키지 목록 업데이트:
    sudo apt update
    
    
    shell
  1. OpenFortiVPN 설치:
    sudo apt install openfortivpn
    
    
    shell
  1. 설정 파일 작성:/etc/openfortivpn/config 파일을 생성하고 VPN 서버 주소, 사용자명, 비밀번호 등을 입력:
    host = vpn.example.com
    port = 443
    username = your_username
    password = your_password
    
    
    shell
  1. VPN 연결 테스트:정상적으로 연결되면 VPN을 통해 네트워크에 접근 가능
    sudo openfortivpn
    
    
    shell

4. WSL과 OpenFortiVPN을 접목한 VPN 연결 설정

VPN 연결 테스트

WSL에서 OpenFortiVPN을 통해 VPN 연결을 시도했다. 초기 설정 후, sudo openfortivpn 명령어를 실행하여 VPN 서버에 성공적으로 연결할 수 있었다. 연결 상태를 확인한 결과, VPN을 통해 내부 네트워크 자원에 접근이 가능했으며, 안정적인 연결 상태를 유지할 수 있었다.

SSH 포트 포워딩 설정

VPN 연결을 통해 특정 IP와 포트에 접근하기 위해 Windows → WSL방향으로 SSH 포트 포워딩을 설정했다. 즉 SSH 터미널을 열면서 포트포워딩 설정을 하면 host(windows)에서 WSL를 거쳐 VPN을 통해 원하는 포트로 접근할 수 있게 된다.

ssh -L 명령어 사용법

다음과 같은 형식으로 SSH 포트 포워딩을 설정:

ssh -L src_port:ip:dst_port user@remote_host

bash
  • src_port: 로컬 머신에서 사용할 포트 번호
  • ip: VPN을 통해 접근할 원격 IP 주소
  • dst_port: 원격 IP의 포트 번호
  • user@remote_host: SSH 접속 정보

특정 IP접근 설정

포트 포워딩을 통해 VPN 내 특정 IP와 포트에 접근할 수 있다. 예를 들어, 내부 데이터베이스 서버에 접근하기 위해 로컬 머신의 5432 포트를 데이터베이스 서버의 5432 포트로 포워딩한다:

ssh -L 5432:database.internal:5432 user@vpn-server

shell

이 설정을 통해 로컬 머신의 localhost:5432로 접속하면 VPN을 통해 내부 데이터베이스 서버에 접근할 수 있게 된다. 이러한 설정은 개발 환경이나 특정 서비스에 접근할 때 매우 유용하게 활용할 수 있다.

이렇게 src_port를 목적지의 원격 데스크탑 ip와 port에 매핑되도록 ssh 터미널을 열어주면, windows 원격 데스크탑을 통해 forti client 없이도 원격 접속이 가능하다.

결론

문제 해결 요약

Windows 11 ARM64 환경에서 FortiClient의 호환성 문제로 인해 VPN 연결에 어려움을 겪었지만, WSL과 OpenFortiVPN을 활용하여 성공적으로 문제를 해결할 수 있었다. WSL을 통해 Linux 환경을 구축하고, OpenFortiVPN을 설치하여 안정적인 VPN 연결을 확보하였으며, SSH 포트 포워딩을 통해 특정 네트워크 자원에 접근할 수 있게 되었다.

향후 개선점 및 제안

앞으로는 OpenFortiVPN의 자동화 스크립트를 작성하여 더욱 간편하게 VPN 연결을 설정할 수 있는 방법을 모색할 예정이다. 또한, ARM64 환경에서 더욱 최적화된 VPN 클라이언트가 개발되기를 기대한다. ARM64 아키텍처가 점차 보편화됨에 따라, 호환성 문제를 해결하고 다양한 소프트웨어가 ARM64를 지원하도록 하는 노력이 필요하다고 생각한다.