Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

โปรโตคอล FTP เป็นหนึ่งในโปรโตคอลที่เก่าแก่ที่สุด (มีอายุมากกว่า 40 ปี) แต่ยังคงใช้กันอย่างแพร่หลายเมื่อต้องใช้โปรโตคอลการถ่ายโอนไฟล์อย่างง่าย สามารถติดตั้งเซิร์ฟเวอร์ FTP บนระบบปฏิบัติการ Microsoft เวอร์ชันใดก็ได้ การปรับปรุงบริการ ftp ให้ทันสมัยครั้งสุดท้ายใน Windows 7 / Server 2008 R2 (อันที่จริงรหัสบริการเกือบจะเขียนตั้งแต่เริ่มต้น) ความปลอดภัยของบริการได้รับการปรับปรุงอย่างมีนัยสำคัญและมีคุณลักษณะใหม่ ๆ ปรากฏขึ้น โดยเฉพาะอย่างยิ่ง เซิร์ฟเวอร์ FTP บน Windows ช่วยให้คุณกำหนดค่าการแยกผู้ใช้ FTP . อนุญาตให้จำกัดการเข้าถึงของผู้ใช้จำนวนมากไปยังโฟลเดอร์ของตนเองบนเซิร์ฟเวอร์ FTP เดียว

เนื่องจากการแยกออกจากกัน ผู้ใช้สามารถทำงานกับโฟลเดอร์ของตนเท่านั้น และไม่สามารถขึ้นไปในแผนผังไดเร็กทอรี FTP ได้ (ไดเร็กทอรีระดับบนสุดของผู้ใช้จะแสดงเป็นรูทของเซิร์ฟเวอร์ FTP) ดังนั้นจึงสามารถป้องกันการเข้าถึงข้อมูลของผู้ใช้รายอื่นบนเซิร์ฟเวอร์ FTP ได้ การแยกผู้ใช้ FTP นั้นใช้กันอย่างแพร่หลายโดยผู้ให้บริการ ISP/โฮสติ้ง เมื่อจำเป็นต้องจัดเตรียมการเข้าถึงแต่ละไฟล์ในการจัดเก็บไฟล์เดียวสำหรับผู้ใช้ที่แตกต่างกัน

เช่นเดียวกับใน Windows เวอร์ชันก่อนหน้า บริการ FTP ใน Windows Server 2016 / 2012 R2 (อย่าสับสนกับ sFTP และ TFTP) มีพื้นฐานและรวมเข้ากับบริการ IIS อย่างล้ำลึก และมีอินเทอร์เฟซการจัดการการดูแลระบบเดียว

ในบทความนี้ เราจะแสดงวิธีการติดตั้งเซิร์ฟเวอร์ FTP แบบ IIS บน Windows Server 2016/2012 R2 และกำหนดค่าการแยกผู้ใช้ FTP (คู่มือนี้ใช้กับ Windows 10 และ 8.1 ด้วย)

จะติดตั้งบทบาทเซิร์ฟเวอร์ FTP บน Windows Server 2016/ 2012 R2 ได้อย่างไร

คุณติดตั้งบริการ FTP ได้โดยใช้คอนโซลตัวจัดการเซิร์ฟเวอร์โดยทำเครื่องหมายที่ตัวเลือก บริการ FTP และ ความสามารถในการขยายของ FTP ในส่วน เว็บเซิร์ฟเวอร์ (IIS) -> เซิร์ฟเวอร์ FTP .

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

นอกจากนี้ คุณยังสามารถติดตั้งบทบาทเซิร์ฟเวอร์ FTP ด้วยคำสั่ง PowerShell เดียว:
Install-WindowsFeature Web-FTP-Server
การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

ในการติดตั้งคอนโซลการจัดการเซิร์ฟเวอร์ FTP ให้รันคำสั่งต่อไปนี้:

Install-WindowsFeature -Name "Web-Mgmt-Console"

