홈서버용 삼바 설정은 알고보면 매우 간단한데, 제게는 진입 장벽이 좀 있었습니다.
설정 파일 수정으로 끝나는 것이 아니라 명령어를 통해 삼바 서버에 접속할 수 있는 사용자를 별도로 등록해주어야 하는데, 설정파일만 건드리면서 왜 접속이 안되는지 고민하느라 시간을 많이 허비했네요.
1. 설치
Debian Stretch에서 Samba Server를 운용하기 위해서 필요한 패키지는 samba 딱 하나 뿐입니다. 클라이언트 모드 즉, 다른 Samba Server에 접속하고자 한다면 samba-client도 필요합니다만, 본 글에서는 서버 모드만 다룹니다.
1 | $ sudo apt-get install samba | cs |
2. 삼바 사용자 추가
1 2 3 4 | $ sudo smbpasswd -a 계정명 New SMB password: Retype new SMB password: | cs |
여기서 -a는 해당 사용자에게 samba 접속 권한을 추가한다는 의미이며, 사용자 추가와 동시에 samba 접속 전용 암호를 설정하는 것입니다. 참고로 이 때 사용된 계정은 실제 debian server에 존재하는 사용자라야 합니다.
아래 처럼 해당 사용자가 비밀번호를 직접 바꿀 수도 있습니다.
1 2 3 | $ smbpasswd Old SMB password: New SMB password: | cs |
이 과정을 빼먹어서 저는 시간을 많이 허비했습니다. 그래서 서버 설정도 시작하기 전, 사용자 먼저 추가합니다. 다시는 똑같은 실수 다시 하지 말자구요...
3. 삼바 서버 기본 설정
설정파일 위치는 /etc/samba/smb.conf 이며, 주석이 매우 상세하게 잘 되어 있어서 메뉴얼이 필요 없을 정도입니다. 그러나, 영어로 되어 있는 것이 문제이지요. ^^
3.1 우선 들어다 볼 것은 [Global] 섹션
1 2 3 | [Global] workgroup = WORKGROUP min protocol = SMB2 | cs |
여기서 WORKGROUP을 실제 사용하는 work group으로 변경합니다. work group이 뭐야? 싶으시면 분명히 WORKGROUP 입니다. 윈도우 명령 프롬프트에서 net config workstation 명령어로 확인할 수 있다고 하네요.
min protocol = SMB2는 삼바1 버전은 사용하지 않겠다는 것입니다. 최근 보안 문제로 윈도우도 삼바1 프로토콜을 금지했지요. 웹에는 되살리는 법이 팁이라고 넘쳐나고 있습니다만... 나쁘다는 것.. 저도 사용하지 않기로 합니다.
Global 탭에서 나머지는 손 댈 것이 없습니다.
3.2 사용자 홈디렉토리 접근 [homes] 섹션
사용자 home 폴더에 대한 설정입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [homes] comment = Home Directories # comment는 옵션이고 중요하지는 않습니다. # 윈도우즈의 탐색기에서 볼 때 설명란에 나타나는 문구입니다. browseable = no # browseable을 yes로 변경할 경우 network list에 드러납니다. # 즉, 접속권한이 없는 다른 사용자에게도 보인다는 것이지요. # 정작 해당 디렉토리에 권한이 없기 때문에 들어올 수는 없습니다만, 귀찮지요. # 여러모로 no가 좋습니다. read only = no # 기본적으로 "읽기전용"으로 설정되어 있는데, no로 변경하면 쓰기도 허용합니다. create mask = 0700 # 파일 생성 시 기본 퍼미션은 0700입니다. 파일 소유자만 완전한 접근이 가능합니다. directory mask = 0700 # 새로 만드는 디렉토리 기본 퍼미션도 0700이구요. valid users = %S # 기본적으로 \\server\username 디렉토리는 삼바 권한이 있는 모든 사람에게 # 열려있습니다. 소유자만 홈 디렉토리에 접근하도록 위와 같이 설정을 변경합니다. # 만약 다른 외부 인증방법을 쓴다면 %s 가 아니라고 하네요.. 저는 관심이 없어요. | cs |
사용자 입장에서 위 내용을 싹 정리하면 남들 눈에는 안보이고, 본인만 접속 가능하면서, 읽기/쓰기 모두 가능하고, 파일/디렉토리 생성 시 0700 퍼미션으로 만들어지는 공유 디렉토리가 됩니다.
학교나 사내 워크스테이션에서는 기본 설정이 더 적합하겠으나, 저는 공유 디렉토리는 따로 공용 공간에 만들고, 개인 디렉토리는 보호해주는 정책이 더 적합하다고 생각합니다. 물론... 관리자인 저는 다 보고있지요. ㅎㅎ
3.3 공용 공유 디렉토리 만들기
짧고 간결하게 정리하면, 디렉토리 당 섹션을 하나씩 더 만들면 됩니다.
예를들어, 동영상 파일을 모아두는 video 디렉토리를 videow 그룹의 유저에게만 허용할 경우는 아래와 같습니다.
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 | [video] comment = movies folder # comment는 필수는 아닙니다. path = /mnt/video # 공유할 디렉토리 위치 valid users = +videow # 접근을 허용할 사용자 또는 그룹 설정합니다. # 단일 사용자는 계정명을 그냥 적어주고, 그룹의 경우 +를 붙여서 적습니다. # 그룹명 앞에 $을 붙이면 NIS 넷그룹이고, @은 NIS 검색 후 UNIX 그룹을 검색하라는 # 의미라고 합니다만.. 저는 무슨 뜻인지 모릅니다. force group = videow # 새 디렉토리/파일을 만들 때 지정한 그룹의 소유권을 부여합니다. create mask = 0660 directory mask = 0770 # 새로 만든 디렉토리/파일에 대한 권합입니다. # 그룹에 대한 공유 디렉토리이므로, 그룹 권한에 6 또는 7을 주는 것이 맞겠지요. # 다만 실행파일(윈도우용 포함)을 넣어야 할 경우엔 x 퍼미션도 추가해야 합니다. # 즉, create mask = 0770이 되어야 실행 파일을 실행할 수 있습니다. writable = yes # homes 섹션에서 사용한 read only와 정확히 반대 역할입니다. # read only = no로 써도 됩니다. | cs |
4. 삼바 서비스 재시작
1 | $ sudo systemctl restart smbd.service | cs |
5. 방화벽 예외 설정
혹시나 방화벽을 사용 중이라면 아래 포트를 예외 처리해주어야 합니다.
1 2 3 4 | $ sudo ufw allow 139/tcp $ sudo ufw allow 445/tcp $ sudo ufw allow 137/udp $ sudo ufw allow 138/udp | cs |
'홈서버 (리눅스) > 파일 서버' 카테고리의 다른 글
데비안 리눅스 윈도우 공유폴더 마운트 (0) | 2018.12.18 |
---|