네트워크 인증 + 로밍 홈 디렉토리-어떤 기술을 사용해야합니까?


9

여러 컴퓨터에서 사용자에게 단일 ID를 제공하는 소프트웨어를 찾고 있습니다. 즉, 사용자는 각 컴퓨터에 대해 동일한 권한을 가지고 있어야하며 각 컴퓨터의 모든 파일 (로밍 홈 디렉토리)에 액세스 할 수 있어야합니다. 이 일반적인 아이디어에 대한 많은 솔루션이있는 것 같지만 가장 적합한 솔루션을 결정하려고합니다. 요구 사항과 함께 몇 가지 세부 사항이 있습니다.

  1. 머신 네트워크는 Ubuntu를 실행하는 Amazon EC2 인스턴스입니다.
    • SSH를 사용하여 머신에 액세스합니다.
    • 이 LAN의 일부 시스템은 용도가 다를 수 있지만 특정 용도 (다중 테넌시 플랫폼 실행)를위한 시스템에 대해서만 설명합니다.
  2. 시스템에 반드시 일정한 양의 기계가있는 것은 아닙니다.
    • 실행중인 머신의 양을 영구적으로 또는 일시적으로 변경해야 할 수도 있습니다. 이것이 내가 중앙 인증 / 저장소를 조사하는 이유입니다.
  3. 이 효과의 구현은 안전한 것이어야합니다.
    • 우리는 사용자가 직접 셸 액세스 권한을 가지고 있는지 확실하지 않지만 소프트웨어는 Linux 사용자 이름으로 제한적으로 시스템에서 실행될 수 있으며 이는 직접 셸 액세스만큼 좋습니다.
    • 그들의 소프트웨어가 보안을 위해 악의적 일 수 있다고 가정 해 봅시다.

목표를 달성하기위한 몇 가지 기술 / 조합에 대해 들었지만 각각의 결과가 확실하지 않습니다.

  • 이전 ServerFault 게시물은 NFS 및 NIS를 권장했지만 Symantec의이 이전 기사에 따르면 보안에 문제가 있습니다. 이 기사는 NIS + 로의 전환을 제안하지만, 오래된 위키 백과 기사 는 Sun의 NIS +와의 추세를 암시하는 진술을 인용했습니다. 권장 대체품은 내가 들었던 또 다른 것입니다 ...
  • LDAP. LDAP를 사용하여 사용자 정보를 네트워크의 중앙 위치에 저장하는 것처럼 보입니다. NFS는 여전히 '로밍 홈 폴더'요구 사항을 충족시키는 데 사용되어야하지만 참조가 함께 사용되는 것을 볼 수 있습니다. 시만텍 기사에서 NIS와 NFS의 보안 문제를 지적 했으므로 NFS를 대체 ​​할 소프트웨어가 있습니까? 아니면 기사를 잠그기위한 기사의 제안에주의해야합니까? 우리의 또 다른 기본 아키텍처 인 RabbitMQ가 LDAP를위한 인증 / 권한 플러그인을 가지고 있기 때문에 LDAP에 대한 경향이 있습니다. RabbitMQ는 시스템 사용자가 제한적으로 액세스 할 수 있으므로 가능하면 보안 시스템을 함께 묶고 싶습니다.
  • Kerberos는 내가 들었던 또 다른 보안 인증 프로토콜입니다. 몇 년 전에 암호화 수업에서 조금 배웠지 만 그것에 대해 많이 기억하지 못합니다. 온라인 에서 여러 가지 방법 으로 LDAP 결합 할 수있는 제안을 보았습니다 . 이것이 필요합니까? Kerberos가없는 LDAP의 보안 위험은 무엇입니까? 또한 Carnegie Mellon University에서 개발 한 다른 소프트웨어에서 Kerberos가 사용되는 것을 기억합니다 ...
  • Andrew 파일 시스템 또는 AFS 설정이 약간 복잡해 보이지만 OpenAFS를 사용할 수 있습니다. 내 대학에서 AFS는 두 가지 요구 사항을 모두 제공합니다. 모든 컴퓨터에 로그인 할 수 있으며 "AFS 폴더"는 항상 사용할 수 있습니다 (적어도 AFS 토큰을 획득 한 경우).

