EdgeRouter - RADIUS를 사용하여 로그인 인증하기¶
download at 2017-08-02T16:04:44Z origin
Overview
이 문서는 RADIUS 로그인 인증방식을 사용하여 RADIUS 서버에 사용자 인증 요청을 전송하는 방법에 대하여 서술합니다.
Notes & Requirements: EdgeOS 1.9.7 펌웨어를 갖는 모든 EdgeRouter 모델에서 동작합니다. 커맨드라인 인터페이스에 대한 지식과 기초 네트워킹의 지식이 요구됩니다. 관련문서 항목을 통하여 더 자세한 내용을 얻으십시오.
이 문서에서 사용한 장비: - EdgeRouter-X (ER-X)
- 윈도우 2016 네트워크 정책 서버 (NPS)
Table of Contents
네트워크 다이어그램
네트워크 토폴로지는 아래와 같습니다. 192.168.1.10 서버에서 사용한 RADIUS 용어는 'RADIUS Server' 와 EdgeRouter (ER)는 'RADIUS Client'로 명명합니다.
다음은 ER에서 사용한 인터페이스입니다:
- eth0 (WAN)
- eth1 (LAN) - 192.168.1.1/24
Steps - RADIUS 클라이언트
기본 설정 위자드 를 통해서 EdgeRouter의 환경설정이 구성되었다고 가정합니다. 추가적으로 인터넷에 연결된 LAN 호스트에 마스커레이드 룰이 적용되었다고 가정합니다.
RADIUS와 관련된 UDP포트는:
- UDP 1812 (새 포트) / UDP 1645 (이전 포트) - RADIUS 인증
- UDP 1813 (새 포트) / UDP 1646 (이전 포트) - RADIUS 계정
Warning
로그인 방법에 변경이력을 생성하면, 장비 바깥에서 접근을 차단하여야 합니다. SSH/HTTPS 세션이 존재한하다는 사실을 잊으면 안됩니다. 세션들에 대한 다른 관리 방법을 사용해야 할 수도 있습니다.
CLI STEPS: 커맨드라인 인터페이스에 접속합니다. GUI의 CLI 버튼을 클릭하거나 PuTTY와 같은 프로그램을 사용합니다.
- 환경설정 모드로 진입합니다.
configure
- 로컬 관리자를 생성하고, RADIUS 인증 방식을 사용하도록 합니다. (<password>를 본인의 비밀번호로 작성하십시오.)
set system login user user1 level admin
set system login user user1 authentication plaintext-password <password>
set system login user user2 level admin
set system login user user2 authentication plaintext-password <password>
Note
EdgeMAX 플랫폼은 현재 모든 원격지 RADIUS 사용자가 로컬 관리자로 장치에 존재해야합니다. ER의 local username 은 RADIUS 서버에 정의된 remote username 과 일치해야합니다. 비밀번호는 일치할 필요가 없습니다! 로컬 유저의 랜덤 패스워드를 사용하고 사용하지 않아도 됩니다. 이후에 RADIUS 서버에서 새로운 패스워드로 라우터에 접근이 가능합니다.
- (선택 사항) 새로운 로컬 관리자를 생성하여 폴백 인증 방법을 사용하고 기본 사용자를 삭제합니다. (<password>를 원하는 패스워드로 교체하세요.)
set system login user backupadmin level admin
set system login user backupadmin authentication plaintext-password <password>
새로운 관리자를 생성하고 난 이후에는 새로운 계정으로 로그인하고, 기존 계정을 삭제합니다:
delete system login user ubnt
- RADIUS 인증 서버의 위치와 환경 설정을 정의합니다. (<secret>을 비밀번호로 대체하세요.)
set system login radius-server 192.168.1.10 port 1812 (default)
set system login radius-server 192.168.1.10 secret <secret>
set system login radius-server 192.168.1.10 timeout 5 (default)
Steps - RADIUS 서버
아래의 섹션은 (간단하게) 윈도우 2016 서버에서 네트워크 정책과 접근 서비스 (NPS)의 환경설정에 대하여 서술합니다. 온라인에서 많은 가이드가 존재하니 해당 가이드에서 더 자세한 내용을 확인하십시오.
- NPS 역할을 추가합니다.
Server Manager > Add Roles and Features > Network Policy and Access Services
- EdgeRouter에 RADIUS 클라이언트를 추가합니다. (<secret> 을 원하는 패스워드로 교체합니다)
Network Policy Server Console (NPS) > Radius Clients and Servers > Radius Clients > New
Friendly Name: ER-X (does not have to match device hostname)
Address (IP or DNS): 192.168.1.1 (the source address of the router)
Shared Secrets Template: None
Shared Secret: Manual
Shared Secret / Confirm: <secret>
Note
'RADIUS Shared Secret Template'을 생성해서 모든 RADIUS 클라이언트가 같은 패스워드를 갖도록 할 수 있습니다.
- RADIUS 클라이언트를 위한 새로운 네트워크 정책을 생성합니다.
NPS > Policies > Network Policy > New
Policy Name: ER Radius Clients
Type of Network Access Server: Unspecified
Specify Conditions > Add
Client Friendly Name: ER-?
User Groups: UBNT\Network Engineers
Note
활성 디렉토리 (AD)나 로컬 사용자 인증을 사용할수도 있습니다. 이 예제에서는 사용자가 ER에 인증하기 위해서 UBNT 도메인에 '네트워크 엔지니어'로 인증을 수행합니다. 사용자에게 익숙한 이름을 매칭 표현식으로 정의할 수 있습니다. 'ER-?'은 'ER-'로 시작하는 문자열에 대하여 검사를 수행합니다.
Next > Specify Access Permission
Access Granted
Next > Configure Authentication Methods
모든 method를 해제하고 ‘Unencrypted Authentication (PAP, SPAP)’를 선택합니다.
Next > Configure Constraints > Next > Configure Settings > Radius Attributes: Standard
Select Framed-Protocol > Remove
Select Service-Type > Edit > Others > Login
Steps - 테스트 및 검증
환경설정이 완료되면, RADIUS가 동작하는지를 RADIUS 서버에 다음 명령어를 수행하고 결과 값을 통해 확인할 수 있습니다:
- 기본 UDP 포트(1812)로 수신, 발신하는 요청:
sudo tcpdump -i eth1 -n udp port 1812
IP 192.168.1.1.1391 > 192.168.1.10.1812: RADIUS, Access-Request (1), id: 0x17 length: 76
IP 192.168.1.10.1812 > 192.168.1.1.1391: RADIUS, Access-Accept (2), id: 0x17 length: 72
IP 192.168.1.1.2996 > 192.168.1.10.1812: RADIUS, Access-Request (1), id: 0x0f length: 90
IP 192.168.1.10.1812 > 192.168.1.1.2996: RADIUS, Access-Reject (3), id: 0x0f length: 20
- RADIUS 서버의 이벤트 로그:
Event Viewer > Custom Views > ServerRoles > Network Policy and Access Services
Note
위의 2개의 예제에서는 user1의 요청은 ER의 로컬에서 진행하였습니다. ER의 사용자 계정을 삭제하고 난 이후에는 NPS 서버는 'NULL SID'로 채워진 보안 ID를 발급 받고, 인증 실패를 결과로 출력합니다.
관련 문서