การสร้างไซต์ FTP การจัดการสิทธิ์ของผู้ใช้ FTP

เริ่มตัวจัดการเซิร์ฟเวอร์และเปิดคอนโซลการจัดการ IIS (Internet Information Service Manager)

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

สร้างไซต์ FTP ใหม่ (ไซต์ -> เพิ่มไซต์ FTP ).

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

ชื่อของไซต์ FTP:MyTestSite

ไดเรกทอรีรากของไซต์ FTP:C:\inetpub\ftproot

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

เพื่อป้องกันข้อมูล FTP ที่ส่งผ่านเครือข่าย เป็นไปได้ที่จะกำหนดค่า SSL สำหรับ FTP (ในกรณีนี้ ข้อมูลและรหัสผ่าน/บัญชีทั้งหมดที่ส่งโดยผู้ใช้ ftp ระหว่างเซสชันจะได้รับการเข้ารหัส) แต่ในการสาธิตของเรา สิ่งนี้ไม่จำเป็น การตั้งค่าอื่นๆ ทั้งหมดเป็นค่าเริ่มต้น

คุณสามารถจัดการไซต์ FTP ของคุณได้โดยใช้โมดูล PowerShell การดูแลเว็บ . ตัวอย่างเช่น หากต้องการสร้างไซต์ FTP ใหม่ เพียงเรียกใช้คำสั่ง:

Import-Module WebAdministration
# Set the FTP site name
$FTPSiteName = 'CORP_FTP'
#FTP folder
$FTPRoot = 'D:\www\FTPRoot'
#FTP port
$FTPPort = 21
New-WebFtpSite -Name $FTPSiteName -PhysicalPath $FTPRoot -Port $FTPPort

เลือกไซต์ FTP ใหม่และปิดใช้งาน การตรวจสอบสิทธิ์แบบไม่ระบุชื่อ ใน การตรวจสอบสิทธิ์ FTP ส่วน การตรวจสอบเบื้องต้น ต้องเปิดใช้งาน

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

บริการ FTP บน Windows Server 2016/2012 R2 สามารถใช้บัญชีได้สองประเภท:โดเมนหรือภายในเครื่อง โครงสร้างไดเรกทอรี FTP และการตั้งค่าการแยกผู้ใช้จะมีความแตกต่างกันขึ้นอยู่กับประเภทบัญชี เพื่อให้อธิบายได้ง่ายขึ้น เราจะใช้บัญชี Windows ในเครื่อง

สร้างผู้ใช้ FTP บางส่วน สมมติว่านี่คือ ftp_user1 , ftp_user2 และ ftp_user3 . สร้างกลุ่ม ftp_users . ด้วย ซึ่งรวมถึงผู้ใช้เหล่านี้ คุณสามารถสร้างผู้ใช้ในพื้นที่ได้ใน ผู้ใช้และกลุ่มภายใน ส่วนของการจัดการคอมพิวเตอร์ คอนโซล

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

คุณยังสามารถสร้างผู้ใช้และกลุ่มในเครื่องได้จากพรอมต์คำสั่ง (หรือใช้ PowerShell) สร้างกลุ่มโลคัล:
net localgroup ftp_users /add
การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

สร้างผู้ใช้ในเครื่องใหม่:
net user ftp_user1 /add *
การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

เพิ่มผู้ใช้ในกลุ่ม:
net localgroup ftp_users ftp_user1 /add
การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

สร้างผู้ใช้อีกสองคนด้วยวิธีเดียวกัน

กำหนดสิทธิ์ในการอ่านและเขียนบนไดเร็กทอรี C:\inetpub\ftproot สำหรับกลุ่ม ftp_users

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

สร้างไดเรกทอรีชื่อ LocalUser (ชื่อต้องเหมือนกัน สำคัญนะ!!! ) ในโฟลเดอร์ C:\inetpub\ftproot จากนั้นสร้างสามไดเร็กทอรีภายใต้ชื่อ ftp_user1, ftp_user2, ftp_user3 ในโฟลเดอร์ C:\inetpub\ftproot\LocalUser

