간단한 반경 인증

간단한 반경 인증

SSH를 통해 액세스할 때 일부 Ubuntu 서버의 인증 서버로 Radius를 사용하는 것을 고려 중입니다. libpam-radius-auth를 사용해 보았으나 정확히 필요한 방식으로 작동하지 않습니다.

내 목표는 인증을 위해 TACACS/Radius를 사용하는 Cisco 장치와 유사한 솔루션을 갖는 것입니다. 그러나 로컬 사용자가 아닌 경우에는 인증할 수 없습니다.

sshd[3200]: 198.18.18.22의 잘못된 사용자 testacc

sshd[3200]: input_userauth_request: 잘못된 사용자 testacc [preauth]

내가 찾은 해결책은 NFS를 사용하여 홈 폴더를 마운트하거나 LDAP 서비스를 설정하는 것이었습니다. 사용자가 SSH를 통해 서버에 로그인하고 Radius를 통해 인증하는 더 쉬운 방법이 있습니까? 최대한 간단하게 만들고 싶습니다.

답변1

libpam-radius-auth필요한 대로 정확하게 작동해야 합니다. 이 정도 용량으로 사용하는데는 문제가 없습니다. 당신은 단지 필요

  • /etc/pam.d아마 어딘가에 그것을 구성할 것입니다 common-auth.
  • RADIUS 서버 구성/etc/raddb/server

그러나 로컬 사용자가 아닌 경우에는 인증할 수 없습니다.

그래 이건 사실이야. 먼저 사용자가 존재해야 합니다.

여기서 인증과 다른 문제를 다루고 있는 것 같습니다. 다음 두 하위 시스템의 차이점을 기억하세요.

  • 국가안보국(네임 서비스 스위치): 사용자(및 그룹, 호스트 등)의 데이터베이스를 구현합니다. 사용자를 나열하고 이름, uid, 홈 디렉터리 및 셸과 같은 속성을 가져오는 쿼리를 지원합니다. 가장 일반적인 NSS 백엔드는 "file"로, 에서 사용자 정보를 가져오지만 /etc/passwd다른 많은 백엔드를 사용하여 DB 파일, LDAP 등에서 정보를 가져올 수도 있습니다.
  • 폴리아크릴아미드(플러그형 인증 모듈): 인증(계정 및 비밀번호 변경 포함)을 구현합니다. 시스템은 플러그형 모듈을 사용하여 사용자 인증을 확인하고 로그인을 허용하거나 허용하지 않습니다. 가장 일반적인 PAM 백엔드는 사용자에게 간단한 비밀번호를 요청하고 해시와 비교하여 확인하는 파일 /etc/shadow이지만, 다른 많은 백엔드를 사용하여 RADIUS, 일회성 비밀번호 시스템, Kerberos 등과 같은 서비스를 쿼리할 수 있습니다.

인증(PAM)을 위해 RADIUS를 사용하는 것처럼 들리지만 사용자 데이터베이스(NSS) 자체에는 네트워크 기반 콘텐츠도 사용하고 싶습니다. 이는 완전히 다른 문제이며 인증과는 아무런 관련이 없습니다.

RADIUS 프로토콜은 데이터베이스 기능을 제공하지 않으므로 RADIUS를 데이터베이스 백엔드로 사용할 수 없습니다. 즉, 데이터베이스의 사용자를 열거하는 것은 물론이고 사용자의 uid, 홈 디렉터리, 셸과 같은 세부 정보를 쿼리하는 것도 허용하지 않습니다. 따라서 RADIUS NSS 백엔드가 없습니다(가정 libnss-radius).

네트워크 기반 사용자 데이터베이스의 경우 LDAP, MySQL 또는 Postgres를 사용할 수 있습니다. 아마도 LDAP가 가장 좋습니다.

관련 정보