원격 인증 다이얼 인 사용자 서비스 (RADIUS) 안정성 및 확장 성

게시자 Zevenet | 3 년 2017 월 XNUMX 일

WeGO 소개

반지름 or 원격 인증 전화 접속 사용자 서비스 사용자 및 장치의 인증, 권한 부여 및 계정을 중앙 집중식으로 관리하는 네트워크 프로토콜입니다. 인터넷 서비스 제공 업체 및 기업에서 WiFi 액세스 포인트 등을 통해 인터넷, 로컬 서비스, 무선 네트워크에 대한 액세스를 제어하기 위해 널리 사용됩니다.

RADIUS 프로토콜은 TCP 또는 UDP를 전송 계층으로 사용할 수있는 클라이언트 - 서버 아키텍처를 갖춘 응용 프로그램 계층에서 구현되며 다음과 같은 사용자 데이터베이스와 통신합니다. Active Directory의, LDAP 서비스 or 리눅스 회계 시스템. 가장 널리 사용되는 RADIUS 솔루션은 FreeRadius 또는 Microsoft NPS Radius Server입니다.

RADIUS 메시징 프로토콜

프로토콜 메시징은 아래와 같이 클라이언트 요청 및 서버 응답 방식을 기반으로합니다.

1. 클라이언트가 액세스 요청 서버 포트에 인증 될 각 사용자 또는 장치에 대한 서버로 전송 TCP / UDP 1812 (이전 버전의 서버는 1645 인증을 위해서도).
2. 정책에 따라 서버가 응답합니다. 액세스 가능 인증이 허용되면, 액세스 거부 액세스가 허용되지 않거나 접근 도전 액세스를 결정하기 위해 서버가 두 번째 유효성 검사 (PIN, 비밀번호, 인증서 등)와 같은 추가 정보를 필요로하는 경우

선택적으로, 클라이언트와 서버는 다음과 같은 회계 정보를 교환 할 수 있습니다. 회계 요청회계 - 응답 고유 한 세션 식별자를 유지하기 위해

3. 클라이언트가 회계 요청 포트를 통해 서버에 연결 TCP / UDP 1813 회계 세션 관리 (이전 서버 버전은 1646 인증을 위해서도).
4. 서버가 회계 - 응답 새 세션을 확인하기위한 메시지

RADIUS 환경에서는 고 가용성 측면에서 사용자 데이터베이스 관리를위한 추가 서비스가 필요하고 중요하며 다른 특정 문서에서 다루게됩니다.

RADIUS 부하 분산 및 고 가용성 환경

RADIUS 서비스가 다운 된 경우 사용자가 서버 네트워크에 액세스하거나 응용 프로그램에 로그인 할 수 없거나 장치에 대한 세션을 열 수 없거나 권한을 사용할 수있는 권한을 얻을 수없는 위험이 발생할 수 있습니다. 비즈니스 프로세스. 이러한 상황을 해결하기 위해이 기사의 목표는 아래와 같은 환경을 설정하는 것입니다.

Zevenet은 서로 다른 사이트 나 로컬 사이트에있는 모든 RADIUS 서버간에 RADIUS 프로토콜 메시지를 공유합니다. 다음 섹션에서는 이러한 종류의 환경 구성, RADIUS 서비스에 대한 고급 상태 확인 및이 프로토콜의 보안 문제에 대해 설명합니다.

RADIUS 가상 서비스 구성

RADIUS 프로토콜 특성은 UDP 패킷을 기반으로하므로 신뢰할 수있는 RADIUS 환경의 구성은 LSLB 농장 L4xNAT 4 레이어의 프로필 18121813, 프로토콜 유형 UDP 및 선호 DTA 투명성을 확보하고 백엔드 측에서 클라이언트 IP를 얻으려면 (비록 NAT 완벽하게 작동해야합니다).

. 서비스, client-radius 서버 사이의 끈적 거림이 필요하지 않으면 기본적으로 지속성이 필요하지 않습니다.

RADIUS가 UDP 대신 TCP를 통해 사용되면 프로토콜 유형 필드에서 RADIUS를 변경할 수 있습니다. 그것도 설정할 수 있습니다 ALL 프로토콜을 사용하여 동일한 가상 IP에서 TCP와 UDP를 동시에 허용합니다.

마지막으로 포트를 구성하지 않고 백엔드를 구성하고 (클라이언트 연결의 대상 포트를 사용하므로) 연결을 테스트합니다. RADIUS 가상 서비스가 성공적으로 구성되면이 서비스에 대한 고급 상태 확인을 설정할 수 있습니다.

RADIUS 고급 상태 확인 구성

고급 검사는 이름이있는 Zevenet에 포함되어 있습니다. check_radius 기본 폴더 아래에 / usr / local / zenloadbalancer / app / libexec /.

이 명령의 도움을받을 수 있습니다 :

root@zevenet5# /usr/local/zenloadbalancer/app/libexec/check_radius --help
Tests to see if a RADIUS server is accepting connections.

Usage:
check_radius -H host -F config_file -u username -p password
			[-P port] [-t timeout] [-r retries] [-e expect]
			[-n nas-id] [-N nas-ip-addr]

