일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스프링 빈
- 반복문
- 리눅스마스터 3과목
- 문자열
- Kotlin
- Linux
- Memoir
- 코테
- 명령어
- JavaScript
- 월간코드챌린지
- 리눅스
- 코딩테스트
- 백준 java
- 프로그래머스
- 고잉버스
- java 백준 1차원 배열
- 리눅스마스터1급
- 리눅스마스터 1급 정리
- toCharArray
- map
- 개발자 회고록
- 연습문제
- 카카오
- 백준 javascript
- 자바스크립트 코딩의 기술
- 자바
- 스프링 컨테이너
- GoingBus
- Java
- Today
- Total
hoon's bLog
네트워크 및 서비스의 활용 | 네트워크 서비스 2 본문
인증 관련 서비스
인증 관련 서비스의 이해
인증의 개요
- 하나의 서버에 사용자 관련 정보를 저장하고, 나머지 다수의 다른 서버에 사용자, 암호, 그룹 정보 등을 제공하는 서비스를 말함
- NIS, LDAP, 액티브 디렉터리(윈도우용)
NIS(Network Information Service)의 개요
- Sun Microsystems사에서 개발
- 네트워크 기반으로 여러 가지 정보를 제공해 주는 서비스
- 하나의 서버에 등록된 사용자 계정, 암호, 그룹 정보 등을 공유하여 다른 시스템에 제공하는 서비스
- 초기에는 YP라는 이름으로 출시가 되어 관련 명령어들이 yp로 시작하는 계기가 됨
- 보안을 강화하고, 확장성과 유연성을 높인 NIS+를 발표
- NIS+는 RPC(Remote Procedure Call)에서 데이터 암호화 및 인증, 운영 중에 권한 설정, 복제 등을 지원
LDAP(Lghtweight Directory Access Protocol)의 개요
- x.500 Directory Access Protocol(DAP) 기반으로 만들어진 디렉터리 데이터베이스에 접속하기 위한 통신 규약
- IP 프로토콜 기반으로 사용자, 시스템, 네트워크, 서비스 정보 등의 디렉터리 정보를 공유할 수 있음
- 일반적으로 RDBMS에 비해서 검색 속도가 빠름. 그러나 자주 변경되는 정보인 경우에는 RDBMS를 사용하는 것이 좋음
- 하나 이상의 속성을 가진 객체로 구성되고, 그 객체를 엔트리라고 부르는데 RDBMS의 레코드라고 이해하면 쉬움.
- 각각의 엔트리는 DIT(Directory Information Tree)라 부르는 트리 구조에 의해 조직화되고, 이 조직내에서 고유한 식별자인 DN(Distinguished Name)을 사용하고, DN은 상대 고유 이름(RDN: Relative Distinguished Name)으로 구성.
- DN은 파일 시스템의 절대 경로처럼 해당 엔트리의 이름에 상위 엔트리 이름을 붙여서 식별하고, RDN은 상대 경로처럼 상대 DN을 의미함.
- 예를 들면, /home/posein/joon.txt가 DN, joon.txt는 RDN.
인증 관련 서버 관리
NIS 이용하기
NIS 구성을 위한 작업
- RPC 관련 데몬 실행하기
$ /etc/rc.d/init.d/rpcbind start - /etc/hosts 파일 수정
NIS 서버 및 클라이언트 모두 각각의 IP 주소 및 도메인을 등록하여 DNS 조회 없이 더욱 빠르게 이용
$ vi /etc/hosts
203.247.40.248 nis.test.co.kr
203.247.40.246 nis_client.test.co.kr
NIS 서버 구성하기
NIS 서버용 패키지명은 ypserv.
$ yum install ypserv
ypserv 패키지 설치 시 NIS 서버 운영에 필요한 3개의 데몬 스크립트가 설치됨
- ypserv : 주 데몬 스크립트
- yppasswdd : NIS 클라이언트에서 패스워드 시에 적용되도록 해주는 데몬 스크립트
- ypxfrd : NIS 서버와 NIS 클라이언트 간의 맵핑 속도를 높여줌
- NIS 도메인명 설정
nisdomainname이라는 명령을 사용하여 지정해도 되지만, 계속 사용시 부팅시에 적용되도록 /etc/sysconfig/network 파일에 등록
$ nisdomainname test.co.kr
vi /etc/sysconfig/network
NISDOMAIN=test.co.kr - 계정 생성
$ useradd alin
$ passwd alin - 관련 데몬 시작하기
ypserc, yppasswdd, ypxfrd를 구동 - NIS 서버 작동 확인
$ ps aux | grep yp - 관련 정보 갱신
$ cd /var/yp; make
$ make -C /var/yp
NIS 클라이언트 구성하기
ypbind와 yp-tools라는 패키지 설치되어 있어야 함
$ yum install ypbind, yp-tools
- NIS 도메인명 설정(서버와 같음)
- NIS 서버와 nisdomain 설정
/etc/yp.conf 파일에 NIS 서버 및 도메인명을 지정
$ vi /etc/yp.conf
server nis.test.co.kr
ypserver nis.test.co.kr
domain test.co.kr - 관련 데몬 시작하기
$ service ypbind start
NIS 클라이언트에서 사용하기
- 인증 변경
setup 명령 → 인증 설정 → 도메인, 서버를 지정 - 로그인 해보기
NIS 클라이언트에서 telnet localhost 명령을 내려서 서버에 생성된 계정으로 로그인
NIS 관련 명령어
nisdomainname
- NIS 도메인명을 보여주거나 설정하는 명령
[사용법]
$ nisdomainname [도메인명]
ypwhich
- NIS 클라이언트에서 사용하는 명령어. NIS 서버명과 관련 맵 파일을 보여줌
[사용법]
$ ypwhich [option]
옵션
- -m : NIS 서버의 맵 파일을 출력
ypcat
- NIS 클라이언트에서 사용하는 명령어. NIS 서버의 데이터베이스라고 할 수 있는 맵 파일의 내용을 확인
[사용법]
$ypcat 맵_파일명
yptest
- NIS 클라이언트에서 관련 설정을 테스트하는 명령. 도메인명, NIS 도메인명, 맵 파일 목록, 사용자 계정 정보 등을 출력.
yppasswd
- NIS 클라이언트에서 NIS 서버에 등록된 사용자의 패스워드를 변경하는 명령.
ypchsh
- NIS 클라이언트에서 NIS 서버에 등록된 사용자의 셸을 변경
ypchfn
- NIS 클라이언트에서 NIS 서버에 등록된 사용자의 정보를 변경하는 명령
파일 관련 서비스
SAMBA 서버 관리
SAMBA의 개요
SAMBA 설치의 개요
- MS와 인텔이 윈도 시스템이 다른 시스템의 디스크나 프린터 등의 자원을 공유할 수 있도록 SMB(Server Message Block)이라는 프로토콜을 개발
- 삼바란 이 SMB를 이용하여 리눅스를 비롯한 유닉스 계열 운영체제와 윈도우 운영체제간의 자료 공유 및 하드웨어를 공유할 수 있도록 해줌.
- 현재 SMB는 유닉스와 윈도 환경을 동시에 지원하는 CIFS(Common Internet File System)으로 확장
- CIFS는 IETF(Internet Engineering Task Force)에 의해 인터넷 표준으로 제안, TCP/IP를 사용하며 NetBIOS 프로토콜을 지원, LanManager 기능도 제공
삼바의 구성
- GPL 기반의 공개 소프트웨어 및 자유 소프트웨어
- configure, make, make install을 이용.
- 레드헷 계열 리눅스에서는 rpm 패키지로 배포
삼바 관련 주요 RPM 패키지
- samba : 삼바 서버 패키지
- samba-common : 서버, 클라이언트에게 모두 필요. smb.conf, smbpasswd, testparm 등의 명령어 포함
- samba-client : 삼바 클라이언트 명령어. smbclient, smbtree 등
- samba-swat : 웹 기반으로 삼바를 제어. smb.conf의 주요 설정을 원격에서 제어. 901번 포트 사용.
데몬
- smbd : 파일과 프린터 공유. 사용자의 권한 부여 및 확인 등 사용자 인증
- nmbd : WINS(Windows Internet Name Server)를 담당하는 데몬. 클라이언트를 위해 NetBIOS nameserver를 지원, browsing(서비스 통지) 지원, 컴퓨터 이름과 IP 주소 연결 등의 역할 수행.
환경 설정 파일 : smb.conf
- 삼바 서버를 제어, 공유시킬 시스템 자원에 대한 다양한 설정
- /etc/samba 디렉터리 안에 존재
- win.ini와 비슷
- 'Global Setting' 영역과 'Share Definitions' 영역으로 나눌 수 있음.
- #, ;으로 시작하는 행 모두 주석이며, [ ]을 사용하는 행이 섹션을 정의하는 역할.
security 설정 주요 모드
- user : 사용자명과 패스워드로
- share : 사용자 인증 없이 접근
- server : 윈도우 NT 서버와 같이 다른 서버에 사용자명과 암호를 전달
- domain 또는 ads(Active Directory Server) : 윈도우의 도메인 컨트롤러에 전달하여 유효한 사용자 여부를 확인할 때 사용.
사용자 맵핑 파일
/etc/samba/smbuser 파일은 유닉스 계열 사용자 이름과 삼바 사용자 간의 이름을 매칭시키는 설정 파일. root는 administrator 및 admin으로 매칭, nobody는 guest, pcguest, smbguest로 매칭
관련 명령어
smbclient
리눅스 및 유닉스에서 사용하는 삼바 클라이언트 명령으로 윈도 서버로 접근 시 사용.
[사용법]
$ smbclient [option] 호스트명
옵션
- -L : 접속하려는 삼바 서버의 공유 디렉터리 정보를 출력
- -U : 삼바 서버에 접속할 때 사용자명 입력
- -M : 지정한 호스트명에 메시지를 전송할 때 사용.
smbstatus
삼바 서버에 사용하는 명령어로 클라이언트와 연결된 상태를 출력
testparm
삼바의 환경 설정 파일인 smb.conf의 설정 여부를 확인
[사용법]
$testparm [파일경로] [호스트명 IP 주소]
nmblookup
WINS 서버에 질의할 때 사용하는 명령.
[사용법]
$nmblookup [option]
옵션
- -U : 조회할 서버 이름 지정
- -R : 조회할 이름 지정
mount.cifs
CIFS 기반의 마운트 명령으로 보통 윈도우에 공유된 디렉터리를 마운트 할 때 사용. 'mount -t cifs'와 동일.
[사용법]
$mount.cfs //공유서버/디렉터리 /마운트할_디렉터리
smbpasswd
삼바 사용자를 생성 및 삭제 패스워드 변경, 활성 및 비활성화 등 관련 정보를 변경하는 명령.
[사용법]
$ smbpasswd [option] [사용자명]
옵션
- -a : 삼바 사용자를 추가
- -x : 제거
- -d : 일시적 비활성화
- -e : 활성화
- -n : 패스워드 없이 로그인이 가능하도록 할 때. smb.conf에 'null passwords = yes'라고 추가 설정
pdbedit
삼바 사용자의 데이터베이스 파일인 SAM database를 관리
[사용법]
$pdbedit [option] 사용자명
옵션
- -a : 삼바 사용자 추가시 사용
- -L : 등록된 삼바 사용자의 간단한 목록을 출력
- -v : 등록된 삼바 사용자의 정보를 자세히 출력
NFS 서버 관리
NFS(Network File System)의 개요
- Sun Microsystems사에서 개발한 프로토콜로 TCP/IP 네트워크상에서 다른 컴퓨터의 파일 시스템을 마운트하고 공유
- RPC 기반으로 작동. rpcbind 데몬을 먼저 실행
- 보안에 미약
NFS 관련 주요 RPM 패키지
- rpcbind : RPC 기반 연결을 위한 패키지. rpcbind, rpcinfo 등을 포함
- nfs-utils : NFS 서버 관련 패키지로 관련 데몬 및 명령어를 포함
NFS 서버의 설정
접근 제어는 /etc/exports에서 설정함.
환경 설정 파일 : /etc/exports
[설정법]
공유할 디렉터리 허가할 호스트(옵션) [허가할_호스트(옵션)…]
옵션
- ro : 읽기 전용
- rw : 읽기 및 쓰기
- root_squash : NFS 클라이언트에서 접근하는 root 사용자를 배제하고 서버상의 nobody로 매핑
- no_root_squash : 위 반대
- no_subtree_check : 하위 디렉터리를 검사하지 못하도록
- all_squash : 모든 사용자의 권한을 nobody로 매핑
- secure : 포트 번호가 1024 이하의 요청에만 허가
- async : 데이터 변경에 대비해 비동기적 처리를 할 때
- anongid : 접근하는 그룹 권한을 지정하는 gid로 매핑
NFS 클라이언트에서 사용하기
mount 명령을 이용하여 NFS 서버의 파일 시스템을 이용. 부팅 시 마운트 하여 사용 시 /etc/fstab 파일에 등록
mount 및 mount.nfs 명령 이용하기
[사용 예]
$ mount -t nfs 192.168.5.13:/nfsdata /mnt
$ mount.nfs 192.168.5.13:/nfsdata /mnt
/etc/fstab 등록하기
[설정 예]
$ vi /etc/fstab
192.168.5.13:/nfsdata /mnt nfs timeo-15,soft,retrans=3 0 0
관련명령어
rpcinfo
rpc 관련 정보를 출력
[사용법]
$ rpcinfo [option] 호스트명
옵션
- -p : 등록된 rpc 프로그램 정보
- -s : 관련 정보 간결하게 출력
exportfs
NFS 서버에 export 된 디렉터리 정보를 관리해 주는 명령
[사용법]
$ exportfs [option] 호스트명
옵션
- -v : 설정된 내용을 자세히 출력
- -r : /etc/exports에 설정된 내용을 다시 읽어 들임
- -a : 한 번에 export 된 디렉터리를 호출할 때 사용
- -u : 익스포트된 하나 이상의 디렉터리를 해제
showmount
NFS 서버의 마운트 관련 정보를 출력. NFS 클라이언트에서 NFS 서버에 익스포트된 정보를 확인할 때도 사용.
[사용법]
$ showmount [option] 호스트명
옵션
- -a : '호스트명:디렉터리' 형태로 출력
- -e [호스트명] : 익스포트된 리스트를 보여줌
- -d : NFS 클라이언트에 의해 마운트된 디렉터리 목록 정보를 출력
nfsstat
NFS 관련 상태 정보를 출력. NFS 서버와 클라이언트에서 모두 사용 가능
[사용법]
$ nfsstat [option]
옵션
- -c : NFS 클라이언트 관련 정보만 출력
- -s : NFS 서버 관련 정보만 출력
FTP 서버 관리
FTP(File Transfer Protocol)의 개요
- TCP/IP 프로토콜 기반으로 서버와 클라이언트 사이에 파일을 주고받기 위한 프로토콜
- Wu-ftpd, Proftpd, vsftpd 등의 프로그램이 있음
- Wu-ftpd는 현재 개발이 중단
- Proftpd는 리눅스, 유닉스, 윈도우까지 지원. Wu-ftpd에 비해 기능이 많아지고 보안성이 강화. 현재 vsftpd와 함께 가장 많이 사용하는 ftp 서버.
- vsftpd(Very Secure ftp daemon)는 간결하고 안전하며 처리 속도도 매우 빠름.
vsftpd 설정하기
vsftpd 관련 파일
- /etc/vsftpd/vsftpd.conf : vsftpd의 환경 설정 파일
- /etc/rc.d/init.d/vsftpd : 데몬 스크립트
- /etc/pam.d/vsftpd : PAM 관련 설정 파일
- /etc/vsftpd/ftpusers : PAM 관련 설정 파일에 사용되는 파일기본 설정이 접근 거부될 사용자 목록
- /etc/vsftpd/user_list : 허가 또는 거부 목록 파일로 사용. 기본은 거부 목록 파일로 사용
- /etc/logrotatd.d/vsftpd : vsftpd의 로그 로테이트 관련 파일
'IT > Linux Master 1급' 카테고리의 다른 글
네트워크 및 서비스의 활용 | 네트워크 서비스 4 (3) | 2023.03.12 |
---|---|
네트워크 및 서비스의 활용 | 네트워크 서비스 3 (2) | 2023.03.11 |
네트워크 및 서비스의 활용 | 네트워크 서비스 1 (1) | 2023.03.10 |
리눅스 시스템관리 | 시스템 및 보안 관리 (1) | 2023.03.09 |
리눅스 시스템관리 | 장치관리 (0) | 2023.03.08 |