OS 기술/Linux

리눅스(우분투) AD JOIN 테스트 (04) - winbind 이용

DongT 2023. 2. 15. 17:33
728x90
반응형

- 목표 : 리눅스 서버에서 AD Join하여 AD user로 로그인
- 사전구성 
  1) AD DC 서버 : ADsvr01(10.0.2.7)
  2) AD에 사용자 생성 : Linuser02
  3) 도메인명 : dong.do

 

============================================================

1. AD Join을 위한 패키지 설치
  a. 설치여부 확인
  - 명령어 : dpkg -l | egrep "samba|krb5|winbind"

 b. (참고) 패키지 설명
 - samba : Windows와 Linux 연동하는 서비스
 - krb5 : 인증을 위한 kerberos 보안 서비스
 - winbind : Windows와 계정연동을 위한 서비스 (Linux에 계정생성 지원)

 c. Samba 설치 
 - 명령어 : sudo apt-get install samba 
 - 설치시 samba 관련 패키지, 의존성 패키지 모두 함께 설치되는것 확인

 d. Krb5-config 패키지 설치
 - 명령어 : sudo apt-get krb5-config
 - Kerberos 설정을 위한 패키지 설치

 - 아래와 같이 krb5 설정값 입력하는 화면이 나옴
 - realm 지정 : 사용할 도메인명을 대문자로 입력

 - AD DC 서버 입력 : kerberos server 구성

 - AD DC 서버 입력 : Administrator server 구성

 - 설치된 패키지 확인

 

 e. krb5-user 패키지  설치
 - 명령어 : sudo apt-get install krb5-user
 - Kerberos로 인증티켓 받을 수 있는 패키지

 f. Winbind 패키지 설치
 - 명령어 : sudo apt-get install winbind
 - 명령어 : sudo apt-get install libpam-winbind
 - 명령어 : sudo apt-get install libnss-winbind

 - libnss-winbind 설치 중 오류 메시지 발생 (오류 없이 잘 될 수도 있음)

 - sudo apt-get update 후 정상 설치 확인

 

 

============================================================

2. 설정
 a. Pam 인증 설정
 - 명령어 : pam-auth-update
 - PAM 인증에 대한 설정

 - 아래와 같이 PAM 설정화면 나옴
 - 기존 설정 중 Create home directory on login 추가 : 신규 계정으로 로그인시 홈디렉토리 자동 생성
 - 방향키로 이동, 스페이스바로 선택, 탭으로 확인 이동

 

 b. nsswitch.conf 설정
 - 명령어 : sudo vi /etc/nsswitch.conf
 - nsswitch란 :  passwd, group 등의 정보를 얻기위해 참조하는 매개체 찾는 순서 설정 
 - 아래와 같이 설정 추가  
  passwd :  compat winbind
  group : compat winbind
  shadow : compat winbind
  gshadow : files

 c. resolv.conf 설정
 - 일반적으로 /etc/resolv.conf만 수정하면 되지만, 재부팅 후 원복되는 상황이 확인됨
 - resolvconf 패키지 설치하여 설정함
 - 명령어 : sudo apt-get install resolvconf

- /etc/resolvconf/resolv.conf.d/head 파일에 설정값 넣기
  head가 아니라 다른파일(tail)에 넣어도 상관없음

 - rsolvconf 서비스 재시작 enabled 설정 확인

 - 이제 재부팅해도 /etc/resolv.conf 설정값 그대로 존재함

 - DNS server 정상 적용됬는지 확인

 

d. hosts 파일 설정
 - /etc/hosts 파일에 AD서버 및 도메인 설정 등록

 - 만약 hosts 파일에 AD서버 등록을 안하면 kerberos인증시 아래와 같은 오류를 보게됨 
  (다른 이유로 오류 메시지 발생할 수도 있음)
 - 오류메시지 : while getting initial credentials

 

 e. samba 설정
 - /etc/samba/smb.conf
 - 기존에 설정된 내용 중 중복되는건 주석처리 또는 지우고 아래 내용 입력해야함 
 - 저 중에서 최소로 필요한 설정만 간추릴 필요 있을듯

 - smbd 서비스 재시작
  (재시작 잘 안되면 설정파일 오타 있는지 확인)

 

 f. kerberos 설정
 - /etc/krb5.conf 파일 수정
 - krb-conf 설치시에 잘 입력했으면 대부분 입력되어있음
 - 도메인명은 대문자 확인
 - 기존에 설정된 내용 중 중복되는건 주석처리 또는 지우고 아래 내용 입력해야함

 

 

 

