- 목표 : 리눅스 서버에서 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 레코드를 등록할 수 없음을 의미합니다.
----------------------------------------------------------------------------------------------------------
- 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에 박혀있는걸로 보임.
'OS 기술 > Linux' 카테고리의 다른 글
리눅스(우분투) AD JOIN 스크립트 (06) - ADJOIN (0) | 2023.03.03 |
---|---|
리눅스(우분투) AD JOIN 테스트 (05) - sssd 이용 (0) | 2023.03.03 |
리눅스(우분투) AD JOIN 테스트 (03) - AD클라이언트 구성 테스트 (0) | 2023.02.14 |
리눅스(우분투) AD JOIN 테스트 (02) - AD서버 구성 (0) | 2023.02.10 |
리눅스(우분투) AD JOIN 테스트 (01) - AD구성 환경 및 참고URL (0) | 2023.01.31 |