리눅스 서버 계정 관리를 위해 Active Directory를 인증서버(Radius)로 사용하기

아주 오래 전 (벌써 5년 전…)에 NIS를 이용해 서버 운영체제의 계정을 통합관리하고 NFS 서버를 연동해 로그인 할 때만 NIS 클라이언트에 NFS 서버에 있는 사용자의 홈디렉토리를 마운트해 사용할 수 있게 하는 테스트 환경을 구축했었다.  (NIS, NFS, autofs 를 활용한 홈디렉토리 automount 환경 구성하기)

이 테스트 환경의 경우 삼성전자의 CAE 환경에서 연구원들의 연구지원 시스템의 환경에서 SecureOS가 정상적으로 동작하는지를 테스트하기 위해 구성한 환경이었다. 하지만 이런 환경은 일반적인 시스템에서 사용하지는 않는 특수한 환경이다.

보다 일반적이면서도 현실적인 것은 Raidus와 Kerberos 환경이다. 오늘은 그 중에서 Radius를 이용한 계정통합관리를 테스트해봤다. 이런 환경이 글로벌 표준처럼 기본적으로 사용되는 것을 우리나라의 내노라하는 IT 기업과 글로벌 클라우드 기업의 심사를 진행하면서 확인할 수 있었다.

Radius와 Kerberos의 이론이야 책으로 보면 이해가 되지만 이론적으로 이해하는 것과 환경을 실제로 구축하면서 경험하는 것은 큰 차이가 있다. 이론은 조금만 시간이 지나면 잊혀진다. 하지만 하나하나 설정들을 직접 육안으로 확인하면서 이론과 결부시켜 구축해나가다 보면 이론과 실제의 개념과 미세한 설정의 차이도 알게되고 훨씬 오랫동안 기억을 유지할 수 있다.

Windows 2012 Server Active Directory에 Radius 서버 기능 및 도구 설치

마이크로소프트의 Active Directory는 그 활용가치가 무궁무진하다. 그 중 하나가 바로 Radius 서버로 활용하는 것이다. Radius는 사용자가 네트워크에 연결하고 네트워크 서비스를 받기위한 중앙 집중화된 AAA(Authentication, Authorization, Accounting) 관리를 제공하는 네트워킹 프로토콜이다.

꽤나 거창한 것 같지만 무선접속, 네트워크 장비접속, 서버 접속 시 사용자를 인증해주는 역할이 가장 기본적인 기능이다.

그럼 지금부터 Windows 2012 Active Directory 서버를 Radius 서버로 변신시키는 과정을 포스팅한다. Windows Active Directory 서버의 설치는 전에 포스팅한 Active Directory 설치하기 포스트를 참고하기 바란다.

먼저 Windows 2012 Sewrver의 “서버관리자”에서 “관리” 메뉴이 “역할 및 기능 추가”를 클릭한다.

Windows 2012 서버관리자
Windows 2012 서버관리자

역시나 무슨무슨 마법사가 실행된다.

그런데 Windows의 마법사도 매우 복잡하다.

역할 및 기능 추가 마법사 시작
역할 및 기능 추가 마법사 시작

“역할 기반 또는 기능 기반 설치”를 선택하고 “다음” 버튼을 클릭한다.

역할 기반 또는 기능 기반 설치
역할 기반 또는 기능 기반 설치

자기 자신을 선택한다. 테스트용으로 사용하는 Active Directory다. 도메인이 blogger.pe.kr로 되어 있는데 외부망에 있는 것은 아니고 사설망에서 어찌어찌 편법으로 구축한 내부망 Active Directory다.

대상 서버 선택
대상 서버 선택

서버 역할 선택화면에서 “네트워크 정책 및 액세스 서비스”를 선택하고 체크한다.

서버 역할 선택
서버 역할 선택

필요한 기능을 추가하겠느냐고 물어본다. 필요한 기능은 “원격 서버 관리 도구”다. 이미 설치되어 있을 수도 있다.

추가될 역할에 필요한 도구 설치
추가될 역할에 필요한 도구 설치

이미 설치되어 있다면 아래 화면처럼 (설치됨) 으로 표시되어 있다. 설치되어 있지 않다면 설치하도록 선택하면 된다.

기능 선택
기능 선택

트리를 펼쳐 스크롤하면 더 필요한 기능들을 알 수 있다. 필요한 기능을 모두 선택한다.

필요한 도구 선택
필요한 도구 선택

