542. TACACS+ (Terminal Access Controller Access Control System Plus) - Cisco TCP 기반 AAA

핵심 인사이트 (3줄 요약)

  1. 본질: TACACS+는 시스코(Cisco)가 독자 개발하여 범용 표준화된 프로토콜로, 신뢰성 있는 TCP (Transmission Control Protocol) 49번 포트를 기반으로 패킷 본문(Payload) 전체를 암호화하여 통신하는 관리자 전용 접근 제어(AAA) 솔루션이다.
  2. 가치: RADIUS가 단순히 네트워크에 접속할 권한(문 열기)을 부여한다면, TACACS+는 네트워크 장비(라우터/스위치)에 접속한 엔지니어가 타이핑하는 **명령어 한 줄 한 줄(Command-level)**에 대해 인가(Authorization) 여부를 심사하여, 내부자 실수나 악의적 파괴 행위를 원천 차단한다.
  3. 융합: 인증(Authentication), 인가(Authorization), 과금(Accounting)의 세 가지 프로세스가 아키텍처 상 완벽히 분리(Decoupling)되어 있어, 인증은 사내 Active Directory(AD)를 쓰고, 인가는 TACACS+ 서버 정책을 쓰는 식의 융합적 하이브리드 설계가 가능해 거대 데이터센터 인프라 통제에 필수적이다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념: TACACS+는 기존의 구형 TACACS와 XTACACS를 대체하기 위해 1990년대 Cisco에서 백지상태부터 새로 설계한 프로토콜이다. 네트워크 접근을 시도하는 주체에 대해 인증(Authentication), 각 명령어 실행 권한의 부여(Authorization), 그리고 누가 언제 무슨 명령을 쳤는지의 기록(Accounting)을 철저하게 분할하여 관리한다.
  • 필요성: 데이터센터에는 수백 대의 네트워크 장비가 있다. 입사 1년 차 주니어 네트워크 엔지니어와 10년 차 시니어 아키텍트가 같은 라우터에 SSH로 붙어 동일하게 최고 관리자 권한(enable 모드)을 획득한다면, 주니어의 명령어 타이핑 실수 하나가 전국의 서비스망을 마비시킬 수 있다. RADIUS는 "접속 자체"만을 허용/차단하므로, 한 번 콘솔에 들어온 후의 행위를 통제할 수 없다.
  • 등장 배경: ① RADIUS의 패킷 평문 노출(ID 등)과 뭉뚱그려진 인가 기능의 한계 노출 → ② 네트워크 엔지니어의 권한 오남용(명령어 실수)에 의한 대형 장애 빈발 → ③ 암호화 통신 위에서 명령어 단위(Command-by-Command)의 권한 통제를 수행하는 TACACS+ 아키텍처의 도입.
┌─────────────────────────────────────────────────────────────┐
│             TACACS+의 필요성: 명령어 단위 권한 제어 시각화         │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   [주니어 엔지니어 접속]                                         │
│   Router# show ip interface brief   ──(TACACS+ 서버 질의)──▶ 승인(허용)  │
│   Router# configure terminal        ──(TACACS+ 서버 질의)──▶ 차단(거부)  │
│   (결과: 상태 조회만 가능, 설정 변경 불가능)                        │
│                                                             │
│   [시니어 엔지니어 접속]                                         │
│   Router# configure terminal        ──(TACACS+ 서버 질의)──▶ 승인(허용)  │
│   Router(config)# reload            ──(TACACS+ 서버 질의)──▶ 승인(경고 후 허용)│
│   (결과: 모든 장비 설정 및 재부팅 제어 가능)                       │
│                                                             │
│   => 장비 로컬에 권한 등급을 일일이 만들지 않아도, 중앙에서 통제 가능!   │
└─────────────────────────────────────────────────────────────┘

