Giao thức FTP là một trong những giao thức lâu đời nhất (đã hơn 40 năm tuổi), nhưng nó vẫn được sử dụng rộng rãi ở những nơi yêu cầu một giao thức truyền tệp đơn giản. Có thể cài đặt máy chủ FTP trên bất kỳ phiên bản nào của hệ điều hành Microsoft. Hiện đại hóa sâu lần cuối của dịch vụ ftp đã được thực hiện trong Windows 7 / Server 2008 R2 (thực ra mã dịch vụ gần như đã được viết từ đầu). Tính bảo mật của dịch vụ đã được cải thiện đáng kể và một số tính năng mới đã xuất hiện. Đặc biệt, máy chủ FTP trên Windows cho phép bạn định cấu hình cách ly người dùng FTP . Nó cho phép hạn chế quyền truy cập của nhiều người dùng vào các thư mục của riêng họ trên một máy chủ FTP duy nhất.
Do sự tách biệt, người dùng chỉ có thể làm việc với các thư mục của họ và không thể truy cập trong cây thư mục FTP (thư mục cấp ftp cao nhất của người dùng được hiển thị dưới dạng thư mục gốc của máy chủ FTP). Do đó, việc truy cập vào dữ liệu của người dùng khác trên máy chủ FTP có thể bị ngăn chặn. Cách ly người dùng FTP được ISP / nhà cung cấp dịch vụ lưu trữ sử dụng rộng rãi khi cần cung cấp quyền truy cập cá nhân vào một bộ lưu trữ tệp duy nhất cho những người dùng khác nhau.
Giống như các phiên bản Windows trước, dịch vụ FTP trong Windows Server 2016/2012 R2 (đừng nhầm lẫn với sFTP và TFTP) dựa trên và tích hợp sâu vào dịch vụ IIS và có một giao diện quản lý quản trị duy nhất.
Trong bài viết này, chúng tôi sẽ hướng dẫn cách cài đặt máy chủ FTP dựa trên IIS trên Windows Server 2016/2012 R2 và định cấu hình cách ly người dùng FTP (hướng dẫn này cũng áp dụng cho Windows 10 và 8.1).
Cách cài đặt vai trò máy chủ FTP trên Windows Server 2016/2012 R2?
Bạn có thể cài đặt dịch vụ FTP bằng bảng điều khiển Trình quản lý máy chủ bằng cách chọn tùy chọn Dịch vụ FTP và Khả năng mở rộng FTP trong phần Máy chủ Web (IIS) -> Máy chủ FTP .
Ngoài ra, bạn có thể cài đặt vai trò máy chủ FTP bằng một lệnh PowerShell duy nhất:
Install-WindowsFeature Web-FTP-Server
Để cài đặt bảng điều khiển quản lý máy chủ FTP, hãy chạy lệnh sau:
Install-WindowsFeature -Name "Web-Mgmt-Console"
Tạo Trang FTP, Quản lý Quyền của Người dùng FTP
Khởi động Trình quản lý máy chủ và mở bảng điều khiển quản lý IIS (Trình quản lý dịch vụ thông tin Internet).
Tạo một trang FTP mới ( Trang web -> Thêm trang FTP ).
Tên của trang FTP: MyTestSite
Thư mục gốc của trang FTP: C:\ inetpub \ ftproot
Để bảo vệ dữ liệu FTP được truyền qua mạng, có thể định cấu hình SSL cho FTP (trong trường hợp này, tất cả dữ liệu và mật khẩu / tài khoản do người dùng ftp gửi trong phiên sẽ được mã hóa), nhưng trong phần trình bày của chúng tôi, điều này là không cần thiết. Tất cả các cài đặt khác được để mặc định.
Bạn có thể quản lý trang FTP của mình bằng mô-đun PowerShell WebAdministration . Ví dụ:để tạo một trang FTP mới, chỉ cần chạy các lệnh:
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
Chọn một trang FTP mới và tắt Xác thực ẩn danh trong Xác thực FTP phần. Xác thực cơ bản phải được bật .
Dịch vụ FTP trên Windows Server 2016/2012 R2 có thể sử dụng hai loại tài khoản:miền hoặc cục bộ. Tùy thuộc vào loại tài khoản, có một số khác biệt trong cấu trúc của thư mục FTP và cài đặt cách ly người dùng. Để mô tả dễ dàng hơn, chúng tôi sẽ sử dụng các tài khoản Windows cục bộ.
Tạo một số người dùng FTP, giả sử, đây là ftp_user1 , ftp_user2 và ftp_user3 . Đồng thời tạo một nhóm ftp_users bao gồm những người dùng này. Bạn có thể tạo người dùng cục bộ trong Nhóm và người dùng cục bộ phần Quản lý máy tính bảng điều khiển .
Bạn cũng có thể tạo người dùng và nhóm cục bộ từ dấu nhắc lệnh (hoặc sử dụng PowerShell). Tạo một nhóm cục bộ:
net localgroup ftp_users /add
Tạo người dùng cục bộ mới:
net user ftp_user1 /add *
Thêm người dùng vào nhóm:
net localgroup ftp_users ftp_user1 /add
Tạo hai người dùng khác theo cách tương tự.
Gán quyền Đọc &Ghi trên thư mục C:\ inetpub \ ftproot cho nhóm ftp_users.
Tạo một thư mục với tên LocalUser (tên phải giống nhau, điều quan trọng !!! ) trong thư mục C:\ inetpub \ ftproot. Sau đó, tạo ba thư mục với tên ftp_user1, ftp_user2, ftp_user3 trong thư mục C:\ inetpub \ ftproot \ LocalUser.
Lưu ý . Tùy thuộc vào loại tài khoản, bạn phải tạo các cấu trúc thư mục sau (trong% FtpRoot% \, chúng tôi có nghĩa là thư mục gốc của trang FTP; trong trường hợp của chúng tôi là C:\ inetpub \ ftproot \):Loại tài khoản | Cú pháp đặt tên thư mục chính |
Người dùng ẩn danh | % FtpRoot% \ LocalUser \ Public |
Tài khoản Windows cục bộ | % FtpRoot% \ LocalUser \% UserName% |
Tài khoản Windows trên miền | % FtpRoot% \% UserDomain% \% UserName% |
Tài khoản Trình quản lý IIS hoặc ASP.NET đặc biệt | % FtpRoot% \ LocalUser \% UserName% |
Quay lại bảng điều khiển IIS và tạo quy tắc mới ( Thêm AllowRules ) trong Quy tắc cấp phép FTP phần của trang web. Chỉ định rằng nhóm ftp_users phải có hoán vị đọc và ghi.
Cách định cấu hình cách ly người dùng FTP trên Windows Server 2016/2012 R2?
Hãy chuyển sang định cấu hình cách ly người dùng FTP. Sự cô lập của người dùng FTP được định cấu hình ở cấp độ trang FTP, không phải toàn bộ máy chủ. Cách ly người dùng FTP cho phép bạn tổ chức thư mục ftp-home cho từng người dùng.
Mở Cách ly người dùng FTP trong cài đặt của trang FTP.
Phần này chứa một số cài đặt. Hai cách đầu tiên trong số họ không đề xuất cách ly người dùng:
- Thư mục gốc FTP (một phiên FTP của người dùng bắt đầu trong thư mục gốc của trang FTP);
- Thư mục tên người dùng (người dùng bắt đầu với thư mục vật lý / ảo với tên người dùng. Nếu thiếu thư mục, một phiên sẽ bắt đầu trong thư mục FTP gốc của trang web).
Ba tùy chọn tiếp theo là các chế độ cách ly người dùng khác nhau:
- Thư mục tên người dùng (tắt các thư mục ảo chung) gợi ý rằng phiên ftp của người dùng bị cô lập trong một thư mục thực / ảo có cùng tên với người dùng ftp. Người dùng chỉ nhìn thấy thư mục của riêng họ (đó là thư mục ftp gốc của họ) và không thể vượt ra ngoài thư mục đó (đến thư mục phía trên của cây FTP). Mọi thư mục ảo toàn cầu đều bị bỏ qua;
- Thư mục thực của tên người dùng (bật các thư mục ảo chung) gợi ý rằng phiên ftp của người dùng được tách biệt trong một thư mục vật lý có cùng tên với tên của tài khoản người dùng ftp. Người dùng không thể đi trên thư mục của nó. Tuy nhiên, tất cả các thư mục ảo toàn cầu đã tạo đều có sẵn cho người dùng;
- Thư mục chính FTP được định cấu hình trong Active Directory - người dùng FTP bị cô lập trong thư mục chính được chỉ định trong cài đặt của tài khoản Active Directory (thuộc tính FTPRoot và FTPDir).
Chọn chế độ cách ly được yêu cầu (Tôi sử dụng tùy chọn thứ hai để cách ly người dùng ftp).
Bạn nên khởi động lại dịch vụ Microsoft FTP (FTPSVC) với bất kỳ thay đổi nào đối với cài đặt trang FTP.Định cấu hình Quy tắc Tường lửa của Windows để Truy cập Máy chủ FTP
Khi bạn cài đặt vai trò máy chủ FTP, tất cả các quy tắc cần thiết cần thiết để người dùng truy cập FTP sẽ tự động được kích hoạt trong cài đặt Tường lửa của Windows.
Để FTP hoạt động chính xác ở chế độ FTP thụ động, người dùng cần kết nối với dải cổng RPC (1025-65535). Để không mở tất cả các cổng này trên tường lửa bên ngoài, bạn có thể giới hạn phạm vi cổng TCP động được sử dụng để truyền dữ liệu FTP.
- Mở Hỗ trợ tường lửa FTP trong cài đặt trang FTP và trong Phạm vi cổng kênh dữ liệu xác định phạm vi cổng mà bạn muốn sử dụng cho các kết nối FTP. Ví dụ - 50000-50100;
- Lưu các thay đổi và khởi động lại IIS (
iisreset
); - Mở Bảng điều khiển Windows và đi tới Bảng điều khiển \ Hệ thống và bảo mật \ Tường lửa Windows \ Ứng dụng được phép;
- Đảm bảo rằng danh sách các ứng dụng được phép truy cập thông qua tường lửa chứa các quyền đối với Máy chủ FTP vai diễn.
Sau đó, kiểm tra xem các quy tắc sau đã được bật trong cài đặt của Tường lửa Windows với Bảo mật nâng cao chưa:
- Máy chủ FTP (FTP Traffic-In) - Giao thức TCP, cổng 21;
- FTP Server Passive (FTP Passive Traffic-In) - địa chỉ cổng cục bộ 1024-65535 (trong trường hợp của chúng tôi là 50000-50100);
- Bảo mật máy chủ FTP (FTP SSL Traffic-In) – cổng 990 (khi sử dụng FTP với SSL);
- Máy chủ FTP (FTP Traffic-Out) - cổng 20;
- Bảo mật máy chủ FTP (FTP SSL Traffic-Out) – cổng 989 (khi sử dụng FTP với SSL).
Theo đó, các cổng này cần được mở trên bộ định tuyến của bạn (cổng vào, tường lửa) để người dùng FTP bên ngoài có thể kết nối với trang web của bạn.
Kiểm tra Kết nối Máy chủ FTP từ Windows
Bạn có thể kiểm tra tính khả dụng của các cổng trên máy chủ FTP bằng lệnh ghép ngắn Test-NetConnection:
Test-NetConnection -ComputerName yourftpservername -Port 21
Hoặc sử dụng ftp lệnh:
ftp yourftpservername
Cố gắng kết nối với trang FTP của bạn bằng bất kỳ ứng dụng khách FTP nào hoặc trực tiếp từ File Explorer (chỉ định ftp:// yourervername / trong thanh địa chỉ).
Nhập tên người dùng và mật khẩu.
Và bây giờ bạn có quyền truy cập vào thư mục chính với các tệp của người dùng (là thư mục gốc của trang FTP cho người dùng). Như chúng ta có thể thấy, phiên người dùng bị cô lập và người dùng chỉ nhìn thấy các tệp của mình trên máy chủ ftp.
Mẹo. Nếu bạn muốn sử dụng quyền truy cập ẩn danh (Tất cả người dùng ẩn danh), bất kỳ người dùng nào cũng có thể kết nối với máy chủ FTP của bạn bằng thông tin đăng nhập: ẩn danh hoặc khách làm tên người dùng và địa chỉ email làm mật khẩu. Nếu bạn kết nối ẩn danh với một trang FTP, phiên sẽ bị giới hạn trong thư mục LocalUser \ Public (hiển nhiên, thư mục Public phải được tạo trước).
Bạn có thể sử dụng nhật ký FTP để xem thông tin về quyền truy cập của người dùng vào máy chủ FTP. Các tệp nhật ký được lưu trữ theo mặc định trong c:\ inetpub \ logs \ logfiles trong thư mục u_exYYMMDD.log tệp.
Để xem các kết nối người dùng đang hoạt động với máy chủ FTP của bạn, bạn có thể sử dụng các giá trị của bộ đếm hiệu suất IIS thông qua PowerShell hoặc “ Phiên FTP hiện tại ”Trong bảng điều khiển IIS. Trong bảng điều khiển này, bạn có thể xem tên và địa chỉ IP của người dùng FTP và ngắt kết nối ftp-session nếu cần.
Vì vậy, chúng ta đã xem xét cách định cấu hình một trang FTP với tính năng cách ly người dùng dựa trên Windows Server 2016/2012 R2. Trong chế độ cách ly, người dùng được xác thực trên FTP bằng thông tin đăng nhập cục bộ hoặc tên miền của họ để truy cập thư mục gốc của họ tương ứng với tên người dùng.