20100303 :: 우분투 파일서버 설치 성공기

회사에서 팀 내에서 사용할 파일 서버 한 대를 마련하게 되었습니다. 시스템 담당자에게 졸라서 거의 맛이 간 PC 한 대를 받아내고, 고장난 하드 디스크를 대체할 그닥 큰 용량은 아닌 하드디스크도 하나 얻었습니다. 그리고 끝. 사실 뭐 이 정도도 감지덕지라 생각되어 서버 구성까지 해달라고 하기에는 좀 미안하더군요.

제가 생각하던 파일 공유 서버는 그저 원격 서버의 하드 디스크를 윈도 시스템에서 네트워크 드라이브로 잡아서 사용하는 정도이고, 현재 공인IP를 받아 쓸 수 있는 형편이 못된다고 하여 회사 내부에서 그저 파일을 공유하는 유형의 서버였습니다. 개인적으로 팀 산출물에 대한 아카이브 같은 게 필요하다는 생각도 있고 해서 말이지요.

어쨌든, 덩그러니 본체만 있는 PC 한 대를 손수 하드디스크를 교체하고, 다른 팀에서 빌려온 우분투 8.10LTS 서버판 설치 시디와 함께 굳은 마음을 갖고 설치할 준비를 마쳤습니다. 아, 물론 퇴근 시간 이후에 시작했으므로 이 일을 도와줄 사람도 사실 거진 없었습니다…

서버 설치

서버 설치에 앞서 먼저 준비물을 챙겨 봅니다. 설치나 설정 진행 중에 후회하지 않으려면 말이지요.

  • 동작 가능한 PC 한 대. 서버로 쓸 것이니 당연히 네트워크 카드는 있어야 함
  • 키보드와 모니터 (마우스는 필요없음)
  • 인터넷에 연결 가능한 랜선과 ip 정보
  • 우분투 서버 설치 CD
  • 막히는 부분을 찾기 위해 인터넷에 접속 가능한 온전한 컴퓨터 한 대
  • GUI 따윈 필요없다는 굳센 마음가짐

컴퓨터에 키보드와 모니터를 연결하고 전원을 넣은 다음, 잽싸게 CD를 투입하고 reset 버튼을 눌러 컴퓨터를 재시작합니다. 물론 CMOS 세팅은 CD롬 드라이브로 먼저 부팅할 수 있도록 해야 마땅하지요. 아, 윈도 설치할 때와는 다르게 그냥 랜선 꼽고 시작할 것을 권장합니다.

하드웨어 사양에 따라 다소 차이는 있을 수 있지만, 윈도 설치에 익숙해진 사람이라면 깜짝 놀랄만큼 빨리 메뉴 화면이 나타납니다. 설치 시 사용할 언어를 선택하고 우분투 서버 설치 항목을 선택하면 곧바로 설치를 시작합니다.

우분투 서버 버전은 GUI 환경을 포함하지 않습니다. 물론 ubuntu-desktop 패키지를 설치하면 됩니다만, 굳이 무리해서 그 무거운 녀석을 돌릴 거면 애초에 서버 에디션을 설치하지 않았을 겁니다. 물론 GUI를 포함하는 데스크톱 버전을 설치해도 삼바 서버로 사용이 가능합니다.

설치는 덜 미려하긴 합니다만, 꽤나 꼼꼼하게 진행됩니다. 한 번 쯤 우분투 데스크톱 버전을 설치해 보았다면 큰 어려움 없이 설치가 가능합니다. 그리고 설치 중에 dhcp를 통해서 자동으로 네트워크 설정을 합니다. 고정 ip를 쓰는 시스템이므로 이 부분은 취소하고 그냥 건너 뜁니다. dhcp 설정을 취소하면 이어서 수동으로 네트워크 항목을 입력하는 차례로 넘어갑니다. 간단히 아이피/서브넷마스크/dns서버 정보를 입력해 주고 계속 진행합니다. 이미 한 번 minimal-CD로 설치해 본 경험이 있으니 수월하게 진행합니다. 거의 최소버전 설치 때와 유사합니다.

