RADIUS 인증
Junos OS은(는) 네트워크 디바이스에서 사용자의 중앙 인증을 위한 RADIUS를 지원합니다. 디바이스에서 RADIUS 인증을 사용하기 위해 네트워크 관리자는 네트워크에 있는 하나 이상의 RADIUS 서버에 대한 정보를 구성해야 합니다. 또한 LAN에 로그인 및 로그아웃을 하는 사용자에 대한 통계 데이터를 수집하여 RADIUS 계정 서버로 전송하도록 디바이스에 RADIUS 계정을 구성할 수도 있습니다.
RADIUS 서버 인증 구성
RADIUS 인증은 네트워크 디바이스에 액세스하려는 사용자를 인증하는 방법입니다. 다음 섹션에는 RADIUS를 사용하는 이유 및 구성 방법이 설명되어 있습니다.
RADIUS 사용 이유
사용자(네트워크 관리자)는 RADIUS 및 TACACS+를 포함한 네트워크 디바이스에서 사용자의 중앙 인증을 위해 다른 프로토콜을 사용할 수 있습니다. 멀티벤더 IETF 표준이기 때문에 RADIUS를 추천하며 그 기능은 TACACS+ 또는 기타 독점 시스템의 것보다 더 폭넓게 수용됩니다. 또한 증대된 보안을 위해 일회성 비밀번호 시스템을 사용하는 것이 좋고 이러한 시스템의 모든 벤더가 RADIUS를 지원합니다.
우선 순위가 상호 운용성과 성능인 경우 RADIUS를 사용해야 합니다.
-
상호 운용성 - RADIUS는 TACACS+보다 더 상호 운용이 가능합니다. 주로 TACACS+의 고유한 특성 때문입니다. TACACS+는 더 많은 프로토콜을 지원하는 반면, RADIUS는 보편적으로 지원됩니다.
-
성능 - RADIUS는 라우터 및 스위치에서 훨씬 가볍습니다. 이러한 이유로, 네트워크 엔지니어는 일반적으로 TACACS+보다 RADIUS를 선호합니다.
RADIUS 서버 세부 정보 구성
디바이스에서 RADIUS 인증을 사용하려면 각 RADIUS 서버의 [edit system]
계층 수준에서 하나의 radius-server
문을 포함하여 네트워크에 하나 이상의 RADIUS 서버에 대한 정보를 구성해야 합니다. 디바이스는 RADIUS 서버를 구성된 순서대로 쿼리합니다. 주 서버(구성된 첫 번째 서버)를 사용할 수 없는 경우 디바이스는 응답을 수신할 때까지 목록의 각 서버에 연결을 시도합니다.
네트워크 디바이스는 RADIUS 인증 사용자를 로컬 정의 사용자 계정 또는 사용자 템플릿 계정에 매핑할 수 있으며, 이는 권한 부여를 결정합니다. 기본적으로, Junos OS다음의 경우에서 구성되어 있다면 remote
RADIUS 인증 사용자를 사용자 템플릿 계정에 할당합니다.
-
인증 사용자는 로컬 디바이스에 구성된 사용자 계정이 없습니다.
-
RADIUS 서버가 사용자를 로컬 사용자 템플릿에 할당하지 않거나 서버가 할당하는 템플릿이 로컬 장치에 구성되어 있지 않습니다.
RADIUS 서버는 인증 사용자를 다른 사용자 템플릿에 할당하여 해당 사용자에게 다른 관리 권한을 부여할 수 있습니다. 사용자는 CLI에서 동일한 로그인 이름을 보유하지만 할당된 템플릿에서 로그인 클래스, 액세스 권한 및 효과적인 사용자 ID를 상속합니다. RADIUS 인증 사용자는 로컬 정의 사용자 계정 또는 사용자 템플릿에 매핑하지 않고 remote
템플릿이 구성되지 않은 경우, 인증이 실패합니다.
remote
사용자 이름은 Junos OS에서 특별한 사례로, 반드시 소문자여야 합니다. 원격 서버가 인증하지만 디바이스에 로컬 구성된 사용자 계정이 없는 사용자의 템플릿으로 사용됩니다. Junos OS은(는) 로컬 정의 계정 없이 이러한 인증 사용자에게 remote
템플릿 권한을 적용합니다. remote
템플릿에 매핑된 모든 사용자는 동일한 로그인 클래스에 있습니다.
여러 디바이스에 원격 인증을 구성하므로 구성 그룹 내부에서 구성하는 것이 일반적입니다. 여기에 제시된 단계는 소위 global
(이)라는 구성 그룹에 있습니다. 구성 그룹을 사용하는 것은 선택 사항입니다.
RADIUS 서버를 통해 인증을 구성하는 방법:
RADIUS를 구성하여 관리 인스턴스 사용
기본적으로, Junos OS은(는) 기본 라우팅 인스턴스를 통해 RADIUS에 대한 인증, 권한 부여 및 어카운팅 패킷을 라우팅합니다. 비-기본 VRF 인스턴스의 관리 인터페이스를 통해 RADIUS 패킷을 라우팅할 수도 있습니다.
mgmt_junos
관리 인스턴스를 통해 RADIUS 패킷을 라우팅하는 방법:
-
mgmt_junos
관리 인스턴스를 활성화합니다.[edit system] user@host# set management-instance
-
구성된 경우 RADIUS 인증 서버 및 RADIUS 어카운팅 서버에 대한
routing-instance mgmt_junos
문을 구성합니다.[edit system] user@host# set radius-server server-address routing-instance mgmt_junos user@host# set accounting destination radius server server-address routing-instance mgmt_junos
예: 시스템 인증을 위한 RADIUS 서버 구성
이 예는 RADIUS 서버를 통해 시스템 인증을 구성합니다.
요구 사항
시작하기 전에:
-
최초 디바이스 구성을 수행합니다. 해당 디바이스용 시작하기 가이드를 참조합니다.
-
네트워크에 하나 이상의 RADIUS 서버를 구성합니다.
개요
이 예에서 IP 주소 172.16.98.1의 새로운 RADIUS 서버를 추가합니다. RADIUS 서버의 공유 암호를 Radiussecret1로 지정합니다. 디바이스는 암호화된 값으로 구성 데이터베이스에 암호를 저장합니다. 마지막으로, RADIUS 서버 요청에서 디바이스가 사용하는 소스 주소를 지정합니다. 대부분의 경우 디바이스의 루프백 주소를 사용할 수 있으며, 이 예에서는 10.0.0.1입니다.
네트워크 디바이스의 로컬 비밀번호 인증, RADIUS 및 TACACS+와 같은 여러 사용자 인증 방법에 대한 지원을 구성할 수 있습니다. 여러 인증 방법을 구성할 때 디바이스가 시도할 방법의 순서를 정할 수 있습니다. 이 예에서는 먼저 RADIUS 인증 서비스를 사용할 디바이스를 구성하고, 실패하면 로컬 비밀번호 인증을 시도합니다.
RADIUS 인증 사용자는 권한 부여를 결정하는 네트워크 디바이스에서 로컬 사용자 계정 또는 로컬 사용자 템플릿 계정에 매핑해야 합니다. 기본적으로 RADIUS 인증 사용자가 로컬 사용자 계정 또는 특정 사용자 템플릿에 매핑하지 않으면, 사용자는 remote
사용자 템플릿에 할당됩니다(구성된 경우). 이 예는 remote
사용자 템플릿을 구성합니다.
구성
절차
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 [edit]
계층 수준에서 명령을 CLI로 복사해 붙여 넣은 다음, 구성 모드에서 commit
을 입력합니다.
set system radius-server 172.16.98.1 set system radius-server 172.16.98.1 secret Radiussecret1 set system radius-server 172.16.98.1 source-address 10.0.0.1 set system authentication-order [radius password] set system login user remote class operator
단계별 절차
시스템 인증을 위한 RADIUS 서버 구성:
-
새로운 RADIUS 서버를 추가하고 IP 주소를 설정합니다.
[edit system] user@host# set radius-server 172.16.98.1
-
RADIUS 서버의 공유 암호(비밀번호)를 지정합니다.
[edit system] user@host# set radius-server 172.16.98.1 secret Radiussecret1
-
디바이스의 루프백 주소를 소스 주소로 지정합니다.
[edit system] user@host# set radius-server 172.16.98.1 source-address 10.0.0.1
-
디바이스의 인증 순서를 지정하고
radius
옵션을 포함합니다.[edit system] user@host# set authentication-order [radius password]
remote
사용자 템플릿 및 해당 로그인 클래스를 구성합니다.[edit system] user@host# set login user remote class operator
결과
구성 모드에서 show system
명령을 입력하여 구성을 확인합니다. 출력이 의도된 구성을 표시하지 않으면, 이 예의 구성 지침을 반복하여 수정합니다.
다음 출력에는 이 예와 관련된 구성 계층의 일부만 포함됩니다.
[edit] user@host# show system login { user remote { class operator; } } authentication-order [ radius password ]; radius-server { 172.16.98.1 { secret "$9$ABC123"; ## SECRET-DATA source-address 10.0.0.1; } }
디바이스를 구성한 후 구성 모드에서 commit
을(를) 입력하십시오.
RADIUS 인증 구성(QFX 시리즈 또는 OCX 시리즈)
RADIUS 인증은 라우터나 스위치에 액세스하려는 사용자를 인증하는 방법입니다. RADIUS 인증을 구성하는 작업은 다음과 같습니다.
source-address
문은 QFabric 시스템의 [edit system-radius-server name]
계층 수준에서 지원되지 않습니다.
RADIUS 서버 세부 정보 구성
라우터나 스위치에서 RADIUS 인증을 사용하려면, 각 RADIUS 서버의 [edit system]
계층 수준에서 하나의 radius-server
문을 포함하여 네트워크에서 한 개 이상의 RADIUS 서버에 대한 정보를 구성합니다.
[edit system] radius-server server-address { accounting-port port-number; accounting-retry number; accounting-timeout seconds; dynamic-request-port number; max-outstanding-requests value; port number; preauthentication-port number; preauthentication-secret secret; retry number; routing-instance routing-instance-name; secret password; source-addresssource-address; timeout seconds; }
server-address은(는) RADIUS 서버 주소입니다.
RADIUS 서버에 연결할 포트를 지정할 수 있습니다. 기본적으로, 포트 번호 1812가 사용됩니다(RFC 2865에 명시). 또한 어카운팅 패킷을 보낼 어카운팅 포트를 지정할 수 있습니다. RFC 2866에 명시된 바와 같이 기본값은 1813입니다.
secret password
문에서 암호를 지정해야 합니다. 암호에 공백이 포함되어 있는 경우 따옴표로 묶습니다. 로컬 라우터 또는 스위치에서 사용되는 암호는 서버에서 사용되는 암호와 일치해야 합니다.
선택적으로 로컬 라우터 또는 스위치가 RADIUS 서버에서 응답을 수신하기 위해 대기하는 시간(timeout
문)과 라우터 또는 스위치가 RADIUS 인증 서버에 연결을 시도하는 횟수(retry
문)를 지정할 수 있습니다. 기본적으로 라우터나 스위치는 3초 동안 대기합니다. 이것을 1~90초 사이의 값으로 구성할 수 있습니다. 기본적으로 라우터나 스위치는 서버 연결을 3차례 다시 시도합니다. 이것을 1~10회 사이의 값으로 구성할 수 있습니다.
source-address
문을 사용하여 개별 서버나 여러 개의 RADIUS 서버에 논리적 주소를 지정할 수 있습니다.
여러 개의 RADIUS 서버를 구성하려면 여러 개의 radius-server
문을 포함시킵니다.
권한을 부여하기 위해 단일 계정을 공유하는 사용자 집합을 구성하려면 템플릿 사용자를 만듭니다. 이를 위해서는 예: 인증 순서 구성의 설명에 따라 [edit system login]
계층 수준에서 user
문을 포함합니다.
또한 [edit access]
및 [edit access profile]
계층 수준에서 RADIUS 인증을 구성할 수 있습니다. Junos OS는 다음 검색 순서를 사용하여 인증에 어떤 서버 집합을 사용할지 결정합니다.
[edit access profile profile-name radius-server server-address]
[edit access radius-server server-address]
[edit system radius-server server-address]
암호 변경 지원을 위한 MS-CHAPv2 구성
암호 변경 지원을 위해 MS-CHAPv2을 구성하려면 다음을 수행해야 합니다.
RADIUS 서버 인증 매개 변수를 구성합니다.
초기 암호 시도에 RADIUS 서버를 사용하려면 authentication-order을(를) 설정합니다.
암호 변경을 지원하도록 라우터 또는 스위치에서 MS-CHAPv2(Microsoft의 Challenge Handshake Authentication Protocol 버전 2 구현)를 구성하여 암호 변경을 지원할 수 있습니다. 이 기능은 암호가 만료되거나, 재설정되거나, 다음 로그인 시 변경되도록 구성된 경우 라우터나 스위치에 액세스하는 사용자에게 암호 변경 옵션을 제공합니다.
MS-CHAP-v2를 구성하려면 [edit system radius-options]
계층 수준에서 다음 문을 포함합니다.
[edit system radius-options] password-protocol mschap-v2;
다음 예는 MS-CHAPv2 암호 프로토콜, 암호 인증 순서, 사용자 계정을 구성하기 위한 문을 보여줍니다.
[edit] system { authentication-order [ radius password ]; radius-server { 192.168.69.149 secret "$ABC123"; ## SECRET-DATA } radius-options { password-protocol mschap-v2; } login { user bob { class operator; } } }
외부 RADIUS 서버에 액세스하기 위한 Junos OS 소스 주소 지정
인증을 목적으로 외부 RADIUS 서버에 연결하기 위해 네트워크에 액세스할 때 Junos OS가 사용하는 소스 주소를 지정할 수 있습니다. 또한 어카운팅 정보를 전송하기 위해 RADIUS 서버에 연결할 때 Junos OS가 사용하는 소스 주소를 지정할 수도 있습니다.
RADIUS 서버의 소스 주소를 지정하려면 [edit system radius-server server-address]
계층 수준에서 source-address
문을 포함합니다.
[edit system radius-server server-address] source-address source-address;
source-address은(는) 라우터 인터페이스 또는 스위치 인터페이스 중 하나에 구성된 유효한 IP 주소입니다.
주니퍼 네트웍스의 벤더별 RADIUS 속성
Junos OS는 인증 서버에서 주니퍼 네트웍스 RADIUS 벤더별 속성(VSA)을 구성할 수 있도록 지원합니다. 이러한 VSA는 벤더 ID가 주니퍼 네트웍스 ID 번호 2636으로 설정된 RADIUS 벤더별 속성에 캡슐화됩니다.
표 1에는 구성할 수 있는 주니퍼 네트웍스 VSA가 나와 있습니다.
일부 속성은 POSIX 1003.2에서 정의된 바와 같이 확장 정규 표현을 허용합니다. 정규 표현에 공백, 연산자 또는 와일드카드 문자가 포함되어 있는 따옴표로 표시합니다. 보다 자세한 정보는 아래를 참조하십시오.
이름 |
설명 |
형식 |
길이 |
문자열 |
---|---|---|---|---|
Juniper-Local-User-Name |
사용자가 디바이스에 로그인할 때 이 사용자에게 할당된 사용자 템플릿의 이름을 나타냅니다. 이 특성은 Access-Accept 패킷에만 사용됩니다. |
1 |
≥3 |
인쇄 가능한 ASCII 문자를 포함하는 하나 이상의 옥텟. |
Juniper-Allow-Commands |
사용자의 로그인 클래스 권한 비트에 의해 승인된 명령 외에 사용자가 명령을 실행할 수 있는 확장 정규 표현을 포함합니다. 이 특성은 Access-Accept 패킷에만 사용됩니다. |
2 |
≥3 |
확장 정규 표현식의 형태로 인쇄 가능한 ASCII 문자를 포함하는 하나 이상의 옥텟. |
Juniper-Deny-Commands |
사용자 권한을 거부하여 사용자의 로그인 클래스 권한 비트에 의해 승인된 명령을 실행하는 확장 정규 표현을 포함합니다. 이 특성은 Access-Accept 패킷에만 사용됩니다. |
3 |
≥3 |
확장 정규 표현식의 형태로 인쇄 가능한 ASCII 문자를 포함하는 하나 이상의 옥텟. |
Juniper-Allow-Configuration |
사용자의 로그인 클래스 권한 비트에 의해 승인된 문 외에 사용자가 구성 문을 보고 수정할 수 있는 확장 정규 표현을 포함합니다. 이 특성은 Access-Accept 패킷에만 사용됩니다. |
4 |
≥3 |
확장 정규 표현식의 형태로 인쇄 가능한 ASCII 문자를 포함하는 하나 이상의 옥텟. |
Juniper-Deny-Configuration |
사용자 권한을 거부하여 사용자의 로그인 클래스 권한 비트에 의해 승인된 구성 문을 보거나 수정할 수 있는 확장 정규 표현을 포함합니다. 이 특성은 Access-Accept 패킷에만 사용됩니다. |
5 |
≥3 |
확장 정규 표현식의 형태로 인쇄 가능한 ASCII 문자를 포함하는 하나 이상의 옥텟. |
Juniper-Interactive-Command |
사용자가 입력한 대화형 명령을 나타냅니다. 이 특성은 Accounting-Request 패킷에만 사용됩니다. |
8 |
≥3 |
인쇄 가능한 ASCII 문자를 포함하는 하나 이상의 옥텟. |
Juniper-Configuration-Change |
구성(데이터베이스)이 변경되는 대화형 명령을 나타냅니다. 이 특성은 Accounting-Request 패킷에만 사용됩니다. |
9 |
≥3 |
인쇄 가능한 ASCII 문자를 포함하는 하나 이상의 옥텟. |
Juniper-User-Permissions |
사용자 권한을 지정하기 위해 서버가 사용하는 정보를 포함합니다. 이 특성은 Access-Accept 패킷에만 사용됩니다. 주:
RADIUS 서버가 사용자에게 |
10 |
≥3 |
인쇄 가능한 ASCII 문자를 포함하는 하나 이상의 옥텟. 문자열은 공백으로 구분된 권한 플래그의 목록입니다. 각 플래그의 정확한 이름은 전체적으로 지정되어야 합니다. 액세스 권한 수준 개요을(를) 참조하세요. |
Juniper-Authentication-Type |
사용자를 인증하는 데 사용된 인증 방법(로컬 데이터베이스 또는 RADIUS 서버)을 나타냅니다. 로컬 데이터베이스를 사용하여 사용자가 인증되면, 속성 값은 '로컬'을 표시합니다. 사용자가 RADIUS 또는 LDAP 서버를 사용하여 인증된 경우 속성 값은 '원격'으로 표시됩니다. |
11 |
≥5 |
인쇄 가능한 ASCII 문자를 포함하는 하나 이상의 옥텟. |
Juniper-Session-Port |
수립된 세션의 소스 포트 번호를 나타냅니다. |
12 |
정수 크기 |
정수 |
Juniper-Allow-Configuration-Regexps(RADIUS만 해당) |
사용자의 로그인 클래스 권한 비트에 의해 승인된 문 외에 사용자가 구성 문을 보고 수정할 수 있는 확장 정규 표현을 포함합니다. 이 특성은 Access-Accept 패킷에만 사용됩니다. |
13 |
≥3 |
확장 정규 표현식의 형태로 인쇄 가능한 ASCII 문자를 포함하는 하나 이상의 옥텟. |
Juniper-Deny-Configuration-Regexps(RADIUS만 해당) |
사용자 권한을 거부하여 사용자의 로그인 클래스 권한 비트에 의해 승인된 구성 문을 보거나 수정할 수 있는 확장 정규 표현을 포함합니다. 이 특성은 Access-Accept 패킷에만 사용됩니다. |
14 |
≥3 |
확장 정규 표현식의 형태로 인쇄 가능한 ASCII 문자를 포함하는 하나 이상의 옥텟. |
VSA에 대한 자세한 내용은 RFC 2138, RADIUS(원격 인증 전화 접속 사용자 서비스)을 참조하십시오.
RADIUS 또는 TACACS+ 서버에서 정규식을 사용하여 명령 허용 또는 거부
Junos OS은(는) RADIUS 및 TACACS+ 인증된 사용자를 사용자의 액세스 권한을 정의하는 로컬 정의 사용자 계정 또는 사용자 템플릿 계정에 매핑할 수 있습니다. 선택적으로 각 인증 서버에서 주니퍼 네트웍스 RADIUS 및 TACACS+ VSA(벤더별 속성)를 정의하여 사용자의 액세스 권한을 구성할 수도 있습니다.
사용자의 로그인 클래스는 사용자에게 실행 권한이 부여된 작동 모드 및 구성 모드 명령과 사용자가 보고 수정할 수 있는 구성 영역을 결정하는 권한 집합을 정의합니다. 또한 로그인 클래스는 사용자가 특정 명령을 실행하거나 구성의 특정 영역을 보거나 수정하는 기능을 허용하거나 거부하는 정규식을 정의할 수 있습니다. 로그인 클래스에는 사용자 권한을 정의하는 다음 문이 포함될 수 있습니다.
-
permissions
-
allow-commands
-
allow-commands-regexps
-
allow-configuration
-
allow-configuration-regexps
-
deny-commands
-
deny-commands-regexps
-
deny-configuration
-
deny-configuration-regexps
마찬가지로 RADIUS 또는 TACACS+ 서버 구성은 주니퍼 네트워크 VSA를 사용하여 사용자의 액세스 권한을 결정하는 특정 사용 권한 또는 정규식을 정의할 수 있습니다. 지원되는 RADIUS 및 TACACS+ VSA 목록은 다음을 참조하십시오.
RADIUS 또는 TACACS+ 서버에 대한 사용자 권한을 공백으로 구분된 값 목록으로 정의할 수 있습니다.
-
RADIUS 서버는 다음 속성과 구문을 사용합니다.
Juniper-User-Permissions += "flag1 flag2 flag3",
예:
Juniper-User-Permissions += "interface interface-control configure",
-
TACACS+ 서버는 다음 속성과 구문을 사용합니다.
user-permissions = "flag1 flag2 flag3"
예:
user-permissions = "interface interface-control configure"
또한 RADIUS 또는 TACACS+ 서버는 단일 확장 정규식(POSIX 1003.2에 정의됨)을 사용하여 사용자가 특정 명령을 실행하거나 구성 영역을 보고 수정하는 기능을 허용하거나 거부하는 주니퍼 네트웍스 VSA를 정의할 수 있습니다. 여러 명령 또는 구성 계층을 괄호 안에 묶고 파이프 기호를 사용하여 구분합니다. 정규 표현에 공백, 연산자 또는 와일드카드 문자가 포함되어 있는 따옴표로 표시합니다. 로컬 및 원격으로 권한 부여 매개 변수를 구성하면 TACACS+ 또는 RADIUS 권한 부여 중에 수신된 정규식이 로컬 디바이스에 정의된 정규식과 병합됩니다.
-
RADIUS 서버는 다음 속성과 구문을 사용합니다.
Juniper-Allow-Commands += "(cmd1)|(cmd2)|(cmdn)", Juniper-Deny-Commands += "(cmd1)|(cmd2)|(cmdn)", Juniper-Allow-Configuration += "(config1)|(config2)|(confign)", Juniper-Deny-Configuration += "(config1)|(config2)|(confign)",
예:
Juniper-Allow-Commands += "(test)|(ping)|(quit)", Juniper-Deny-Commands += "(request)|(restart)", Juniper-Allow-Configuration += "(groups re0)|(system radius-server)", Juniper-Deny-Configuration += "(system radius-options)|(system accounting)",
-
TACACS+ 서버는 다음 속성과 구문을 사용합니다.
allow-commands = "(cmd1)|(cmd2)|(cmdn)" deny-commands = "(cmd1)|(cmd2)|(cmdn)" allow-configuration = "(config1)|(config2)|(confign)" deny-configuration = "(config1)|(config2)|(confign)"
예:
allow-commands = "(test)|(ping)|(quit)" deny-commands = "(request)|(restart)" allow-configuration = "(groups re0)|(system tacplus-server)" deny-configuration = "(system tacplus-options)|(system accounting)"
또한 RADIUS 및 TACACS+ 서버는 로컬 디바이스에서 구성할 수 있는 동일한 *-regexps
문에 해당하는 속성 구성을 지원합니다. *-regexps
TACACS+ 특성 및 *-Regexps
RADIUS 속성은 이전 속성과 동일한 정규식 구문을 사용하지만 변수를 사용하여 정규식을 구성할 수 있습니다.
-
RADIUS 서버는 다음 속성과 구문을 사용합니다.
Juniper-Allow-Configuration-Regexps += "(config1)|(config2)|(confign)", Juniper-Deny-Configuration-Regexps += "(config1)|(config2)|(confign)",
-
TACACS+ 서버는 다음 속성과 구문을 사용합니다.
allow-commands-regexps = "(cmd1)|(cmd2)|(cmdn)" deny-commands-regexps = "(cmd1)|(cmd2)|(cmdn)" allow-configuration-regexps = "(config1)|(config2)|(confign)" deny-configuration-regexps = "(config1)|(config2)|(confign)"
예를 들어 TACACS+ 서버 구성은 다음 속성을 정의할 수 있습니다.
allow-commands-regexps = "(show cli .*)|(ping 10.1.1..*)" deny-commands-regexps = "(configure .*)|(edit)|(commit)|(rollback .*)"
RADIUS 또는 TACACS+ 서버에서 각 개별 식을 별도의 줄에 지정하는 단순화된 구문을 사용하여 속성을 정의할 수도 있습니다.
RADIUS 서버의 경우 다음 구문을 사용하여 개별 정규식을 지정합니다.
Juniper-User-Permissions += "permission-flag1", Juniper-User-Permissions += "permission-flag2", Juniper-User-Permissions += "permission-flagn", Juniper-Allow-Commands += "cmd1", Juniper-Allow-Commands += "cmd2", Juniper-Allow-Commands += "cmdn", Juniper-Deny-Commands += "cmd1", Juniper-Deny-Commands += "cmd2", Juniper-Deny-Commands += "cmdn", Juniper-Allow-Configuration += "config1", Juniper-Allow-Configuration += "config2", Juniper-Allow-Configuration += "confign", Juniper-Deny-Configuration += "config1", Juniper-Deny-Configuration += "config2", Juniper-Deny-Configuration += "confign",
TACACS+ 서버의 경우 다음 구문을 사용하여 개별 정규식을 지정합니다.
user-permissions1 = "permission-flag1" user-permissions2 = "permission-flag2" user-permissionsn = "permission-flagn" allow-commands1 = "cmd1" allow-commands2 = "cmd2" allow-commandsn = "cmdn" deny-commands1 = "cmd1" deny-commands2 = "cmd2" deny-commandsn = "cmdn" allow-configuration1 = "config1" allow-configuration2 = "config2" allow-configurationn = "confign" deny-configuration1 = "config1" deny-configuration2 = "config2" deny-configurationn = "confign"
-
TACACS+ 서버 구문에서 숫자 값 n은(는) 고유해야 하지만 순차적일 필요는 없습니다. 예를 들어 다음 구문이 유효합니다.
allow-commands1="cmd1" allow-commands3="cmd3" allow-commands2="cmd2" deny-commands3="cmd3" deny-commands2="cmd2" deny-commands1="cmd1"
-
RADIUS 또는 TACACS+ 서버는 개별 정규식 줄 수에 제한을 가합니다.
-
show cli authorization
명령을 실행하면 개별 식을 별도의 행에 지정한 경우에도 명령 출력에 정규식이 한 줄로 표시됩니다.
사용자는 show cli authorization
작동 모드 명령을 실행하여 클래스, 권한, 명령 및 구성 권한을 확인할 수 있습니다.
user@host> show cli authorization
네트워크 디바이스에서 로컬로 권한 부여 매개 변수를 구성하고 RADIUS 또는 TACACS+ 서버에서 원격으로 권한 부여 매개 변수를 구성하면 디바이스는 TACACS+ 또는 RADIUS 권한 부여 중에 수신된 정규 표현식을 로컬로 구성된 정규 표현식과 병합합니다. 최종 표현식에 구문 오류가 포함된 경우 전체 결과는 잘못된 정규 표현식입니다.
Juniper-Switching-Filter VSA 가이드라인, 일치 조건 및 행동
디바이스는 주니퍼 네트웍스 고유의 RADIUS 서버 구성을 지원합니다. 이러한 속성은 VSA(Vendor Specific Attribute)로 알려져 있으며 RFC 2138, 원격 인증 서비스(RADIUS)에 설명되어 있습니다. Vendor specific 속성은 RADIUS 기능성을 공개 표준 속성에 의해 제공되는 것 이상으로 확장해 가입자 관리 및 서비스 지원에 필요한 많은 유용한 기능의 구현을 활성화합니다.
주니퍼 네트웍스 VSA의 벤더 ID는 2636으로 설정되어 있습니다.
속성은 인증 성공 또는 실패의 결과로 RADIUS 서버에서 디바이스로 전송되는 일반 텍스트 필드입니다. 인증은 디바이스가 RADIUS 서버에 의해 인증될 때까지 포트에서 요청자를 차단하여 무단 사용자 액세스를 방지합니다. RADIUS 서버에서 인증과 함께 필터링 속성을 구현하면 요청자에 대한 LAN 액세스를 제어할 수 있는 중앙 위치가 제공됩니다.
Juniper-Switching-Filter 속성은 802.1X 인증과 함께 작동해 네트워크에 대한 요청자의 액세스를 중앙에서 제어합니다. 이 속성을 사용하여 RADIUS 서버에서 필터를 구성할 수 있습니다. 이러한 필터는 스위치로 전송되고 802.1X 인증을 사용하여 인증된 사용자에게 적용됩니다.
Juniper-Switching-Filter에는 하나 이상의 필터 용어가 포함될 수 있습니다. 필터 용어는 결과 행동과 함께 하나 이상의 일치 조건을 사용해 구성됩니다. 일치 조건은 구성된 행동을 적용하기 위해 패킷이 반드시 충족해야 하는 기준입니다. 구성된 행동은 패킷이 일치 조건에 지정된 기준을 충족하면 스위치가 수행하는 행동입니다. 스위치가 수행할 수 있는 행동은 패킷을 수락하거나 거부하는 것입니다.
RADIUS 서버에 포트 방화벽 필터를 추가하면 여러 포트 및 디바이스에 필터를 추가할 필요가 없습니다. 이를 수행하기 위한 한 가지 방법은 Juniper-Firewall-filter-name VSA을 사용해 이전에 구성된 포트 방화벽 필터를 RADIUS 서버에 직접 적용하는 것입니다. 포트 필터링 속성과 마찬가지로 이 필터는 인증 절차 중에 적용되며 해당 행동은 디바이스 포트에서 적용됩니다.
VSA 가이드라인
Vendor-specific RADIUS 속성은 속성당 최대 247자입니다. 더 긴 길이가 필요한 경우 Juniper는 최대 4000자까지 동일한 속성의 여러 인스턴스를 지원합니다. 247자를 초과하는 필터를 지원하기 위해 여러 Juniper-Switching-Filter 속성을 사용합니다. 아래 예는 각각 247자 제한 이내의 새로운 필터 용어를 포함하는 두 속성을 보여줍니다.
Juniper-Switching-Filter = "Match ip-protocol 17 destination-port 67 Destination-ip 192.168.1.0/24 Action deny, match destination-ip 10.1.7.253 destination-port 53 action allow" Juniper-Switching-Filter += "Match ip-protocol 1 destination-port 4000 Destination-ip 192.168.21.0/24 Action deny"
4000자 제한은 RADIUS 서버와 Juniper 디바이스 모두에서 지원되는 최대 전송 단위(MTU)와 사용된 다른 RADIUS 속성의 수에 따라 달라집니다.
VSA 일치 조건 및 행동에는 다음 가이드라인이 적용됩니다.
-
match
문과action
문은 모두 필수입니다. -
일치 조건이 지정되지 않은 경우 기본적으로 모든 패킷이 일치하는 것으로 간주됩니다.
-
행동이 지정되지 않은 경우 기본 행동은 패킷을 거부하는 것입니다.
-
모든 옵션은 각
match
및action
문에 포함될 수 있습니다. -
AND 작업은 쉼표로 구분된 여러 유형의 필드에서 수행됩니다. 동일한 유형의 필드를 반복할 수 없습니다.
-
forwarding-class
옵션을 적용하기 위해 스위치에 포워딩 클래스를 구성해야 합니다. 스위치에 포워딩 클래스가 구성되지 않은 경우 이 옵션은 무시됩니다.
일치 조건
표 2은(는) RADIUS 서버에서 match
명령을 사용하여 방화벽 필터로 VSA를 구성할 때 지정할 수 있는 일치 조건을 설명합니다. 일치 조건을 정의하는 문자열은 일치 문이라고 합니다.
옵션 |
설명 |
---|---|
|
패킷의 대상 미디어 액세스 제어(MAC) 주소입니다. |
|
802.1Q 헤더의 태그 값의 범위는 |
|
최종 대상 노드의 주소입니다. |
|
IPv4 프로토콜 값. 숫자 값 대신 다음 텍스트 동의어 중 하나를 지정할 수 있습니다. |
|
TCP 또는 UDP(User Datagram Protocol) 소스 포트 필드입니다. 일반적으로 이 일치 문을 |
|
TCP 또는 UDP 대상 필드. 일반적으로 이 일치 문을 |
행동
필터링 기준을 지정하는 하나 이상의 용어를 정의할 때 패킷이 모든 기준과 일치할 경우 수행할 작업도 정의합니다. 표 3은(는) 용어로 지정할 수 있는 행동을 보여줍니다.
옵션 |
설명 |
---|---|
( |
ICMP(Internet Control Message Protocol) 메시지를 보내지 않고 패킷을 승인하거나 묵시적으로 폐기합니다. |
|
(선택 사항) 다음 포워딩 클래스 중 하나에서 패킷을 분류합니다.
|
|
(선택 사항) 패킷 손실 우선순위(PLP)를 |
참조
RADIUS 계정 이해
네트워크 디바이스는 IETF(Internet Engineering Task Force) RFC 2866, RADIUS 계정을 지원합니다. 디바이스에 RADIUS 계정을 구성하여 LAN에 로그인 또는 로그아웃하는 사용자에 대한 통계 데이터를 수집하여 RADIUS 계정 서버로 전송할 수 있습니다. 통계 데이터는 일반 네트워크 모니터링, 사용 패턴 분석 및 추적, 세션 기간 또는 액세스한 서비스 유형에 따라 사용자에게 요금을 청구하는 데 사용할 수 있습니다.
RADIUS 계정을 구성하기 위해 다음을 지정합니다.
-
디바이스에서 통계 데이터를 수신할 하나 이상의 RADIUS 계정 서버
-
수집할 계정 데이터 유형
RADIUS 계정 및 인증에 동일한 서버를 사용하거나 별도의 서버를 사용할 수 있습니다. RADIUS 계정 서버 목록을 지정할 수 있습니다. 디바이스는 서버를 구성된 순서대로 쿼리합니다. 주 서버(구성된 첫 번째 서버)를 사용할 수 없는 경우 디바이스는 응답을 수신할 때까지 목록의 각 서버에 연결을 시도합니다.
디바이스 및 RADIUS 서버 간의 RADIUS 계정 프로세스는 다음과 같이 작동합니다.
-
RADIUS 계정 서버는 특정 포트에서 UDP(User Datagram Protocol) 패킷을 수신합니다. RADIUS 계정을 위한 기본 포트는 1813입니다.
-
디바이스는 이벤트 기록을 포함하는 계정 요청 패킷을 계정 서버로 포워딩합니다. 이 요청자와 연관된 이벤트 기록에는 요청자에 대한 사용자 서비스의 시작을 나타내는 Acct-Status-Type 속성을 포함하고 있습니다. 요청자의 세션이 종료되면 계정 요청에는 사용자 서비스 종료를 나타내는 Acct-Status-Type 속성값이 포함됩니다. RADIUS 계정 서버는 이를 세션 정보 및 길이를 포함하는 계정 종료 기록으로 기록합니다.
-
RADIUS 계정 서버는 이러한 이벤트를 계정 시작 또는 계정 종료 기록으로 파일에 기록합니다. FreeRADIUS에서 파일 이름은 192.0.2.0과 같은 서버의 주소입니다.
-
계정 서버는 계정 요청을 수신했음을 확인하는 계정 응답 패킷을 디바이스로 보냅니다.
-
디바이스가 서버로부터 계정 응답 패킷을 수신 받지 않은 경우 서버가 응답을 반환할 때까지 계속 계정 요청을 보냅니다.
RADIUS 서버에서 이 프로세스를 통해 수집된 통계를 볼 수 있습니다. 이러한 통계를 보려면 통계를 수신하도록 구성된 로그 파일에 액세스하십시오.
RADIUS 시스템 계정 구성하기
RADIUS 계정을 활성화 할 때 RADIUS 클라이언트 역할을 하는 주니퍼 네트웍스 디바이스를 사용하면 소프트웨어 로그인, 구성 변경, 대화형 명령과 같은 사용자 활동에 대한 RADIUS 서버를 알릴 수 있습니다. RADIUS 계정 프레임 워크는 RFC 2866, RADIUS 계정에 설명되어 있습니다.
RADIUS 서버에서 사용자 이벤트 감사 구성하기
RADIUS 계정을 구성하기 위해 다음을 수행합니다.
다음 예는 RADIUS 계정을 위해 3개의 서버(10.5.5.5, 10.6.6.6, 10.7.7.7)를 구성합니다.
system { accounting { events [ login change-log interactive-commands ]; destination { radius { server { 10.5.5.5 { accounting-port 3333; secret $ABC123; source-address 10.1.1.1; retry 3; timeout 3; } 10.6.6.6 secret $ABC123; 10.7.7.7 secret $ABC123; } } } } }
변경 내역 표
기능 지원은 사용 중인 플랫폼과 릴리스에 따라 결정됩니다. Feature Explorer 를 사용하여 플랫폼에서 기능이 지원되는지 확인하세요.