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+ 서버 구축 끝!
'Linux&Programming' 카테고리의 다른 글
[Rust] 러스트 프로그래밍 공부 - 카고(Cargo) (1) | 2024.12.02 |
---|---|
[Rust] 01. 러스트 설치하기 (mac OS) (1) | 2024.12.02 |
리눅스 커널 메모리 할당과 GFP Flags (kmalloc, GFP_KERNEL, GFP_ATOMIC) (3) | 2024.09.20 |
[Mac OS] 맥북 에어 환경 세팅 (vim, zsh, homebrew) (3) | 2024.09.08 |
소켓(Socket) 통신 개념과 c언어 예제 (4) | 2024.08.28 |