필요한 도구를 선택한 뒤 “다음” 버튼을 누르면 안내 메시지가 나온다. “다음”을 클릭한다.

네트워크 정책 및 액세스 서비스
네트워크 정책 및 액세스 서비스

역할 서비스 선택에서는 “네트워크 정책 서버”를 선택한다.

역할 서비스 선택
역할 서비스 선택

설치 선택 확인 창이 표시되는데 아래의 “설치” 버튼을 눌러 Radius 서버의 설치를 마무리한다.

설치 선택 확인
설치 선택 확인

설치가 진행된다.

설치 진행 중
설치 진행 중

설치 완료되면 마법사를 종료한다.

Radius 인증을 적용받을 사용자 보안그룹 생성하고 계정 등록하기

Windows 2012 Active Directory 서버를 Radius 서버로 설정하였다면 이제 어떤 사용자 계정이 Radius 인증을 받을 것인지를 정해야 한다.

개별 사용자 계정마다 Radius 인증 사용자로 지정하는 것 보다는 도메인에 용도별 보안그룹을 만들고 이미 만들어져 있거나 새로 만들 계정을 보안그룹에 넣어주고 해당 보안그룹을 Radius 인증 용 보안그룹으로 지정하는 것이 편리하다.

아래 화면처럼 Ad 사용자 및 컴퓨터에서 User 아래에 보안그룹을 만든다.

AD 사용자 및 컴퓨터 관리 - 보안그룹 만들기
AD 사용자 및 컴퓨터 관리 – 보안그룹 만들기

보안그룹의 이름을 “Server-Admin”으로 했다.

AD 보안그룹 만들기
AD 보안그룹 만들기

범위는 글로벌, 그룹종류는 보안으로 선택한 뒤 생성한다. 아래 화면은 만들어진 보안그룹이다. 코멘트를 달아주는 센스를 발휘하자. 나중에 정체불명의 보안그룹으로 보이지 않으려면…

생성된 AD 보안그룹
생성된 AD 보안그룹

보안그룹을 만들었으면 OU 하위에 새로 계정을 생성한 뒤 또는 기존에 만들어진 계정을 Server-Admin 보안그룹에 추가한다. 아래 화면에서는 이미 만들어져 있던 taeho 라는 계정을 “그룹에 추가(G)…” 한다.

사용자 계정을 보안그룹(Server-Admin)에 추가
사용자 계정을 보안그룹(Server-Admin)에 추가

이름은 kim taeho로 되어 있지만 실제 계정(ID)는 taeho 다.

Radius 인증용 그룹인 Server-Admin을 아래 화면처럼 확인한다. Server 를 입력하고 “이름 확인(C)” 버튼을 누른다.

사용자 계정을 보안그룹(Server-Admin)에 추가
사용자 계정을 보안그룹(Server-Admin)에 추가

두개의 보안그룹이 보인다. “Server-Admin”을 선택한다.

사용자 계정을 보안그룹(Server-Admin)에 추가
사용자 계정을 보안그룹(Server-Admin)에 추가

이제 사용자 계정 taeho가 Server-Admin 보안그룹에 등록되었다.

다음은 Radius 서버의 정책을 설정할 차례다. 다시 서버 관리자에서 “도구” 메뉴에 있는 “네트워크 정책 서버”를 실행한다.

서버 관리자의
서버 관리자의 “네트워크 정책 서버”

“네트워크 정책 서버”는 NPS라고 불리는데  아래 화면처럼 실행된다. NPS(로컬)에서 마우스 우클릭의 팝업 메뉴를 실행시켜 “Active Directory에 서버 등록(G)”을 클릭한다.

NPS를 AD에 등록하기
NPS를 AD에 등록하기

무슨 무슨~ 권한이 필요하단다. “확인” 버튼을 눌러 권한을 부여한다.

네트워크 정책 서버 도메인 사용자 속성 읽기 권한 부여
네트워크 정책 서버 도메인 사용자 속성 읽기 권한 부여

이는 네트워크 정책 서버인 Radius 서버가 AD의 도메인 사용자 계정과 계정의 속성에 접근할 수 있는 권한이 필요하기 때문에 해당권한을 부여해달라고 요청하는 것이다.

권한을 부여한 뒤 컴퓨터도 RAS/NAS 서버 그룹에 등록하겠다고 메시지창을 보여준다.