หมายเหตุ . ขึ้นอยู่กับประเภทบัญชี คุณต้องสร้างโครงสร้างไดเร็กทอรีต่อไปนี้ (ภายใต้ %FtpRoot%\ เราหมายถึงรูทของไซต์ FTP ในกรณีของเราคือ C:\inetpub\ftproot\):

ประเภทบัญชี ไวยากรณ์ของการตั้งชื่อไดเรกทอรีหลัก
ผู้ใช้ที่ไม่ระบุชื่อ %FtpRoot%\LocalUser\Public
บัญชี Windows ภายในเครื่อง %FtpRoot%\LocalUser\%UserName%
บัญชีโดเมน Windows %FtpRoot%\%UserDomain%\%UserName%
บัญชี IIS Manager หรือ ASP.NET พิเศษ %FtpRoot%\LocalUser\%UserName%

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

กลับไปที่คอนโซล IIS และสร้างกฎใหม่ (เพิ่ม AllowRules ) ใน กฎการให้สิทธิ์ FTP ส่วนของเว็บไซต์ ระบุว่ากลุ่ม ftp_users ต้องมีสิทธิ์ในการอ่านและเขียน

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

จะกำหนดค่าการแยกผู้ใช้ FTP บน Windows Server 2016/2012 R2 ได้อย่างไร

ไปที่การกำหนดค่าการแยกผู้ใช้ FTP การแยกผู้ใช้ FTP ได้รับการกำหนดค่าในระดับไซต์ FTP ไม่ใช่เซิร์ฟเวอร์ทั้งหมด การแยกผู้ใช้ FTP ช่วยให้คุณจัดระเบียบโฟลเดอร์ ftp-home สำหรับผู้ใช้แต่ละคนได้

เปิด การแยกผู้ใช้ FTP ในการตั้งค่าของไซต์ FTP

ส่วนนี้มีการตั้งค่าหลายอย่าง สองรายการแรกไม่แนะนำให้แยกผู้ใช้:

  1. ไดเรกทอรีรากของ FTP (เซสชัน FTP ของผู้ใช้เริ่มต้นในไดเรกทอรีรากของไซต์ FTP)
  2. ไดเรกทอรีชื่อผู้ใช้ (ผู้ใช้เริ่มต้นด้วยไดเร็กทอรีกายภาพ/เสมือนด้วยชื่อผู้ใช้ หากไม่มีไดเร็กทอรี เซสชันจะเริ่มต้นในไดเร็กทอรี root FTP ของไซต์)

สามตัวเลือกถัดไปคือโหมดการแยกผู้ใช้ที่แตกต่างกัน:

  • ไดเรกทอรีชื่อผู้ใช้ (ปิดใช้งานไดเรกทอรีเสมือนส่วนกลาง) แนะนำให้แยกเซสชัน ftp ของผู้ใช้ในไดเร็กทอรีกายภาพ/เสมือนที่มีชื่อเดียวกับผู้ใช้ ftp ผู้ใช้เห็นเฉพาะไดเร็กทอรีของตนเอง (เป็นไดเร็กทอรี root ftp) และไม่สามารถข้ามไปได้ (ไปยังไดเร็กทอรีบนของแผนผัง FTP) ไดเร็กทอรีเสมือนทั่วโลกจะถูกละเว้น
  • ชื่อผู้ใช้ฟิสิคัลไดเร็กทอรี (เปิดใช้งานไดเร็กทอรีเสมือนส่วนกลาง) แนะนำให้แยกเซสชัน ftp ของผู้ใช้ในไดเร็กทอรีกายภาพที่มีชื่อเดียวกับชื่อบัญชีผู้ใช้ ftp ผู้ใช้ไม่สามารถไปเหนือไดเร็กทอรีของตนได้ อย่างไรก็ตาม ไดเร็กทอรีเสมือนทั่วโลกที่สร้างขึ้นทั้งหมดมีให้สำหรับผู้ใช้
  • โฮมไดเร็กทอรี FTP ที่กำหนดค่าใน Active Directory – ผู้ใช้ FTP จะถูกแยกออกจากโฮมไดเร็กทอรีที่ระบุในการตั้งค่าบัญชี Active Directory (คุณสมบัติ FTPDir และ FTPDir)