어떤 경로를 살펴 봐야하는지에 대한 제안과 함께 특히 도움이되는 가이드가 있습니까? 굵은 글씨가 지적했듯이 LDAP가 최선의 선택이지만, 보안과 관련하여 구현 세부 정보 (Keberos? NFS?)에 특히 관심이 있습니다.

답변:


7

인증, 권한 부여 및 디렉토리 정보

이것은 귀하의 질문에 대한 완전한 대답은 아니지만 NIS 대 LDAP 대 Kerberos에 대한 귀하의 질문을 해결하는 데 도움이 될 것이라고 생각했습니다.

인증권한 부여 의 차이점에 대한 좋은 개요를 제공하는 이것으로 시작하십시오 . 이런 종류의 토론을 이해하는 것이 중요합니다.

Kerberos는 인증 프로토콜 일뿐 입니다. 사용자 이름 및 비밀번호와 같은 자격 증명이 제공되면 유효한지 여부를 알려줍니다. 이것이 전부입니다.

반대로 NIS와 LDAP는 모두 디렉토리 서비스입니다. 클라이언트가 사용자에 대한 정보 (홈 디렉토리는 무엇입니까, 사용자 ID는 무엇입니까)를 쿼리 할 수 ​​있습니다. 두 가지 모두 다양한 문제가있는 인증 소스로 사용할 수 있습니다.

NIS는 실제로 자체적으로 인증을 수행하지 않습니다. 대신 암호 해시가 클라이언트 컴퓨터에 노출되고 로컬 시스템은 로컬 계정과 동일한 방식으로 실제 인증 단계를 수행합니다. 여기서 문제는 NIS 클라이언트 중 하나에 계정을 가진 사람은 모든 암호 해시를 잡고 여가 시간에 무차별 공격을 가할 수 있다는 것입니다.

인증 단계가 실제로 서버에서 수행되므로 LDAP가 다소 안전합니다. SSL 또는 TLS를 사용하여 LDAP 세션을 암호화하고 있는지 확인해야합니다. 그렇지 않으면 암호가 일반 텍스트로 노출되어 패킷 스니핑에 취약합니다.

인증에는 Kerberos를 사용하고 인증에는 NIS 또는 LDAP (일반적으로 "그룹 구성원"을 의미 함) 및 디렉토리 정보를 사용하는 것이 일반적입니다. NIS는 일단 암호 해시를 제거하면 (인증을 Kerberos로 이동하여) LDAP보다 보안 성이 떨어지지 않으며 최신 Linux 배포판에서 "즉시 사용 가능"하다는 이점이 있습니다.

반면에 LDAP는 일반적으로 훨씬 확장 성이 뛰어나고 많은 수의 사용자 (또는 다른 디렉토리 객체)가있는 경우 확장 성이 뛰어나고 풍부한 쿼리를 제공하며 일반적으로 관리가 용이합니다. LDAP는 또한 다양한 응용 프로그램에서 기본적으로 지원되는 반면 NIS는 바람직하지 않은 핵심 운영 체제와 이상한 근친상간 관계를 가지고 있습니다.

처음부터 무언가를 구축하는 경우 인증을위한 Kerberos와 디렉토리 서비스를위한 LDAP를 제안합니다.

파일 시스템

