Skip to Content
05. SecurityAAA Authentication on Cisco IOS

Cisco IOS에서 AAA 인증

학습 목차

  1. 구성 1.1. FreeRADIUS 1.2. Cisco IOS
  2. 검증
  3. 결론

많은 네트워크 장비를 가진 네트워크에서 로컬에 구성된 사용자 이름과 비밀번호는 관리상 악몽이 될 수 있습니다. 사용자 이름을 추가하거나 비밀번호를 변경할 때마다 각 장비에 하나씩 로그인해서 추가하거나 변경해야 합니다.

인증을 위해 중앙 AAA 서버를 사용하는 것이 더 좋습니다. 이 서버에 모든 사용자 이름과 비밀번호를 추가합니다. 라우터와 스위치는 인증을 위해 이 AAA 서버를 사용하도록 구성합니다.

Cisco IOS에서는 인증을 위해 AAA 서버를 정확히 어떻게 사용할지 구성할 수 있습니다. 콘솔이나 VTY 접속에 사용할 수 있을 뿐만 아니라 enable(특권) 모드와 PPP 인증 같은 다른 옵션에도 사용할 수 있습니다.

이 강의에서는 Cisco IOS 라우터에서 AAA 인증을 구성하는 방법을 보여드리겠습니다.


1. 구성

토폴로지

FreeRADIUS 소프트웨어가 설치된 RADIUS 서버를 사용하겠습니다. FreeRADIUS는 (이름이 의미하듯) 무료이며 구성하기 쉽습니다. 모든 것이 구성되면, 콘솔에 접근하고 특권 모드를 사용하려는 사용자는 RADIUS 서버에서 인증을 받습니다.

토폴로지는 다음과 같습니다.

라우터와 RADIUS 서버가 있습니다. FreeRADIUS 구성부터 시작합시다.

1.1. FreeRADIUS

FreeRADIUS는 Linux에서 실행되며 대부분의 Linux 배포판이 저장소에 가지고 있습니다. 저는 Ubuntu 서버를 사용 중이며 apt-get으로 설치할 수 있습니다.

# apt-get install freeradius freeradius-utils

설치가 완료되면, 기본 구성 파일을 일부 수정해야 합니다. 가장 먼저 새 클라이언트(우리 라우터)를 추가합니다. clients.conf 파일을 텍스트 편집기로 엽니다.

# vim /etc/freeradius/clients.conf

그리고 파일 끝에 다음과 같은 항목을 추가합니다.

client 192.168.1.1 { secret = MY_KEY nastype = cisco shortname = router }

제 클라이언트의 IP 주소는 192.168.1.1(라우터)이고 시크릿은 “MY_KEY”입니다. 나중에 라우터에 이를 구성합니다.

라우터에 접근하려는 관리자가 사용할 사용자 계정을 추가합시다. users 파일을 엽니다.

# vim /etc/freeradius/users

이 파일 끝에 다음과 같은 항목을 만듭니다.

REMOTE_ADMIN Cleartext-Password := "MY_PASSWORD" Service-Type = NAS-Prompt-User

이렇게 하면 사용자 계정 “REMOTE_ADMIN”이 비밀번호 “MY_PASSWORD”로 로그인할 수 있습니다. enable(특권) 모드용 항목도 추가합니다.

$enab15$ Cleartext-Password := "REMOTE_ENABLE" Service-Type = NAS-Prompt-User

enable 모드 접근 비밀번호는 “REMOTE_ENABLE”입니다. users 파일을 저장하고 종료합니다.

이제 변경 사항을 적용하기 위해 FreeRADIUS를 (재)시작해야 합니다.

# /etc/init.d/freeradius restart freeradius stop/waiting freeradius start/running, process 18145

FreeRADIUS는 서비스로 실행되지만, 랩에서 테스트할 때는 디버그 모드로 실행하는 것이 더 쉽습니다. 이를 통해 들어오는 인증 요청을 확인하고 문제가 발생할 때 디버그할 수 있습니다. 이를 위해 먼저 서비스를 중지합니다.

