기술 가이드

Ubuntu 12.04(Precise)에서 X2Go를 WiKID 2단계 인증으로 보호하기

6 min read 원격 데스크톱 보안 업데이트됨 19 Oct 2025
Ubuntu 12.04에서 X2Go에 WiKID 2단계 인증 설정
Ubuntu 12.04에서 X2Go에 WiKID 2단계 인증 설정

개요

이 문서는 WiKID의 2단계 인증을 Ubuntu 12.04 서버의 X2Go 원격 데스크톱에 적용하는 방법을 단계별로 설명합니다. WiKID Strong Authentication은 상용/오픈소스 형태의 2단계 인증 솔루션이며, X2Go는 NX 기반의 원격 데스크톱 툴입니다. 흐름은 다음과 같습니다:

  1. WiKID 서버에서 도메인 생성
  2. WiKID 서버에 X2Go 서버를 네트워크 클라이언트로 등록(공유 비밀 설정)
  3. Ubuntu Precise의 X2Go 서버에서 pam-radius 설정

사전 조건(요약): WiKID 서버 설치 완료, Ubuntu 12.04(또는 Precise)에서 관리자 권한 사용 가능, X2Go 설치 권한.

중요: Ubuntu 12.04는 오래된 릴리스입니다. 가능한 경우 지원되는 최신 LTS로 업그레이드를 권장합니다.

WiKID 서버에 도메인 추가

WiKID 관리 콘솔에서 먼저 도메인을 생성합니다. 도메인은 토큰, 사용자 및 정책을 그룹화하는 단위입니다.

WiKID 도메인 추가 화면

설정 시 도메인 이름과 설명을 입력하고, 필요에 따라 정책(예: PIN 길이, OTP 유효시간 등)을 검토합니다.

네트워크 클라이언트 생성(네트워크에서 X2Go 서버 등록)

도메인을 저장한 후 상단 탭에서 “Network Client”로 이동하여 “Create New Network Client”를 클릭합니다. 클라이언트 이름과 내부 네트워크에서 X2Go 서버가 사용하는 IP 주소를 입력합니다. 프로토콜은 RADIUS를 선택하고, 앞서 생성한 도메인을 연계합니다.

WiKID 네트워크 클라이언트 생성 화면

다음 화면에서 “Add”를 클릭하면 RADIUS 공유 비밀(shared secret)을 입력하는 필드가 나옵니다. 이 값은 나중에 X2Go 서버의 pam-radius 설정에 동일하게 입력해야 합니다.

RADIUS 공유 비밀 입력 화면

중요: 공유 비밀은 안전하게 보관하십시오. 네트워크 상에서 평문으로 노출되지 않도록 내부망 또는 관리 네트워크에서만 사용을 권장합니다.

X2Go 설치 및 데스크톱 환경 준비

X2Go 서버를 설치하려면 다음 명령어들을 실행합니다.

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:x2go/stable
sudo apt-get update
sudo apt-get install x2goserver x2goserver-xsession x2gobroker x2gobroker-daemon x2gobroker-authservice

데스크톱 환경이 없다면 다음처럼 하나를 설치합니다(예: Unity/GNOME). 필요에 따라 다른 데스크톱을 선택할 수 있습니다.

sudo apt-get install ubuntu-desktop gnome

클라이언트에서 테스트하려면 x2go 클라이언트를 설치하고 새 세션을 생성해 X2Go 서버의 IP와 설치한 데스크톱을 지정하여 로그인해 보십시오.

apt-get install x2goclient

다른 운영체제의 클라이언트는 X2Go 프로젝트 페이지를 참고하십시오.

X2Go 서버에서 PAM RADIUS 구성

이제 X2Go 서버에서 pam-radius(libpam-radius-auth)를 설치하고 WiKID 서버를 가리키도록 구성합니다. 각 리눅스 배포판은 PAM을 약간 다르게 처리하므로 본문은 Ubuntu 기준입니다.

패키지 설치:

$ sudo apt-get install libpam-radius-auth

설치 후 /etc/pam_radius_auth.conf 파일을 편집해 사용할 RADIUS 서버(여기서는 WiKID 서버)의 주소와 공유 비밀을 지정합니다.

$ sudo vim /etc/pam_radius_auth.conf

