Infra/환경설정
[Docker] VPN 서버구축하기 WireGuard
ckm7907
2024. 10. 15. 13:27
WireGuard vs OpenVPN 차이점
특징 | OpenVPN | WireGuard |
속도 | 준수하지만 WireGuard보다는 느림 | 매우 빠르며 OpenVPN 능가하는 속도를 자랑 |
전송 계층 | UDP와 TCP를 모두 지원, TCP 443 포트로 구성 가능 검열이 심한 국가에서도 우회 가능 |
UDP만 지원, TCP 443 포트 사용 불가 검열 우회 어려움 |
호환성 | 더 많은 기기 및 운영 체제와 호환됨 거의 모든 VPN이 사용 |
ChaCha20Poly1305 암호화 알고리즘 사용 전용 하드웨어 지원 제한적, 점차 개선됨 |
키 교환 | TLS/SSL | Curve25519 |
암호화 | AES와 같은 안정적인 암호화와 최신 암호화(ChaCha20Poly1305) 모두 지원 높은 유연성 |
최신 암호화 방식 사용으로 보안성 높음 다만 OpenVPN 방식만큼 오랜 검증 기간 거치지 않음 |
유연성과 복잡성 | 암호화 옵션이 다양해 커스터마이징 가능 복잡성 증가 |
암호화 옵션이 적어 사용이 쉬움 상대적으로 단순 |
모바일 네트워크 | 네트워크 전환 시 문제 발생 가능 모바일 네트워크에서의 지원은 안정적 |
모바일 네트워크에서 훨씬 안정적 네트워크 변경을 원활하게 처리하며 IKEv2의 대안 가능성 |
개인정보 보호 | 사용자 개인정보 저장하지 않음 | 서버가 재부팅될 때까지 사용자 IP 주소 저장 필요 |
사용한 이유
현재 인터넷 환경이 홈서버로 ssh 연결이 막혀있기에, ssh 연결이 가능한 서버를 vpn으로 가용하여 연결하고자 했다.
WireGuard를 선택한 이유는 OpenVPN보다 속도가 빠르고, 경량화된 구조 덕분에 효율적이기 때문이다.
docker-compose.yml 파일 작성
version: "3"
services:
wg-easy:
environment:
# Required:
# Change this to your host's public address
- WG_HOST=[domain 주소]
# Optional:
# - PASSWORD_HASH=암호화 한 걸로
# - WG_PORT=51820
# - WG_DEFAULT_ADDRESS=10.8.0.x
# - WG_DEFAULT_DNS=1.1.1.1
# - WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24
image: weejewel/wg-easy
container_name: wg-easy
network_mode: bridge
volumes:
- .:/etc/wireguard
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
restart: unless-stopped
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
> docker-compose up -d
[domain 주소]:51821/ 접속 해서 설정
여기서 오른쪽 버튼 중 다운로드 icon을 클릭한다.
그러면 test.conf 를 저장하는데, 이걸 WireGuard Client에 추가하면 된다.
https://www.wireguard.com/install/
추가하고 Activate를 누르면 VPN이 연결된다!!
# 출처
https://rublon.com/blog/openvpn-vs-wireguard-whats-the-difference/