hoon's bLog

네트워크 및 서비스의 활용 | 네트워크 서비스 2 본문

IT/Linux Master 1급

네트워크 및 서비스의 활용 | 네트워크 서비스 2

개발한기발자 2023. 3. 10. 12:54
반응형

인증 관련 서비스

인증 관련 서비스의 이해

인증의 개요

  • 하나의 서버에 사용자 관련 정보를 저장하고, 나머지 다수의 다른 서버에 사용자, 암호, 그룹 정보 등을 제공하는 서비스를 말함
  • 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 구성을 위한 작업

  1. RPC 관련 데몬 실행하기
    $ /etc/rc.d/init.d/rpcbind start
  2. /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 클라이언트 간의 맵핑 속도를 높여줌
  1. NIS 도메인명 설정
    nisdomainname이라는 명령을 사용하여 지정해도 되지만, 계속 사용시 부팅시에 적용되도록 /etc/sysconfig/network 파일에 등록
    $ nisdomainname test.co.kr
    vi /etc/sysconfig/network
    NISDOMAIN=test.co.kr
  2. 계정 생성
    $ useradd alin
    $ passwd alin
  3. 관련 데몬 시작하기
    ypserc, yppasswdd, ypxfrd를 구동
  4. NIS 서버 작동 확인
    $ ps aux | grep yp
  5. 관련 정보 갱신
    $ cd /var/yp; make
    $ make -C /var/yp

NIS 클라이언트 구성하기

ypbind와 yp-tools라는 패키지 설치되어 있어야 함

$ yum install ypbind, yp-tools

  1. NIS 도메인명 설정(서버와 같음)
  2. NIS 서버와 nisdomain 설정
    /etc/yp.conf 파일에 NIS 서버 및 도메인명을 지정
    $ vi /etc/yp.conf
    server nis.test.co.kr
    ypserver nis.test.co.kr
    domain test.co.kr
  3. 관련 데몬 시작하기
    $ service ypbind start

NIS 클라이언트에서 사용하기

  1. 인증 변경
    setup 명령 → 인증 설정 → 도메인, 서버를 지정
  2. 로그인 해보기
    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의 로그 로테이트 관련 파일
 
728x90
반응형