파일에서 예시로 “other-server; other-secret 3” 같은 줄을 찾아 ‘other-server’를 WiKID 서버의 IP나 호스트명으로, ‘other-secret’을 WiKID에서 설정한 공유 비밀로 변경하십시오. 파일 설명에는 /etc/raddb/server로 복사하라는 문구가 있을 수 있으나, 해당 작업은 하지 마십시오.

그다음 PAM 서비스(예: sshd)에 pam_radius_auth를 포함시킵니다. /etc/pam.d/sshd 파일을 편집하세요.

$ sudo vim /etc/pam.d/sshd

다음 줄을 추가합니다(주석 처리나 순서에 주의):

auth       sufficient  pam_radius_auth.so

이 라인은 다음 블록 바로 위에 넣습니다:

# Standard Un*x authentication.
@include common-auth

이 설정은 RADIUS 인증이 충분(sufficient)한 경우 추가 인증 단계를 건너뛰게 하므로, RADIUS(=WiKID) 인증이 성공하면 추가 로컬 인증은 요구되지 않습니다. 필요에 따라 “required”나 다른 제어를 선택해 인증 흐름을 조정할 수 있습니다.

테스트 및 검증

  1. X2Go 클라이언트에서 테스트 시 /var/log/auth.log를 실시간으로 모니터링하세요:
tail -f /var/log/auth.log
  1. WiKID 소프트웨어 토큰을 시작하고, 앞서 만든 도메인을 선택한 뒤 PIN을 입력해 일회용 패스코드(OTP)를 생성합니다.
  2. X2Go 클라이언트에서 리눅스 사용자명과 생성된 OTP를 사용해 로그인합니다. 사용자명은 리눅스 박스(서버)와 WiKID 서버에서 동일해야 합니다.
  3. 인증 성공 시 SSH/X2Go 접속이 허용됩니다.

참고: 로컬 계정이 없으면 pam_ldap 등으로 계정 소스를 AD/LDAP로 연결해야 합니다. 이 경우 PAM은 인증(OTP)과 계정 확인(디렉터리 조회)을 조합해 처리하도록 구성해야 합니다.

문제 해결 체크리스트

  • RADIUS 포트(기본 UDP 1812)가 방화벽에서 허용되는지 확인합니다.
  • /etc/pam_radius_auth.conf의 서버 IP/호스트명과 공유 비밀이 정확한지 확인합니다.
  • WiKID 서버에서 해당 네트워크 클라이언트의 IP가 일치하는지 확인합니다. 만약 NAT 뒤에 있다면 출발지 IP가 달라질 수 있습니다.
  • /var/log/auth.log와 WiKID 서버 로그에서 실패 원인을 확인합니다(사용자명 불일치, 잘못된 OTP, 네트워크 거부 등).
  • SSHD 설정이 PAM을 사용하도록 되어 있는지 확인합니다(UsePAM yes).
  • 로그인 시 입력되는 값이 “PIN+OTP” 조합을 요구하는지, 또는 WiKID가 별도로 OTP만 요구하는지 도메인 정책을 확인합니다.

역할별 체크리스트

  • 시스템 관리자

    • libpam-radius-auth 설치 및 /etc/pam_radius_auth.conf 구성
    • /etc/pam.d/sshd에 auth 라인 추가 및 SSH 재시작 테스트
    • 방화벽 및 라우팅 점검(UDP 1812 허용)
  • 보안 운영팀

    • WiKID 도메인 정책 검토(PIN 정책, 토큰 발급/비활성화 절차)
    • 공유 비밀 관리를 위한 안전한 저장소(예: 비밀관리 도구) 사용
    • 접속 로그 및 실패 로그인 알림 구성
  • 데스크탑/엔드유저

    • WiKID 소프트웨어 토큰 설치 및 도메인 등록
    • PIN과 토큰 사용법 교육

보안 하드닝 권장 사항

  • RADIUS 트래픽은 내부 또는 관리 네트워크를 통해 전송하고, 가능한 경우 VPN이나 전용 회선을 사용해 보호하세요.
  • 공유 비밀은 주기적으로 교체하고 안전한 비밀관리 시스템에 보관하세요.
  • SSH는 포트 변경이나 포괄적 접근 제어(allow/deny hosts, fail2ban)로 보호하세요.
  • 토큰 분실 시 신속히 해당 토큰을 비활성화할 수 있는 절차를 마련하세요.
  • 디렉터리(AD/LDAP)와 연동하는 경우 권한과 그룹 정책을 중앙에서 관리해 사용자 비활성화를 일원화하세요.