[다이어그램 해설] 이 그림은 TACACS+가 제공하는 가장 강력한 기능인 '명령어 단위 인가(Command Authorization)'를 보여준다. 장비(라우터)에 로그인했다 하더라도, 엔지니어가 키보드로 명령어를 치고 엔터를 누르는 순간, 라우터는 그 명령어를 실행하기 전에 TACACS+ 서버로 패킷을 보내어 "이 사용자가 이 명령어 쳐도 됩니까?"라고 묻는다. 서버에 정의된 정책 프로파일에 따라 show 같은 조회 명령어는 통과시키고, 망에 타격을 줄 수 있는 clear, reload, configure 명령어는 직급에 따라 차단함으로써 인간의 치명적 휴먼 에러(Human Error)와 내부자 위협을 완벽히 방어한다.

  • 📢 섹션 요약 비유: 회사 정문을 통과할 때만 신분증을 검사하는 것(RADIUS)이 아니라, 회사 내부에 들어온 뒤 '복사기 쓰기', '서고 열기', '금고 열기' 등 어떤 행동을 할 때마다 매번 보안팀장(TACACS+)에게 무전으로 결재를 받아야만 행동할 수 있는 초정밀 감시 체계와 같습니다.

Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

구성 요소

요소명역할내부 동작프로토콜/특징비유
TACACS+ Client (NAS)통제 대상 장비엔지니어가 붙은 라우터, 스위치, 방화벽 등으로, 사용자 명령어를 가로채어 서버로 넘김장비 자체의 IOS/OS현장에 있는 부하 직원
TACACS+ Server통제 정책 엔진인증/인가/과금 세션을 별도의 TCP 프로세스로 처리하여 결과값 반환 (Cisco ISE 등)TCP 49 포트결정권을 쥔 본사 심사관
전체 암호화 (Full Payload Encryption)스니핑 방지RADIUS가 패스워드만 가리는 것과 달리, ID, 명령어, 과금 정보 등 패킷 껍데기를 제외한 본문 전체 암호화MD5 Hashing + Secret Key007 작전의 완전 밀봉 가방
인증 (Authentication)신원 확인START, CONTINUE, REPLY의 3단계 대화를 통해 다양한 형태(토큰, 생체, 패스워드) 검증Login 세션 독립성입구 여권 검사
인가 (Authorization)권한 심사사용자가 실행하려는 명령어나 획득하려는 특권 레벨(Privilege Level) 허용 여부 심사Request / Response 쌍무기 사용 허가증 발급

TACACS+ 통신 흐름 (전체 암호화 및 TCP 분리 모델)

TACACS+는 UDP 통신 실패에 따른 재전송(Retransmission)을 클라이언트가 신경 써야 했던 RADIUS와 달리, OS 레벨에서 완벽한 신뢰성을 보장하는 TCP(49) 위에서 동작한다. 또한, 3개의 A(Auth, Authz, Acct)가 각각 별도의 세션으로 열리고 닫힌다.

┌───────────────────────────────────────────────────────────────┐
│               TACACS+ 통신 아키텍처 (A-A-A 분리 및 암호화)        │
├───────────────────────────────────────────────────────────────┤
│                                                               │
│   [엔지니어]             [Router (Client)]      [TACACS+ 서버] │
│      │                        │                       │       │
│      │ 1. SSH 접속 시도         │                       │       │
│      ├───────────────────────▶│ 2. TCP 49 연결 확립     │       │
│      │                        │◀═════════════════════▶│       │
│      │                        │                       │       │
│   ■ Authentication (인증)      │ [Payload 전체 암호화 구간]│     │
│      │                        │ 3. Auth START         │       │
│      │                        ├──────────────────────▶│       │
│      │                        │ 4. Auth REPLY (성공)    │       │
│      │                        │◀──────────────────────┤       │
│      │ 5. 터미널 프롬프트 제공    │                       │       │
│      │◀───────────────────────┤                       │       │
│                                                               │
│   ■ Authorization (인가)      │                       │       │
│      │ 6. 명령어 입력 'reload'  │                       │       │
│      ├───────────────────────▶│ 7. Authz REQUEST      │       │
│      │                        ├──────────────────────▶│       │
│      │                        │ 8. Authz RESPONSE     │       │
│      │                        │    (권한 부족으로 거부)   │       │
│      │                        │◀──────────────────────┤       │
│      │ 9. "Command Rejected"  │                       │       │
│      │◀───────────────────────┤                       │       │
└───────────────────────────────────────────────────────────────┘

