우리 조직에서는 sudo에 인증할 때 다른 유형의 인증(예: 로그인)과 다른 kerberos 주체를 사용해야 합니다. 예를 들어, 내 일반(로그인) 주체는 라고 할 수 foobar@DOMAIN
있고 내 sudo 주체는 라고 합니다 foobar/sudo@DOMAIN
. 과거에는 빌드 시 및 플래그를 설정 --with-kerb5
하여 자체 sudo를 빌드하여 이 요구 사항을 수용했습니다 . --enable-kerb5-instance=sudo
이는 우리 버전의 sudo가 Kerberos에 직접 연결되고 PAM 스택을 전혀 사용하지 않는다는 것을 의미합니다.
우리는 자체 버전의 sudo를 구축하고 배포하지 않고도 분할 본문 요구 사항을 충족할 수 있는지 확인하려고 노력했습니다. 내 질문은 이것이 가능합니까? 가능하다면 어떻게 달성할 수 있나요?
표준 RHEL 6/7 sudo 패키지를 사용하면 --with-kerb5
빌드 타임 옵션을 사용할 수 없습니다. PAM을 인증 스택으로 사용해야 합니다. 이는 를 사용해야 함을 의미합니다 pam_krb5
. 이를 통해 사용자 이름을 주체 이름에 매핑하는 구성 옵션을 사용할 pam_krb5
수 있다는 것을 알았습니다 . 사용자 이름을 주체 이름에 매핑할 수 있게 되므로 중간쯤 됐습니다 . 그러나 내가 아는 한, 각 응용 프로그램에 대해 매핑을 설정할 수 있는 방법은 없습니다(kerberos는 어떤 응용 프로그램이 PAM 스택을 호출하는지에 관계없이 PAM을 단일 응용 프로그램으로 처리합니다) . PAM 구성 . 따라서 시스템에서 sudo 및 로그인에 sudo 주체를 사용하거나 둘 다에 로그인 주체를 사용하도록 할 수 있지만 시스템에서 sudo에 sudo 주체를 사용하고 로그인에 로그인 주체를 사용하도록 할 수는 없습니다./etc/krb5.conf
appdefaults/pam/mappings
foobar
foobar/sudo
pam_krb5
어떤 아이디어가 있나요? 아니면 사용자 정의 sudo를 구축하고 배포해야 합니까?
답변1
이는 완전한 대답은 아니지만 SSSD를 사용하여 이 작업을 수행할 수 있는지 궁금합니다.
이 모듈을 사용 하면 From pam_sss
만 고려하도록 서비스를 제한할 수 있습니다 /etc/sssd/sssd.conf
.pam_sss(8)
영역
관리자가 특정 PAM 서비스에 대해 인증이 허용되는 도메인을 제한할 수 있습니다. 형식은 sssd.conf 파일에 지정된 SSSD 도메인 이름의 쉼표로 구분된 목록입니다.
이론적으로는 동일한 업스트림 인증 환경을 가리키지만 서로 다른 규칙을 사용하여 사용자를 주체에 매핑하는 두 개의 도메인이 있을 수 있습니다.
불행하게도 SSSD는 사용자 이름과 주체 이름의 정적 매핑만 지원하는 것으로 보이며 이는 확장성이 좋지 않습니다.
고쳐 쓰다
pam_krb5
최신 버전의 모듈도 alt_auth_map
옵션 을 지원하는 것 같습니다.정확히당신은 무엇을 원합니까? 즉 /etc/pam.d/sudo
, 에서는 다음을 수행할 수 있습니다.
auth required pam_krb5.so alt_auth_map=%s/sudo only_alt_auth
... sudo
이제 <username>/sudo
인증을 위해 항상 주체를 사용합니다.
이 버전은 pam-krb5
Ubuntu와 함께 제공되지만 아마도 큰 문제 없이 rpm을 빌드하고 시스템에 설치할 수 있을 것입니다.