개요
이 문서는 WiKID 서버가 이미 설치되어 있다는 전제 하에, OpenVPN AS를 네트워크 클라이언트로 추가하고 클라이언트가 WiKID 토큰으로 인증받도록 설정하는 실무 절차를 다룹니다. 목적은 RADIUS 기반의 2단계 인증(2FA)을 VPN 접속에 적용하여 보안을 강화하는 것입니다.
중요 용어 한 줄 정의:
- RADIUS: 중앙 인증·인가·계정(AaaS) 프로토콜. 원문 약어를 사용하며 네트워크 장치 인증에 쓰입니다.
WiKID 서버 구성
네트워크 클라이언트 탭에서 OpenVPN AS를 네트워크 클라이언트로 추가합니다. 간단한 절차는 다음과 같습니다.
- WiKIDAdmin 인터페이스의 네트워크 클라이언트 탭으로 이동합니다.
- “Add New network client”(새 네트워크 클라이언트 추가) 버튼을 클릭합니다.
대화상자에서 새 클라이언트 정보를 입력합니다.
- 추가한 항목에서 Modify(수정)를 클릭하고 다음 페이지에서 공유 비밀(shared secret)을 입력합니다.
- 설정을 저장한 뒤 변경된 RADIUS 구성을 로드하려면 WiKID 서버를 재시작합니다:
# wikidctl restart
중요: 공유 비밀은 OpenVPN AS와 WiKID 간의 RADIUS 트래픽을 보호합니다. 랜덤한 충분히 길고 복잡한 값(예: 32바이트 이상)을 사용하세요.
클라이언트 구성
OpenVPN AS는 사용자가 웹 인터페이스에서 클라이언트 애플리케이션(Windows용)과 구성 파일(.ovpn)을 자동으로 다운로드할 수 있는 기능을 제공합니다. 클라이언트 측에서 WiKID 토큰으로 OTP를 발급받아 로그인하면 됩니다.
- WiKID Token 애플리케이션을 실행하여 WiKID 서버에서 일회용 비밀번호를 요청합니다.
- PIN을 입력합니다.
PIN은 암호화되어 WiKID 서버로 전송됩니다. 계정이 활성 상태이고 암호화가 유효하며 PIN이 정확하면 서버가 일회용 비밀번호(OTP)를 생성해 토큰으로 반환합니다.
- 웹 인터페이스에서 생성된 일회용 비밀번호로 로그인합니다.
- 로그인 후 사용자는 클라이언트 페이지에 접근하여 클라이언트 앱과 구성 파일을 받을 수 있습니다.
Linux 클라이언트 예시
Linux에서는 배포판의 패키지 관리자를 통해 openvpn을 설치한 뒤, 터미널에서 클라이언트 구성 파일을 지정하여 실행합니다:
# openvpn --config client.ovpn
성공적으로 연결되면 VPN 인터페이스에 10.0.x.x 형식의 IP가 할당되는 것을 확인할 수 있습니다.
단계별 체크리스트 (역할별)
관리자(서버 설정):
- WiKID 서버가 최신 패치 적용 상태인지 확인
- OpenVPN AS를 네트워크 클라이언트로 추가하고 공유 비밀을 설정
- WiKID 서버 재시작(wikidctl restart)으로 구성을 적용
- RADIUS 포트(기본 1812/1813) 방화벽 규칙 확인
사용자(클라이언트 측):
- WiKID Token 앱 설치 및 계정 등록
- PIN으로 OTP 발급 후 OpenVPN AS 웹에 로그인
- client.ovpn 파일을 다운로드하고 로컬에 저장
- openvpn –config client.ovpn 실행하여 연결 확인
문제 발생 시(언제 실패하는가)
- 공유 비밀 불일치: OpenVPN AS와 WiKID의 공유 비밀이 다르면 인증 자체가 실패합니다. 양쪽 설정을 비교하세요.
- 시간 동기화 문제: OTP는 시간 기반이므로 서버/클라이언트의 시스템 시간이 크게 어긋나면 인증 실패가 발생합니다. NTP 동기화 확인.
- 계정 상태: 사용자가 비활성화되어 있거나 토큰이 잠겨 있으면 OTP가 발급되지 않습니다.
- 방화벽 차단: RADIUS 포트(1812/1813)가 차단되면 통신이 되지 않습니다.
간단한 점검 순서:
- ping 및 포트 연결(telnet
1812) 확인 - 공유 비밀 재설정 및 양측 적용
- WiKID 로그와 OpenVPN AS 로그에서 RADIUS 응답 코드 확인
보안 강화 권장사항
- 공유 비밀을 주기적으로 교체하고 복잡한 값을 사용하세요.
- WiKID 서버 접근은 관리 네트워크로 제한하고, TLS/SSH 접근을 MFA로 보호하세요.
- VPN 인증 로그를 중앙 로깅(예: SIEM)으로 전송해 이상 징후를 모니터링하세요.
- 토큰/계정 탈취 대비를 위해 의심 로그인 시 계정 잠금 정책 적용을 검토하세요.
간단한 운영 절차(미니 방법론)
- 테스트 그룹 생성: 프로덕션 적용 전 소규모 사용자 그룹에서 검증
- 모니터링 기간: 2주간 접속 로그와 사용자 피드백 수집
- 롤아웃: 단계적으로 모든 사용자로 확대
- 사후 감사: 인증 실패/성공 비율 및 보안 이벤트 리뷰
수용 기준
- OpenVPN AS에서 WiKID RADIUS로의 인증 요청에 대해 정상적으로 ACCEPT 응답을 받는다.
- 테스트 사용자 계정으로 OTP 로그인 후 VPN 연결이 성공한다.
- RADIUS 통신(1812/1813)이 방화벽 정책에 의해 허용된다.
1줄 용어집
- OTP: 한 번만 사용할 수 있는 일회용 비밀번호.
- PIN: 토큰에서 OTP를 생성하기 위해 사용자가 입력하는 개인 식별 번호.
요약
이 가이드는 OpenVPN AS와 WiKID를 RADIUS로 연동해 VPN에 2단계 인증을 적용하는 방법을 다룹니다. 서버 설정, 클라이언트 인증 흐름, 문제 해결 팁, 보안 권장사항과 운영 체크리스트를 포함했습니다. 단계별 테스트와 모니터링을 통해 안전하게 배포하세요.
요약된 핵심 사항:
- WiKID에 OpenVPN AS를 네트워크 클라이언트로 추가하고 공유 비밀을 설정
- WiKID 서버 재시작으로 구성을 적용
- 사용자는 WiKID 토큰으로 OTP를 받아 OpenVPN 웹/클라이언트로 로그인
- 문제 발생 시 공유 비밀, 시간 동기화, 방화벽을 우선 점검
관련 링크:
- OpenVPN 공식 사이트
- WiKID Systems 사이트