설치 중에는 어떤 용도의 서버로 사용할 것인지 묻는 화면도 표시됩니다. 여기서는 samba file server 항목만 선택했습니다. 나중에 웹서버가 필요해 질 수도 있지만 시냅틱 도구가 있으니 걱정없어요. (GUI환경에서 동작하는 시냅틱 패키지 관리자에도 요렇게 용도에 맞게 패키지 세팅을 해주는 기능이 있습니다.) 사용자 계정을 묻고 나면 거의 모든 설정이 끝나게 됩니다.

이후 설치는 금새 끝납니다. 설치가 끝나면 시디를 빼고 재시작한다고 합니다. 약간 설레는 마음으로 재시작을 합니다.

업데이트

이번에 사용한 버전은 8.10 LTS로 나온지는 좀 된 버전이지요. 그래서 맨 처음 해 줄 작업은 업데이트를 하는 것입니다.

$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade && sudo apt-get autoremove

너무 길다고 느껴진다면, &&으로 구분되는 명령들을 따로 따로 수행해도 아무 문제 없습니다.  samba 메타 패키지는 이미 설치 시에 사용하겠다고 하였으므로 설치가 되어 있는 상황입니다. 아마 업데이트 되는 동안 winbindd 와 같은 패키지는 (samba의 구성 요소 입니다) 업데이트가 될 듯 하네요.

사용자 생성

지금 작업 중인 계정으로는 최고 사용자 권한으로 상승이 가능하기 때문에 일반 사용자 계정을 하나 만듭니다. 파일 공유를 위해서는 일반 사용자 계정을 공유 서버에 접근하고자 하는 분들에게 알려주면 됩니다.

$ sudo adduser teampeople

teampeople 이라는 사용자 계정을 이렇게 생성합니다. 생성 시에 비밀번호를 물어 봅니다. 그냥 제 맘대로 일단 넣어봅니다. 물론 아무렇게나 넣고 나중에 까먹으면 안되니까 사용자 명과 비밀번호는 잘 메모해 둡니다.

사용자를 생성하면 /home/teampeople 이라는 사용자 홈 폴더가 별도로 생성됩니다. 공유할 홈폴더를 별도로 만드는 것이 왠지 좋겠다는 기분이 들지만, 왠지 나중에 설정이 꼬이거나, 권한 문제 같은 게 무서우니 그냥 패스하겠습니다.

삼바 설정

이제 삼바 서버 설정을 할 차례입니다.

삼바 서버 설정에 앞서, 삼바 서버에 접근하기 위한 계정은 아쉽게도 시스템에 로그인하는 계정과 동기화가 되지 않습니다. 그래서 삼바 사용자를 추가해야 합니다. 단, 사용자 계정 이름은 실제 시스템에 로그인 하는 사용자 계정 중 하나와 동일해야 하며, 패스워드는 동일하게 설정할 필요가 없습니다.

$ sudo smbpasswd -a teampeople

이번에도 비밀 번호를 물어봅니다. 역시 잘 메모해 둡시다. 나중에 공유 서버를 같이 사용할 사람들에게는 이 비밀 번호를 알려주어야 합니다.

이제 본격적으로 삼바 설정을 위한 차례입니다. 삼바 서버의 설정은 /etc/samba/smb.conf 파일에 모조리 다 들어 있습니다.

삼바 설정과 관련된 내용은 우분투 커뮤니티의 공식 문서를 참고하여 세팅하였습니다.

삼바의 설정은 크게 다음과 같이 나누어 집니다.

  • Global Settings – 삼바 서버의 일반 설정 및 네트워크 설정 방식을 다룹니다.
  • Debugging / Accounting – 로그 누적 방식 및 오류 발생 시 액션 등을 지정합니다. (일반적으로 손댈 필요가 없음)
  • Authentication – 사용자 인증 방식을 설정합니다.
  • Printing – 프린터를 공유하도록 합니다.
  • Misc – 기타 설정
  • Share Definitions – 공유 폴더의 개별적인 설정입니다.

