본문 바로가기
Projects/FreeRADIUS, MySQL

FreeRADIUS 와 MySQL 을 활용한 인증시스템

by 꾸준하곰 2022. 6. 8.

FreeRADIUS 를 사용해서 AAA 인증 시스템을 구축한다.

AAA Server 는 사용자 인증정보를 저장하는 container(MySQL 로 작성됨) 가 있기 때문에 AAA Client 의 요청에 대한 응답으로 인증여부를 알려준다.

 

1. AAA 서버의 필요성 

2. AAA 서버의 인증 과정

3. AAA 서버의 Response 설명 (Accept, Reject, Challenge)

4. 인증방식 (PAP, CHAP)


AAA 서버의 필요성

다수의 NAS 가 존재하는 상황에서,

User 정보가 여러 NAS 서버에 동일한 내용이 저장되는 것을 막기 위한 해결책으로 AAA Server 를 사용한다. 

NAS  데이터를 네트워크 상에 저장하는 저장방식

- 주로 파일 스토리지 방식을 사용한다. (NAS, DAS 는 파일 스토리지 형식을 사용)
- (블록 스토리지 → 파일 스토리지 → 오브젝트 스토리지)
   : 오브젝트 스토리지는 Flat 형태이고 메타데이터를 커스터마이징 할 수 있다는 장점이 있다.
- DAS : 데이터를 직접 저장하는 저장방식. 물리적으로 연결한다.

 

AAA 서버의 인증 과정

AAA 서버는 FreeRADIUS 를 사용하여 구축하였다.

이때, RADIUS 는 AAA 서버의 프로토콜이다. 그리고 RADIUS 패킷을 분석해 보면 UDP 를 사용한다.

 

AAA 서버의 인증 방식은 아래와 같다.

(1) User 로그인
(2) AAA Client 는 AAA Server 에게 "Access Request"
(3) AAA Server 는 AAA Client 에게 "Access Accept / Access Reject / Access Chanllenge"

 

AAA 서버의 Response 설명 (Accept, Reject, Challenge)

 

                                                                                            ←----------------------- Access Challenge

                                                                                            -----------------------→ Access Request

                                                                                            ←----------------------- Access Accept / Access Reject

Access Accept 인증 수락
Access Reject 인증 거절
Access Challenge Challenge 값 전송

 

인증방식 (PAP, CHAP)

PAP 방식 (1) AAA 클라이언트는 자신의 인증정보(ID, Pswd) 를 전송한다.
(2) AAA 서버는 인증 결과를 AAA 클라이언트에게 전송한다.
CHAP 방식 Challenge - Response 사용한다.

(1) AAA 서버는 Challenge 값으로 Random Number 를 전송하고
(2) AAA 클라이언트는 Response 값으로 송신한 Challenge 값과 자신의 인증정보를 사용하여 해시값을 만들어 AAA 서버에게 전송한다.
(3) AAA 서버는 인증 결과를 AAA 클라이언트에게 전송한다.

댓글