와이어가드(WireGuard)는 어렵다. 동의한다.
GUI 기반으로 쉽게 WireGuard 서버 구축할 수 있도록 도와주는 도구들이 몇 개 나와 있는데, wg-easy / WGDashboard 정도가 그나마 잘 유지되고 있는 것 같다. 하지만 공격 표면이 증가한다거나, 유지보수가 중단되면 감당이 안될 것 같은 불안감이 들었다.
결국 WireGuard 공식 문서들을 참고하여 WireGuard Server 구축하는 것이 장기 유지 관점에서 가장 유리하다고 판단되었다.
스크린샷에서 확인할 수 있듯이, QR코드로 클라이언트 옵션들을 전달할 수 있는 등 GUI 기반 관리도구들이 사용하는 기술들을 전부 쓸 수 있었다. 내장된 wg-quick 명령어 덕분에, 환경 구축 한번만 해두면 실사용은 딸깍 수준으로 쉬웠고.
곳곳에 지뢰가 있었다.
AppImage 체크해야 됐고, UFW 방화벽 체크해야 됐고, 외부인터넷 신호가 끊기지 않도록 iptable로 엮는 과정도 경우에 따라서는 필요했고, DNS를 서버쪽에서 끌어올지 클라이언트 측에서 끌어올지 결정해야 되는 부분도 있었고.
이것들을 GUI 기반 관리도구들이 전부 처리할 수 있다고? 정말?
공유기 제조사들 중에서 WireGuard 서버 기능 탑재하여 내놓는 곳이 소수인 이유를 알 것 같고, 그 업체들이 넣어준 옵션만으로 WireGuard의 기능을 완전히 제어할 수 있을까 싶은 생각이 들 정도로… 어려웠다. (OpenVPN 서버 구축할 때보다 더 어렵더라.)
그럼에도 불구하고 결과물은 굉장히 만족스럽다. 모든 트래픽을 서버에서 처리할 수도 있고, 내부 통신만 서버에서 처리하고 인터넷 서핑은 클라이언트에서 처리할 수도 있고. WireGuard가 리눅스 커널에 기본으로 탑재된 이유가 납득이 되었다.
홈서버를 GUI 기반 솔루션으로 운영하다 보면 솔루션의 업데이트가 더딘 바람에 보안이 위협 받는 경우가 종종 생기는데, 관리자페이지를 외부에 노출하지 않도록 하는 데 WireGuard가 큰 역할을 할 것 같다. (관리자페이지는 동네 북이니깐.)
VPN을 사생활 보호 목적으로 쓰는 분들께는 WireGuard가 적합치 않다는 보고가 있다. 그 분들은 VPN 트래픽을 난독화해서 Deep Packet Inspection (DPI)이 VPN 사용을 식별하거나 차단하는 걸 막아주는 기능이 있는 AmneziaWG 을 유료 플랜으로 쓰는 것이 경제적이지 않을까 싶다. 기반 기술은 와이어가드니까 거부감은 적을 것으로 예상.
가정용 VPN 터널링은 WireGuard 정도면 충분할 것으로 예상하고, 구축 결과는 매우 만족스럽다. 공유기에 WireGuard 기능이 없다면 라즈베리파이 같은 것에 설치해도 좋을 듯하다.
※ 참고한 문서들 :
https://www.wireguard.com/install/
https://www.wireguard.com/quickstart/
https://wiki.archlinux.org/title/WireGuard
+ ChatGPT는 신이다.
※ 참고할만한 글들 :
https://engineeringcode.tistory.com/entry/시놀로지-DS218J-프로토콜별-파일-전송속도-비교
https://medium.com/netmaker/battle-of-the-vpns-which-one-is-fastest-speed-test-21ddc9cd50db
https://sftptogo.com/blog/sftp-vs-ftps-benchmarks/