Doctor Pepper

[CentOS] FreeRADIUS 설정 본문

Linux

[CentOS] FreeRADIUS 설정

Doctor Pepper 2024. 12. 24. 22:07
728x90

 

 

1. FreeRADIUS 인증 설정

  • /etc/raddb/clients.conf : FreeRADIUS 서버에서 클라이언트(네트워크 장비)의 정보를 정의하는 파일이다. 여기서 클라이언트는 FreeRADIUS 서버와 통신하여 인증 및 권한 부여 요청을 보내는 장비를 의미한다.
client 203.230.7.1{
     ipaddr = 203.230.7.1
     secret = mysecretkey
     shortname = router1
     # nastype = cisco
}
항목 설명
client - 클라이언트의 별칭으로 보통 클라이언트의 IP 주소로 설정함
- FreeRADIUS 서버가 클라이언트와 통신할 때 사용할 설정을 정의한다.
ipaddr - 클라이언트의 IP 주소를 지정함
- IP 주소는 FreeRADIUS 서버가 인증 요청을 받을 클라이언트를 식별하는 데 사용됨
- 클라이언트에서 보내는 인증 요청의 IP 주소가 여기에 설정된 IP와 일치해야 한다.
secret - 클라이언트와 FreeRADIUS 서버 간의 공유 암호(Shard Secret)를 지정함
- 클라이언트와 RADIUS 서버 간에 데이터를 암호화하고 무결성을 검증하기 위해 사용됨
- 클라이언트의 RADIUS 설정에서도 동일한 암호를 설정해야 함
ex) radius-server host 203.230.7.1 auth-port 1812 key shared_secret
shortname - 클라이언트를 구별하기 위한 별칭임
- RADIUS 로그와 디버그 출력을 확인할 때 이 별칭이 표시됨.
- 관리자가 클라이언트를 식별하기 쉽게 만드는 데 사용됨
nastype - 클라이언트 장비의 유형을 지정함
- cisco는 cisco 네트워크 장비를 의미하며, 특정 벤더의 특화된 동작을 지원함
  ∙ other : 기본값, 일반적인 네트워크 장비(ex. cisco)
  ∙ nas : 네트워크 액세서 서버
  ∙ ap : 무선 액세스 포인트
  • /etc/raddb/users : FreeRADIUS 서버에서 사용자 계정을 정의하고, 해당 사용자에게 특정 권한이나 속성을 부여하기 위해 사용되는 주요 설정 파일이다.
testuser Cleartext-Password := "testpassword"
  # Service-Type = NAS-Promp-User,
  # Cisco-AVPair = "shell:priv-lvl = 15"
항목 설명
testuser - RADIUS 인증을 시도하는 사용자의 계정 이름임
- 클라이언트(Cisco 장비 등)에서 RADIUS 서버를 통해 인증할 때 사용하는 사용자 ID임
Cleartext-Password - 사용자의 인증 비밀번호를 설정함
- Cleartext-Password는 일반 텍스트 형태의 비밀번호로 저장되며, RADIUS 서버가 이 비밀번호를 기반으로 클라이언트에서 입력한 비밀번호를 검증함
위의 설정에서는 사용자 testuser의 비밀번호가 “password123”으로 설정되어 있음
Service-Type - 사용자가 액세스하려는 서비스 유형을 정의함
- NAS-Prompt-User 값은 네트워크 장비의 명령어 라인 인터페이스(CLI) 액세스를 허용하는 것을 의미함
- 이는 사용자가 라우터나 스위치의 CLI 모드에 접근할 수 있도록 함
  ∙ Framed-User : PPP, VPN, 터널링 같은 서비스에 사용
  ∙ Administrative-User : 관리자 권한 액세스를 허용
Cisco-AVPair - Cisco 장비에서 사용할 수 있는 Cisco 고유의 속성(Attribute_Value Pair)임
- shell:priv-lvl=15
  ∙ 사용자가 Cisco 장비에 로그인했을 때, Privilege Level 15 권한을 부여함
  ∙ Privilege Level 15는 Cisco 장비에서 최고 관리자 권한을 의미함
  ∙ 사용자는 모든 명령을 실행할 수 있으며, 장비를 완전히 제어할 수 있음

 

  • Cisco 장비에서 AAA 설정