NFS에는 큰 장점이 있습니다. 이미 가지고 있고 널리 배포되어 있으며 일반적으로 안정적입니다. NFS에는 두 가지 주요 단점이 있습니다.

  • 병렬 I / O에는 적합하지 않습니다. 동일한 파일 시스템에 많은 수의 머신이있는 경우 단일 NFS 서버를 유지하기가 어려울 수 있습니다. 이것이 더 큰 클러스터가 일반적으로 병렬 i / o를 지원하도록 설계된 클러스터 파일 시스템 (예 : Lustre, GlusterFS, GPFS, GFS 등)을 사용하는 이유입니다.

  • 보안 모델이 잘못되었습니다. 일반적으로 NFS 보안 결정은 전적으로 숫자 사용자 ID를 기반으로합니다. NFS 파일 시스템을 마운트 할 수있는 시스템에 루트가있는 경우 항상 적절한 사용자 ID로 로컬 사용자를 작성할 수 있기 때문에 모든 파일에 액세스 할 수 있습니다. 이것은 아니다 엄격 NFSv3에와 NFSv4 모두 Kerberos 인증에 대한 지원의 다양한 수준을 가지고,하지만이를 사용하여 충족 사람에게 아직 때문에 사용량이 다를 수 있으므로 ... 사실.

소규모 배포의 경우 대부분의 사람들은 제한에도 불구하고 NFS 만 사용합니다.

위에서 언급 한 클러스터 파일 시스템과 AFS 및 기타 솔루션과 같은 다양한 솔루션이 있지만, 대부분의 배포본에서 선택한 배포판에서 실행하려면 일부 작업이 필요합니다. 최근에 GlusterFS에 대해 좋은 소식을 들었습니다. 따라서 NFS 대안을 찾고 있다면 가장 먼저 볼 수있는 곳이 될 것입니다.


정리해 주셔서 감사합니다. 나는 실제로 권한 부여 대 인증에 대한 좋은 기초를 가지고 있습니다. 각 소프트웨어의 기능이 확실하지 않습니다. 저장 부는 또한 중요하다; Kerberos / LDAP의 보안 모델이 NFS에 어떻게 연결되는지 알고 있습니까?
브라이언

NFS에 대한 정보로 답변을 업데이트했습니다.
larsks

이 경우 하나의 NFS 서버로 제한 할 이유가 없지만 하나는 충분할 수 있으며 나중에 더 추가 할 수 있습니다. help.ubuntu.com/community/AutofsLDAP
84104

나는 그 AutofsLDAP 안내서와 다른 것들을 겪어 보았습니다. 결과가 다르기 때문에 잘못 작성되었거나 날짜가 지났으며 특정 시점을 넘어서서 진행할 수 없습니다. :(
Brian

적절한 세부 사항으로 새 질문을 열 수 있습니다.
larsks

0

이것은 부분 답변입니다.

NIS / NIS + NIS를
사용하지 마십시오. nis 스키마와 함께 LDAP를 사용하십시오.

OpenLDAP (일명 우분투에서 때린)
적절한 ACL 및 SSF (보안 강도 요소)를 설정해야합니다.
조심하지 않으면 암호를 명확하게 보내는 것이 매우 쉽습니다.
http://www.openldap.org/doc/

NFS
NFS는 암호화되지 않습니다.
그것은 속임수와 함께 SSL에 싸여있을 수 있습니다.
Kerberos가 없으면 인증을 위해 ip_addr을 사용합니다.
Kerberos를 그건 가능 SASL 암호화 모두에 사용된다.

Kerberos
LDAP 인증을 위해 OpenLDAP에 SASL 통과 인증이 있어야합니다. (어려운 것은 아닙니다.)
DNS 항목을 사용해야합니다. (필요하지는 않지만 매우 유용합니다).
ssh 키 대신 GSSAPI를 사용할 수 있습니다. (공존 가능)
KDC 시스템은 클라이언트 시스템과 분리되어 있어야합니다.


DES로 암호화 된 OpenAFS . (보안으로 간주되지 않습니다.)
kerberos 또는 자체 레거시 인증 서버가 필요합니다.
자체 파일 시스템 ACL이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.