[다이어그램 해설] 이 흐름도는 인프라 관리 보안의 교과서다. 사용자는 reload 명령을 장비 내부 로컬에서 실행한다고 생각하지만, 실제로는 백그라운드에서 스위치가 TACACS+ 서버와 완벽히 암호화된 TCP 터널을 뚫고 통신을 주고받는다. 만약 해커가 네트워크 중간에 Wireshark를 켜놓아도, 이 엔지니어가 무슨 ID로 로그인했고 어떤 명령어를 쳤는지 본문(Payload)이 암호화되어 있어 전혀 알 수 없다(RADIUS는 ID와 과금 내용이 평문 노출됨). 또한, 인증 세션이 끝나고 인가 세션이 독립적으로 일어난다는 점에서 아키텍처의 유연성이 돋보인다.

  • 📢 섹션 요약 비유: 택배(데이터)를 보낼 때, 상자 겉면에 내용물과 보내는 사람 이름을 뻔히 적어두는 일반 택배(RADIUS)와 달리, 튼튼한 금고통(TCP)에 넣고 내용물과 송장 전체를 검은 천으로 완전히 덮어(전체 암호화) 배달하는 특급 보안 배송과 같습니다.

Ⅲ. 융합 비교 및 다각도 분석

RADIUS vs TACACS+ 심층 아키텍처 비교표 (기술사 단골 이슈)

이 두 프로토콜은 이름만 'AAA'일 뿐 설계 철학과 타겟 층이 완전히 반대다.

비교 기준RADIUS (IETF 표준)TACACS+ (Cisco 표준 → 범용)
전송 계층 및 포트UDP 1812, 1813 (빠름, 신뢰성 낮음)TCP 49 (오버헤드 큼, 신뢰성 완벽함)
보안성 (Payload)패스워드 필드만 부분 암호화 (ID 스니핑 가능)패킷 본문(Payload) 전체 완전 암호화
AAA 설계 구조인증과 인가가 결합 (빠른 접근 처리에 유리)인증, 인가, 과금이 개별 서비스로 분리 (세밀한 제어 유리)
명령어 레벨 인가불가능 (단순 VLAN/IP 등 네트워크 속성 할당만)강력히 지원 (IOS, NX-OS 등의 개별 커맨드 제어)
프로토콜 적합처ISP 다이얼업, 무선랜 802.1X, 모바일 VPN (일반 사용자용)데이터센터 라우터/스위치/방화벽 관리자 콘솔 (인프라 관리자용)
┌───────────────────────────────────────────────────────────────┐
│               AAA 아키텍처의 분리(Decoupling) 효과 시각화          │
├───────────────────────────────────────────────────────────────┤
│                                                               │
│   [TACACS+의 유연한 아키텍처 설계]                                │
│                                                               │
│   [Router / Switch]                                           │
│          │                                                    │
│          ├─ (Authentication 요청) ──▶ [Active Directory 서버]  │
│          │                               (윈도우 패스워드 검증)     │
│          │                                                    │
│          ├─ (Authorization 요청)  ──▶ [Cisco ISE / ACS 서버]   │
│          │                               (네트워크 정책 검증)      │
│          │                                                    │
│          └─ (Accounting 로그 전송) ──▶ [SIEM 통합 로그 서버]     │
│                                           (감사 증적 기록)         │
│                                                               │
│   => 3가지 기능이 물리적으로 분리되어 있어 이기종 융합 설계가 가능함!      │
└───────────────────────────────────────────────────────────────┘

[다이어그램 해설] RADIUS는 햄버거 세트 메뉴처럼 인증과 인가가 붙어있어 메뉴를 쪼개기 어렵다. 반면 TACACS+는 단품 조합이 가능한 모듈형 아키텍처다. 기업의 보안 아키텍트는 "로그인 인증은 사내 윈도우 AD망(LDAP)으로 하고, 권한 심사는 네트워크 보안팀의 전용 정책 서버(Cisco ISE)로 하며, 접속 이력은 전사 로그 수집기(Splunk)로 보내라"는 식의 고도화된 하이브리드 인프라 연동을 TACACS+ 하나로 깔끔하게 설계할 수 있다.

  • 📢 섹션 요약 비유: RADIUS는 신분증 검사와 구역 티켓 발급을 입구에서 한 번에 해치우는 놀이공원 매표소라면, TACACS+는 신분증 검사는 정문 경비가, 각 방의 출입 허가는 보안팀이, 출입 기록은 감사팀이 따로따로 맡아서 철저히 관리하는 대통령 집무실과 같습니다.