# aaa new-model
# radius-server host 203.230.7.2 auth-port 1812 acct-port 1813 key mysecretkey
# aaa authentication login default group radius local
# aaa authorization exec default group radius local
# aaa accounting exec default group radius local
# test aaa group radius testuser testpassword legacy
항목 설명
aaa new-model - AAA는 인증(Authentication), 권한 부여(Authorization), 과금 및 감사(Accoun- ting)의 약자로, AAA 기능을 활성화함
aaa authentication login
default group radius local
- Cisco 장비가 사용자 로그인 시 인증을 수행하는 방식을 정의함
- default : 인증 방식의 기본 방법 세트를 정의함. Telnet, SSH, 콘솔 등 대부분의 로그인 프로세스에 적용됨
- group radius : RADIUS 서버를 사용하여 인증을 시도함.
- local : RADIUS 서버를 사용할 수 없거나 실패했을 경우, Cisco 장비의 로컬 사용자 데이터베이스를 사용함
aaa authorization exec
default group radius local
- 사용자에게 CLI 또는 기타 서비스를 제공하기 전에 권한을 부여하는 방식을 정의함
- default : 권한 부여에 대한 기본 방법 세트를 정의함. Telnet, SSH, 콘솔 등 대부분의 로그인 프로세스에 적용됨
- group radius : RADIUS 서버를 사용하여 사용자의 권한을 확인함
- local : RADIUS 서버가 응답하지 않을 경우 로컬 데이터베이스로 사용함
radius-server host
203.230.7.2 auth-port
1812 key mysecretkey
- Cisco 장비에서 RADIUS 서버와의 연결을 설정하는 명령어임
- 203.230.7.2 : RADIUS 서버의 IP 주소를 지정함
- auth-port 1812 : RADIUS 프로토콜에서 인증 요청에 사용하는 포트 번호임(기본적으로 UDP 포트 1812를 사용함)
- key shared_secret : RADIUS 서버와 Cisco 장비 간 통신을 보호하는 암호화 키임.

 

2. FreeRADIUS 인증 실패 시 검증 절차

  • Firewalld 상태 확인
sudo systemctl staus firewalld

 

  • RADIUS 포트 열기
sudo firewall-cmd --add-port=1812/udp --permanent
sudo firewall-cmd --add-port=1813/udp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports

 

  • Iptable 상태 및 RADIUS 포트 허용
sudo iptables -L -v -n
# Iptable에 RADIUS 포트 정책 추가
sudo iptables -A INPUT -p udp --dport 1812 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 1812 -j ACCEPT

# Iptable에 RADIUS 포트 정책 삭제
sudo iptables -D INPUT -p udp --dport 1812 -j ACCEPT
sudo iptables -D INPUT -p udp --dport 1812 -j ACCEPT

 

  • FreeRADIUS clients.conf 파일 확인 및 재시작
sudo nano /etc/raddb/clients.conf
# 이전 게시글 참고

sudo systemctl restart radiusd

 

  • SELinux 상태 확인
sestatus
sudo setenforce 0

 

3. FreeRADIUS Password 암호화(MD5)

  • 비밀번호(cisco123)를 MD5를 이용하여 암호화 수행
echo -n "cisco123" | md5sum

 

  • 암호화된 비밀번호를 user 파일에 설정
cisco MD5-Password := "07982c55db2b9985d3391f02e639db9c"

 

4. FreeRADIUS 동작 방식

RADIUS 요청 식별 - 클라이언트(ex. Cisco 라우터 또는 스위치)가 FreeRADIUS 서버로 인증 요청을 보냄
- 요청의 IP 주소가 client.conf 파일의 ipaddr 값과 일치하는지 확인함
공유 암호 인증 - 클라이언트와 FreeRADIUS 서버는 요청을 처리하기 전에 공유 암호(secret)을 확인함
- 공유 암호가 일치하지 않으면 요청은 거부됨
로그 기록 - 요청이 처리되는 동안 로그 파일에는 shortname으로 지정된 별칭이 표시됨
- 이를 통해 관리자는 어떤 클라이언트에서 요청이 들어왔는지 쉽게 확인할 수 있음
클라이언트 타입별 동작 - nastype 값이 Cisco로 설정되었기 때문에 Cisco 장비와 관련된 특화된 RADIUS 동작이 활성화됨.
ex. Cisco-specific VSA(Cisco-AVPair)를 처리할 때 유용함
728x90