본문 바로가기

네트워크

TACACS+ 서버 설치 및 구성

반응형

개요

TACACS+ 서버를 이용하여 네트워크 장비의 단일 인증 구성

구성환경

CentOS 7.6  / tacacs+ / cisco 2960

 

1. TACACS+ 서버 설치

 1.1 TACACS+ 패키지 다운로드

ftp://ftp.shrubbery.net/pub/tac_plus

 1.2 TACACS+ 서버 패키지 설치

shell> tar zxvf tacacs+-F5.0.0a1.tar.gz

shell> configure --prefix=/usr/local/tacacs -enable-maxsess -without-libwrap

shell> make

shell> make install

 1.3 TACACS+ 서버 설정

shell> vi /usr/local/tacacs/conf/tacplus.conf

key = tacPassword                               # 공유키 설정
accounting file = /var/log/tac_plus.acct     # account record 파일 위치

# enable 설정
user = $enable$ {                                # enable password
        login = cleartext "cisco"      # 평문 암호 사용
       #login = des "HwpiveoW0gyNE"    # des 암호 사용 $INSTALL_HOME/bin/tac_pwd 명령어 사용
}

# 관리자 그룹 설정
group = admins {
         default service = permit                
         login = cleartext "adminPW"
         service = exec {
           priv-lvl = 15              # Privilege Level(권한 레벨) 설정 
         } 
}

# 제한적인 그룹 설정
group =operators {
         default service = deny             # cmd 권한에 대한 기본 설정                   
         login = cleartext "operatorPW"
         service = exec {
           priv-lvl = 1                          # Privilege Level(권한 레벨) 설정
         }
         cmd = show {
           permit .*
         }
         cmd = logout {
           permit .*
         }
 # config 모드에서 명령어 제어, 스위치 설정에서 aaa authorization config-commands 설정이 되어 있어야만 적용됨
         cmd = configure {         
           permit .*
         }
         cmd = write {
           permit .*
         }
         cmd = snmp-server {    # snmp-server 명령어의 모든 인수 허용      
           permit .*
         }
         cmd = no {                 # no 명령어 사용시 no snmp-server의 모든 인수를 허용하고 그외 no 명령어는 거부
           permit "snmp-server .*"
           deny .*
         }
         cmd = interface {
           permit "FastEthernet .*"   # interface 명령어에서 FastEthernet 인수 외에는 모두 거부 
           deny .*
        }
         cmd = description {         # description 명령어의 모든 인수 허용
           permit .*
        }
}

# 제한적인 그룹 설정, enable 모드로 진입하더라도 cmd에 정의한 것들만 실행 가능
group = monitors {
        default service = deny                    
        login = cleartext "monitorPW"  # 사용자 패스워드가 설정되어 있지 않을 경우 group에 설정된 패스워드가 적용됨
        service = exec {
          priv-lvl = 1
        }
        cmd = show {
          permit ver
          permit env
          permit privilege
          permit logging
          permit interfaces
          deny .*
        }
}

# admins 그룹의 admin 사용자 정의
user = admin {   
        default service = permit
        login = cleartext "admin"                     
        member = admins      # 사용자 그룹 설정
}
# operators 그룹의 john, fred 사용자 정의
user = john {                        
        default service = deny   # 그룹설정과 겹칠경우 사용자 설정이 우선함
        member = operators
}
user = fred {                        
        default service = deny
        expires = "Apr 11 2020"            # 사용자 만료기한 설정
        service = exec {
          autocmd ="telnet 192.168.0.1"  # 로그인시 자동으로 autocmd 실행
        }
        member = operators                # 사용자 그룹 설정
}
# monitors 그룹의 tom 사용자 정의
user = tom {                       
        default service = deny
        member = monitors                # 사용자 그룹 설정
}

 1.4 DES 암호 설정

shell> tac_pwd
Password to be encrypted: 123 => 암호입력
40RV06kkUGKPA     => 암호화된 패스워드

 1.5 tacacs+ 서비스 구동

 shell> tac_plus -C /usr/local/tacacs/conf/tacplus.conf

2. 스위치 설정

 2.1 configureation

(config)# aaa new-model          
(config)# aaa authentication login default group tacacs+ local        # login 인증시 tacacs+ 인증을 먼저 시도후 tacacs+ 서버 통신에 문제가 있 경우 local 사용자 데이터베이스로 인증 대체  
(config)# aaa authentication enable default group tacacs+ enable    # enable 인증시 tacacs+ 인증을 먼저 시도후, tacacs+ 서버 통신에 문제가 있을 경우 enable 패스워드로 대체 인증  
(config)# aaa authorization console                      # console 상에서도 명령 권한 적용을 하고자 할 경우, 버전(12.0(6)T)에 따라 명령어 지원하지 않을 수 있음 
(config)# aaa authorization exec default group tacacs+ local           #exec 권한 부여, tacacs+, local 순
(config)# aaa authorization config-commands                       # config 모드에서의 명령 권한 제한 설정 여부 지정  
(config)# aaa authorization commands 1 default group tacacs+ local    # 1 레벨 명령 권한 부여를 tacacs+, local 순으로 제어  
(config)# aaa authorization commands 15 default group tacacs+ local   # 15레벨 명령 권한 부여를 tacacs+, local 순으로 제어  
(config)# tacacs-server host 192.168.0.166 key tacPassword               # tacacs+ 서버 및 공유키 설정 
config)# aaa accounting exec default start-stop group tacacs+           # exec accounting 로그 전송 
(config)# aaa accounting command 1 default start-stop group tacacs+ # 1레벨 accounting 로그 tacacs+ 서버 전송
(config)# aaa accounting command 15 default start-stop group tacacs+ # 15레벨 accounting 로그 tacacs+ 서버 전송

** TACACS+ 서버가 장애시 모든 접속이 되지 않을 수 있으므로 login,enable시 local 사용자 데이타 베이스를 설정 권장

마무리

네트워크 장비들이 많을 경우 tacacs 서버를 구성함으로써 사용자 인증을 단일화 할수 있어 편하다. 또한 그룹별로 권한을 부여할수 있어 큰 구모의 회사에서는 권한 관리에 더 유용하지 않을까 한다.

반응형

'네트워크' 카테고리의 다른 글

CISCO SNMP V3 구성  (2) 2021.03.09