2018년 11월 5일 월요일

원격 삼바 접속 (remote samba connection)

리눅스 samba를 이용해서 로컬 네트워크에 연결된 컴퓨터간 파일을 공유하는 방법은 많이 알려져 있지만 원격 혹은 다른 네크워크에서 있는 samba 서버에 접속하는 방법은 찾기가 어려워서 직접 시도를 해보았다.

1. 포트포워딩
우선 원격 samba 서버는 iptime 공유기를 통해 사설IP가 할당되어 있으므로 공유기 자체 포트포워딩이 필요하다.
iptime 제품을 이용하면 도메인을 제공해주기 때문에 외부에서 공유기로 접속 시
<mydomain.iptime.org:포트> 형식으로 접속이 가능하고
그렇지 않다면 공유기에 할당되어 있는 공인IP를 확인한 후 접속을 시도해야한다.

본 공유기 포트포워딩 설정은 아래와 같다.
설정내용을 요약하면 삼바클라이언트가 공유기 13999 포트로 접속을 시도하면 삼바서버(192.168.0.18)의 내부포토 139번으로 포트를 포워딩해준다.
------------------------------------------------------------------
도메인 : steamnlinux.iptime.org
iptime 포트포워딩 외부포트 : 33333
iptime 포트포워딩 내부포트 : 139
삼바서버 내부 ip는 192.168.0.18 를 항상 할당받고 있다.
-------------------------------------------------------------------


2. 삼바설정
삼버서버는  Archlinux에 samba라는 폴더가 공유되어 있고 samba ID : samba, 비밀번호는 1111
삼버 서버 설정은 개인별 설정하기 나름이겠고, 로컬내트워크에서 다른 컴퓨터로 연결이 잘 되는지 확인해보자.

3. 삼바클라이언트 실행
3-1  기본적인 mount 명령어를 이용하는 방법
# sudo mount -t cifs //linuxnsteam.iptime.org/samba /mnt/samba -o port=13999,username=samba,password=1111,workgroup=WORKGROUP,iocharset=utf8,uid=useraccount

주의할 점은 옵션에서 포트설정이 제일 먼저 위치해야한다. 본인은 그러했다...
그리고 uid는 클라이언트의 현 계정을 지정해주면 읽기 쓰기 등 권한 문제가 없다.

3-2 파일관리자를 이용하는 방법
파일관리자에서는 Ctrl+L 을 실행해서 주소창을 열어서 아래 명령어를 실행
로그인 창이 뜨면 username ,password 등을 입력한다.
# smb://linuxnsteam.iptime.org:13999/samba


pcmanfm 이나 nautilus 같은 파일관리에서 간단하게 사용이 가능하나 문제는 읽기전용으로
인식을 해서 수정을 할수가 없다.
마운팅 시 기본적으로 UID 등이 본 계정으로 폴더나 파일의 소유권이 설정되는되도 수정이 안되고 생성된 파일이나 폴더가 안보이거나..하는 문제점으로 추천하지 않는다.




samba 와 winbind 충돌 문제

잘되던 삼바가 4.9 버전업을 하고 난 후부터 부팅 및 종료 시 에러 메시지가 나타나기 시작했다. 혹시나 하고 삼바 서비스를 재실행 해보니 에러가 발생했다. # sudo systemctl start smb.service J ob for smb...