Ubuntu TACACS+ 서버 구축 및 systemd 서비스 생성하기

반응형

TACACS+는 네트워크 장비에서 인증(Authentication), 권한 부여(Authorization), 계정 관리(Accounting)를 처리하는 프로토콜로 네트워크 운영 엔지니어라면 자주 접할 수 있는 프로토콜이다. 오늘은 Ubuntu에 TACACS+ 서버를 구축하고systemd 서비스 매니저 작성을 해보겠다.
 

1) TACACS+ 설치

1. 먼저 github에서 tac_plus 를 설치한다.

https://github.com/facebook/tac_plus.git

 
 

2. 아래 명령어를 통해 tacacs+ 를 설치한다.

- configure가 실행되지 않는 경우 build-essential, libwrap0-dev, libpam0g-dev, libssl-dev 등과 같은 패키지가 필요할 수 있으니 필요하다면 설치해주자.

// 실제 소스 코드가 있는 하위 디렉토리로 이동
cd tac_plus/tacacs-F4.0.4.28/

// configure 파일 확인
ls -al | grep configure

// configure 실행
./configure

// 컴파일 및 설치
make
make install

 

 
3. tacacs+ 서버 실행

sudo /usr/local/sbin/tac_plus -C /usr/local/etc/tac_plus.conf

 

2) TACACS+ 설정 파일 작성

1. /usr/local/etc/tac_plus.conf 설정 파일을 직접 편집해준다.

sudo nano /usr/local/etc/tac_plus.conf

 
 

2. tac_plus.conf 파일 내에 key와 user를 등록해준다.

- key: tacacs+ 통신 시 클라이언트와 서버 간 인증을 위해 공유할 키를 말한다.
- user: 사용할 계정

key = "qwer"

accounting file = /var/log/tac_plus.acct

group = admins {
    default service = permit
    service = exec {
        priv-lvl = 15
    }
}

user = testuser {
    member = admins
    login = des "testuser"
}

 
위 config를 보면 admins이라는 멤버에 priv-lvl 15 권한을 부여하고 그룹을 생성하였다. 그리고 새로운 user를 만들 때 admins라는 그룹에 넣어주면 권한 15를 가진 유저가 생성되므로 그룹을 생성하면 관리하기가 편하다.
생성된 계정명은 testuser이고, 비밀번호도 testuser가 된다. (des로 암호화)
 

3) TACACS+ 실행

일단 처음엔 tacacs+를 수동 실행해주고, systemd 서비스 매니저를 통해 서버가 켜질 때 자동 실행될 수 있도록 해보려고 한다.

sudo /usr/local/sbin/tac_plus -C /usr/local/etc/tac_plus.conf

위 명령어를 통해 수동으로 실행할 수 있고, ps aux | grep tac_plus 명령어를 통해 실행중인 프로세스를 확인할 수 있다.
 

4) 자동 실행을 위한 systemd 서비스 파일 생성

먼저 TACACS+ 서버를 관리할 수 있도록 systemd 서비스 파일을 생성해야 하는데, 이 파일을 통해 서버 실행 시 TACACS+를 자동으로 실행할 수 있다.

sudo nano /etc/systemd/system/tacacs.service

 
아래의 내용을 입력해준다.

[Unit]
Description=TACACS+ Authentication Service
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/sbin/tac_plus -C /usr/local/etc/tac_plus.conf
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

 

 

4-1) 권한 부여

서비스 파일을 작성한 후, systemd가 새로운 서비스를 인식할 수 있도록 권한을 부여하고, 데몬을 재시작해야 한다.

sudo chmod 755 /usr/local/sbin/tac_plus
sudo chmod 644 /usr/local/etc/tac_plus.conf

 

4-2) 데몬 재시작

sudo systemctl daemon-reload

 

4-3) TACACS+ 서비스 재시작 및 활성화

sudo systemctl restart tacacs
sudo systemctl status tacacs

// 부팅 시 자동 실행
sudo systemctl enable tacacs

 
 
TACACS+ 서버 구축 끝!

반응형