본문 바로가기
카테고리 없음

[Linux] 리눅스 윈도우 파일 공유 Samba서버 설치 & 설정 ①

by 떵해이 2020. 12. 23.
300x250

● 진행 과정 (목   차) 

삼바 서버 개념 & 설치, 삼바 설정 파일, 삼바 계정만들기, 공유 디렉토리 생성, 방화벽 설정    ①

윈도우에서 리눅스 접속 방법, 리눅스에서 윈도우 접속 방법    ②


○ Samba 란?

    ▷ SMB/CIFS 네트워크 프로토콜을 다시 구현한 자유 소프트웨어

    ▷ 마이크로소프트와 인텔에서 개발한 리눅스와 윈도우의 파일 시스템 공유를 위해 만든 프로그램

    ▷ 삼바를 통해 리눅스 서버를 윈도우에서 파일 및 프린터 자원을 공유할 수 있는 파일 서버 (반대도 가능)

        (윈도우를 사용하는 곳에서 리눅스 or 유닉스 서버 접속하여 파일 및 프린터 공유)

    ▷ 삼바는 일종의 공유 폴더라고 생각하시면 편합니다.

        (삼바가 편리하긴 하지만 보안이 중요한 회사에서는 잘 사용하지 않습니다.

         sftp를 이용해서 파일을 전송합니다.)

    ▷ 삼바를 이용해서 리눅스(유닉스)와 윈도우는 디렉토리 및 파일 공유, 프린터, USB 등 공유 가능

    ▷ 현재 SMB 프로토콜은 유닉스(리눅스)와 윈도우 환경을 동시에 지원하는 CIFS로 확장됨

 

※ SMB : Server Message Block, 마이크로소프트사와 인텔이 윈도우 시스템이 다른 시스템의

            디스크나 프린터와 같은 자원을 공유할 수 있도록 하기 위해 개발된 프로토콜

 

   CIFS : Common Internet File System, 네트워크를 위한 SMB 파일 공유 프로토콜의 확장 버전

           윈도우와 리눅스(유닉스)환경을 동시에 지원하는 인터넷의 표준 파일 규약의 프로토콜

 

○ samba 서버

● samba 설치

 

리눅스에서 samba 설치가 되었는지 확인

# rpm -qa | grep samba

 

 

이제 samba를 설치해줍니다. 기본적으로 설치되어있는 분들이 많이 있을테지만

명령어를 통해 업데이트 겸 재 설치를 해주셔도 상관없습니다.

# yum -y install samba

 

 

데몬을 돌려 samba를 실행합니다.

# systemctl start smb

# systemctl enable smb.service

시작, 부팅 시 자동 실행하도록 데몬 실행합니다.

 

 

● samba 설정 파일

 

이제 samba 설정 파일에 들어가서 설정을 해주도록 하겠습니다.

어떤 폴더를 공유할지, 사용자를 추가해서 접근을 다르게 할지, 특정 IP대역을 허용할지,

파일을 수정할 수 있게 할지 등을 설정할 수 있습니다.

# vi /etc/samba/smb.conf

 

 

위의 설정 파일을 오픈하면 기본적으로 [global], [printers], [home] 3가지 구역이 있습니다.

각 구역을 필요에 따라 설정해줘야 합니다.

3가지 옵션이나 역할들은 다음에 자세하게 다루도록 하겠습니다.

 

[global] : samba 서버 전체에 영향을 미치는 설정

             (hosts allow 옵션이 있는데 추가해줘서 접속을 허용할 ip를 설정할 수 있습니다.

              예) hosts allow = 10.172.60. 

                  이렇게 설정하시면 10.172.60. 으로 시작하는ip만 접속 설정이 가능합니다.)

[printers] : 네트워크 공유 프린터와 관련된 설정

[home] : 리눅스 계정의 홈 경로(/home/[user])에 대한 설정

접근 시 암호가 필요한 경우누구나 접근이 가능한 경로 2가지로 나뉘어 설정할 수 있다.

 

 

● 섹션 설정 시 사용 가능한 주요 옵션들

 

옵   션 의   미
comment 간단한 설명을 설정합니다.
path 공유 디렉토리의 경로를 설정합니다.
read only
(기본값 yes)
공유 디렉토리를 읽기 전용으로 설정합니다.
writable
wirte ok
(기본값 no)
공유 디렉토리를 쓰기(수정) 가능하게 설정합니다.
public
guest ok
다른 사용자들이 이용할 수 있도록 설정합니다.
(말 그대로 공유한다는 뜻)
write list 공유 디렉토리에 접근 및 쓰기(수정) 권한을 이용할 수 있는 지정 사용자를 설정합니다.
그룹인 경우에 @를 붙여서 설정할 수 있습니다.
(위에서 쓰기 가능하게 설정한 공유폴더를 지정 사용자만 사용할 수 있습니다.)
valid users 공유 디렉토리를 이용할 수 있는 사용자를 설정합니다.
browseable
browsable
(기본값 yes)
공유 디렉토리의 리스트를 보여줄 때 설정합니다.
create mask
create mode
파일을 생성할 때 허가권을 지정하는 설정을 할 수 있습니다.
directory mask
directory mask
디렉토리를 생성할 때 허가권을 지정하는 설정을 할 수 있습니다.

 

 

