블로그 이미지
송시혁

calendar

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

Notice

Tag

Recent Post

Recent Comment

Recent Trackback

Archive

2018. 8. 25. 22:09 리눅스 마스터1급


<samba 서버 관리>


●  SMB(Server Message Block)

MS와 인넽은 SMB라는 프로토콜을 만들어 디스트나 프린터를 공유할 수 있도록 개발

리눅스와 유닉스 계열 운영체제와 윈도우 운영체제간의 자료 공유 및 하드웨어를 

 공유할 수 있도록 해준다.

 

●   CIFS(Common Internet File System)

 => 유닉스와 윈도환경을 동시에 지원하는 시스템 



RPM 패키지 


samba

삼바 데몬, 서버 라이브러리, 실행 데몬 스크립트 등이 포함된 패키지 



samba-common 

smb.conf,smbpasswd, testparam등이 포함된 패키지.

서버와 클라이언트 모두 필요하다


samba-client

삼바 클라이언트 명령어가 포함된 패키지. smbclient, smbtree등 


samba-swat 

swat(Samba Web Administratjon)은 웹 기반으로 살바를 제어할 수 있는 

패키지로 smb.conf의 주요 설정을 원격에서 제어할 수 있다.

901번 포트를 사용하므로 http://localhost:901 형태로 접근해서 제어한다.


<삼바데몬 >


●   smbd

파일과 프린터 공유, 사용자의 권한 부여 및 확인 등 사용자 인증을 담당한다.


●   nmbd 

담당하는 데몬으로 클라이언트를 위해 NetBOS nameserver를 지원,

browsing 지원, 컴퓨터 이름과 ip주소 연결등이 역할을 수행한다.     



smb.conf 


[global]  삼바 서버의 전체적인 환경 설정를 담당하는 섹션 

[home]   각 사용자들이 자신의 홈 디렉터리로 접근할 때의 권한을 설정하는 섹션 

[printers] 프린터 관련 권한 세션 


●   workgroup = MYGROUP 

=> 윈도우 작업 그룹에 해당하는 항목으로 공유 그룹명 


●   server string = Samba server 

=> 서버에 대한 설명을 설정 


●   netbios name = MYSERVER

=> 윈도우에서 이름으로 접속할 때  관련 이름을 지정한다.


●   interfaces = lo eht0 192.168.1.0/24 192.168.2.0/24 

=> 네트워크 인터페이스별로 접근 제얼할 때 설정한다. 


●   host allow =127. 192.168.1. 192.168.14.

=> 삼바 서버에 접속을 허용할 호스트를 지정, EXCEPT라는 키워드와 와일드 문자 

     사용 가능. 네트워크/서브네 마스트 형태도 가능 

 

●   hosts allow 192.168.1.0 EXCEPT 192.168.1.220 192.168.1.144 

=> 192.168.1.220, 192.168.1.144  제외한 192.168.1.0 대역대의 ip주소를 허용 


●   log file = /var/log/samba/log.%m 

=> 삼바 서버에 좁속하는 호스트의 로그를 기록하는 파일을 지정한다.


●   max log size = 50 

=> 로그 파일의 최대 크기를 설정하는 부분으로 단위는 KB 0으로 설정시 크기의 제한 없음 


●   securtiy = user 

=> 삼버 서버 접속시 인증 모드를 설정하는 항목으로 주요 모드는 다음과 같다. 


uesr 삼바 서버에 접속할 때 사용자명과 패스워드를 입력해야 한다. 

share                 삼바 서버에 사용자 인증 없이 접근할 때 사용 

server                윈도우 NT 서버와 같이 다른 서버에 사용자명과 암호를 전달하여 인증할 때 사용 

domain 또는 ads  윈도우의 도메인 컨트롤러 (Domain Controller)에 전달하여 유효한 사용자 여부를 

                        확인할 때 사용한다. ads는 Activity Directory Server를 사용하는 경우에 지정한다. 


● passdb backend = tdbsam

securtiy = user 일때, 사용자의 패스워드를 설정하는 방식 


< share definitions의 주요 옵션 >


comment                    간단한 설명을 설정 

path                           공유 디렉터리의 경로를 설정   

read only                    공유 디렉터리를 읽기 전용으로 설정 

writalbe, write OK          공유 디렉터리를  쓰기를 가능하게 설정 

valid users                   공유 디렉터리를 이용할 수 있는 사용자를 지정 

wirte list                      공유 디렉터리에 접근 및 쓰기 권한을 행사할 수 있는 사용자를 지정한다. 

                                 그룹인 경우에는 @를 붙인다. 

public, guset ok           다른 사용자들이 이용할 수 있도록 설정한다.

browseable, browsable    공유 디렉터리의 리스트를 보여줄 때 설정한다. 

printable                         공유 디렉터리에 스풀 파일을 지정할 때 설정한다.   

create mask, create mode  파일을 설정할 때 허가권을 지정할 때 설정한다. 



● /etc/samba/smbuser 

=> 유닉스 계열 사용자 이름과 삼바 사용자간의 이륾을 매칭시키는 설정파일이다. 

    root는 administator 및 admin으로 매칭되고, nobody는 guest, pcguest, smbguest로 매칭된다.