============================================================

 

3. kerberos 인증

 - AD서버에서 기존에 생성한 유저 확인
  (AD서버에 등록한 유저로 로그인하는것 잊지말것)

 - 접속할 계정으로 kerberos 인증 티켓 할당

 - 설정파일에 소문자 또는 티켓할당시 소문자로 입력하면 오류남

 - kinit  명령어가 없다고 하는경우 안내해준 명령어로 설치하면 됨
 - 명령어 : sudo apt-get install krb5-user

 - 계정 패스워드 정책에 따라 변경하라고 나올 수 있음
 - 확인 명령어 : klist

 

 

============================================================

 

4. AD에 연결
 a. keytab 생성 
 - AD 관리자 계정에 연결하여 AD 연동키 생성
 - 이거 굳이 안해도 AD Join은 됨

 b. Device를 AD에 join
 - 명령어 : sudo net ads join -U sysadmin

 - 잘 안되면 hostname, hosts 다시 확인

 

----------------------------------------------------------------------------------------------------------

<참고>

IP 주소를 지정하지 않은 경우/etc/hostsfile, 인스턴스를 도메인에 조인하는 동안 다음 DNS 오류가 나타날 수 있습니다. :

No DNS domain configured for linux-instance. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER

이 오류는 조인이 성공했지만 [net ads] 명령이 DNS에 DNS 레코드를 등록할 수 없음을 의미합니다.

 

출처: <https://docs.aws.amazon.com/ko_kr/directoryservice/latest/admin-guide/join_linux_instance_winbind.html>

----------------------------------------------------------------------------------------------------------

 

 - Device AD 등록된 확인

 c. AD계정, 그룹이 조회 되는지 확인
 - 전체 계정, 그룹 조회

 - 리눅스서버에서 계정의 uid 할당되었는지 확인 (samba 설정에 있는것)

 - 계정 접속시 홈디렉토리 자동 생성 (samba 설정에 있는것)

 

 

============================================================

 

5. 추가 테스트 및 오류 트러블슈팅
 a. AD에서 유저 생성시 적용 테스트
 - AD에서 유저 생성하면

 - 잠시 유저 추가되는것 확인

 - 로그인시 홈디렉토리 자동 생성확인

 - uid 부여받음

 b. ssh 접속시 그냥 끊김 확인 (su로 스위칭해도 그냥 끊기는듯)
 - AD계정으로 로그인시 그냥 끊김. 시그널은 정상 종료 시그널로 보임.
 - AD로그인시 시그널 확인 (자동 끊기는 경우)

 

 - 로컬계정 로그인 종료시 (정상으로 연결 끊는 경우)

 - 종료 시그널은 동일함. 강제로 끊어지는게 아니라 종료명령에 의해 끊어지는것으로 보임.
 - /etc/samba/smb.conf 의 설정 내용 다시 확인 및 수정

 c. AD join시 오류 메시지
 - 확인중..

 d. 도메인의 유저 조회 안되는 현상
 - 조회가 안됨
 - 오류메시지 : WBC_ERR_DOMAIN_NOT_FOUND

 - winbind 서비스 재시작 후 정상 조회 확인
 - 명령어 : sudo systemctl restart winbind

 e. 도메인 유저 로그인 또는 확인시 UID가 차례대로 부여되는것으로 보임
 - 문제점 : 다른 서버에서 같은 이름의 계정으로 접속하면 UID가 다를 수 있을수도?

 - 이거는 Ubuntu 하나 만들어서 테스트. 위와는 반대로 linuser01 먼저 조회
  기존에 AD연결한 서버는 lin02(uid 10000), linuser01(uid 10001)
  이후에 AD연결한 서버는 linuser01(uid 10000), lin02(uid 10001)

 - 각 서버마다 같은 계정이라도 uid가 다르게 적용됨
 - NAS같이 공동으로 사용하는 공간이 있다면 혼선을 초래할 수 있음

 

 f. AD서버 Shutdown 후 AD계정 로그인 시도시 메시지
 - No logon servers

그래도 uid, 계정정보는 남아있음. 이건 OS 박혀있는걸로 보임.

 

728x90