# G (shift + g) 명령을 통해 맨 하단으로 이동하여 아래의 내용을 입력하겠습니다.

[share] = [] 대괄호는 섹션을 정의, 윈도우에서 접근할 때 폴더 이름이 세션안의 문자열로 보임

             보이고 싶은 이름을 적으시면 됩니다.

나머지 옵션들은 위에서 표를 참조하시면 됩니다.

comment = samba shared directory
path = /smbdir (아래에서 공유할 디렉토리를 만들어주도록 하겠습니다.)
read only = no (읽기 전용으로만 사용하려면 writable옵션을 지워야하고,
writable = yes 쓰기(수정)을 같이 사용하려면 read only=no로 설정 후 writable=yes로 설정해야 함)
guest ok = no
valid user = user1 (아래에서 이제 계정을 만들어주도록 하겠습니다.)
create mask = 0777
directory mask = 0777

 

 

● samba 계정만들기

 

이제 samba 서버로 접속할 samba 계정을 생성해야 합니다.

/etc/passwd에 등록된 계정으로 samba 계정을 생성(등록)할 수 있습니다.

먼저 useradd로 리눅스 계정을 먼저 생성해보도록 하겠습니다.

 

테스트를 하기 위해 계정을 2개를 만들어보도록 하겠습니다.

삼바 서버로 접속할 계정을 등록하기 전에 리눅스 계정을 생성하고, 비밀번호도 지정해줍니다.

# useradd user1

# passwd user1

# useradd user2

# passwd user2

 

 

▷ smbpasswd 명령어란 ?

 

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

옵션 없이 사용하면 passwd 명령어와 같습니다.

 

옵   션 의   미
-a 삼바 사용자를 추가할 때 사용하는 옵션, 리눅스에 존재하는 계정만 가능
-x 삼바 사용자를 제거할 때 사용하는 옵션
-d 삼바 사용자를 일시적으로 비활성화 할 때 사용하는 옵션
-e 삼바 사용자를 활성화 할 때 사용하는 옵션
-n 패스워드 없이 로그인할 때 사용하는 옵션, smb.conf 파일에 'null passwords = yes' 문구를 추가해야 가능

 

 

명령어 사용 예시

# smbpasswd -a user1 : user1을 삼바 사용자에 추가하면서 비밀번호 설정

# smbpasswd user1 : user1 비밀번호 변경

# smbpasswd -x user1 : user1을 삼바 사용자 제거

# pdbedit -L : 삼바 계정 정보 출력해주는 명령어

# pdbedit -L -v : 삼바 계정 정보를 자세히 출력해주는 명령어

 

위에서 설정한 삼바 계정 설정하도록 하겠습니다.

# smbpasswd -a user1 명령어로 /etc/passwd 등록된 계정을 samba 전용 계정으로 등록

New SMB password 삼바 접속할 때 사용할 비밀번호 지정

retype new SMB password 비밀번호 재입력

# smbpasswd -a user2

New SMB password

retype new SMB password

 

 

공유 디렉토리 생성

 

위에서 설정한 대로 path경로에 있는 /smbdir 을 만들어보도록 하겠습니다.

디렉토리 권한을 777로 주도록 합니다.

 

# mkdir /smbdir

# touch /smbdir/test

# chmod 777 /smbdir

 

 

방화벽 설정

 

삼바 서버 접속을 허용하기 위해 방화벽을 설정해주도록 하겠습니다.

방화벽 설정 명령어를 알고 싶으시면 참조하시면 됩니다.

 

# firewall-cmd --permanent --add-service=samba 서비스 방화벽에 추가

# firewall-cmd --reload 서비스 설정 내용 적용

 

 

위 설정까지 마치면 접속은 되지만 파일 서버에 접근을 할 수 없습니다.

CentOS 7 이상부터 selinux가 활성화 되어있기 때문입니다.

selinux옵션을 비활성화하거나 따로 설정을 해야합니다.

 

비활성화 하도록 하겠습니다.

# vi /etc/selinux/config

 

 

저는 보기 편하게 주석으로 처리하였지만 enforcing(활성화)에서 disabled(비활성화)로 수정하시면 됩니다.

설정을 마친 후 # :wq 명령으로 저장 후 나가주시면 됩니다.

 

 

여기까지 설정을 마치셨으면 selinux적용을 위해 시스템 재부팅이 필요합니다.

재부팅 후 다음 글로 넘어가 접속하는 법에 대해 알아보도록 하겠습니다.

반응형

댓글