IPsec VPN을 통한 CIFS 마운트 문제

IPsec VPN을 통한 CIFS 마운트 문제

최근 Windows Server 2003에서 2012로 업그레이드된 파일 서버가 호스팅하는 네트워크 공유에 Ubuntu 13.04를 실행하는 클라이언트를 연결하려고 합니다.

현재 다음을 사용하여 LAN에 연결된 동안 원격 공유를 마운트할 수 있습니다.

sudo mount -t cifs //myserver.mydomain.co.uk/myshare /media/myshare/ -o user=myself,domain=myworkgroup,pass=**********

그러나 Cisco(IPsec/Xauth) VPN을 통해 공유를 마운트하는 데 문제가 있습니다. 서버 업그레이드 이전에는 아무런 문제가 없었으나 지금은 다음과 같은 메시지가 나타납니다.

mount error(112): Host is down
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

dmesg | tail나에게 준다[ 1975.651346] CIFS VFS: cifs_mount failed w/return code = -112

호스트는 확실히 다운되지 않았습니다. 다음을 사용하여 VPN을 통해 동일한 공유에 계속 연결할 수 있습니다 smbclient.

smbclient //myserver.mydomain.co.uk/myshare -U myself -W myworkgroup
Enter myself's password: 
session request to MYSERVER.MYDOMAIN failed (Called name not present)
Domain=[MYWORKGROUP] OS=[Windows Server 2012 Standard 9200] Server=[Windows Server 2012 Standard 6.2]
smb: \>

session request to MYSERVER.MYDOMAIN failed (Called name not present)아직 디렉토리 구조를 탐색할 수 있기 때문에 " " 오류의 의미를 잘 모르겠습니다 .

다음에 무엇을 시도할지 제안해 주시나요?

답변1

"익명"으로 접속이 가능하기 때문에 SMB 클라이언트와 접속이 가능합니다. 그러나 익명으로 연결할 수 있다고 해서 일반 사용자에 대한 인증 서비스가 작동하는 것은 아닙니다.

방화벽 문제가 있을 수 있습니다. 다음 4개의 포트를 엽니다.

- UDP&TCP/137
- UDP&TCP/138
- UDP&TCP/139
- TCP/445

Windows 측의 Netlogon 서비스도 통신할 수 있도록 허용하고 있는지 확인하십시오.

답변2

VPN을 통해 연결할 때 포트 445/tcp에 액세스할 수 있습니까? 사용

nc -v myserver.mydomain.co.uk 445.  

효과가 있었다면.

Connection to myserver.mydomain.co.uk 445 port [tcp/microsoft-ds] succeeded! 

볼 수 있는 유일한 문제는 어쨌든 성공할 수 있는 연결을 방화벽이 프록시하는 경우입니다. 그런 다음 패킷 캡처를 수행하여 Windows 서버가 무엇을 보내고 있는지 확인하고 싶을 것입니다.

답변3

글쎄, 1년 후 나는 마침내 그것을 알아냈습니다!

근본 원인은 호스트 이름 확인 문제로 밝혀졌습니다. VPN을 통해 동일한 원격 네트워크에 있는 컴퓨터에 SSH를 연결하는 것과 관련된 다른 문제를 해결하려고 할 때 단서가 나왔습니다.

출력에서 ssh -v:

debug1: Connecting to myserver2.mydomain.ox.ac.uk [163.1.21.182] port 22.

나는 OpenSSH가 말도 안되는 IP 주소에 연결을 시도하고 있음을 발견했습니다(실제로는 내 서버의 호스트 이름을 네트워크 프린터의 IP 주소로 확인하고 있었습니다!). ping호스트 이름을 올바르게 확인하는 데 실패했지만 작동 host하는 것 같았습니다. 그게 결국 나를 이끌었어이 스레드우분투에 물어보세요.

ping와 마찬가지로 둘 ssh다 glibc 확인자를 사용하는 것으로 나타났습니다 mount.cifs. glibc가 이름 서비스 정보를 얻는 소스는 다음에서 구성됩니다./etc/nsswitch.conf.

내 내용은 nsswitch.conf원래 다음과 같았습니다.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files myhostname mdns4_minimal [NOTFOUND=return] dns wins mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

중요한 줄은 으로 시작하는 줄로 hosts:, 호스트 이름 확인을 수행할 때 glibc가 쿼리하는 소스의 순서를 나열합니다. 내 버전에서는 검색 순서에서 dns뒤에 옵니다 .[NOTFOUND=return]

내 해석은 glibc가 처음 네 가지 소스에 따라 호스트 이름을 확인하는 데 실패하면 실제로 DNS 서버에 쿼리하기 전에 반환될 것이라는 것입니다! 왜 이런 식으로 구성되었는지는 모르겠지만 nsswitch.conf(확실히 그렇게 설정하지는 않았습니다) 줄을 다음과 같이 변경했습니다.

hosts:          files myhostname mdns4_minimal dns [NOTFOUND=return] wins mdns4

ping갑자기 , ssh및 을 포함한 모든 것이 제대로 작동하게 되었습니다 mount.cifs.

관련 정보