★SAMBA

- 리눅스 서버에서 원격지의 리눅스 및 윈도우 를 비롯한 SMB/CIFS 프로토콜을 사용하는 다양한 운영체제의

클라이언트에게 파일 및 프린터 공유 서비스를 제공하는 오픈소스 프로그램이다.

- 마이크로소프트가 개발한 SMB(server message block)프로토콜을 사용. 현재는 CIFS이라는 이름으로 불린다

-최신 Samba는 윈도우 서버의 AD(Active Drectory)의 DC(Domain Controller)및 멤버 서버로서의 기능도 제공

 

★Samba서버의 대표적인 기능

- 리눅스 /유닉스 윈도우 클라이언트에 디렉터리 및 프린터 서비스 제공

- 윈도우 도메인에서의 Login을 통한 인증 제공

- 윈도우 NT 스타일의 PDC(Primary Domain Controller) 및 BDC(Backup Domain Controller)의 역할 제공

 

★서버 설치

Server-A(Samba server)

yum -y install samba samba-client samba-common samba-winbind

rpm -qa | grep samba

ls -l /etc/samba        //주설정 파일 확인

ll /var/log/samba        //로그가 저장되는 디렉토리 확인

ll /usr/sbin/{smbd,nmbd}        //서버를 사용하기 위한 두개의 데몬 확인

 

★서비스 시작

service smb start

service smb status

chkconfig smb on

chkconfig --list smb

 

service nmb start

service nmb status

chkconfig nmb on

chkconfig --list nmb

ps -ef | grep smbd    //프로세스 확인

ps -ef | grep nmbd    //프로세스 확인

smbclient -L localhost        //서버 작동 유무 확인 서버의 이름,버전,workgroup 정보 확인

 

nmblookup [HOSTNAME]           

- samba서버의 netbios 이름으로 ip주소를 조회하는 프로그램 . 조회하면 HOSTNAME 서버의 IP주소를 알수있다 

 

NetBIOS(Network Basic Input/Output System)

- Lan 환경에서 윈도우 컴퓨터들이 통신할때 사용하는 통신 서비스

nmblookup Server-A

 

yum -y install lsof        // lsof 패키지 설치
lsof -i udp:137 // lsof를 통해 포트 137번을 확인하면 nmbd 데몬이 Netbios 이름 등록과 삭제에 사용하는

 Netbios 이름 서비스가 작동 중임을 확인할 수 있다.

 

lsof -i udp:138 // lsof를 통해 포트 138번을 확인하면 nmbd 데몬이 Netbios 이름에 Datagram과 브로드캐스트를 주고받기 위해

사용하는 Netbios Datagram 서비스가 작동 중임을 확인할 수 있다.

 

lsof -i tcp:139 // lsof를 통해 포트 139번을 확인하면 smbd 데몬이 Netbios 세션 연결에 사용하는

Netbios 세션 서비스가 작동 중임을 확인할 수 있다.

 

lsof -i tcp:445 // lsof를 통해 포트 445번을 확인하면 smbd 데몬이 액티브 디렉토리 접근과 인증에

사용되는 microsoft-ds 서비스가 작동 중임을 확인할 수 있다

★Samba 서버의 종류

- Stand-alone 서버

- 도메인 멤버 및 도메인 컨트롤러 서버


★Samba Stand-alone 서버 설정

- 워크그룹 서버나 네트워크 환경에서 멤버로 사용되는 서버를 의미한다.

- 가장 많이 사용되는 Samba 서버의 역할이라고 할 수 있다.

- 일반적으로 클라이언트에게 디렉토리 및 프린터 공유를 제공하는

역할을 하는 Samba 서버를 의미한다.


★Samba 서버 설정

전역 섹션 설정

Samba 설정 파일은 세 개의 섹션으로 나누어져 있다.

- [global] - Samaba 서버 전체에 적용되는 환경을 설정하는 섹션

- [homes] - 사용자들의 홈디렉토리로 접근할 때의 권한을 설정하는 섹션

- [printers] - 프린터에 대한 권한을 설정하는 섹션

vi /etc/samba/smb.conf     // vi을 이용하여 Samba 서버 주 설정 파일을 수정

:57         // 글로벌 설정을 의미하는 섹션으로 이동 (57 [global])

:74         // Samba 서버가 속한 워크 그룹을 의미하며, 해당 그룹에 속한 클라이언트만이 서버에

접근이 가능하며, 공유그룹을 의미한다. (workgroup = MYGROUP)

★Samba 서버 설정 [global]

server string = Samba Server Version %v    

-Samba서버를 설명하기 위해 사용

77 : netbios name =MYSERVER

-Samba서버의 Netbios 이름을 의미

79 : interfaces = l0 eth0 192.168.12.2/24 192.168.13.2/24

-인터페이스 지정 IP주소 뿐만 아니라 인터페이스 이름도 가능

80 : hosts allow = 127.192.12. 192.168.13

-Samba서버접속이 가능한 네트워크 주소를 지정할수 있다.

 

[Global]

workgroup : Windows의 작업 그룹 이름

server string : Windows 네트워크에 보이는 컴퓨터 설명 생략가능

netbios name : Windows Network에 참가하는 컴퓨터 이름

hosts allow : 삼바서버에 접속할 클라이언트 IP


[공유이름]

comment = 공유디렉토리 설명 (생략가능)

path = 공유할 디렉토리 절대 경로 (절대 경로)

read only = 디렉토리 읽기 쓰기 여부 yes는 읽기전용 no는 읽기 쓰기

guest ok = 게스트 사용자도 사용하게 할지 여부

 

 

 