●  smbclient 

=> 리눅스, 유닉스 클라이언트 명령어로 윈도 서버로 접근 할때 사용 

     \, / 모두 사용가능


주의점 

윈도우에서 NetBIOS 접근시 \\192.168.1.1 로 접속간으. 

리눅스에서는 smbclient 명령어 이용시 윈도우에 2배를 써야 한다. 

이것에 대한 설명은 다음과 같다.

\\\\192.168.12.22\\source

=> \는 호스명 앞에 4개(윈도우가 2개) 디렉터리 \\ 2개(윈도우1개) 


//192.168.12.22/source 

=> /를 사용하는 경우에 호스트명앞에는 //, 디렉터리앞에는 /개를 사용한다. 


※ 윈도우가 대소문자 구분하지 않으므로 리눅스도 대소문자 구분안함 


주요 옵션 

-L  접속하려는 삼바 서버의 공유 디렉터리 정보를 출력한다. 

-U 삼바 서버에 접속할 때 사용자명을 입력한다. 

-M 지정한 호스트명에 메시지를 전송할 때 사용한다. 명령을 입력하고 전송하려면 

     ctrl+d를 누른다. 


●  smbclient -L joon -U administator

=> joon이라는 호스트에 administator 계정으로 접근하여 공유된 목록된 확인한다. 


●  smbclient -L joon -U administator%1234 

=> joon이라는 호스트에 administarator 계정으로 접근하는데 패스워드는 1234이다. 


●  smbclient \\\\joon\\source -U administarator

=> joon이라는 호스트에 공유 디렉터리인 source에 administarator 계정으로 접근한다.


●  smbstatus 

삼바 서버에 사용하는 명령어로 클랑이언트와 연결된 상태를 출력한다.


●  testparam

=> 삼바의 환경 설정 파일인 smb.conf의 설정 여부를 확인한다.


●  testparam /etc/samba/smb.conf www 192.168.5.13 

=> IP주소가 192.168.5.13이고 호스트명이 www인 삼바 서버의 환경 설정 파일을 확인한다.


●  nmlookup [option]

=> WINS 서버에 질의할 때 사용하는 명령으로 DNS서버에 질의하는 nslookup 명령과 유사하다.


옵션 

-U 조회할 서버 이름을 지정한다.  

-R 조회할 이름을 지정한다. 


●  nmlookup -U samba.org -R IRIX#1B

=> samba.org라늕 서버에 IRIX 그룹의 1B라는 이름을 조회 


●  nmlblookup * 

=> 브로드캐스트 영역에 있는 모든 이름을 조회한다.


●  mount.cifs 

=> CIFS 기반의 마운트 명령으로 보통 윈도우에 공유된 디렉터리를 마운트할 때 사용한다. 

    mount -t cifs 명령과 동일하다.


●  mount.cifs //192.168.5.13/photo /mnt 

=> 192.168.5.13에 공유된 디렉터리인 photo를  /mnt로 마운트한다.




●  smbpasswd 

=> 삼바 사용자를 생성 및 삭제, 패스워드 변경, 활성 및 비활성화 등 관련 정보를 변경하는 명령어 


-a 삼바 사용자를 추가할 때 사용. 삼바 사용자는 리눅스 시스템에 존재하는 계정 

-x 삼바 사용자를 제거할 때 사용한다. 

-d 삼바 사용자를 일시적으로 비활성화할 때 사용한다. 

-e 삼바 사용자를 활성화할 때 사용한다. 

-n 패스워드 없이 로그인이 가능하도록 할 때 사용한다. smb.conf에 'null passwords=yes'

     추가로 설정해야 한다. 


pdbedit 

삼바 사용자의 데이터베이스 파일인 SAM database 를 관리해주는 명령어 


옵션 

-a 삼바 사용자를 추가할 때 사용한다. 삼바 사용자는 리눅스 시스템에 존재하는 계정 

-L 등록된 삼바 사용자의 간단한 목록을 출력한다. 

-v 등록된 삼바 사용자의 정보를 자세히 출력 


공유 정의 (share Definition)의 설정 예 

[www]

comment  = share directory 

path = /songsi 

public = yes 

write list = @songsi11


=> 

윈도우에서 접급할 때 폴더 이름은 www로 설정 

설명은 share directory 

모든 사용자가 이용 가능 

songsi11그룹에 속한 사용자만 파일 생성 및 삭제 가능 


p500 


<NIS(Network Information System)>

NIS는 하나의 서버에 등록된 사용자 계정, 암호, 그룹 정보 등을 공유하여 

다른 시스템에 제공하는 서비스 


yellow page라는 불렸으나 영국에서 등록된 상표여서 NIS로 변경 

그래서 yp로 명령어가 시작하는 계기가 됨. 


NIS의 보안을 강화, 확장성, 유연성을 높인 NIS+를 발표 

RPC(Remote Procedure Call)에서 데이터 암호화 및 인증, 운영 중에 관한 설정,

복제(replication) 등을 지원한다.


<LDAP(Lightweight Directory Access Protocol)의 개요> 

