VPN 구성을 초반에 썼어야 했는데, 늦어졌다.
우리 프로젝트에선 모든 팀원이 내 노트북에 설치된 ESXI를 이용하여 모든 서버를 내 노트북에서 구축하는 식으로 작업이 이루어졌는데, 팀원들의 접근을 위해 VPN이 필요했고, 난이도가 높지 않다고 알려진 OpenVPN을 이용하기로 결정했다.
방법을 알아보던 가운데, 현재 본인이 쓰고 있는 ASUS사의 공유기에서 자체적으로 OpenVPN 서비스를 지원하는 것을 알게 되었고, 그리하여 해당 기능을 이용해 VPN 연결 작업을 진행하였다.
본인이 사용한 공유기의 모델은 ASUS사의 RT-AX53U이다.
(공유기마다 OpenVPN 서비스 지원 여부가 다를 수 있으니 해당 게시글은 참고만 바란다.)

먼저 관리자 페이지에 로그인 한 뒤 VPN에 들어간다.

이후 목록에서 OpenVPN에 들어간 뒤,

사진처럼 팀원이 공유할 VPN 계정의 아이디와 비밀번호를 새로 만들어준다.
(당연히 개개인별로 서로 다른 계정 클라이언트를 만들어 각각 부여할 수도 있고, 보안상으로도 그게 더 좋다.)

암호키 종류, 접속할 VPN 대역, DNS 응답 여부 등을 체크한 뒤..

VPN 클라이언트 파일을 내보낸다.
(Internet and local network를 체크해 줘야 팀원들이 인터넷 이용도 자유롭게 할 수 있다.)
이후 팀원들에게 해당 클라이언트 파일을 제공하였고,
각자 다운받은 OpenVPN 프로그램을 실행하여 해당 파일을 불러온 뒤,

위에서 지정한 VPN 계정의 ID/PW을 입력해 내 컴퓨터의 서버에 접속하여 같이 작업을 진행하였다.
공유기에서 제공하는 iptables 기능을 이용하여 팀원들의 특정 네트워크 대역 접근 허용/차단을 할 수도 있다.
먼저 공유기의 설정에 접근하기 위해 SSH를 열어준다.
(가급적이면 LAN 대역에서만 접속할 수 있도록 제한하기)

그런 다음 공유기의 게이트웨이 ip 입력, 공유기의 ID/PW 입력한 뒤..
대충 iptables 규칙들 우겨넣을 파일 하나 만들어서 팀원들이 접속할 수 있도록 적절하게 규칙들을 넣고 저장한다.
(#!/bin/sh 명령어를 추가해 해당 파일을 배시로서 실행할 수 있도록 하기)

# VPN 클라이언트의 프로젝트 서버 접근 허용 및 관리자 페이지 차단 등등..
#!/bin/sh
iptables -I INPUT -s 10.8.0.0/24 -d 192.168.50.1 -p tcp --dport 8443 -j DROP
iptables -I INPUT -s 10.8.0.0/24 -d 192.168.50.1 -p tcp --dport 443 -j DROP
iptables -I INPUT -s 10.8.0.0/24 -d 192.168.50.1 -p tcp --dport 80 -j DROP
iptables -I INPUT -s 10.8.0.0/24 -d 192.168.50.1 -p udp --dport 53 -j ACCEPT
iptables -I INPUT -s 10.8.0.0/24 -d 192.168.50.200 -p tcp --dport 8443 -j ACCEPT
iptables -I INPUT -s 10.8.0.0/24 -d 192.168.50.200 -p tcp --dport 443 -j ACCEPT
...
이런 식으로 팀원들이 접근할 수 있는 서버 대역, 접근하면 안 되는 서버 대역들을 구분하여 각각 허용/차단 규칙을 설정할 수 있으며, 이를 통해 OpenVPN 서버 환경에서 내부망 접근 권한을 제어할 수 있다.
(iptables -I: 규칙을 리스트의 맨 위(가장 높은 우선순위)에 추가한다는 뜻이다. 가장 나중에 추가한 규칙이 가장 먼저 적용됨)
한 가지 귀찮은 점이 있다면, 공유기는 보안 문제 때문에 주기적으로 설정을 초기화한다고 한다. ASUS사의 경우 ‘Merlin’이라는 커스텀 펌웨어를 설치하면 커스텀 규칙들을 저장 및 유지할 수 있다고 하나, 본인 공유기의 경우 해당 펌웨어를 쓰기 힘들다는 정보를 보고 포기했다. 그냥 주기적으로 규칙 파일 실행하는 거 밖에 답이 없어 보인다.
그러므로 어쩔 수 없지만 VPN을 열어줄 때마다 해당 파일 실행해 iptables 규칙을 등록해주는 게 좋을 것 같다.
'보안 > 프로젝트' 카테고리의 다른 글
| GitLab 구축하기 (0) | 2026.01.31 |
|---|---|
| ProxySQL과 스플렁크 연동 및 대시보드 커스텀화하기 (0) | 2026.01.31 |
| 스플렁크 설치하기 (1) | 2026.01.31 |
| ProxySQL 쿼리 필터링 실습하기 (0) | 2026.01.31 |
| ProxySQL 설치하기 (0) | 2026.01.24 |