Options:
 -h, --help
    Print detailed help screen
 -V, --version
    Print version information
 --extra-opts=[section][@file]
    Read options from an ini file. See
    https://www.monitoring-plugins.org/doc/extra-opts.html
    for usage and examples.
 -H, --hostname=ADDRESS
    Host name, IP Address, or unix socket (must be an absolute path)
 -P, --port=INTEGER
    Port number (default: 1645)
 -u, --username=STRING
    The user to authenticate
 -p, --password=STRING
    Password for autentication (SECURITY RISK)
 -n, --nas-id=STRING
    NAS identifier
 -N, --nas-ip-address=STRING
    NAS IP Address
 -F, --filename=STRING
    Configuration file
 -e, --expect=STRING
    Response string to expect from the server
 -r, --retries=INTEGER
    Number of times to retry a failed connection
 -t, --timeout=INTEGER
    Seconds before connection times out (default: 10)

This plugin tests a RADIUS server to see if it is accepting connections.
The server to test must be specified in the invocation, as well as a user
name and password. A configuration file may also be present. The format of
the configuration file is described in the radiusclient library sources.
The password option presents a substantial security issue because the
password can possibly be determined by careful watching of the command line
in a process listing. This risk is exacerbated because the plugin will
typically be executed at regular predictable intervals. Please be sure that
the password used does not allow access to sensitive system resources.

먼저 다음 예제 명령을 실행하여 제대로 작동하는지 확인하겠습니다 (Zevenet의 자체 반경 클라이언트 구성 매개 변수를 사용하십시오).

root@zevenet5# cd /usr/local/zenloadbalancer/app/libexec/
root@zevenet5# ./check_radius -H <RADIUS_SERVER_IP> -P <RADIUS_SERVER_PORT> -u <DUMMY_USER_NAME> -p <DUMMY_USER_PASSWD> -F <RADIUS_CLIENT_CONFIG_FILE>

테스트는 Zevenet 어플라이언스에서 더미 사용자 유효성 검사 및 선택적으로 특정 클라이언트 매개 변수에 대한 클라이언트 구성 파일을 사용하여 특정 RADIUS 서버로 수행됩니다. 명령을 테스트 한 다음, OK 서버 및 고장 분석 다운되면 고급 상태 확인을 구성 할 수 있습니다. 서비스 방금 만든 가상 서비스 섹션.

사용하는 것을 잊지 마십시오 HOST 토큰을 사용하여 Zevenet에서 고급 건강 수표를 구성 할 때

check_radius -H HOST -P 1812 -u johndoe -p johnspass -F /etc/radius_client.cfg

아래 참조 서비스 섹션 구성.

RADIUS 보안 옵션

RADIUS 프로토콜은 전통적으로 UDP를 통한 패킷 별 인증 및 무결성 검사에 MD5 알고리즘을 사용했습니다. 이 두 가지는 보안 암호화 및 보호 기능을 제공하지 않기 때문에 몇 가지 접근 방식이 연구되었습니다.

RADIUS를 통한 배포 IPsec or 인터넷 프로토콜 보안 광범위하게 배포되었지만 응용 프로그램 계층이 네트워크 계층에 암시 적이므로 보안 정책을 인식하지 못하기 때문에이 옵션에는 몇 가지 어려움이 있습니다. Zevenet에서이 접근 방식을 사용하려면 아직 통합되지 않았으므로 몇 가지 수동 구성이 필요합니다.

의 사양 DTLS or 데이터 그램 전송 계층 보안 그러한 트래픽의 보안 정책을 암호화, 모니터링 및 제어 할 수 있습니다.

또 다른 옵션은 RADIUS over TLS 신뢰성과 순차 전송 계층의 TCP 기능을 제공합니다.

이러한 종류의 접근법에 대해 IANA 에 대한 공식 입장을 만들었습니다. RadSec (RADIUS 보안)를 사용하여 UDP 2083 ~을위한 항구 RADIUS / TLS 구현.

또 다른 옵션은 다이제스트 및 인증 레이어를 EAP (확장 가능 인증 프로토콜)을 사용하지만 연결 인증 단계에서는 MD5 약한 다이제스트 사용을 피합니다.

또한 Zevenet을 사용하면 악의적 인 패킷 및 호스트, DoS 공격, 무차별 공격 등을 방지하기 위해 IPDS 모듈을 통해 RADIUS 서비스를 보호 할 수 있습니다.

RADIUS 프록시 기능

여러 RADIUS 서버가 서로 다른 사이트에 배포 된 경우 인증, 권한 부여 및 계정 데이터를 관리하는 사이트로 클라이언트 연결을 전달하는 것이 흥미로울 것입니다. 현재 Zevenet은 RADIUS 프록시 기능을 지원하지 않지만 곧 포함될 예정입니다. 최신 개발을 기대하십시오!

사용 가능한 확장 가능한 네트워크 액세스 서비스를 즐기십시오!

공유 :

GNU Free Documentation License의 조건에 따른 문서.

이 글이 도움 되었나요?

관련 기사