สำคัญ ถ้าไดเร็กทอรีเสมือนส่วนกลางเปิดใช้งานอยู่ ผู้ใช้ทั้งหมดสามารถเข้าถึงไดเร็กทอรีเสมือนทั้งหมดที่ตั้งไว้ในรูทของไซต์ FTP (หากพวกเขามีสิทธิ์ NTFS ที่เหมาะสม)

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

เลือกโหมดการแยกที่ต้องการ (ฉันใช้ตัวเลือกที่สองเพื่อแยกผู้ใช้ ftp)

ขอแนะนำให้เริ่มบริการ Microsoft FTP (FTPSVC) ใหม่โดยมีการเปลี่ยนแปลงการตั้งค่าไซต์ FTP

การกำหนดค่ากฎไฟร์วอลล์ Windows เพื่อเข้าถึงเซิร์ฟเวอร์ FTP

เมื่อคุณติดตั้งบทบาทเซิร์ฟเวอร์ FTP กฎที่จำเป็นทั้งหมดที่จำเป็นสำหรับผู้ใช้ในการเข้าถึง FTP จะถูกเปิดใช้งานโดยอัตโนมัติในการตั้งค่าไฟร์วอลล์ Windows

เพื่อให้ FTP ทำงานได้อย่างถูกต้องในโหมดพาสซีฟ FTP ผู้ใช้จำเป็นต้องเชื่อมต่อกับช่วงพอร์ต RPC (1025-65535) เพื่อไม่ให้เปิดพอร์ตเหล่านี้ทั้งหมดบนไฟร์วอลล์ภายนอก คุณสามารถจำกัดช่วงของพอร์ต TCP แบบไดนามิกที่ใช้สำหรับการส่งข้อมูล FTP

  1. เปิด การสนับสนุนไฟร์วอลล์ FTP ในการตั้งค่าไซต์ FTP และใน ช่วงพอร์ตช่องข้อมูล ฟิลด์ระบุช่วงพอร์ตที่คุณต้องการใช้สำหรับการเชื่อมต่อ FTP ตัวอย่างเช่น – 50000-50100; การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2
  2. บันทึกการเปลี่ยนแปลงและเริ่มต้น IIS ใหม่ (iisreset );
  3. เปิด Windows Control Panel และไปที่ Control Panel\System and Security\Windows Firewall\Allowed apps;
  4. ตรวจสอบให้แน่ใจว่ารายการแอปพลิเคชันที่ได้รับอนุญาตให้เข้าถึงผ่านไฟร์วอลล์มีสิทธิ์สำหรับเซิร์ฟเวอร์ FTP บทบาท. การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

จากนั้นตรวจสอบว่ากฎต่อไปนี้เปิดใช้งานอยู่ในการตั้งค่าของ Windows Firewall with Advanced Security:

  • เซิร์ฟเวอร์ FTP (FTP Traffic-In) – โปรโตคอล TCP พอร์ต 21;
  • FTP Server Passive (FTP Passive Traffic-In) – ที่อยู่พอร์ตในเครื่อง 1024-65535 (50000-50100 ในกรณีของเรา);
  • FTP Server Secure (FTP SSL Traffic-In) –พอร์ต 990 (เมื่อใช้ FTP กับ SSL)
  • เซิร์ฟเวอร์ FTP (การรับส่งข้อมูล FTP) – พอร์ต 20;
  • FTP Server Secure (FTP SSL Traffic-Out) –พอร์ต 989 (เมื่อใช้ FTP กับ SSL)

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

