Samba 서버에 Windows 10 로 접근할 수 없을때의 대처
검색어 : problem, Windows10, Linux, Samba, Microsoft Account, MSA, Username map, AllowInsecureGuestAuth, 0x80004005, 0x80070035, not accessible, 연결이 안됨
증상 : Windows 10 (이하 Win10) client에서 Linux Samba Server의 공유 폴더에 접근 불가
원인 : Win10 의 버그 - MS 온라인 계정(이하 MS계정)로 로그인하면 다른 ID와 패스워드로 Samba에 접근 불가능
대처 : 해당 Samba 서버에 MS계정과 같은 아이디와 패스워드로 Samba 계정을 만들어준다. (기존의 계정을 그대로 쓰려면 username map을 사용)
최근에 Win10이 새로 출시되어 업그레이드를 했는데
갑자기 Samba 서버에 접속이 되지 않는 아주 당혹스런 문제를 마주해야 했다.
아주 긴 시행착오를 걸쳐서 알아낸 정확한 증상은 다음과 같다.
1. Win10 에서 Samba 서버에 접근할 수 없다.
1.1. 에러 메시지는 보통 '\\PATH에 액세스할 수 없습니다. 이름이 정확한지 확인하십시오' 혹은 그와 유사한 일반적인 의미의 메시지가 출력된다. (\\PATH is not accessible. an unexpected network error occurred.)
1.2. 에러 코드는 보통 0x80004005, 0x80070035, 0x800704cf 중 하나
2. Win8이나 리눅스, 안드로이드, 기타 운영체제에서는 해당 서버에 잘 접근된다.
3. Win10에서도 윈도 로컬 아이디로는 아무 문제 없이 접근이 되지만 MS Account 로 로그인한 다음에 Samba 서버에 접근하려 하면 접근할 수가 없다.
4. 프로그램들의 버젼은 Windows 10 Pro, Debian Linux 8.1, Linux Kernel 3.16, Samba 4.1.17
검색해보니 나와 비슷한 상황을 당한 사람들이 많았던 듯.
https://techjourney.net/cannot-connect-to-cifs-smb-samba-network-shares-shared-folders-in-windows-10/
하지만 내가 당한 문제하고는 약간 다른 경우였는데,
위의 글은 guest에게 완전히 열어놓은 Samba 서버에서 발생하는 문제였고
내가 당한 경우는 ID와 패스워드로 보호되는 Samba 서버에서 발생한 문제였다.
따라서 AllowInsecureGuestAuth 옵션은 직접적으로는 별 도움이 되지 않았다.
그러나 문제 상황의 이해에는 많은 도움이 되었다.
문제의 원인은 Win10의 버그로,
MS계정으로 로그인을 하면 다른 아이디를 사용하는 Samba 서버에 접근이 불가능한 문제였다.
이것이 보안 정책의 변화가 아닌 버그라고 생각하는 이유는
Win10 에서 로컬 아이디로 로그인한 상황에서는 Samba서버 공유 폴더에 접근이 잘 되기 때문이다.
버그가 아니라면, 같은 방식으로 MS계정 사용을 반 강제하던 그 전의 Win8.1에서는
아무 문제가 없었던 일을 설명하기 어렵다.
Win10이건 Samba건 패치가 되어야 해결이 될 듯 하지만
언제 될지 모르는 문제라 아래의 링크를 참고하여 임시 방편의 해결책을 제시한다.
http://brentingitup.com/?q=node/10
방법은 간단하다. Samba 서버에 현재의 MS계정과 동일한 ID와 패스워드로 사용자를 등록하는 것이다.
기존의 설정을 되도록 적게 건드리고 문제를 해결하려면, username map을 사용하는 편이 좋다.
NAS라면 그냥 새로운 사용자를 등록하는 것이 편할지도 모른다.
예제 상황:
- Windows 10 의 MS 온라인 계정 : msuser@outlook.com, 암호는 ms_passwd
- 이전까지 쓰던 Linux Samba 서버의 계정 : sambauser, 암호는 samba_passwd
위의 글에서는 새로 사용자를 등록했지만 여기서는 기존에 쓰던 계정을 그대로 활용한다.
우선 Samba 서버에서 기존 사용자인 sambauser의 패스워드를 samba_passwd 에서 ms_passwd로 고친다.
# smbpasswd sambauser
root 권한으로 /etc/samba/smbusers 파일을 다음과 같은 내용으로 만들어준다.
sambauser = msuser@outlook.com
그 다음에, /etc/samba/smb.conf 파일의 [global] 섹션에 다음의 내용을 추가한다.
username map = /etc/samba/smbusers
그리고 root 권한으로 서비스를 다시 시작한다.
# /etc/init.d/samba restart
이제, Samba 서버에 자유롭게 접근이 가능하다.
남은 문제는, 로그인 과정을 거치지 않는다는 것이다.
즉 Windows 계정이 그대로 Samba 계정으로 사용되는 것이다.
이것은 경우에 따라서는 문제가 될 수 있다.
그렇기에, 이것은 버그가 본격적으로 해결되기 전까지의 임시방편일 따름이다.
최근에는 NAS를 쓰는 사람도 많고 하니, 아마 당분간 이 문제로 골머리를 앓는 사람들이 꽤 있을 듯하다.
ps. Windows 자격 증명에 SAMBA 서버의 주소와 ID, 패스워드를 등록하는 것으로는 문제가 해결이 되지 않는다.
때문에 나는 이 문제가 버그라고 생각한다.
ps2. 제어판->네트워크의 고급 공유 설정이나 관리도구->로컬 보안 정책을 건드리는 방법으로는 해결이 되지 않는다.
인터넷에서 찾을 수 있는 모든 방법을 다 시도해봤으나 잘 되지 않았다.
대표적인 것으로 로컬 보안 정책의 Manager 인증 수준 변경이 있다.
다만 경우에 따라서는 이런 방법들도 도움이 될지 모르겠다.
ps3. Power shell 에서 net view를 해보는 것도 문제 진단에 도움이 된다.
SAMBA 서버의 이름이 뜬다면, 이 문제일 가능성이 크다. 아니라면, 기본적으로 연결이 안되는 문제일 가능성이 크다.
ps4. 조만간 패치가 되지 않을까 싶다. 아마 된다면 SAMBA 쪽이 더 빠르지 않을까.
ps5. 네트워크 어댑터의 WINS 옵션 중에 Enable NetBIOS over TCP/IP를 켜는 것은 도움이 안된다.
https://kb.niu.edu/page.php?id=51371
댓글 없음:
댓글 쓰기