2014년 12월 30일 화요일

리눅스의 시작16_SAMBA서버

SAMBA 서버에 대해 알아보자!


1. 개요
 - 네트워크를 통해 파티션을 공유하도록 제공하는 서비스
 - 유닉스 시스템과 windows 시스템 간 파일 시스템 공유
 - 유닉스 계열의 거의 모든 시스템에서 제공
 - 시스템의 리소스를 직접 제공하는 서비스이므로 보안에 주의
  * 응용을 제공하는 것이 아니라 리소스를 제공하는 서비스

2. 서버 설치 
 - 설치 확인
 rpm -qa | grep samba 검색 후 "smb" 문자열로 출력 되는 것이 없다면
 yum -y install samba 로 설치

 - 설정
 * samba 서버는 파일을 공유하는 시스템으로 사용자 설정을 해줘야 함
 * samba 서버 내에 유저를 등록 후 그 유저를 samba 유저로 등록을 해줘야 함
 * 권한을 부여 해줄 수 있으며, 그 권한에 따라 사용자가 파일의 읽기, 수정 등이 가능

> 서버 상태 설정
 #/etc/rc.d/init.d/smb { start | restart | stop }
 : 시작, 재시작, 정지를 설정

> 사용자 등록 
 삼바 서버에 사용자가 등록되어 있다는 전제하에 사용자 등록 및 비밀번호 변경
  /usr/bin/smbpasswd [옵션] 유저명
  * 옵션
   -a : 유저 등록
   -x : 유저 삭제
   -d : 사용 중지
   -e : 재사용
  smb.conf 구문 검사 : /usr/bin/testparm
  NetBIOS 명 검색 : /usr/bin/nmblookup

 > /etc/samba/smb.conf 파일 내 설정 정보 및 옵션 정보
 workgroup
  * NT(Network) 도메인 명 지정
 netbios name
  * 네트워크 이름
  * 기본 값 : 호스트명
 hosts allow 
  * 허가 항목 지정(지정된 것만 접속 가능)
   ex) host allow = 1.1.1. EXCEPT 1.1.1.11 1.1.1.12 = 1.1.1.0 / 255.255.255.0
 hosts deny
  * 접속 거부 항목 지정(형식은 hosts allow와 동일)
 guest account
  * 윈도우의 guest 사용자 맵핑 계정 설정
  * nobody 또는 유닉스 계정으로 매핑 가능
  * 주석 처리하면 guest 접속 불가(권장)
 security
  * user, share, server(domain) 중 설정
   - security = user
   - passdb backend = tdbsam
  * 일부 예전 버전의 경우 user 설정 시 추가 설정 필요
   - encrypt passwords = yes
   - smb passwd file = /etc/samba/smbpasswd
 Link 디렉토리 접근
  보안 설정으로 인해 Symlink 디렉토리에 대한 기본 접근이 불허



 follow symlinks = yes
 wide links = yes
 unix extensions = no

 > 언어셋 지정(반드시 test 후 설정)
 unix charset = utf-8
 dos charset = cp949

 유닉스 계열의 언어셋과 클라이언트인 윈도즈 계열의 언어셋이 서로 다름으로 반드시 지정

comment = 여기는 공유 경로 : 주석 처리
path = /home/data : 공유 파일 경로 지정
browseable = no : 공유 정보를 제공 할 지 여부(yes/no), No로 설정하면 보이지는 않지만 사용 가능
writable = yes : 쓰기 권한 접근 허용 여부 (yes/no)
public = no : 누구에게나 접근을 허용 할 지 여부 (yes/no)
read only = yes : 읽기 전용 접근 여부 (yes/no)
valid users = fred : 접근 가능한 사용자 (읽기 or 쓰기에 대한 권한은 정해지지 않음)
write list = +staff : 공유 경로에서 쓰기 가능한 그룹 (과 유저)
Printable = no : 프린트 스풀 디렉토리로 사용할 것인지 여부 (yes/no)

> [homes]는 기본 이름으로 사용 : 각 계정의 홈 디렉토리로 사용
 [homes]
  comment = home Directories
  browseable = no
  writable = yes

 - 대괄호([])의 시작점부터 설정 정보가 정의되어 다시 대괄호([])가 시작되는 부분 전까지 smb.conf 에서 같은 구역으로 인식함

------------------------------------------------------------------------------------------------------------
 정리
1. yum으로 설치
2. smbpasswd -a 사용자명 명령어로 사용자 추가
 - 리눅스에서 보유중인 user만 사용자 추가 가능(useradd로 계정을 추가한 상태로 추가를 해야 함)
3. /etc/samba/smb.conf 파일 수정
 - 예제
[kangkoon]
 comment = kangkoon
 path = /home/kangkoon/
 read only = no
 writable = yes
 valid users = kangkoon
 public = no
 browseable = yes
 security = user
 create mask = 0765
 >> 공유폴더의 경로는 "/home/kangkoon/"이며, 읽고 쓰기가 가능하며, 접속 가능 유저는 kangkoon이고 공유 폴더가 모두에게 보여지며, 접속 유저의 권한은 user 이고 파일 생성시 765 권한으로 생성됨
4. /etc/init.d/smb 데몬을 재시작
5. window에서 실행 명령창에서 "\\ ip " 로 samba 서버 접속
 - 접속 권한이 없다는 팝업(메시지) 발생
  1> vi /etc/sysconfig/sellinux > SELLINUX = disabled 로 설정
  2> chmod 공유디렉토리 명령어로 공유디렉토리의 write 권한 설정 부여
6. 파일 업로드 & 다운로드
7. 작업 완료
 - 이후, 다른 ID 로그인이나 자동로그인 세션을 끊고 싶을 경우
 1. cmd 창에서 net use 명령어로 samba 서버 접속 세션을 확인("\\ip\디렉토리명" 형태로 출력)
 2. net use /delete "\\ip\디렉토리명" 명령어로 세션을 끊음
 3. net use 로 끊긴 것 재 확인
 (4.) 다른 ID로 SAMBA 서버 로그인 가능 





댓글 1개: