วิธีการปิดการใช้งานคุณสมบัติที่เปิดพอร์ต 445 บนเซิร์ฟเวอร์ windows?


13

ฉันพยายามที่จะปิดการใช้งานบริการที่ฉันไม่ต้องการเพื่อปรับปรุงความล่าช้าและปรับปรุงความปลอดภัย

ฉันพบว่าพอร์ต 445 ยังคงเปิดอยู่โดยทำ telnet บน localhost และพอร์ต 445 เนื่องจากฉันไม่ต้องการพอร์ต 445 ฉันต้องการปิดมัน

ฉันจะรู้ได้อย่างไรว่าใครกำลังฟังพอร์ต 445 และฉันจะปิดการใช้งานได้อย่างไร

โปรดทราบว่าฉันไม่ต้องการบล็อกพอร์ต 445 โดยใช้ไฟร์วอลล์หรืออะไรทำนองนั้น แต่ต้องการปิดการใช้งานโปรแกรมที่เปิดพอร์ต 445


2
และหลังจาก 4 ปีวันของคำถามนี้ก็มาถึง
BlackPanda

1
สำหรับคนที่ไม่ใช่ geek: BlackPanda คือหมายถึงransomware WannaCry
Gras Double

คำตอบ:


7

ต่อไปนี้เป็นเพียงการเสนอราคาของสองแหล่งข้อมูลที่แตกต่างกันซึ่งฉันใช้เพื่อปิดการใช้งานพอร์ต 445 บนเครื่อง Windows XP ฉันปิดพอร์ต 445 และ 135, 137 - 139 ดังนั้นฉันจึงปฏิบัติตามคำแนะนำทั้งหมดในบทความและมันก็ใช้ได้สำหรับฉัน

ข้อมูลทั่วไปเกี่ยวกับพอร์ต 445 (ลิงค์เก็บถาวร)

ในบรรดาพอร์ตใหม่ที่ใช้โดย Windows 2000 คือพอร์ต TCP 445 ซึ่งใช้สำหรับ SMB ผ่าน TCP โปรโตคอล SMB (Server Message Block) ถูกนำมาใช้เพื่อการแชร์ไฟล์ใน Windows NT / 2000 / XP ใน Windows NT มันทำงานบน NetBT (NetBIOS ผ่าน TCP / IP) ซึ่งใช้พอร์ตที่มีชื่อเสียง 137, 138 (UDP) และ 139 (TCP) ใน Windows 2000 / XP, Microsoft เพิ่มความเป็นไปได้ในการรัน SMB โดยตรงผ่าน TCP / IP โดยไม่ต้องเพิ่มเลเยอร์ของ NetBT สำหรับสิ่งนี้พวกเขาใช้พอร์ต TCP 445

ที่ NetBIOS ที่ง่ายที่สุดบน LAN ของคุณอาจเป็นความชั่วร้ายที่จำเป็นสำหรับซอฟต์แวร์รุ่นเก่า NetBIOS บน WAN ของคุณหรือผ่านทางอินเทอร์เน็ตเป็นความเสี่ยงด้านความปลอดภัยที่มหาศาล ข้อมูลทุกประเภทเช่นโดเมนของคุณเวิร์กกรุ๊ปและชื่อระบบรวมถึงข้อมูลบัญชีสามารถรับได้ผ่าน NetBIOS มันเป็นผลประโยชน์ที่ดีที่สุดของคุณเพื่อให้แน่ใจว่า NetBIOS ไม่เคยออกจากเครือข่ายของคุณ

หากคุณใช้เครื่องที่มีหลายเครือข่ายเช่นการ์ดเครือข่ายมากกว่า 1 ตัวคุณควรปิดการใช้งาน NetBIOS ในทุกการ์ดเครือข่ายหรือการเชื่อมต่อผ่านสายโทรศัพท์ภายใต้คุณสมบัติ TCP / IP ที่ไม่ได้เป็นส่วนหนึ่งของเครือข่ายท้องถิ่นของคุณ

วิธีปิดการใช้งานพอร์ต 445

หากต้องการปิดใช้งานพอร์ต 445:

เพิ่มคีย์รีจิสทรีต่อไปนี้:

รหัส: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ NetBT \ Parameters ชื่อ: SMBDeviceEnabled ประเภท: DWORD (REG_DWORD) ข้อมูล: 0

อย่าลืมรีสตาร์ทคอมพิวเตอร์หลังจากปิดการใช้งานพอร์ตด้านบนเพื่อให้ได้ผล นอกจากนี้ในการตรวจสอบว่าพอร์ตเหล่านั้นถูกปิดใช้งานคุณสามารถเปิดพรอมต์คำสั่งและพิมพ์ netstat - และเพื่อยืนยันว่าคอมพิวเตอร์ของคุณไม่ฟังพอร์ตเหล่านั้นอีกต่อไป