호환성 및 마이그레이션 팁

  • Ubuntu 12.04(Precise)는 오래된 릴리스입니다. 가능한 경우 최신 LTS(예: 18.04/20.04 이상)로 업그레이드하여 보안 패치 및 패키지 호환성을 확보하세요.
  • Red Hat 계열에서는 pam-radius 설치 및 PAM 파일 위치가 다를 수 있으니 배포판 문서를 참조하세요.
  • X2Go와 WiKID 버전 간 호환성 문제 발생 시 각 프로젝트의 릴리스 노트를 확인하세요.

구현을 위한 미니 방법론

  1. 준비: WiKID 서버 운영 여부 확인, X2Go 서버 백업, 테스트 사용자 준비
  2. 구성: WiKID에 도메인 및 네트워크 클라이언트 추가(공유 비밀 생성)
  3. 설치: X2Go 및 데스크톱 설치, libpam-radius-auth 설치
  4. 연동: /etc/pam_radius_auth.conf 구성, /etc/pam.d/sshd에 pam_radius_auth 추가
  5. 테스트: 토큰으로 로그인 테스트, 로그/감사 확인
  6. 롤아웃: 사용자 교육 및 단계적 적용(테스트 그룹 → 전체)

수용 기준

  • 테스트 사용자 3명 이상이 WiKID 토큰으로 X2Go 접속에 성공할 것
  • 실패 케이스(잘못된 OTP, 잘못된 사용자명)는 로그에 기록되고 접근이 차단될 것
  • 토큰 비활성화 시 해당 사용자는 즉시 접속 불가가 될 것

사실 요약(핵심 숫자)

  • RADIUS 인증 기본 포트: UDP 1812
  • 대상 OS 예시: Ubuntu 12.04(Precise)
  • 패키지: libpam-radius-auth (pam-radius 구현체)

자주 발생하는 엣지 케이스와 대응

  • NAT 뒤의 X2Go 서버: WiKID에서 등록한 클라이언트 IP와 실제 출발지 IP가 다르면 인증이 거부됩니다. 이 경우 NAT 기기의 IP를 등록하거나 중간 RADIUS 프록시를 사용하세요.
  • 디렉터리 사용자 불일치: 리눅스 사용자명과 WiKID 사용자명이 동일해야 합니다. AD/LDAP 연동으로 계정 매핑을 조정하세요.
  • RADIUS 응답 지연: 네트워크 지연이 큰 환경에서는 인증 타임아웃을 조정하거나 내부 네트워크로 트래픽을 격리하세요.

요약

이 가이드는 WiKID Strong Authentication을 이용해 Ubuntu 12.04의 X2Go 원격 데스크톱에 2단계 인증을 적용하는 전체 과정을 다룹니다. WiKID에서 도메인과 네트워크 클라이언트를 생성하고, X2Go 서버에서 libpam-radius-auth를 설치·구성한 후 PAM을 통해 RADIUS 기반 인증을 사용하도록 설정하면, 토큰(소유)과 PIN(지식)을 결합한 안전한 로그인 환경을 제공할 수 있습니다. 운영 환경에서는 네트워크 보안(포트, 방화벽), 토큰 관리 정책, 디렉터리 연동을 함께 고려해 배포하세요.

중요: 프로덕션 적용 전 반드시 테스트 환경에서 전체 흐름을 검증하고, 사용자 교육 및 비상 롤백(토큰 비활성화/로컬 계정 사용 등) 절차를 마련하십시오.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Windows 0xc000001d 오류 원인과 해결 가이드
Windows 오류

Windows 0xc000001d 오류 원인과 해결 가이드

macOS '최근 위치' 목록 삭제 및 제한 방법
macOS 팁

macOS '최근 위치' 목록 삭제 및 제한 방법

Windows 10 오류 0x80070057·0xa0000400 및 Cortana 복구
Windows

Windows 10 오류 0x80070057·0xa0000400 및 Cortana 복구

문제 있는 Windows 업데이트 안전하게 제거하는 방법
윈도우

문제 있는 Windows 업데이트 안전하게 제거하는 방법

브라우저 탭 정리 가이드 — Firefox·Chrome
브라우저 생산성

브라우저 탭 정리 가이드 — Firefox·Chrome

FOUND.000 폴더 완전 가이드
Windows

FOUND.000 폴더 완전 가이드