이 문서에서는 UNIX에서 실행되는 TACACS+를 사용한 인증을 위해 Cisco 라우터를 구성하는 방법에 대해 설명합니다. TACACS+는 Windows용 Cisco Secure ACS 또는 Cisco Secure ACS UNIX에 대해 상용 가능한 만큼의 기능을 제공하지 않습니다.
이전에 Cisco Systems에서 제공한 TACACS+ 소프트웨어는 중단되었으며 더 이상 Cisco Systems에서 지원되지 않습니다.
오늘날, 당신은 당신이 좋아하는 인터넷 검색 엔진에서 "TACACS+ 프리웨어"를 검색 할 때 사용 가능한 많은 TACACS+ 프리웨어 버전을 찾을 수 있습니다. Cisco는 특별히 TACACS+ 프리웨어 구현을 권장하지 않습니다.
Cisco Secure ACS(Access Control Server)는 전 세계의 정규 Cisco 판매 및 유통 채널을 통해 구매할 수 있습니다. Cisco Secure ACS for Windows에는 Microsoft Windows 워크스테이션에 독립적으로 설치하는 데 필요한 모든 구성 요소가 포함되어 있습니다. Cisco Secure ACS Solution Engine은 사전 설치된 Cisco Secure ACS 소프트웨어 라이센스와 함께 제공됩니다. Cisco 주문 홈 페이지(등록된 고객만 해당)를 방문하여 주문합니다.
참고: Windows용 Cisco Secure ACS 90일 평가판을 구하려면 연결된 서비스 계약이 있는 CCO 계정이 필요합니다.
이 문서의 라우터 컨피그레이션은 Cisco IOS® Software Release 11.3.3을 실행하는 라우터에서 개발되었습니다. Cisco IOS Software Release 12.0.5.T 이상에서는 tacacs+ 대신 그룹 tacacs+를 사용하므로, aaa authentication login default tacacs+ enable과 같은 명령문은 aaa authentication login default group tacacs+ enable로 나타납니다.
라우터 명령에 대한 자세한 내용은 Cisco IOS Software 설명서를 참조하십시오.
이 문서에 대한 특정 요건이 없습니다.
이 문서의 정보는 Cisco IOS Software 릴리스 11.3.3 및 Cisco IOS Software 릴리스 12.0.5.T 이상을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
다음 단계를 완료하십시오.
UNIX 서버에서 TACACS+(TAC+) 코드를 컴파일했는지 확인합니다.
여기서 서버 컨피그레이션에서는 Cisco TAC+ 서버 코드를 사용한다고 가정합니다. 서버 코드가 Cisco 서버 코드인지 여부에 관계없이 라우터 컨피그레이션이 작동해야 합니다. TAC+는 루트로 실행해야 합니다. 필요한 경우 루트할 수 있습니다.
이 문서 끝에 있는 test_file을 복사하여 TAC+ 서버에 놓고 이름을 test_file로 지정합니다.
tac_plus_executable 데몬이 test_file로 시작하는지 확인합니다. 이 명령에서 -P 옵션은 컴파일 오류를 확인하지만 데몬을 시작하지 않습니다.
tac_plus_executable -P -C test_file
test_file의 내용이 창 아래로 스크롤될 수 있지만 not find file, cleartext expected—found cleartext 또는 unexpected }와 같은 메시지는 표시되지 않아야 합니다. 오류가 있는 경우 test_file 경로를 확인하고 입력을 다시 확인한 다음 다시 테스트한 다음 계속하십시오.
라우터에서 TAC+ 구성을 시작합니다.
enable 모드로 들어가서 명령어 집합 전에 configure terminal을 입력합니다. 이 명령 구문은 tac_plus_executable이 실행 중이 아닌 경우 처음에 라우터에서 잠기지 않도록 합니다.
!--- Turn on TAC+. aaa new-model enable password whatever !--- These are lists of authentication methods. !--- "linmethod", "vtymethod", "conmethod", and !--- so on are names of lists, and the methods !--- listed on the same lines are the methods !--- in the order to be tried. As used here, if !--- authentication fails due to the !--- tac_plus_executable not being started, the !--- enable password is accepted because !--- it is in each list. ! aaa authentication login linmethod tacacs+ enable aaa authentication login vtymethod tacacs+ enable aaa authentication login conmethod tacacs+ enable ! !--- Point the router to the server, where #.#.#.# !--- is the server IP address. ! tacacs-server host #.#.#.# line con 0 password whatever !--- No time-out to prevent being locked out !--- during debugging. exec-timeout 0 0 login authentication conmethod line 1 8 login authentication linmethod modem InOut transport input all rxspeed 38400 txspeed 38400 flowcontrol hardware line vty 0 4 password whatever !--- No time-out to prevent being locked out !--- during debugging. exec-timeout 0 0 login authentication vtymethod
계속하기 전에 텔넷과 콘솔 포트를 통해 라우터에 계속 액세스할 수 있는지 테스트합니다. tac_plus_executable이 실행되고 있지 않으므로 enable 비밀번호를 수락해야 합니다.
참고: 콘솔 포트 세션을 활성 상태로 유지하고 활성화 모드를 유지합니다. 이 세션은 시간 초과해서는 안 됩니다. 이 시점에서는 라우터에 대한 액세스가 제한되며, 사용자를 잠그지 않고 구성을 변경할 수 있어야 합니다.
라우터에서 서버-라우터 상호 작용을 보려면 다음 명령을 실행합니다.
terminal monitor debug aaa authentication
루트로 다음 서버에서 TAC+를 시작합니다.
tac_plus_executable -C test_file -d 16
TAC+가 시작되었는지 확인:
ps -aux | grep tac_plus_executable
또는
ps -ef | grep tac_plus_executable
TAC+가 시작되지 않으면 대개 test_file의 구문에 문제가 있습니다. 1단계로 돌아가 이 문제를 해결합니다.
서버에서 라우터와 서버 간의 상호 작용을 보려면 tail -f /var/tmp/tac_plus.log을 입력합니다.
참고: 5단계의 -d 16 옵션은 모든 트랜잭션의 출력을 /var/tmp/tac_plus.log디렉토리로 전송합니다.
이제 텔넷(VTY) 사용자는 TAC+를 통해 인증해야 합니다.
라우터와 서버에서 디버그가 실행되면(4단계와 7단계) 텔넷을 통해 네트워크의 다른 부분에서 라우터로 연결합니다.
라우터는 다음과 같은 사용자 이름 및 비밀번호 프롬프트를 생성합니다.
'authenuser' (username from test_file) 'admin' (password from test_file)
사용자 authenuser가 그룹 admin에 있으며, 비밀번호 admin이 있습니다.
TAC+ 상호 작용을 볼 수 있는 서버 및 라우터를 확인합니다. 전송 위치, 응답, 요청 등을 확인합니다. 계속하기 전에 모든 문제를 해결하십시오.
또한 사용자가 활성화 모드로 들어가기 위해 TAC+를 통해 인증하도록 하려면 콘솔 포트 세션이 여전히 활성 상태인지 확인하고 라우터에 이 명령을 추가합니다.
!--- For enable mode, list 'default' looks to TAC+ !--- then enable password if TAC+ does not run. aaa authentication enable default tacacs+ enable
이제 사용자는 TAC+를 통해 활성화해야 합니다.
라우터와 서버에서 디버그가 실행되면(4단계와 7단계) 텔넷을 통해 네트워크의 다른 부분에서 라우터로 연결합니다. 라우터는 다음과 같은 사용자 이름 및 비밀번호 프롬프트를 생성합니다.
'authenuser' (username from test_file) 'admin' (password from test_file)
활성화 모드를 시작하면 라우터가 비밀번호를 요청하며, 이에 대한 회신은 다음과 같습니다.
'cisco' ($enable$ password from test_file)
TAC+ 상호 작용을 확인할 서버 및 라우터를 확인합니다. 전송 위치, 응답, 요청 등이 표시됩니다. 계속하기 전에 모든 문제를 해결하십시오.
TAC+가 다운된 경우 사용자가 라우터에 계속 액세스할 수 있도록 콘솔 포트에 연결된 상태에서 서버의 TAC+ 프로세스를 다운합니다.
ps -aux | grep tac_plus_executable
또는
ps -ef | grep tac_plus_executable) kill -9 pid_of_tac_plus_executable
텔넷과 이전 단계의 enable을 반복합니다. 그러면 라우터가 TAC+ 프로세스가 응답하지 않음을 인식하고 사용자가 기본 비밀번호로 로그인 및 활성화할 수 있습니다.
TAC+를 통해 콘솔 포트 사용자의 인증을 확인합니다. 이를 위해 TAC+ 서버를 다시 가동하고(5단계 및 6단계) 라우터에 대한 텔넷 세션을 설정합니다(TAC+를 통해 인증해야 함).
콘솔 포트를 통해 라우터에 로그인할 수 있을 때까지 활성화 모드에서 텔넷을 통해 라우터에 연결된 상태를 유지합니다.
콘솔 포트를 통해 라우터에 대한 원래 연결을 로그아웃한 다음 콘솔 포트에 다시 연결합니다. 사용자 ID와 비밀번호를 사용하여 로그인하고 활성화하는 콘솔 포트 인증(10단계 참조)이 이제 TAC+를 통해 이루어져야 합니다.
텔넷 세션 또는 콘솔 포트를 통해 연결된 채로 라우터와 서버에서 디버그(4단계 및 7단계)가 진행되는 동안 회선 1에 모뎀 연결을 설정합니다.
이제 라인 사용자는 TAC+를 통해 로그인하고 활성화해야 합니다.
라우터는 다음과 같은 사용자 이름 및 비밀번호 프롬프트를 생성합니다.
'authenuser' (username from test_file) 'admin' (password from test_file)
활성화 모드를 시작하면 라우터가 비밀번호를 요청합니다.
Reply:
'cisco' ($enable$ password from test_file)
TAC+ 상호 작용이 표시되는 서버 및 라우터를 확인합니다. 전송 위치, 응답, 요청 등이 표시됩니다. 계속하기 전에 모든 문제를 해결하십시오.
이제 사용자는 TAC+를 통해 활성화해야 합니다.
권한 부여를 추가하는 것은 선택 사항입니다.
기본적으로 라우터에는 세 가지 명령 레벨이 있습니다.
사용 안 함, 사용, 종료, 도움말 및 로그아웃을 포함하는 권한 수준 0
권한 수준 1 - 텔넷의 일반 수준 - 프롬프트에 router>
권한 수준 15 - enable 수준 - 프롬프트에 router#
사용 가능한 명령은 IOS 기능 집합, Cisco IOS 버전, 라우터 모델 등에 따라 달라지므로 레벨 1과 15의 모든 명령에 대한 포괄적인 목록이 없습니다. 예를 들어 show ipx route는 IP 전용 기능 집합에 존재하지 않으며, show ip nat trans는 Cisco IOS Software Release 10.2.x에 존재하지 않으며, NAT가 당시 도입되지 않았기 때문이며 show environment는 전원 공급 장치 및 온도 모니터링이 없는 라우터 모델에 존재하지 않습니다. 특정 레벨의 특정 라우터에서 사용 가능한 명령은 를 입력하면 찾을 수 있습니다. 해당 권한 레벨에 있을 때 라우터의 프롬프트에 표시됩니다.
콘솔 포트 권한 부여는 Cisco 버그 ID CSCdi82030(등록된 고객만 해당)이 구현되기 전까지 기능으로 추가되지 않았습니다. 라우터에서 실수로 잠길 가능성을 줄이기 위해 콘솔 포트 권한 부여는 기본적으로 꺼져 있습니다. 사용자가 콘솔을 통해 라우터에 물리적으로 액세스할 수 있는 경우 콘솔 포트 권한 부여는 그다지 효과적이지 않습니다. 그러나 다음 명령으로 Cisco 버그 ID CSCdi82030(등록된 고객만 해당)이 구현된 이미지의 con 0 행에서 콘솔 포트 권한 부여를 켤 수 있습니다.
authorization exec default|WORD
모든 레벨에서 또는 일부 레벨에서 TAC+를 통해 명령을 인증하도록 라우터를 구성할 수 있습니다.
이 라우터 컨피그레이션을 사용하면 모든 사용자가 서버에서 명령별 권한 부여를 설정할 수 있습니다. 여기서는 TAC+를 통해 모든 명령을 인증하지만, 서버가 다운된 경우에는 권한 부여가 필요하지 않습니다.
aaa authorization commands 1 default tacacs+ none aaa authorization commands 15 default tacacs+ none
TAC+ 서버가 실행되는 동안 사용자 ID authenuser를 사용하여 라우터에 텔넷합니다.
authenuser는 test_file에서 기본 서비스 = permit을 사용하므로 이 사용자는 모든 기능을 수행할 수 있어야 합니다.
라우터에 있는 동안 enable 모드를 입력하고 권한 부여 디버깅을 켭니다.
terminal monitor debug aaa authorization
사용자 ID authoruser 및 비밀번호 운영자를 사용하여 라우터에 텔넷 연결합니다.
이 사용자는 traceroute와 logout 두 가지 show 명령을 수행할 수 없습니다(test_file 참조).
TAC+ 상호 작용(전송 위치, 응답, 요청 등)을 확인할 서버와 라우터를 확인합니다. 계속하기 전에 모든 문제를 해결하십시오.
사용자를 autocommand로 구성하려면 test_file에서 주석 처리된 사용자 임시 권한을 제거하고 #.#.#.# 대신 올바른 IP 주소 대상을 배치합니다.
TAC+ 서버를 중지하고 시작합니다.
라우터의 경우:
aaa authorization exec default tacacs+
사용자 ID가 일시적이며 비밀번호가 일시적일 때 라우터에 텔넷합니다. telnet #.#.#.#이 실행되고 사용자 임시 항목이 다른 위치로 전송됩니다.
계정 추가는 선택 사항입니다.
계정 파일에 대한 참조는 test_file - 계정 파일 = /var/log/tac.log에 있습니다. 그러나 라우터가 11.0 이상의 Cisco IOS 소프트웨어 버전을 실행하는 경우, 라우터에 구성되지 않는 한 어카운팅이 수행되지 않습니다.
라우터에서 어카운팅을 활성화합니다.
aaa accounting exec default start-stop tacacs+ aaa accounting connection default start-stop tacacs+ aaa accounting network default start-stop tacacs+ aaa accounting system default start-stop tacacs+
참고: 일부 버전에서는 AAA 어카운팅이 명령별 어카운팅을 수행하지 않습니다. 해결 방법은 명령별 권한 부여를 사용하고 어카운팅 파일에 발생을 로깅하는 것입니다. (Cisco 버그 ID CSCdi44140 참조.) 이 고정된 이미지가 사용되는 경우 [1997년 9월 24일 기준 Cisco IOS Software 릴리스 11.2(1.3)F, 11.2(1.2), 11.1(6.3), 11.1(6.3)AA01, 11.1(6.3)CA] 명령 어카운팅을 활성화할 수도 있습니다.
TAC+가 서버에서 실행되는 동안 서버에서 다음 명령을 입력하여 어카운팅 파일에 들어가는 항목을 확인합니다.
tail -f /var/log/tac.log
그런 다음 라우터에 로그인하거나 로그아웃하고, 라우터에서 텔넷으로 로그아웃하는 등의 작업을 수행합니다. 필요한 경우 라우터에 다음을 입력합니다.
terminal monitor debug aaa accounting
- - - - - - - (cut here) - - - - - - - # Set up accounting file if enabling accounting on NAS accounting file = /var/log/tac.log # Enable password setup for everyone: user = $enable$ { login = cleartext "cisco" } # Group listings must be first: group = admin { # Users in group 'admin' have cleartext password login = cleartext "admin" expires = "Dec 31 1999" } group = operators { # Users in group 'operators' have cleartext password login = cleartext "operator" expires = "Dec 31 1999" } group = transients { # Users in group 'transient' have cleartext password login = cleartext "transient" expires = "Dec 31 1999" } # This user is a member of group 'admin' & uses that group's password to log in. # The $enable$ password is used to enter enable mode. The user can perform all commands. user = authenuser { default service = permit member = admin } # This user is limitted in allowed commands when aaa authorization is enabled: user = telnet { login = cleartext "telnet" cmd = telnet { permit .* } cmd = logout { permit .* } } # user = transient { # member = transients # service = exec { # When transient logs on to the NAS, he's immediately # zipped to another site # autocmd = "telnet #.#.#.#" # } # } # This user is a member of group 'operators' # & uses that group's password to log in user = authenuser { member = operators # Since this user does not have 'default service = permit' when command # authorization through TACACS+ is on at the router, this user's commands # are limited to: cmd = show { permit ver permit ip } cmd = traceroute { permit .* } cmd = logout { permit .* } } - - - - (end cut here) - - - -
참고: 이 오류 메시지는 TACACS 서버에 연결할 수 없는 경우 생성됩니다. %AAAA-3-DROPACCTSNDFAIL: 어카운팅 레코드가 삭제되었습니다. 서버에 보내지 못했습니다. 시스템 시작. TACACS+ 서버가 작동하는지 확인합니다.
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
10-Dec-2001 |
최초 릴리스 |