제목과 같이. VPN을 이용해서 방화벽 너머 컴퓨터에 원격 접속하는 내용입니다.
사정상 회사 사무실이 두 군데로 갈라져 있습니다.
그런데 어쩜 이리 똑같게도, 두 건물 모두 사설IP가 할당되는 환경입니다. 어머 끔찍해라.
사무실에서 쓰는 공유기야 관리자 IDPW를 아니까 포트 포워딩을 열어줄 수 있습니다만
건물 전역 라우터는 그게 안 됩니다. 관리실 가서 물어봐도 그게뭐야 먹는거야? 로 일관하니 그냥 포기했죠.
그렇다고 사무실 컴퓨터에 원격접속을 안 할 수도 없습니다.
집에서도 해야 하고, 다른 사무실로 외근 나갔을 때에도 노트북으로 작업을 해야 하니까요.
음 그냥 포트 하나만 열면 손쉽게 해결인데 너무 아쉽군요. 이건 넘어가고.
여하튼 결론부터 말하면 WireGuard VPN을 이용하고 클라우드 서버를 두어 해결했습니다.
그림의 주황색 삼각형 방향으로만 NAT가 허용되기에, 외부 인터넷에서 사무실 컴퓨터로 직접 접속은 안 됩니다.
하지만 반대로 사무실 컴퓨터에서 외부 VPN서버에는 연결할 수 있지요.
사무실 컴퓨터의 VPN 연결이 유지된다면, VPN에 접속해 있는 다른 컴퓨터에서는 터널을 통해 사무실 컴퓨터에 접속할 수 있습니다.
물론- 기본 설정으로는 안되고, 서버에서 wgX 인터페이스의 패킷 포워드 설정을 열어줘야 합니다.
서버에서 PreUp 훅으로 다음 줄을 추가해 주면 됩니다.
PreUp = sysctl -w net.ipv4.ip_forward=1 PreUp = iptables -I FORWARD 1 -i wg0 -o wg0 -j ACCEPT
그래야 WG서버가 마치 허브처럼 작동하면서, 연결된 클라이언트 사이에 패킷을 중계해 주게 됩니다.
우리는 서버에 접속하려는게 아니고 방화벽 너머 반대편 컴퓨터에 접속하려는 것이니까요.
또, 방화벽의 NAT 설정에 따라 임시로 열린 포트 포워딩은 일정 시간(~30초)이 지나면 닫힙니다.
이를 방지하기 위해 각 클라이언트에서는 PersistentKeepalive 설정을 두어,
일정 시간마다 서버로 PING을 날리도록 해 줘야 합니다.
설정이 꽤 복잡해지기는 했습니다만, 여하튼 이런 방식으로 회사 컴퓨터에 성공적으로 원격 접속을
할 수 있게 되었습니다.
자 이제 어디에서나 일을 할 수 있습니다!
... 뭔가 잔뜩 손해 보는 기분이네요. 기술의 발전이 꼭 삶의 질 향상은 아닌 것 같습니다.