Doctor Pepper

[CentOS] FreeRADIUS 개념 및 설치 방법 본문

Linux

[CentOS] FreeRADIUS 개념 및 설치 방법

Doctor Pepper 2024. 12. 24. 19:38
728x90

 

 

1. FreeRADIUS

 오픈소스 기반의 RADIUS(Remote Authentication Dial-In User Service) 서버로, 네트워크 액세스 인증, 권한 부여, 계정 관리(Authentication, Authorization, Accounting; AAA) 서비스를 제공하는 소프트웨어이다. 이는 주로 기업 및 ISP(Internet Service Provider) 환경에서 사용되며, 안정성, 확장성, 다양한 프로토콜 지원, 그리고 커스터마이징 가능성 때문에 널리 채택되고 있다.

오픈소스 및 커뮤니티 지원 - GNU GPL(GNU General Public License) 하에 배포되며, 커뮤니티와 개발자들의 활발한 참여로 지속적으로 개선되고 있음
확장성 - 동시에 수백만 개의 요청을 처리할 수 있는 높은 성능과 확장성을 제공함
- 모듈화된 아키텍처로 기능을 쉽게 확장하거나 사용자 지정할 수 있음
다양한 인증 프로토콜 지원 - EAP(Extensible Authentication Protocol) 계열 프로토콜: EAP-TLS, EAP-TTLS, PEAP 등
- PAP, CHAP, MS-CHAPv1/v2 같은 전통적인 인증 프로토콜도 지원함
다양한 데이터베이스 연동 - MySQL, PostgreSQL, Oracle, MongoDB, Redis 등 여러 데이터베이스와 연동 가능함
- 텍스트 파일, LDAP, Active Directory와도 통합할 수 있음
계정 관리(Accounting) 기능 - 사용자 접속 시간, 데이터 사용량 등 네트워크 사용 정보를 로깅하여 후속 분석과 과금 시스템에 활용 가능함

 

- 구성 요소

RADIUS 서버 - 클라이언트(예: 네트워크 스위치, AP)에서 전달된 요청을 처리하는 핵심 구성 요소.
- 인증 및 권한 부여 요청을 처리하고, 필요에 따라 외부 데이터베이스와 상호작용함
모듈(Module) - FreeRADIUS는 다양한 인증 방식과 데이터 소스를 지원하기 위해 모듈화된 구조를 채택하고 있음
- 주요 모듈: rlm_eap(EAP 지원), rlm_sql(SQL 지원), rlm_ldap(LDAP 지원) 등.
구성 파일(Configuration Files) - /etc/raddb/ 디렉터리에 주요 설정 파일이 위치하며, radiusd.conf, sites-enabled/default, clients.conf 등이 포함됩니다.
- 구성 파일을 통해 클라이언트, 사용자, 인증 방식 등을 정의함
데이터베이스 - 사용자 정보 및 계정 관리 데이터를 저장하는 외부 데이터 소스. MySQL, PostgreSQL 등 다양한 DB와 통합 가능.

 

- 사용 사례

Wi-Fi 인증 - 기업 네트워크에서 EAP-TLS 또는 PEAP를 활용한 안전한 무선 네트워크 인증됨
- WPA2-Enterprise 환경에서 주로 사용됨
VPN 및 원격 액세스 관리 - VPN 사용자를 인증하여 네트워크 보안 강화됨
- OTP(One-Time Password)와 같은 추가 인증 방법과 통합 가능함
ISP 환경에서 사용자 인증 및 과금 관리 - 인터넷 서비스 제공자(ISP)가 사용자 인증과 사용량 기반 과금 시스템을 운영할 때 활용됨
BYOD(Bring Your Own Device) 관리 - 개인 기기의 네트워크 접근을 통제하고, 사용자와 장치별로 다른 권한을 부여함
교육 및 연구 기관 - eduroam과 같은 교육 네트워크에서 안전한 사용자 인증을 제공함

 

2. FreeRADIUS를 위한 네트워크 구성

 

 

- Serial 통신을 위한 Package 설치

sudo dnf install update
sudo dnf install minicom

 

- Serial 통신을 위한 USB 장치 정보 확인

lsusb

 

- 커널 메시지 로그에서 tty 관련 정보 필터링

dmesg | grep tty

 

- minicom을 이용하여 Serial 통신

sudo minicom -D /dev/ttyUSB0 -b 9600

 

- Centos IP 주소 확인 및 변경

nmcli device status

 

- IP 주소 설정

sudo nmcli com mod eno1 ipv4.addresses 203.230.7.2/24
sudo nmcli com mod eno1 ipv4.gateway 203.230.7.1

 

- Windows에서 ICMP 허용

netsh advfirewall firewall add rule name="Allow ICMPv4" protocol=icmp4 dir=in action=allow

 

- 각 장비별 ping 테스트

Centos Windows

 

3. FreeRADIUS 설치

  • 방화벽 설정
$ sudo firewall-cmd --add-port=1812/udp --permanent
$ sudo firewall-cmd --add-port=1813/udp --permanent
$ sudo firewall-cmd --reload

 

  • SELinux 설정
$ sudo semanage port -a -t radius port_t -p udp 1812
$ sudo semanage port -a -t radius port_t -p udp 1813

 

  • FreeRADIUS Package 설치 : 공식 레포지토리를 이용하여 설치를 수행한다.
$ sudo dnf install freeradius freeradius-utils

 

  • FreeRADIUS 인증서 발급 : client.pem, server.key, server.pem이 생성되어야 한다
$ su -
# cd /etc/raddb/certs/
# ./bootstrap

 

  • FreeRADIUS 활성화 : 이때, Centos는 장비와 연결되어 있어야 한다(즉, 203.230.7.2로 설정되어 있어야 한다)
systemctl start radiusd
systemctl enable radiusd

 

 

728x90