การเข้าถึง Windows 10 แชร์ผ่าน Ubuntu / CIFS ผ่าน OpenVPN


1

เป้าหมาย: เพื่อเข้าถึงการแชร์ไฟล์ Windows 10 จาก Linux ผ่าน VPN

ในบริบทนี้: "เซิร์ฟเวอร์" เป็นเครื่อง Windows 10 อย่างง่ายและ "ไคลเอนต์" คือ Ubuntu 18

ฉันมีการตั้งค่าอุโมงค์ OpenVPN การเชื่อมต่อดูดีสามารถเชื่อมต่อ ping เซิร์ฟเวอร์พอร์ตสแกนให้ผลลัพธ์ที่ถูกต้องและฉันสามารถสร้างการเชื่อมต่อ telnet ไปยังพอร์ต 135 ได้ด้วยตนเอง

ฉันกำลังพยายามเมานต์โฟลเดอร์บน linux เพื่อแชร์ windows โดยใช้ CIFS สิ่งที่ฉันทำมาหลายครั้งก่อนหน้านี้ - แต่ไม่ใช่กับเครื่อง windows ที่เฉพาะเจาะจงนี้เป็นที่ยอมรับ

ฉันใช้อย่างมีประสิทธิภาพmount -t cifs //server/share /mnt/shareแต่ผลที่ได้คือ:

เมานต์: / mnt / share: เมานต์ (2) การเรียกระบบล้มเหลว: การเชื่อมต่อถูกปฏิเสธ

dmesg / syslog แสดง:

CIFS VFS: ข้อผิดพลาดการเชื่อมต่อกับซ็อกเก็ต ยกเลิกการทำงาน
CIFS VFS: cifs_mount ล้มเหลวด้วยโค้ดส่งคืน = -111

ฉันได้ลองใช้ธง CIFS เกือบทั้งหมดที่ฉันสามารถนึกได้รวมถึงตัวเลือกความปลอดภัยทั้งหมด คำสั่งปัจจุบันจริงฉันใช้คือ:
sudo mount -v -t cifs -o vers=3.1.1,username=myuser,pass=mypass,servern=WINDESKTOP,sec=ntlmssp //10.8.0.1/share /mnt/share

ไฟร์วอลล์ Windows ถูกปิดส่วนแบ่งและโฟลเดอร์มีสิทธิ์เต็มรูปแบบสำหรับบัญชีผู้ใช้ฉันกำลังพยายามที่จะใช้เช่นเดียวกับ,guestanonymous login

ฉันติดตั้งเซิร์ฟเวอร์ FTP บนเซิร์ฟเวอร์เพื่อตรวจสอบการเชื่อมต่อสามเท่าหางานได้

ทำไม CIFS ถึงไม่เชื่อมต่อ? มีวิธีใดในเซิร์ฟเวอร์ windows ที่จะเห็นสิ่งที่มันทำกับการเชื่อมต่อ? และ / หรือจะมีการรับเอาต์การดีบักที่มากขึ้นจาก CIFS บน Ubuntu หรือไม่?

แก้ไข: portscan แสดงให้เห็นถึงการเปิดพอร์ตต่อไปนี้:
nmap -Pn <host>

บริการพอร์ตของรัฐ
135 / tcp เปิด msrpc
554 / tcp เปิด rtsp
2869 / tcp เปิด icslap
10243 / tcp เปิดไม่ทราบ

การปรับปรุง / แก้ไข:

พบปัญหาและวิธีแก้ปัญหา คำตอบด้านล่างจาก @grawity แจ้งเตือนถึงความจริงที่ว่าเซิร์ฟเวอร์ไม่ฟังพอร์ต 445 ปัญหาไม่เกี่ยวข้องกับ OpenVPN หรือ linux / CIFS

  1. สังเกตว่าบริการเซิร์ฟเวอร์ smb ไม่ได้ฟังพอร์ต 445 ซึ่งหมายความว่าms_serverส่วนประกอบนั้นไม่สามารถใช้งานได้
  2. ms_server เป็นบริการเซิร์ฟเวอร์ SMB ซึ่งเปิดใช้งาน / ปิดใช้งานโดยสลับช่องทำเครื่องหมายต่อไปนี้ในการตั้งค่าเครือข่ายของอุปกรณ์: File and Printer Sharing for Microsoft Networks.
  3. ในกรณีนี้กล่องกาเครื่องหมายถูกทำเครื่องหมายไว้แล้ว การยกเลิกการเลือกและตรวจสอบอีกครั้งแก้ไขปัญหาฟังเซิร์ฟเวอร์บนพอร์ต 445 และการแชร์ไฟล์ทำงาน แต่เพียงชั่วคราวจนกว่าจะรีบูตครั้งต่อไป
  4. ปัญหาทั้งหมดนี้ดูเหมือนจะเป็นปัญหาที่ทราบของ Windows 10 ซึ่งเกิดจาก Windows Update ล่าสุด
  5. ฉันไม่สามารถหาวิธีแก้ปัญหาที่สะอาดหรือแก้ไขปัญหาจริงได้
  6. วิธีแก้ปัญหาระยะสั้นหนึ่งอย่างคือการสร้างสคริปต์ขนาดเล็กที่มีประสิทธิภาพ "ยกเลิกการเลือกและตรวจสอบกล่อง" และทำงานเมื่อผู้ใช้ลงชื่อเข้าใช้

คำสั่ง powershell เพื่อแก้ไขปัญหานี้คือ:
Disable-NetAdapterBinding -Name "MyVPN" -ComponentID ms_server
Enable-NetAdapterBinding -Name "MyVPN" -ComponentID ms_server