네트워크 정책 서버를 RAS/NAS 서버 그룹에 등록
네트워크 정책 서버를 RAS/NAS 서버 그룹에 등록

“확인” 버튼을 누른다.

Radius 서버에는 Radius 클라이언트를 등록해야 한다. 사용자는 Radius 클라이언트에 접속할 때 Radius 클라이언트를 통해 Radius 서버에서 인증을 받게 된다.

NPS(네트워크 정책 서버)에서 Radius 클라이언트를 등록하기 위해 “새로 만들기(N)” 메뉴를 클릭한다.

NPS에서 Radius 클라이언트 등록
NPS에서 Radius 클라이언트 등록

아래 화면처럼 Radius 클라이언트가 될 우분투 리눅스 서버의 IP와 이름을 입력한다.

새 Radius 클라이언트 등록
새 Radius 클라이언트 등록

그리고 아래에는 Radius 클라이언트와 Radius 서버가 공유할 공유 암호(Shared Secret)를 두번 입력해 준다. 이 공유 암호는 우분투리눅스에서도 필요하므로 메모해두도록 한다.

NPS에 Radius 클라이언트로 등록된 우분투 리눅스
NPS에 Radius 클라이언트로 등록된 우분투 리눅스

Radius 클라이언트가 등록되었으면 이제 네트워크 정책을 만들어주어야 한다. “정책”-“네트워크 정책”에서 “새로 만들기” 메뉴를 실행한다.

NPS서버에 네트워크 인증 정책 생성하기
NPS서버에 네트워크 인증 정책 생성하기

정책 이름에는 “Server-Authentication”이라고 입력했다.

네트워크 정책 이름 및 연결 형식 지정
네트워크 정책 이름 및 연결 형식 지정

“네트워크 액세스 서버 유형(S)”는 별도로 지정하지 않았다. 기본값이다.

“다음(N)” 버튼을 누르면 “조건 지정” 창이 실행된다. “조건 추가”를 위해 “추가(D)…” 버튼을 누른다.

네트워크 정책 조건 지정
네트워크 정책 조건 지정

인증 요청을 할 수 있는 조건으로 “사용자 그룹”을 선택한다. 여러 그룹들을 지정할 수 있는데 일반적으로 사용자 그룹을 지정하는 경우가 대부분이다.

사용자 그룹을 조건으로 선택
사용자 그룹을 조건으로 선택

사용자 그룹 중 “Server-Admin” 그룹의 사용자들을 조건으로 지정하기 위해 검색한다. 즉 이외의 사용자들은 Active Directory 도메인에 계정이 있더라도 Radius 인증을 수행할 수 없다.

Server-Admin 보안그룹을 조건으로 선택
Server-Admin 보안그룹을 조건으로 선택

Server-Admin 보안그룹을 조건으로 지정한다.

Server-Admin 보안그룹을 조건으로 선택
Server-Admin 보안그룹을 조건으로 선택

조건으로 등록되었다. “다음(N)” 버튼을 누른다.

조건에 부합하는 경우 액세스를 허용할 것인지 액세스를 거부할 것인지를 선택한다.

액세스 권한을 지정하고 “다음(N)” 버튼을 누른다.

인증 방법 구성에서는 인증 알고리즘을 지정한다.

여기에서는 “추가(D)…” 버튼을 눌러 EAP-MSCHAP v2 알고리즘을 추가했다. 하지만 최종 테스트까지 마친결과 리눅스에서 사용할 수 있는 PAM-RADIUS-AUTH 모듈은 “암호화 안 된 인증(PAP, SPAP)” 알고리즘만 지원하고 있다. 때문에 적색 상자에 체크( V )를 해줘야 한다.

그렇지 않으면 에러가 발생한다.

“다음(N)” 버튼을 누른다.

제약 조건을 설정하는 화면이 보인다.

기본값으로 두고 “다음(N)” 버튼을 누른다.

이제 설정을 리뷰하고 “다음(N)” 버튼을 누른다.

정책 리뷰
정책 리뷰

새 네트워크 정책 설정이 완료되었다.

새 네트워크 정책 생성 완료
새 네트워크 정책 생성 완료

이제 Active Directory 서버에 Radius 서버를 설치하고 정책 설정을 완료하였다.

다음단계는 Radius 클라이언트로 등록한 Ubuntu 20.04 리눅스 서버에서 Radius 클라이언트 설정을 진행해야 한다.

Radius 클라이언트 설정은 다음 포스트에서 설명한다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top