RADIUS (Remote Authentication Dial-In User Service)
: AAA 기능 구현을 위한 인증 프로토콜
: UDP 1812 및 1813 포트를 사용
- AAA
: Authentication (인증 / 시스템 접근을 허용하기 전에 사용자의 신원을 검증)
: Authorization (인가 / 검증된 사용자에게 특정 수준의 권한과 서비스를 허용)
: Accounting (계정 관리 . 사용자의 자원 에 대한 정보를 수집하여 감사 및 보고 수행)
RADIUS의 보안 메시지 교환 메커니즘
: RADIUS 의 패킷에는 각 속성에 대해 Authenticator 라는 필드가 존재한다 (Attribute 라면 Attribute-Authenticator 라는 속성이 추가됨)
: 이 속성은 MD5 알고리즘 기반으로 생성된 16옥텟으로 수신 측에서 해당 값이 올바른지 확인하는 용도로 쓰임
RADIUS 인증 패킷
- Access-Request
: 클라이언트에서 RADIUS 서버로 전송하는 첫 번째 패킷
: 사용자가 특정 NAS 및 요청된 특수 서비스에 액세스 할 수 있는지 여부를 확인
: 사용자 이름 및 암호를 전달
- Access-Accept
: RADIUS 서버가 클라이언트로 부터 Access-Request 요청을 수신한 후 허용을 응답
- Acceess-Denied
: RADIUS 서버가 클라이언트로 부터 Access-Request 요청을 수신한 후 거절을 응답
- Access-Challange
: RADIUS 서버가 클라이언트로 부터 Access-Request 요청을 수신한 후 MD5 키를 응답
: 클라이언트는 이를 이용하여 인증된 패킷으로 RADIUS 서버에게 재요청
freeradius
: 리눅스에 설치할 수 있는 RADIUS 서버
- 설치
apt install freeradius
- 클라이언트 설정
vim /etc/freeradius/3.0/clients.conf
client test-client {
# 요청을 보낼 클라이언트 주소
ipaddr = 192.168.0.10
# 클라이언트를 인증하기 위한 secret key
secret = testsecret
}
- 사용자 설정
vim /etc/freeradius/3.0.users
# 사용자 ID / PW / 응답 메시지
2mukee Cleartext-Password := "authplz123"
Reply-Message = "auth success"
- 인증테스트
# radtest 사용자ID 비밀번호 RADIUS서버주소 NAS인증 클라이언트_secret
radtest 2mukee authplz123 localhost 0 testsecret
p.s
: Reference를 참고해서 외부 네트워크 클라이언트에서 요청하는 것도 해보자
Reference
'Computer Science > Network' 카테고리의 다른 글
토스의 게이트웨이 (0) | 2024.01.20 |
---|---|
LDAP 표준 오류 코드 모음 (0) | 2024.01.17 |
웹 개발을 위해 꼭 알아야 하는 보안 공격들 (1) | 2023.12.28 |
HTTP 쿠키의 모든 것을 파헤쳐보자 (0) | 2023.12.28 |
에어 갭 이란? (Air-Gap) (0) | 2023.08.13 |