# /etc/init.d/freeradius stop freeradius stop/waiting

이제 디버그 모드로 시작할 수 있습니다.

# freeradius -X

몇 가지 메시지가 출력된 후 요청을 처리할 준비가 되었음을 보여줍니다.

Listening on authentication address * port 1812 Listening on accounting address * port 1813 Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel Listening on proxy address * port 1814 Ready to process requests.

클라이언트가 FreeRADIUS에 인증을 요청할 때마다 콘솔에 표시됩니다.

1.2. Cisco IOS

우리 라우터는 기본적으로 인증을 사용하지 않거나 로컬 인증을 사용하도록 구성되어 있습니다. 이를 변경해야 합니다. 먼저 AAA 명령을 활성화해야 합니다.

R1(config)# aaa new-model

이를 통해 일부 AAA 명령에 접근할 수 있습니다. 사용할 RADIUS 서버를 구성합시다.

R1(config)# radius server MY_RADIUS R1(config-radius-server)# address ipv4 192.168.1.200 auth-port 1812 acct-port 1813 R1(config-radius-server)# key MY_KEY

RADIUS 서버 이름은 원하는 대로 선택할 수 있습니다. 저는 “MY_RADIUS”라고 부르겠습니다. IP 주소를 구성해야 하며, 인증(과 과금) 포트를 지정하는 것이 좋습니다. RADIUS 인증과 과금의 공식 포트는 1812와 1813입니다. IANA가 이 포트를 할당하기 전에는 비공식적으로 1645와 1646 포트가 사용되었으며, 많은 RADIUS 서버/클라이언트가 여전히 이 포트를 사용합니다.

참고: Cisco IOS의 이전 버전은 새 RADIUS 서버를 추가할 때 radius-server 명령을 사용합니다.

이제 라우터가 인증에 우리 RADIUS 서버를 사용하도록 구성할 수 있습니다. aaa authentication 명령을 확인해 봅시다.

R1(config)# aaa authentication ? arap Set authentication lists for arap. attempts Set the maximum number of authentication attempts banner Message to use when starting login/authentication. dot1x Set authentication lists for IEEE 802.1x. enable Set authentication list for enable. eou Set authentication lists for EAPoUDP fail-message Message to use for failed login/authentication. login Set authentication lists for logins. password-prompt Text to use when prompting for a password ppp Set authentication lists for ppp. sgbp Set authentication lists for sgbp. suppress Do not send access request for a specific type of user. username-prompt Text to use when prompting for a username

RADIUS 서버에 사용할 수 있는 것이 꽤 많습니다. 우리는 loginenable을 사용할 것입니다. dot1x는 스위치에서 포트별 인증에 인기 있는 또 다른 선택지입니다(다른 강의에서 다룬 내용입니다).

login 옵션을 살펴봅시다.

R1(config)# aaa authentication login ? WORD Named authentication list (max 31 characters, longer will be rejected). default The default authentication list.

여기서 인증 리스트를 선택해야 합니다. Cisco IOS는 콘솔, VTY 라인(Telnet 또는 SSH), AUX 포트에 default 리스트를 사용합니다. 이 모든 메서드에 AAA 인증을 사용하려면 default 리스트를 사용할 수 있습니다. 콘솔에만 AAA 인증을 사용하고 VTY와 AUX 포트에는 사용하지 않으려면 새 인증 리스트를 사용하는 것이 더 좋을 수 있습니다.

저는 콘솔과 AUX 포트에 AAA 인증이 사용되도록 default 인증 리스트를 사용하겠습니다. VTY 라인을 제외하는 방법도 보여드리겠습니다.

default 리스트 옵션을 살펴봅시다.