(รีจิสตรีคีย์แตกต่างกันสำหรับ Windows 7 เป็นต้นไปดูบทความ Microsoft นี้ )


จะไม่ปิดใช้งานพอร์ต 445 เหมือนกับการใช้ไฟร์วอลล์หรือไม่ แก้ไขอาการมากกว่าสาเหตุ จะปิดการใช้งานเพียงแค่ NetBIOS ป้องกันพอร์ต 445 จากการเปิด? แค่ถาม. (ถ้าไม่เช่นนั้น OP อาจต้องปิดการใช้งานพอร์ต)
nixda

ฉันป้องกันคอมพิวเตอร์ในเครือข่ายคุยกันโดยใช้ฟิวเจอร์เครือข่าย Windows คุณรู้จักเครือข่าย Windows - มันไม่ปลอดภัยอย่างน่ากลัว คอมพิวเตอร์เครื่องหนึ่งมีไวรัสและแพร่กระจายไปทั่ว (ใช่โดยใช้พอร์ตที่กล่าวถึงข้างต้น) ในกรณีของฉันฉันไม่ต้องการคอมพิวเตอร์เหล่านั้นแม้แต่จะรู้เกี่ยวกับการมีอยู่ของกันและกัน แต่ฉันก็ยังต้องการให้พวกเขาอยู่ในส่วนเครือข่ายเดียวกัน ดังนั้นไฟร์วอลล์ไม่ใช่วิธีแก้ปัญหาสำหรับฉัน
VL-80

ฉันได้ลองแล้วมันใช้งานได้บน windows server 2008 r2 sp1 ด้วย
javapowered

ฉันได้พบบทความที่มีประโยชน์นี้เช่นกัน ssj100.fullsubject.com/
javapowered

