안녕하세요 달소입니다.
이번에는 어제 발견한 wireguard 기반의 자체호스팅 VPN서버를 구축해보겠습니다.
직접 구축해봤는데 꽤(?) 괜찮습니다.
일단 인증옵션을 키게되면 1시간마다 웹으로 로그인해서 인증시간을 늘려줘야하구요.(시간지정가능)
ex) 5시에 로그인했으면 6시까지는 vpn사용 가능, 6시 이후에는 다시 로그인필요.
개인별로 egress 지정이 가능해서 어느정도 컨트롤도 됩니다 ㅎㅎ
OTP도 적용되고,, 속도도 꽤 잘나오는거같네요
Firezone 은 자체 호스팅 VPN 서버 및 Linux 방화벽입니다.
직관적인 웹 인터페이스와 CLI 유틸리티를 통해 원격 액세스를 관리합니다.
자체 인프라에 배포 하여 네트워크 트래픽을 계속 제어합니다.
WireGuard® 를 기반으로 하여 안정적이고 성능이 좋으며 가벼움.
기본적으로 wireguard vpn이기때문에 속도는 기존 openvpn 보다는 훨씬빠르며
별도의 SSO인증절차등을 생성할 수 있기때문에 꽤나 좋아보여서 소개해드리게되었습니다.
특징
- 빠름: WireGuard®를 사용하여 OpenVPN보다 3-4배 빠릅니다.
- SSO 통합: OIDC(OpenID Connect) 커넥터가 있는 ID 공급자를 사용하여 인증합니다.
- 종속성 없음: Chef Omnibus 덕분에 모든 종속성이 번들로 제공됩니다 .
- 간단: 설정하는 데 몇 분이 걸립니다. 간단한 CLI를 통해 관리합니다.
- 보안: 권한 없이 실행됩니다. HTTPS가 시행되었습니다. 암호화된 쿠키.
- 방화벽 포함: Linux nftables 를 사용하여 원치 않는 이그레스 트래픽을 차단합니다.
지원되는 플랫폼
firezone이 지원하는 플랫폼은 대부분의 리눅스를 다 지원합니다.+ARM
Supported Platforms | Firezone
Firezone currently supports the following platforms:
설치하기
저는 Ubuntu 22.04 LTS OS에 설치를진행에정입니다.
설치는 제공해주는 스크립트로 쉽게 설치가 가능합니다.
sudo -E bash -c "$(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh)"
맨처음 커널 모듈만 로드해주고 나머지는 읽어보시고 선택해주시면 됩니다.
마짐가에 ENTER만 누르면 설치가 진행됩니다.
설치가 완료되면 아래처럼 창이뜹니다.
https://ip로 접속하신뒤 이메일계정 + pw로 접속하시면됩니다
로그인을하면 대시보드가 반겨주는군요
로그인을하면 계정을 눌러서 PW를 반드시 변경해주시고 필요에 따라 2FA도 적용해주시면됩니다.
기본적인 공통설정은 Settings에 Default에서 설정이가능합니다.
설정방법은 크게 어렵지않습니다. 기존 wireguard vpn사용법과 동일하게
Allowed IPs는 vpn을 연결했을때 VPN을 타고나갈 ip를 지정해주시면되고
DNS는 말그대로 사용할 DNS서버입니다
Endpoint는 공인 ip가 잘나오시면됩니다.
보안설정쪽은 이쪽입니다.
기본사용방법
꽤 많은 기능이있지만 여기서는 간단하게 VPN연결이 목적이기때문에 VPN을 연결해보겠습니다.
사용자를 선택하고 Add Device를 눌러줍니다.
사용자를 누르고 기기추가를진행합니다.
사용방법은 크게 어렵지않습니다. 기존 wireguard vpn사용법과 동일하게
Allowed IPs는 vpn을 연결했을때 VPN을 타고나갈 ip를 지정해주시면되고
DNS는 말그대로 사용할 DNS서버입니다
Endpoint는 공인 ip가 잘나오시면됩니다.
컨피그를 다운로드 받아서 클라이언트에 넣어주거나 모바일의경우 qr을 읽어주면됩니다.
연결을 하면 이렇게 remote IP와 Transfer도 볼수있구요
사용자별로 룰을 지정해서 Egress 트래픽을 컨트롤할수도 있습니다.
한시간 인증제한을걸면 이렇게 EXPIRED가 되고 VPN연결이 끊깁니다 ㅎㅎ