R1(config)# aaa authentication login default ? cache Use Cached-group enable Use enable password for authentication. group Use Server-group krb5 Use Kerberos 5 authentication. krb5-telnet Allow logins only if already authenticated via Kerberos V Telnet. line Use line password for authentication. local Use local username authentication. local-case Use case-sensitive local username authentication. none NO authentication. passwd-expiry enable the login list to provide password aging support

먼저 사용할 서버를 구성합니다.

R1(config)# aaa authentication login default group ? WORD Server-group name ldap Use list of all LDAP hosts. radius Use list of all Radius hosts. tacacs+ Use list of all Tacacs+ hosts.

RADIUS 서버가 하나만 구성되어 있으므로 모든 RADIUS 호스트를 선택합시다. RADIUS 서버가 많다면 사용하려는 RADIUS 서버를 포함하는 서버 그룹을 만들 수도 있습니다. 계속해 봅시다.

R1(config)# aaa authentication login default group radius ? cache Use Cached-group enable Use enable password for authentication. group Use Server-group krb5 Use Kerberos 5 authentication. line Use line password for authentication. local Use local username authentication. local-case Use case-sensitive local username authentication. none NO authentication. <cr>
추가 옵션

RADIUS 서버 외에 폴백 옵션을 선택할 수 있습니다. RADIUS 서버에 도달할 수 없는 경우 모든 인증을 실패시킬지, 아니면 라우터의 일부 로컬 사용자 이름과 비밀번호로 폴백할지 결정할 수 있습니다. 로컬 폴백 인증을 추가합시다.


본 강의는 NetworkLessons.com의 미리보기 버전입니다. 전체 내용은 멤버십 가입 후 확인 가능합니다.


포럼 답글

azmuddincisco

안녕 Laz,

시간이 되실 때 아래 명령어들의 기능을 설명해 주실 수 있나요? 미리 감사드립니다.

aaa accounting exec default start-stop group tacacs+ aaa accounting commands 1 default stop-only group tacacs+ aaa accounting commands 15 default stop-only group tacacs+ aaa accounting connection default start-stop group tacacs+ aaa accounting system default start-stop group tacacs+

감사합니다, Az

lagapidis

안녕 Azm!

이 모든 명령은 장치에 연결하는 사용자와 장치에서 발생하는 이벤트의 과금(accounting)에 관련된 것입니다. 구체적으로, 이 맥락에서 과금 관리는 네트워크 리소스의 개별 및 그룹 사용량을 추적할 수 있는 메커니즘입니다. 위의 다양한 명령은 이 정보가 무엇을, 어떻게, 언제 기록될지 구성합니다. 과금 정보는 장치에 로컬로 저장될 수도 있지만, 더 일반적으로는 AAA(Authentication, Authorization, Accounting) 서버로 전송됩니다.

aaa에 대한 자세한 정보는…

… 포럼에서 계속 읽기

azmuddincisco

안녕 Laz,

답변 감사합니다. 그러나 여전히 저에게는 약간 모호합니다. 실생활 예제로 다시 한 번 설명해 주실 수 있나요?

lagapidis

안녕 Azm,

현장에 라우터가 하나 있고 모든 명령줄 활동을 추적하고 싶다고 가정해 봅시다. 구체적으로, executive 모드 명령줄에 입력되는 모든 명령과 그것이 호출하는 프로세스를 모니터링하고 싶습니다. 현장에 TACACS+ 서버가 있으므로 이를 과금 서버로 사용하기로 결정합니다(RADIUS도 사용 가능). 10.10.10.31과 10.10.10.32에 두 개의 TACACS+ 서버가 있다고 가정합시다.

가장 먼저 할 일은 다음 명령을 사용해 my_server_group이라는 AAA 그룹을 만드는 것입니다.

aaa group server tacacs+ my_server_gro

… 포럼에서 계속 읽기

78개의 추가 답글이 있습니다. 커뮤니티 포럼을 방문해 질문하거나 토론에 참여하세요.


출처: networklessons.com - AAA Authentication on Cisco IOS

태그: 802.1X, AAA, Security