환경
집 : iptime + proxmox
iptime : pfsence 대신 이미 사용중인 iptime을 사용중
proxmox : docker host 등 학습용 가상환경 운영
VPN 필요성
1. 고정된 서비스 포트 설정 불필요
외부에서 컨테이너 접속을 위해 iptime 공유기에 포트포워딩 설정을 수작업으로 해야한다.
외부 서비스를 위한 포트(예: tcp 80,443)라면 고정된 포트를 사용하는게 맞다.
그러나 현재는 학습을 위한 상황이므로 나만 접속할 수 있으면 된다.
2. 잦은 포트 변경
컨테이너의 포트가 고정되어 있다면 괜찮겠지만 학습중인 현재 수시로 변경될 것이다.
컨테이너 포트 생성/삭제/변경 할때마다 방화벽 포트포워딩 설정을 안하기
VPN 종류
L2LP : 통신사(KT, SKT, U+)에서 차단한거 같다. 아무리해도 안돼서 패스.
OpenVPN : 이전에 사용 경험으론 관리가 귀찮았다. 패스.
Wireguard : 찾아보니 괜찮은거 같다. 클라이언트 에이전트(?)가 필요하지만 사용자별 관리가 아닌 peer 단위로 관리하여 비교적 관리 측면에서 손이 덜 간다.
VPN 운영 서버 선택 고민
iptime에서 공식 지원하여 컨테이너로 운영하지 않았다.
추후 상세 설정이 필요한 경우 VPN 서버 구축이 필요할 수 있겠다.
혹은 도커 내부에 VPN을 구축할 수도 있다. 물론 네트워크를 구분하여 컨테이너를 올릴텐데 의미가 있을까...
데브시스터즈 참고 : https://tech.devsisters.com/posts/wireguard-vpn-1/
iptime AX2004 : 서버 제공 - 선택
proxmox CT : debian-11-turnkey-wireguard_17.1-1_amd64.tar.gz.
VPN 설정 내용
피어 추가하면 설정 파일 다운로드. 클라이언트에 파일 전달.
하나의 피어로 복수의 클라이언트,게이트웨이가 접속 할 수 있다. 그것이 목적이니까.
피어 목적을 알 수 있도록 피어 이름 설정이 필요하다.(Peer_1은 너무 성의 없어서 반성중..)
VPN client 설정
MAC App Store에서 WireGuard 다운로드.
피어 설정 파일로 등록 및 권한 추가.
피어 추가 후 Activate!
VPN 연결 테스트
내부아이피로 접근 확인
10.0.0.100 : 도커 호스트 아이피
10.0.0.100:9090 -> 프로메테우스 컨테이너
Wireguard를 도커에 실행
결론: 도커호스트 IP로 도커에 접근하는 현재 환경에선 별로인듯 하다.
각 컨테이너의 IP로 서비스를 접근해야하는데 그럼 무슨 소용인가...
설정을 상세히 뜯어보면 할 수 있겠지만 현재는 iptime 으로 충분하다...
Wireguard 컨테이너 설치 테스트
https://github.com/linuxserver/docker-wireguard
docker compose -f wireguard-compose.yml up -d
wireguard-compose.yml
주요 환경변수 : TZ, SERVERPORT, SERVERPORT, PEER, PEERDNS
---
version: "2.1"
services:
wireguard:
image: lscr.io/linuxserver/wireguard:latest
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE #optional
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Seoul
- SERVERURL=[공인ip,url] #optional
- SERVERPORT=51820 #optional
- PEERS=1 #optional
- PEERDNS=auto #optional
- INTERNAL_SUBNET=10.13.13.0 #optional
- ALLOWEDIPS=0.0.0.0/0 #optional
- PERSISTENTKEEPALIVE_PEERS= #optional
- LOG_CONFS=true #optional
volumes:
- /path/to/appdata/config:/config
- /lib/modules:/lib/modules #optional
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
peer 설정 파일 조회
도커 호스트
volumes:
- /path/to/appdata/config:/config
컨테이너 명령
docker exec -it wireguard cat /config/${PEER_ID}/${PEER_ID}.conf # PEER_ID = peer1, peer2, peer3, ...
docker exec -it wireguard /app/show-peer 1 # QR code
도커 중지 및 삭제
docker compose -f wireguard-compose.yml down
'Infra > Cloud' 카테고리의 다른 글
[Proxmox] GPU Passthrough (0) | 2023.12.09 |
---|---|
[Proxmox] Wake on Lan(WOL) (1) | 2023.10.23 |
[Azure] NSG 정책 문서화 - powershell, python (0) | 2023.02.22 |
[Azure] Backup Center 자동 확인 스크립트 (0) | 2023.01.11 |
[NCP] CLI - 서버이미지 조회 (0) | 2021.05.17 |