Ⅳ. 실무 적용 및 기술사적 판단

실무 시나리오: 금융권 데이터센터의 특권 권한 관리 (Privileged Access Management)

  1. 상황: 대형 은행에서 네트워크 관리자 외주 용역 직원이 라우터에 SSH로 붙어 debug ip packet (모든 트래픽을 화면에 뿌려 장비 CPU를 100%로 뻗게 만드는 치명적 명령어)을 실수로 실행하여 10분간 뱅킹망이 마비되었다.
  2. 원인: 방화벽과 VPN은 뚫고 들어오기 어렵게 해 놓았으나, 일단 장비 내부에 로컬 계정(admin)으로 로그인하면 누구나 최고 권한(Privilege 15)을 얻을 수 있는 통제 불능 상태였다.
  3. 의사결정 및 TACACS+ 조치:
    • 로컬 계정 생성을 전면 금지하고, 모든 네트워크 장비의 접근 제어를 중앙 TACACS+ 서버로 바라보게 한다 (aaa new-model).
    • 용역 직원의 AD 계정 그룹에 대해 TACACS+ Command Authorization Profile을 생성한다.
    • show, ping, traceroute 명령어만 정규식(Regex)으로 허용하고, config, debug, clear 등의 상태 변경 명령어는 원천적으로 차단(Deny)한다.
    • 직원이 키보드로 입력한 모든 오타와 반려된 명령어 내역은 Accounting 서버에 1초 단위로 저장되어, 추후 보안 감사(Compliance) 증적 자료로 활용된다.

도입 체크리스트 및 안티패턴

  • Fallback (백도어) 설정의 중요성: 만약 TACACS+ 서버 자체가 죽거나 스위치와 TACACS+ 서버 간의 네트워크 선이 단절되면 아무도 장비에 로그인할 수 없는 '락아웃(Lockout)' 상태에 빠진다. 장비 설정 시 반드시 aaa authentication login default group tacacs+ local 처럼 중앙 서버 응답이 없을 때만 로컬 계정으로 로그인할 수 있는 최후의 보루(Fallback) 정책을 삽입해야 한다.

  • 안티패턴: 전사 직원 수천 명이 VPN에 붙을 때 TACACS+를 사용하는 것. TACACS+는 매 명령어마다 서버와 TCP 통신을 주고받으므로 트래픽과 세션 오버헤드가 크다. "일반 직원 네트워크 접속 = RADIUS", "IT 엔지니어 인프라 장비 접속 = TACACS+"라는 설계 공식(Rule of Thumb)을 어기면 정책 서버의 CPU가 폭발한다.

  • 📢 섹션 요약 비유: TACACS+가 없는 데이터센터는 직원 아무에게나 만능 열쇠를 쥐여주는 것이고, 도입된 곳은 인턴에게는 유리창 너머로 구경만 할 수 있는 카드를, 팀장에게는 문을 열 수 있는 카드를 정밀하게 나누어 주는 시스템입니다. 그리고 열쇠 서버가 고장 날 때를 대비해 비상용 물리 열쇠(로컬 Fallback) 하나는 금고에 숨겨두는 것이 엔지니어의 상식입니다.


Ⅴ. 기대효과 및 결론

정량/정성 기대효과

구분로컬 계정 기반 관리TACACS+ 중앙 기반 통제개선 효과
정량 (장애 방지)휴먼 에러에 의한 네트워크 마비 연 3회 발생치명적 명령어 차단으로 오조작 발생 0건관리자 실수에 의한 네트워크 다운타임 100% 제거
정량 (감사 비용)장비 수백 대의 로컬 접속 로그(Syslog) 수동 수집TACACS+ Accounting 서버에서 통합 리포트 자동 추출보안 감사(ISMS/금융규제) 증적 자료 추출 시간 95% 단축
정성 (보안성)네트워크 패킷 스니핑 시 관리자 접속 세션 노출 위험Payload 전체 암호화로 해커의 정찰(Reconnaissance) 완전 차단내부망 침투 시 측면 이동(Lateral Movement) 방어력 극대화

미래 전망 및 진화 방향

  • 클라우드 네이티브 IGA (Identity Governance & Administration)와의 융합: 온프레미스 하드웨어 기반이었던 Cisco ACS나 ISE 서버가 클라우드형 NAC 환경으로 진화하면서, TACACS+ 정책 또한 Okta, Azure AD 등 글로벌 신원 관리 서비스(IdP)와 결합되어 'Zero Trust'의 핵심 엔진으로 승격되고 있다.
  • REST API 기반 차세대 인가 시스템 (gRPC 등)으로의 점진적 이동: 현대 화이트박스 스위치와 SDN(Software Defined Network) 환경에서는 CLI(명령어) 기반의 통제(TACACS+)에서 벗어나, Netconf/YANG이나 REST API를 호출하는 순간 API 토큰의 권한을 심사하는 Oauth2/ABAC(속성 기반 접근 제어) 모델로 점진적인 패러다임 전환이 일어나고 있다.

참고 표준

  • RFC 8907: The Terminal Access Controller Access-Control System Plus (TACACS+) Protocol (과거 Cisco 독점 기술이었으나 2020년 IETF 정식 정보성 표준으로 등재됨)

라우터에 쳐진 단 한 줄의 잘못된 명령어(shutdown)는 기업의 숨통을 수 시간 동안 끊어놓을 수 있다. TACACS+는 인간의 불완전함을 불신하는 철저한 제로 트러스트(Zero Trust) 철학을 1990년대부터 구현한 보안 프로토콜의 선구자이며, 인프라가 코드로 관리(IaC)되는 오늘날까지도 방어의 최전선을 지키는 핵심 문지기다.

  • 📢 섹션 요약 비유: TACACS+는 비행기 조종석에서 기장이 실수로 비상탈출 버튼을 누르려 할 때, 비행기 컴퓨터가 "이 버튼은 고도 1만 피트에서는 누를 권한이 없습니다"라며 강제로 막아주는 궁극의 안전 잠금장치로 발전하고 있습니다.

📌 관련 개념 맵 (Knowledge Graph)

개념 명칭관계 및 시너지 설명
RADIUS (Remote Authentication Dial-In User Service)TACACS+와 함께 AAA 아키텍처의 양대 산맥으로, TACACS+가 관리자용 핀셋이라면 RADIUS는 일반 사용자용 망치 같은 역할을 분담한다.
AAA (Auth, Authz, Acct)모든 접근 제어 시스템이 지향하는 철학적 기둥(인증, 인가, 과금)으로 TACACS+는 이 3가지를 기술적으로 가장 완벽히 쪼개놓은 프로토콜이다.
Cisco ISE (Identity Services Engine)TACACS+ 프로토콜을 탑재하여 수만 대의 엔터프라이즈 스위치와 방화벽의 권한을 중앙에서 그래픽 UI로 제어하게 해주는 현존 최고의 정책 서버다.
Privilege Level (권한 레벨)Cisco IOS 장비 내부에서 0부터 15까지 나뉜 특권 등급으로, TACACS+ 서버가 인가(Authorization)를 내릴 때 명령어 단위 통제 대신 특정 레벨 통째로 부여할 때 쓰인다.
Fallback (백도어/우회 로직)TACACS+ 서버가 죽었을 때 장비가 벽돌이 되지 않도록 장비 내부 로컬 계정으로 로그인하게 만들어주는 생명줄 같은 예외 처리 설계다.

👶 어린이를 위한 3줄 비유 설명

  1. 집에 들어오는 문(네트워크)을 열어주는 건 일반 경비원 아저씨(RADIUS)가 잘하지만, 집 안에서 어떤 물건을 만져도 되는지 감시하는 데는 한계가 있어요.
  2. TACACS+는 집 안에 들어온 사람이 냉장고 문을 열 때마다, 혹은 TV를 켤 때마다 본부의 보안 대장님께 "이 사람이 이거 만져도 돼요?"라고 실시간으로 물어보는 무서운 감시 카메라예요.
  3. 그래서 신입 사원이 실수로 인터넷을 통째로 끄는 위험한 버튼(명령어)을 누르려고 해도, TACACS+가 "안 돼, 넌 그 버튼 누를 자격이 없어!" 하고 딱 막아주는 든든한 방패랍니다.