log file = /var/log/samba/log.%m     // 로그 파일의 위치 및 이름을 지정하는데, %m은 클라이언트의

NetBios 이름을 의미한다. 즉, 클라이언트 별로 로그가 기록된다.

 

max log size = 50     // 로그 파일의 크기글 지정하는데 단위는 킬로바이트(kb)다.

 

security = user     // Smaba 서버 실행되는 모드를 의미하며, 모드는 사용자 레벨과 공유레벨 두 가지가 있다.

 기본은 사용자 레벨이 사용되는데, Smaba 서버 접속 시 사용자 정보와 패스워드가 필요하다는 의미다.

 

passdb backend = tdbsam     // Samba 서버의 사용자 정보를 저장할 데이터 베이스 백앤드를 의미하며,

tdbsam과 ldapsam 두 가지가 올 수 있다. 기본값은 tdbsam으로서 명령어 smbpasswd를 이용해

사용자 및 패스워드를 생성할 수 있다.
 

map to guest = Bad user     //계정이 없는 로그인은 모두 guest계정으로 맵핑하라는 의미이다. 추가해주어야 한다.

 

★공유 디렉토리 설정

mkdir -p /samba/share       //클라이언트에게 제공할 공유 디렉토리 생성

chmod -R 777 /samba/share   //모든 권한 허용

vi /etc/samba/smb.conf        //서버 주설정 파일 수정  

 

 

path = /samba/share     // share라는 섹션을 생성한 다음 공유할 디렉토리의 경로를 지정

writable = yes         // 디렉토리에 대한 읽기 및 쓰기 권한을 부여

guest ok = yes     // 공유 디렉토리로 접근하는 사용자의 이름과 패스워드가 필요 없다는 의미

guest only = yes     // 공유 디렉토리로 접근하는 모든 사용자를 guest로 제한한다는 의미

create mode = 0777     // 공유 디렉토리에서 클라이언트가 생성하는 파일 및 디렉토리에     

할당되는 권한을 의미

directory mode = 0777 // ..

 

service smb restart

service nmb restart

testparm    //enter키 입력 결과 출력

 

<Client-Linux>

yum -y install samba-client

smbclient -L Server-A

-samba서버가 제공중인 공유 디렉토리를 확인하기 위해 명령어 smbclient에 server-A를 지정하면 그결과

에서 현재 공유중안 다랙토라 목록 share를 발견할수 있다.

 

cp /etc/passwd /root   //테스트 파일을 복사

smbclient //SERVER-A/share   //Server-A공유 디렉토리 share로 사용자 지정없이 접속을 시도

smb: \> put passwd

smb: \> mkdir test_dir

smb: \> ls

 

<Client-Win>

-윈도우 시작 메뉴의 검색창에서 실행을 입력해 samba서버의 ip주소와 디렉토리를 입력하고 확인을 클릭

-samba 서버에서 설정한 공유 디렉토리 share로 접근하면 디렉토리에 있는 파일이나 디렉토리를 확인할수 있다.

 

 

vi /etc/samba/smb.conf

 

[Security]  //samba 설정 파일을 열어 먼저 공유를 정의하는 곳에 security라는 섹션을 생성

 path=/samba/sec_share   //공유 섹션이 실제 어느 디렉토리를 이용하는지 경로지정

writable=yes

create mode=0770

directory mode=0770

guest ok=no  //인증을 거치지 않는 guest사용자들은 접속을 허용치 않는다

valid users=@smbgroup  //이 디렉토리에 접근 가능한 사용자들은 모두 smbgroup에 속한 사용자들임을 지정

@은 그룹이름을 의미.

 

★공유디렉토리 인증 설정

groupadd smbgroup

mkdir /samba/sec_share

chgrp smbgroup/samba/sec_share

chmod 770 /samba/sec_share

useradd samba-user1

passwd samba-user1

 

smbpasswd -a samba-user1

- samba서버에 접속 가능한 사용자를 명령어 smbpasswd로 생성하는데 이사용자는 시스템의 /etc/passwd에 등록된

사용자여야 한다.

- a(add user) 옵션을 이용해 사용자의 패스워드를 변경함으로써 smbpasswd파일에 저장하라는 의미

 

pdbedit -L    //samba 사용자 데이터베이스를 관리하는 명령어 pdbedit에 옵션 L(list) 사용하면 앞에서 생성한

사용자의 접오가 ID와 함께 나타난다.

usermod -G smbgroup samba-user1

service smb restart

service nmb restart

 

<Client-Linux>

cd /etc/

smbclient -L Server-A

smbclient //SERVER-A/Security -U samba-user1

-U 옵션을 이용하여 사용자 계정으로 공유 디렉토리 Security에 접속한다

 

smb: \> mkdir test     // 디렉토리 생성 테스트

smb: \> ls     // 생성 확인

smb: \> put passwd     // 파일 업로드 테스트 (현재 경로 /etc)

smb: \>         // 세션을 해제하지 말고 대기

 

<Server-A>

smbstatus Server-A

- 접속한 클라이언트의 IP주소와 접근한 공유 디렉토리 및 시간 등의 정보를 확인가능

 

<Client-Win>

\\100.100.100.110\ 실행창 입력

 

유저 아이디와 비밀번호 입력

 

'Server > Linux' 카테고리의 다른 글

xshell/ PXE & KICKSTART  (0) 2017.05.15
xshell/ NFS  (0) 2017.05.14
xshell/ NTP  (0) 2017.05.11
xshell/ FTP, VSFTP  (0) 2017.05.11
xshell/ DHCP  (0) 2017.05.06

+ Recent posts