경량 디렉터리 접근 규약은 X.500 Directory Access Protocol, DAP 기반으로 

만들어진 디렉터리 데이터베이스에 접속하기 위한 규약 


IP 프로토콜 기반으로 사용자, 시스템, 네트워크, 서비스 정보 등의 디렉터리 정보를 공유할 수 있다.

디렉터리는 논리, 계급 등을 기준으로 조직화되어 있다. 특성이 비슷한 특성을 가진 객체들의 모임 


RDBMS에 비해서 검색 속도가 빨라서, 읽기, 위주의 서비스 검색 


속성(attribute)을 가진 객체(object)로 구성. 그 객체를 엔트리(entry)라고 부르면 그 엔트리(entry)는 DIT(Directory Information Tree)

라는 구조의 조직화 되고 고유 식별자인 DN(distribute Name), DN은 상대 식별자인 RDN(Relative Distinguished Name)으로 구성 

DN(distribute Name)은 파일 시스템의 절대 경로처럼 해당 엔트리의 이름에 상위 엔트리 이름을 붙여서 

식별하고, RDN(Relative Distinguished Name)으로 구성 


/home/posein/joon.txt가 DN이고 , 여기에서 joon.txt는 RDN이 된다. 

 


● LDAP 속성 관련 키워드 


c                       CountryName              국가이름 

st                      StateProvinceName      주(우리나라의 도)이름  

l                        LocalityName              보통 도시를 나타내지만, 특정 지역 단위에서도 사용 가능 

street                 StreetAddress              도로명 주소(지번)

o                      OganiczationName       조직(회사) 이름 

ou                     OganiczationUnitName  조직의 부서 이름 

cn                     CommonName             일반적으로 이름과 성의 조합   

sn                     SurName                    성을 나타냄 

givetName          givetName                   이름을 나타냄 

dc                     domaincomponet         도메인 네임의 요소를 나타냄 

mail                   mail                           E-mail 주소  

telephonenumber telephonenumber          전화번호 


● NIS는 RPC 데몬을 구동시켜야 한다.

/etc/rc.d/init.d/rpcbind start 

service rpcbind start 


● /etc/hosts 수정하기 

=> DNS 없이 빠르게 사용가능, 도메인이 없는 경우에 가상적으로 구성해서 동작 여부를 확인 


192.168.1.1 nist.test.co.kr 

192.168.1.2 nis.test1.co.kr


yum install ypserv 


● 주요 데몬 스크립트 

ypserv       NIS 서버를 운영하는 주 데몬 스크립트

yppasswdd NIS 클라이언트에서 패스워드 시에 적용되도록 해주는 데몬 스크립트 

ypxfrd        NIS 서버와 NIS 클라이언트 간의 맵핑 속도로 높여주는 데몬 스크립트 



● nisdomainname test.co.kr 

=> 일시적으로 test.co.kr 도메인명 설정 


● /etc/sysconfig/network 

NISDOMAIN=test.co.kr 

=> test.co.kr도메인을 영구적으로 설정 


● 계정 생성 


NIS 클라이언트에서 사용할 계정 하나를 생성 

useradd test 

passwd test 


● 데몬 스크립트를 구동 

servce ypserv start 

servce yppasswdd start 

servce ypxfrd start 


● 서버 작동 확인 

ps aux | grep yp 


● 관련 정보 갱신 

NIS 서버에서 사용자 추가 증 설정한 내용이 변경되면 해당 정보를 갱신시켜야 한다. 다음의 2가지 방법중 하나를 실행한다.


cd /var/yp ; make 

make -C /var/yp 


/var/yp 아래에 도메인 명으로 폴더가 생성되면서 관련 맵 파일들이 생성된다.


<NIS 클라이언트 구성>

yum install ypbind 

yum install yp-tools


도메인 지정은 위 서버와 동일 


● /etc/yp.conf 파일에 NIS 서버 및 도메인염을 지정한다. 


예) vi /etc/yp.conf 


server nis.test.co.kr 

ypserver nis.test.co.kr 

domain nis.test.co.kr 


● 관련 데몬 시작 

service ypbind start 


관련 명령어 

● ypwhich 

=> NIS 클라이언트에서 사용하는 명령어로 NIS 서버명과 관련 맵 파일을 보여준다.


옵션 

-m NIS 서버의 맵 파일을 출력한다. 


● ypcat 

=> NIS 서버의 데이터베이스라고 할 수 있는 맵 파일의 내용을 확인하는 명령 


● yptest 

=> 도메인명, NIS 도메인명, 맵 파일 목록, 사용자 계정 정보 등을 출력한다. 


● yppasswd 

=> NIS클라이언트에서 NIS서버에 등록된 사용자의 패스워드를 변경하는 명령어 


● ypchsh 

=> NIS서버에 등록된 사용자의 셸을 변경하는 명령어 


● ypchfn 

=> NIS 클라이언트에서 NIS 서버에 등록된 사용자의 정보를 변경하는 명령이다. 


● NIS를 이용한 인증 가능한 서비스 

=> telnet, samba, ssh 



posted by 송시혁