[리눅스마스터 1급] 이기적 이론서 12회차 정리 - 인증 관련 서비스
🏁 이기적 이론서 학습 범위
- PART 03 네트워크 및 서비스의 활용
- CHAPTER 01 네트워크 서비스 (SECTION 02 인증 관련 서비스)
인증 관련 서비스
☑️ 인증 관련 서비스
리눅스 인증
- 인증 인가의 개념
- 리눅스 시스템의 인증 : 시스템을 사용하는 클라이언트가 등록된 사용자인지 확인하는 것
- 리눅스 시스템의 인가 : 인가된 클라이언트에게 권한을 부여하는 것
- 어떤 권한인지에 따라 사용할 수 있는 서비스 또는 자원이 달라진다.
- 리눅스의 기본 인증 방법
- 사용자 계정을
/etc/passwd
,/etc/shadow
등에 등록한 후, 사용자가 로그인 시 입력한 아이디와 패스워드를 등록된 정보와 비교하여 인증을 수행한다.
- 사용자 계정을
- 네트워크 기반 인증 서비스의 필요성
- 리눅스의 기본 인증 방법은 다수의 시스템 운영 시 사용자 등록, 패스워드 관리 등에서 어려움이 따른다.
- 네트워크 기반 인증은 이러한 불편을 해결하기 위해 서비스는 인증에 필요한 정보를 인증 서버에 등록한 후, 필요한 시스템에 인증 관련 정보를 제공한다.
- 대표적으로 NIS(Network Information Service)와 LDAP(Lightweight Directory Access Protocol)가 있다.
NIS와 LDAP 서비스
- NIS 서비스의 주요 특징
- 호스트명, 사용자명, 사용자 암호 등과 같은 시스템 정보를 검색하고 관리하기 위해 썬(Sun)사가 개발한 서비스로, RPC(Remote Procedure Call)을 사용한다.
- NIS 서버에 등록된 사용자 계정, 암호, 그룹 정보 등을 네트워크를 이용해 다른 시스템에게 제공한다.
- 여러 호스트들이 동일한 계정 정보를 쓸 수 있다.
- telnet, samba, ssh 등의 서비스에서 사용자 인증을 할 수 있다.
- LDAP 서비스의 주요 특징
- 디렉터리 서비스를 조회하고 수정하는 TCP 기반 응용 프로토콜
- X.500 DAP(Directory Access Protocol)을 기반으로 하고, 컴퓨팅 자원을 많이 소비하는 단점을 개선하고자 보다 경량화된 모델로 개발되었다.
- RDBMS에 비해 빠른 검색 속도를 제공하지만 자주 변경되는 정보의 관리에는 다소 불편하다.
- 여러 엔트리가 트리 구조로 구성되어 있다.
- 각 엔트리는 다수의 속성으로 구성되고, 각 속성은
이름, 값
의 형식을 가진다.
- 각 엔트리는 다수의 속성으로 구성되고, 각 속성은
LDAP의 주요 속성
속성 설명 속성 설명 c 국가 이름 ou 부서 이름 st 주 이름(우리나라는 도) cn 전체 이름(이름 + 성) l 도시 혹은 지역 sn 성 street 도로명 주소 givenName 이름 dn 조직 내 고유 식별자 dc 도메인 네임 요소 rdn 상대(relative) DN mail 이메일 주소 o 조직(회사) 이름 telephoneNumber 전화번호 - 각 엔트리는 DIT(Directory Information Tree)라는 트리 구조로 조직화되며, DN(Distinguished Name)라는 고유 식별자로 지칭된다.
- DN은 RDN(Relative Distinguished Name)으로 구성된다.
- ex. 디렉터리 파일의 경우
/home/master/whoami.md
와 같은 전체 경로를 DN이라 한다.whoami.md
가 RDN이고/home/master
가 상위 엔트리의 DN이다.
- LDAP에 새로운 엔트리를 생성할 때 특정한 objectClass에 속하도록 설정하면 해당 objectClass의 속성을 상속받는다.
- objectClass : 국가, 조직과 같이 동일한 설정을 갖는 그룹
- 마이크로소프트의 Active Directory는 LDAP를 기반으로 인증 서비스를 제공한다.
☑️ NIS 서비스 사용
NIS 서버 설치와 구성
- NIS 서비스 구성을 위한 사전 작업
RPC 데몬 구동
# NIS는 RPC를 이용하므로 RPC 데몬을 구동시킨다. # 서버와 클라이언트 호스트 모두에서 RPC를 구동해야 한다. $ systemctl start rpcbind $ systemctl enable rpcbind # 부팅 시 항상 rpcbind가 실행되도록 함
실습을 위해
/etc/hosts
파일에 IP와 도메인을 등록한다.- IP 주소는
id addr
로 확인할 수 잇다. /etc/hosts
파일 이용 시 외부 DNS 질의(query) 없이 도메인과 IP 매핑을 사용할 수 있다.
$ vi /etc/hosts $ systemctl restart NetworkManager # /etc/hosts 파일 수정 후 network 서비스 재시작 (서버, 클라이언트에 모두 적용)
- IP 주소는
- NIS 서버 설치
NIS 서버의 패키지 설치
$ yum -y install ypserv # NIS 서버의 패키지 이름은 ypserv로, 패키지를 설치한다. $ ls /usr/lib/systemd/system/ | grep ^yp # /usr/lib/systemd/system에 NIS 관련 서비스 파일들이 설치됨
NIS 관련 서비스 파일의 역할
서비스 파일 설명 ypserv.service NIS 서버의 메인 데몬을 구동한다. yppasswdd.service NIS 사용자 패스워드를 관리한다. ypxtrd.service NIS 서버와 NIS 클라이언트 간의 맵핑 속도를 높여준다.
NIS 도메인명 설정
$ nisdomainname youngjin@nistest.com # nisdomainname을 통해 NIS 도메인명 설정 OR $ vi /etc/sysconfig/network # /etc/sysconfig/network 파일에 수동으로 NIS 도메인명 등록 (재부팅 시 자동으로 적용 가능) $ nisdomainname # nisdomainname을 통해 설정한 도메인명 확인
NIS 사용자 계정 생성
$ useradd nisuser # NIS 클라이언트에서 사용할 계정 생성 $ passwd nisuser
NIS 관련 데몬 실행
# ypserv, yppasswdd, ypxfrd를 시작 $ systemctl start ypserv.service yppasswdd.service ypxfrd.service $ ps aux | grep yp # 동작 상태 확인
- NIS 정보 갱신 및 적용
사용자 추가 등 NIS 관련 설정 후 NIS 정보를 갱신해야 한다.
$ cd /var/yp # /var/yp 디렉터리로 이동 # NIS 정보 갱신 $ make OR $ make -c /var/yp
make
완료시/var/yp
디렉터리에 NIS 서버 이름의 디렉터리가 만들어지고 NIS 관련 정보를 갖고 있는 맵(Map) 파일들이 생성된다.- 새로운 사용자 추가 시 해당 맵 파일도 다시 갱신해야 한다.
$ ls Makefile youngjin-nistest.com $ ls youngjin-nistest.com/
NIS 관련 서비스를 재시작하여 설정한 것을 반영하고, 부팅 시 자동으로 시작되도록 한다.
$ systemctl restart ypserv.service yppasswdd.service ypxfrd.service # NIS 관련 서비스 재시작 $ systemctl enable ypserv.service yppasswdd.service ypxfrd.service # 부팅 시 자동으로 시작되도록 설정
NIS 클라이언트 설치와 구성
- NIS 클라이언트 구성을 위한 사전 작업
- NIS 서비스 설치의 준비과정과 동일하다.
- RPC 데몬을 구동하고 hosts 파일에 테스트를 위한 도메인과 IP 매핑을 등록한다.
- NIS 클라이언트 설치
ypbind는 바인드 정보를 관리하며, NIS 서버와 클라이언트를 연결한다.
$ yum -y install ypbind yp-tools # yum을 통해 NIS 클라이언트 패키지인 ypbind와 yp-tools 설치
NIS 도메인명 설정
$ nisdomainname youngjin-nistest.com # nisdomainname을 통해 NIS 도메인명 설정 OR $ vi /etc/sysconfig/network # /etc/sysconfig/network 파일에 NIS 도메인명 수동 등록 (재부팅 시 자동 적용) $ nisdomainname # nisdomainname을 통해 설정한 도메인명 확인
- NIS 서비스(서버)와 도메인 정보 설정
/etc/yp.conf
파일에 NIS 서비스(서버)와 도메인 정보를 설정한다.$ vi /etc/yp.conf
NIS 클라이언트 데몬인 ypbind 시작
$ systemctl start ypbind.service $ ps aux | grep ypbind $ systemctl enable ypbind.service
authconfig 명령을 이용한 클라이언트 설정
$ authconfig --enables --nisdomain=youngjin-nistest.com \
- NIS의 계정 정보를 이용한 로그온
- SSH 를 이용하여 client 호스트에 로그온한다.
계정 아이디와 패스워드는 NIS 서버에 등록한 것(nisuser)를 이용한다.
$ ssh -l nisuser 192.168.45.216
NIS 관련 주요 명령어
주요 명령어 | 설명 |
---|---|
nisdomainname | - NIS 도메인 이름을 설정하거나 설정된 이름 표시 - ex. nisdomainname youngjin-nistest.com |
ypwhich | - NIS를 이용하여 로그인한 후, 인증에 사용한 NIS 서버를 조회 - ex. ypwhich - -m 옵션: NIS 서버의 맵(map) 정보 출력 - ex. ypwhich -m |
ypcat | - NIS 서버의 구성파일(맵 파일)의 내용 확인 - ex. ypcat hosts.byname - ex. ypcat passwd.byname - ypcat의 대상이 되는 파일명에서 .byname 생략 가능 |
yptest | - NIS 클라이언트에서 NIS의 동작 및 설정 등을 확인하고 도메인명, 맵 파일 목록, 사용자 계정 정보 등을 출력 - ex. yptest |
yppasswd | - NIS 서버에 등록된 사용자 비밀번호를 변경 - ex. yppasswd nisuser |
ypchsh | - NIS 서버에 등록된 사용자의 셸(shell)을 변경 - ex. ypchsh nisuser |
ypchfn | - NIS 서버에 등록된 사용자 정보 변경 - ex. ypchfn nisuser |