● 진행 과정 (목 차) ●
삼바 서버 개념 & 설치, 삼바 설정 파일, 삼바 계정만들기, 공유 디렉토리 생성, 방화벽 설정 ①
윈도우에서 리눅스 접속 방법, 리눅스에서 윈도우 접속 방법 ②
○ 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적용을 위해 시스템 재부팅이 필요합니다.
재부팅 후 다음 글로 넘어가 접속하는 법에 대해 알아보도록 하겠습니다.
댓글