คำตอบ:


1

ฉันสามารถสร้างการเชื่อมต่อ telnet ไปยังพอร์ต 135 ได้ด้วยตนเอง

นั่นไม่ใช่พอร์ตที่ถูกต้อง (นั่นคือพอร์ต RPC-EPMAP) SMB ทำงานบนพอร์ต TCP  445

(คุณอาจเห็นพอร์ต 139 สำหรับความเข้ากันได้กับไคลเอนต์ pre-Win2000เก่าซึ่งรองรับเฉพาะ SMB-over-NetBIOS ลูกค้าเหล่านั้นยังต้องการบริการดาต้า NetBIOS บน UDP 137–138 ด้วย)

เมานต์: / mnt / share: การเรียกระบบเมานต์ (2) ล้มเหลว: การเชื่อมต่อถูกปฏิเสธ
CIFS VFS: ข้อผิดพลาดการเชื่อมต่อกับซ็อกเก็ต ยกเลิกการทำงาน
CIFS VFS: cifs_mount ล้มเหลวด้วยโค้ดส่งคืน = -111

"การเชื่อมต่อถูกปฏิเสธ" หมายความว่าไคลเอนต์ได้รับ TCP RST เพื่อตอบสนองต่อความพยายามในการจับมือซึ่งโดยทั่วไปหมายความว่าเซิร์ฟเวอร์ไม่ฟังพอร์ต TCP นั้นหรือมีไฟร์วอลล์ปลอม RST เพื่อป้องกันการเชื่อมต่อ

ซึ่งโดยปกติจะไม่เป็นเรื่องของรุ่นโปรโตคอลหรือตัวเลือกความปลอดภัยซึ่งจะต่อรองหลังจากการเชื่อมต่อ TCP ได้รับการสร้างขึ้น

ไฟร์วอลล์ Windows ถูกปิดใช้งาน

ทำไม?

ไฟร์วอลล์ Windows นั้นสามารถกำหนดค่าได้: หากคุณต้องการอนุญาตโปรโตคอลผ่านคุณสามารถสร้างกฎเพื่ออนุญาตโปรโตคอลนั้น (หรือเพียงแค่เปิดใช้งานกฎที่กำหนดไว้ล่วงหน้าเมื่อมีการอนุญาต SMB หรือ ICMP)

มีวิธีใดในเซิร์ฟเวอร์ windows ที่จะเห็นสิ่งที่มันทำกับการเชื่อมต่อ? และ / หรือจะมีการรับเอาต์การดีบักที่มากขึ้นจาก CIFS บน Ubuntu หรือไม่?

ติดตั้งเครื่องมือจับแพ็คเก็ตเช่น Wireshark เริ่มการดักจับtun0หรืออะแดปเตอร์ OpenVPN TAP ดูสิ่งที่เกิดขึ้นทันทีก่อนที่ TCP RST จะถูกสร้างขึ้น

ให้ความสนใจว่าทั้งสองฝ่ายเห็นแพ็คเก็ตเดียวกันหรือไม่เช่นถ้าลูกค้าได้รับ TCP RST จริงหรือไม่เซิร์ฟเวอร์แสดงว่าได้ส่งไปแล้วหรือไม่


1) Ah! ฉันเข้าใจ SMBv1 ทำงานบนพอร์ต 135..139 รู้ว่าฉันรู้ SMBv2 + ทำงานบนพอร์ต 445 .... การสแกนพอร์ต (ดู "แก้ไข" ในคำถามแสดงว่าเซิร์ฟเวอร์ไม่ได้ฟังพอร์ต 445 ... ที่ อย่างน้อยไม่ได้อยู่ใน VPN IP..I เดานี้เป็นปัญหาในการตรวจสอบ ... )
Mtl Dev

2) Windows Firewall เพิ่งเปิดใช้ชั่วคราวในระหว่างการทดสอบเพื่อกำจัดสาเหตุที่เป็นไปได้
Mtl Dev

ทั้ง SMBv1 (aka CIFS) และ SMBv2 + ใช้ transport เดียวกัน: TCP / 445 สำหรับระบบที่ทันสมัยหรือ TCP / 139 สำหรับ NetBIOS ที่ใช้ระบบเก่า พอร์ตอื่นไม่ใช่ SMB ที่จริง: TCP / 135 คือ MS-RPC และ UDP / 137-138 เป็นบริการ NetBIOS เบ็ดเตล็ด
grawity

สิ่งที่ nmap แสดงให้เห็นนั้นเหมือนกับโมดูล cifs ที่บอกคุณ ไม่สามารถรับข้อมูลเพิ่มเติมจากระยะไกลได้และไม่ทราบว่าพอร์ตนั้น "รับฟัง" - ทั้งหมดที่เห็นคือพอร์ตนั้นยอมรับการพยายามเชื่อมต่อหรือไม่ ดังนั้นคุณจริงๆต้องตรวจสอบบนเซิร์ฟเวอร์ของตัวเองและ / หรือบนไฟร์วอลล์เราเตอร์ไปพร้อมกัน
grawity

1
โอเคขอบคุณ! เซิร์ฟเวอร์กำลังฟัง ( netstat -an) บน 445 บนเป็น IP ปกติ แต่ 445 ไม่ได้เปิดใน VPN IP การประกาศเกี่ยวกับเรื่องนี้: ถ้าฉันป้อน, บน windows server, \\serverIPหรือ\\127.0.0.1ฉันเห็นหุ้นได้ดี, แต่ถ้าฉันใส่ '\ serverVPNip` ฉันจะไม่เห็นหุ้น, หมดเวลา
Mtl Dev
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.