ดังนั้น พอร์ตเหล่านี้จะต้องเปิดบนเราเตอร์ของคุณ (เกตเวย์ ไฟร์วอลล์) เพื่อให้ผู้ใช้ FTP ภายนอกสามารถเชื่อมต่อกับเว็บไซต์ของคุณได้

การทดสอบการเชื่อมต่อเซิร์ฟเวอร์ FTP จาก Windows

คุณสามารถตรวจสอบความพร้อมใช้งานของพอร์ตบนเซิร์ฟเวอร์ FTP ได้โดยใช้ cmdlet ของ Test-NetConnection:

Test-NetConnection -ComputerName yourftpservername -Port 21

หรือใช้ ftp คำสั่ง:

ftp yourftpservername

ลองเชื่อมต่อกับไซต์ FTP ของคุณด้วยไคลเอนต์ FTP หรือโดยตรงจาก File Explorer (ระบุ ftp://yourservername/ ในแถบที่อยู่)

ใส่ชื่อผู้ใช้และรหัสผ่าน

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

และตอนนี้คุณสามารถเข้าถึงโฮมไดเร็กทอรีด้วยไฟล์ของผู้ใช้ (ซึ่งเป็นรูทของไซต์ FTP สำหรับผู้ใช้) ดังที่เราเห็น เซสชันผู้ใช้ถูกแยกออก และผู้ใช้เห็นเฉพาะไฟล์ของเขาบนเซิร์ฟเวอร์ ftp

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

เคล็ดลับ หากคุณต้องการใช้การเข้าถึงแบบไม่ระบุชื่อ (ผู้ใช้ที่ไม่ระบุชื่อทั้งหมด) ผู้ใช้ทุกคนจะสามารถเชื่อมต่อกับเซิร์ฟเวอร์ FTP ของคุณโดยใช้ข้อมูลประจำตัว:ไม่ระบุชื่อ หรือ แขก เป็นชื่อผู้ใช้และที่อยู่อีเมลเป็นรหัสผ่าน หากคุณเชื่อมต่อกับไซต์ FTP โดยไม่เปิดเผยตัวตน เซสชันจะถูกจำกัดไว้ที่ไดเรกทอรี LocalUser\Public (เป็นที่ชัดเจนว่าจะต้องสร้างไดเรกทอรีสาธารณะไว้ล่วงหน้า)

คุณสามารถใช้บันทึก FTP เพื่อดูข้อมูลเกี่ยวกับการเข้าถึงของผู้ใช้ไปยังเซิร์ฟเวอร์ FTP ไฟล์บันทึกจะถูกจัดเก็บโดยค่าเริ่มต้นใน c:\inetpub\logs\logfiles โฟลเดอร์ใน u_exYYMMDD.log ไฟล์.

ในการดูการเชื่อมต่อผู้ใช้ที่ใช้งานอยู่กับเซิร์ฟเวอร์ FTP ของคุณ คุณสามารถใช้ค่าของตัวนับประสิทธิภาพ IIS ผ่าน PowerShell หรือ “เซสชัน FTP ปัจจุบัน ” ในคอนโซล IIS ในคอนโซลนี้ คุณสามารถดูชื่อและที่อยู่ IP ของผู้ใช้ FTP และยกเลิกการเชื่อมต่อเซสชัน ftp หากจำเป็น

การกำหนดค่าเซิร์ฟเวอร์ FTP ด้วยการแยกผู้ใช้บน Windows Server 2016 / 2012 R2

ดังนั้นเราจึงได้ดูวิธีกำหนดค่าไซต์ FTP ด้วยการแยกผู้ใช้ตาม Windows Server 2016 / 2012 R2 ในโหมดแยก ผู้ใช้จะได้รับการตรวจสอบสิทธิ์บน FTP โดยใช้ข้อมูลรับรองในเครื่องหรือโดเมนเพื่อเข้าถึงไดเรกทอรีรากที่สอดคล้องกับชื่อผู้ใช้