ตกลง! บทความนี้อยู่ในคำตอบของฉัน (: ลิงค์ที่สอง
VL-80

10

ฉันต้องการขยายคำตอบนี้

พอร์ต 445 ใน Windows เป็นค่าเริ่มต้นที่ใช้โดย "เซิร์ฟเวอร์" บริการ (ชื่อจริงคือ "lanmanserver") เพื่อให้การแชร์ไฟล์ผ่านโปรโตคอล SMB เพื่อป้องกันไม่ให้ Windows ฟังพอร์ตนี้คุณจำเป็นต้องหยุดและปิดใช้งานบริการนี้

  1. คุณต้องมีสิทธิ์ของผู้ดูแลระบบหรือสามารถยกระดับเป็นผู้ดูแลระบบ
  2. เปิดพร้อมท์คำสั่งในฐานะผู้ดูแลระบบ
  3. พิมพ์sc stop lanmanserverกด Enter
  4. ด้วยเหตุผลบางอย่าง ณ จุดนี้พอร์ตจะยังคงทำงานอยู่ (จากประสบการณ์ของฉันทำในวันนี้) คุณต้องรีบูตระบบเพื่อป้องกันไม่ให้ฟังพอร์ต แต่บริการจะรีสตาร์ทหลังจากรีบูตดังนั้นคุณต้องปิดการใช้งานเพื่อเริ่มต้น:
  5. พิมพ์sc config lanmanserver start=disabledกด Enter
  6. Reboot
  7. ตรวจสอบในพร้อมท์คำสั่งด้วยnetstat -n -a | findstr "LISTENING" | findstr ":445"ควรพิมพ์บรรทัดว่างซึ่งหมายความว่าไม่มีสิ่งใดฟังบนพอร์ต (คำสั่งอาจแตกต่างกันไปสำหรับ Windows ที่ไม่ใช่ภาษาอังกฤษไม่แน่ใจคุณอาจต้องเปลี่ยน "LISTENING" เป็นตัวแปรที่แปลแล้ว)

มีสาเหตุหลายประการในการเพิ่มพอร์ต 445 ใน Windows หนึ่งในนั้นคือ imo ค่อนข้างน่าสนใจและอนุญาตให้ SMB tunneling ผ่าน SSH - เมื่อ Windows ไม่ได้ใช้พอร์ตคุณสามารถบอก Putty / Cygwin'ed SSH เพื่อใช้งานและส่งต่อ ไปยังโฮสต์ระยะไกลผ่านทางเชื่อมต่อที่ปลอดภัย - \\localhostแล้วคุณสามารถเข้าถึงระยะไกลผ่านทาง


1
การปิดใช้งานบริการเซิร์ฟเวอร์อาจมีผลกระทบที่ไม่คาดคิด ในระบบของฉันมันยากจนNotepad ++กับแสง Explorer ที่ปลั๊กอินติดตั้ง การพยายามเริ่มโปรแกรมไม่ได้ทำให้หน้าต่างมองเห็นได้อีกต่อไป (แม้ว่ามันจะทำงานอยู่ก็ตามซึ่งสามารถสังเกตได้ในตัวจัดการงาน)
Gras Double

1

Start-run-services.msc ปิดการใช้งานบริการเซิร์ฟเวอร์


2
ฉันทำ แต่ฉันยังสามารถเชื่อมต่อกับพอร์ต 445 บน localhost ได้
javapowered

1

ใช้TCPViewเพื่อค้นหาว่าโปรแกรมใดกำลังรับฟังบนพอร์ต 445

หากผู้ฟังคือ svchost.exe นี่คือบริการของระบบ หากต้องการเดาว่าอันไหนให้จดบันทึก PID ของมันเอาไว้ไปที่ตัวจัดการงานบริการแท็บและคลิกที่ PID เพื่อจัดเรียง จะมีบริการหลายอย่างด้วย PID นี้และทั้งหมดเป็นบริการ หากคุณไม่สามารถตัดสินใจได้ว่าจะใช้ชื่อใดให้โพสต์ชื่อของบริการผู้สมัครเพื่อให้เราสามารถแสดงความคิดเห็นได้

โปรดทราบว่าพอร์ตเปิดไม่จำเป็นต้องมีผู้ฟัง พอร์ตที่เรียกว่า "เปิด" เมื่อไม่ได้ถูกบล็อกโดยไฟร์วอลล์


พอร์ตเปิดในไฟร์วอลล์จะแตกต่างจากพอร์ตเปิดบนคอมพิวเตอร์ พอร์ตจะเปิดหากผู้ฟังอยู่และดูพอร์ตนั้นเพื่อรับส่งข้อมูล มันจะปิดถ้าไม่มีผู้ฟังอยู่ ไฟร์วอลล์จะเพิ่มเลเยอร์อื่นที่อาจอนุญาตบล็อก (ส่งคืนแพ็กเก็ตที่ระบุว่าปิด) หรือปล่อย (ไม่สนใจ) แพ็กเก็ต แต่นั่นแยกจากว่าพอร์ตเปิดหรือปิดที่ระบบปฏิบัติการ
NetworkLlama

0

พอร์ต 445 = SMB = เครื่องพิมพ์และการแชร์ไฟล์ ดังนั้นปิดการแชร์ไฟล์ในตัวเลือกการเชื่อมต่อเครือข่ายเพื่อปิดพอร์ต


2
ฉันปิดการใช้งานเครื่องพิมพ์และการแชร์ไฟล์ แต่พอร์ตยังคงเปิดอยู่
javapowered

ตามรายการดังกล่าว: en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers 445 ยังใช้สำหรับ Active Directory คุณเป็นโฮสต์นี้
magicandre1981

1
ไม่ฉันไม่ต้องการอะไรและฉันต้องการปิดการใช้งานทุกอย่างฉันใช้เซิร์ฟเวอร์เพื่อการซื้อขาย
javapowered

0

PowerShell:

$netBTParametersPath = "HKLM:\SYSTEM\CurrentControlSet\Services\NetBT\Parameters" 
IF(Test-Path -Path $netBTParametersPath) { 
    Set-ItemProperty -Path $netBTParametersPath -Name "SMBDeviceEnabled" -Value 0 
} 
Set-Service lanmanserver -StartupType Disabled 
Stop-Service lanmanserver -Force

รายละเอียดเพิ่มเติมวิธีปิดการใช้งานคุณสมบัติที่เปิดพอร์ต 445 บน Windows โดย PowerShell


กรุณาอย่าโพสต์คำตอบเดียวกันกับคำถามหลาย ๆ หากข้อมูลเดิมตอบทั้งสองคำถามจริง ๆ แล้วคำถามหนึ่ง (โดยปกติจะเป็นคำถามที่ใหม่กว่า) ควรปิดเหมือนกันกับคำถามอื่น คุณสามารถระบุสิ่งนี้ได้ด้วยการลงคะแนนเพื่อปิดเป็นซ้ำหรือหากคุณไม่มีชื่อเสียงเพียงพอให้ยกธงขึ้นเพื่อระบุว่าซ้ำกัน มิฉะนั้นปรับคำตอบสำหรับคำถามนี้และไม่เพียงแค่วางคำตอบเดียวกันในหลาย ๆ ที่
DavidPostill
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.