삼바 설정 파일의 작성 규칙은 다음과 같습니다.

  1. 설정 항목은 꺾인 괄호로 둘러 쌉니다. ( [global] 혹은 [somesharefolder] )
  2. 설정 항목 아래로 해당 항목의 속성 값을 씁니다. 한 라인에 한 개 항목이 포함됩니다.
  3. 설정 항목은 yes 혹은 no의 값을 주로 갖게 됩니다.
  4. 주석 처리는 #이나 세미콜론(;)으로 합니다.

글로벌 세팅

[global] 항목 아래에는 일반 설정을 다룹니다. 서버 이름이나 작업 그룹명을 지정할 수 있습니다.특히, 원격에서 생성되는 폴더나 파일의 권한과 관련하여 곤란한 상황이 생기지 않도록 생성시 디폴트 권한을 설정합니다. 아래 항목을 [global] 아래의 어딘가에 삽입해 줍니다.

create mask = 0755
directory mask = 0644

공유 폴더 세팅

공유 폴더 세팅의 방식은 거의 대부분이 유사합니다. 그 예는 다음과 같습니다.

[mydocs]

comment = My Documents #디렉터리 설명
path = /<해당 디렉터리의 실제 경로>
read only = no #해당 디렉터리를 읽기 전용으로 할 것인지 여부
browseable = no #yes로 설정하는 경우, 윈도의 ‘내 네트워크 환경’ 목록에 노출됨

삼바 서버 재시작

몇 번의 시행 착오를 거치면서 우분투 데스크톱 시스템과 윈도 시스템에서 해당 폴더에 접근하는 데 성공하였습니다. 설정 파일을 변경한 다음에는 다음 명령을 통해 변경된 설정 파일을 다시 읽어 오도록 해야, 변경 사항이 반영됩니다.

$ sudo /etc/init.d/samba reload

그런데 이 명령은 적용이 되는데 다소 시간이 걸리는 것인지, 잘 안되는 듯 합니다. 아예 깔끔하게 삼바 서버를 재시작하는 방식이 더 나은 듯 하네요

$ sudo /etc/init.d/samba restart

관리 측면에 있어서는 전체 공유가 되는 폴더와 개별 사용자가 각각 사용하는 공간을 따로 만드는 것이 더 좋을 듯 합니다만, 서버 시스템 내 특정 사용자의 폴더에 다른 사용자가 접근하는 방법을 정확하게 모르겠군요. 조금 더 연구해 본 다음, 업데이트 하도록 하겠습니다. 긴 글 읽어 주셔서 감사합니다.

[추가] 공유 폴더에 접근하기

이렇게 설정한 공유 폴더에 접근하는 방식은 윈도 시스템의 공유 폴더에 접근하는 방식과 동일합니다. 윈도 시스템에서는 탐색기의 주소 표시줄이나, 시작 메뉴의 실행에서 ip를 입력합니다.

\\123.123.12.131

이렇게 접근하면 사용자 인증 창이 뜹니다. 이 때 삼바에서 설정한 사용자의 id와 패스워드를 입력하면 탐색기 내에 원격 서버의 공유 폴더 내용이 보이게 됩니다.

우분투에서는 노틸러스 파일 관리자의 주소창 (상단 메뉴 아래 연필 아이콘을 클릭하면 나타납니다.)에서 다음을 입력합니다.

smb://123.123.12.131

사용자 이름을 아예 지정하는 방식도 있습니다.

smb://somepeople@123.123.12.131

역시 동일한 방식으로 접근이 가능합니다. 우분투 서버의 경우에는 작업 그룹명도 같이 입력합니다. (디폴트는 WORKGROUP 입니다.)