FTP, viết tắt của File Transfer Protocol, là một giao thức mạng đã từng được sử dụng rộng rãi để di chuyển các tệp giữa máy khách và máy chủ. FTP vẫn được sử dụng để hỗ trợ các ứng dụng cũ và quy trình công việc với các nhu cầu rất cụ thể. Nếu bạn có lựa chọn về giao thức, hãy xem xét các tùy chọn hiện đại hiệu quả hơn, an toàn hơn và thuận tiện hơn cho việc phân phối tệp. Ví dụ: người dùng Internet tải xuống trực tiếp từ trình duyệt web của họ bằng https
và người dùng dòng lệnh sử dụng các giao thức bảo mật như scp
hoặc SFTP.
vsftpd, trình nền FTP rất an toàn, là máy chủ FTP cho nhiều hệ thống giống Unix, bao gồm cả Linux và cũng thường là máy chủ FTP mặc định cho nhiều bản phân phối Linux. vsftpd có lợi cho việc tối ưu hóa bảo mật, hiệu suất và tính ổn định. Nó cũng cung cấp khả năng bảo vệ mạnh mẽ chống lại các vấn đề bảo mật được tìm thấy trong các máy chủ FTP khác. vsftpd có thể xử lý các cấu hình IPD ảo, hỗ trợ mã hóa với tích hợp SSL, v.v.
Trong hướng dẫn này, bạn sẽ thiết lập cấu hình vsftpd để cho phép người dùng tải tệp lên thư mục chính của họ bằng FTP với thông tin đăng nhập được bảo mật bằng SSL/TLS. Bạn cũng sẽ kết nối máy chủ của mình bằng FileZilla, ứng dụng khách FTP nguồn mở, để kiểm tra mã hóa TLS.
Để làm theo hướng dẫn này, bạn sẽ cần:
Điều đầu tiên bạn cần là máy chủ Ubuntu 20.04, non-root user có đặc quyền sudo và tường lửa được bật. Bạn có thể tìm hiểu thêm về cách thực hiện việc này trong hướng dẫn Thiết lập máy chủ ban đầu với Ubuntu 20.04 của chúng tôi.
Điều thứ hai bạn cần là FileZilla, một ứng dụng khách FTP mã nguồn mở, được cài đặt và thiết lập cấu hình trên máy cục bộ của bạn. Điều này sẽ cho phép bạn kiểm tra xem máy khách có thể kết nối với máy chủ của bạn qua TLS hay không.
Bắt đầu bằng cách cập nhật danh sách gói của bạn:
- sudo apt update
Tiếp theo, cài đặt vsftpd
daemon:
- sudo apt install vsftpd
Khi quá trình cài đặt hoàn tất, hãy sao chép tệp cấu hình để bạn có thể bắt đầu với cấu hình trống, đồng thời lưu bản gốc làm bản sao lưu:
- sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
Với bản sao lưu cấu hình tại chỗ, bạn đã sẵn sàng thiết lập cấu hình tường lửa.
Trước tiên, hãy kiểm tra trạng thái tường lửa để xem nó có được bật hay không. Nếu đúng như vậy, thì bạn sẽ thực hiện các điều chỉnh để đảm bảo rằng lưu lượng FTP được cho phép để các quy tắc tường lửa không chặn các bài kiểm tra.
Kiểm tra trạng thái tường lửa:
- sudo ufw status
Đầu ra này cho thấy rằng tường lửa đang hoạt động và chỉ SSH được phép thông qua:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Bạn có thể có các quy tắc khác tại chỗ hoặc không có quy tắc tường lửa nào cả. Vì chỉ cho phép lưu lượng SSH, nên bạn sẽ cần thêm quy tắc cho lưu lượng FTP.
Bắt đầu bằng cách mở các cổng 20
, 21
và 990
để chúng sẵn sàng khi bạn bật TLS:
- sudo ufw allow 20,21,990/tcp
Tiếp theo, mở các cổng 40000-50000
cho phạm vi cổng thụ động mà bạn sẽ đặt trong tệp cấu hình:
- sudo ufw allow 40000:50000/tcp
Kiểm tra trạng thái tường lửa của bạn:
- sudo ufw status
Đầu ra của các quy tắc tường lửa của bạn bây giờ sẽ xuất hiện như sau:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
20,21,990/tcp ALLOW Anywhere
40000:50000/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
20,21,990/tcp (v6) ALLOW Anywhere (v6)
40000:50000/tcp (v6) ALLOW Anywhere (v6)
Với vsftpd
đã được cài đặt và các cổng cần thiết đã mở, giờ là lúc tạo một FTP user chuyên dụng.
Trong bước này, bạn sẽ tạo một FTP user chuyên dụng. Tuy nhiên, bạn có thể đã có user cần truy cập FTP. Hướng dẫn này phác thảo cách duy trì quyền truy cập của người dùng hiện tại vào dữ liệu của họ, tuy nhiên, chúng tôi khuyên bạn nên bắt đầu với một FTP user chuyên dụng mới cho đến khi bạn thiết lập cấu hình và kiểm tra thiết lập của mình trước khi định cấu hình lại bất kỳ người dùng hiện có nào.
Bắt đầu bằng cách thêm người dùng thử:
- sudo adduser sammy
Chỉ định một mật khẩu khi được nhắc. Vui lòng nhấn ENTER
để bỏ qua các lời nhắc sau vì những chi tiết đó không quan trọng đối với mục đích của bước này.
FTP thường an toàn hơn khi người dùng bị giới hạn trong một thư mục cụ thể. vsftpd
thực hiện điều này với chroot
jails. Khi bật chroot
cho người dùng cục bộ, theo mặc định, họ bị giới hạn trong thư mục chính. Vì vsftpd
bảo mật thư mục theo một cách cụ thể, nên người dùng không thể ghi được. Điều này tốt cho người dùng mới, những người chỉ nên kết nối qua FTP, nhưng người dùng hiện tại có thể cần ghi vào thư mục chính của họ nếu họ cũng có quyền truy cập shell.
Trong ví dụ này, thay vì xóa các đặc quyền ghi khỏi thư mục chính, hãy tạo một thư mục ftp
để dùng làm chroot
và một thư mục files
có thể ghi để chứa các tệp thực tế.
Tạo thư mục ftp
:
- sudo mkdir /home/sammy/ftp
Đặt quyền sở hữu của nó:
- sudo chown nobody:nogroup /home/sammy/ftp
Xóa quyền ghi:
- sudo chmod a-w /home/sammy/ftp
Xác minh các quyền:
- sudo ls -la /home/sammy/ftp
Outputtotal 8
dr-xr-xr-x 2 nobody nogroup 4096 Sep 14 20:28 .
drwxr-xr-x 3 sammy sammy 4096 Sep 14 20:28 ..
Tiếp theo, tạo thư mục để tải lên tệp:
- sudo mkdir /home/sammy/ftp/files
Sau đó gán quyền sở hữu cho người dùng:
- sudo chown sammy:sammy /home/sammy/ftp/files
Kiểm tra quyền trên thư mục ftp
sẽ trả về đầu ra sau:
- sudo ls -la /home/sammy/ftp
Outputtotal 12
dr-xr-xr-x 3 nobody nogroup 4096 Sep 14 20:30 .
drwxr-xr-x 3 sammy sammy 4096 Sep 14 20:28 ..
drwxr-xr-x 2 sammy sammy 4096 Sep 14 20:30 files
Cuối cùng, thêm tệp test.txt
để sử dụng để kiểm tra:
- echo "vsftpd test file" | sudo tee /home/sammy/ftp/files/test.txt
Outputvsftpd test file
Bây giờ bạn đã bảo mật thư mục ftp
và cho phép người dùng truy cập vào thư mục tệp, tiếp theo bạn sẽ sửa đổi cấu hình của chúng ta.
Trong bước này, bạn sẽ cho phép một người dùng có tài khoản shell cục bộ kết nối với FTP. Hai cài đặt chính cho điều này đã được đặt trong vsftpd.conf
. Mở tệp này bằng trình soạn thảo văn bản ưa thích của bạn. Ở đây, chúng tôi sẽ sử dụng nano
:
- sudo nano /etc/vsftpd.conf
Khi bạn đã mở tệp, hãy xác nhận rằng chỉ thị anonymous_enable
được đặt thành NO
và chỉ thị local_enable
được đặt thành YES
:
. . .
# Allow anonymous FTP? (Disabled by default).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
. . .
Các cài đặt này ngăn đăng nhập ẩn danh và cho phép đăng nhập cục bộ tương ứng. Hãy nhớ rằng việc bật đăng nhập cục bộ có nghĩa là bất kỳ người dùng bình thường nào được liệt kê trong tệp /etc/passwd
đều có thể được sử dụng để đăng nhập.
Một số lệnh FTP cho phép người dùng thêm, thay đổi hoặc xóa tệp và thư mục trên hệ thống tệp. Bật các lệnh này bằng cách bỏ ghi chú cài đặt write_enable
. Bạn có thể thực hiện việc này bằng cách xóa dấu thăng (#
) trước chỉ thị này:
. . .
write_enable=YES
. . .
Bỏ ghi chú chroot
để ngăn người dùng được kết nối FTP truy cập vào bất kỳ tệp hoặc lệnh nào bên ngoài cây thư mục:
. . .
chroot_local_user=YES
. . .
Tiếp theo, thêm một lệnh user_sub_token
có giá trị là biến môi trường $USER
. Sau đó, thêm một lệnh local_root
và đặt nó vào đường dẫn được hiển thị, bao gồm cả biến môi trường $USER
. Thiết lập này đảm bảo rằng cấu hình sẽ cho phép người dùng này và những người dùng trong tương lai được định tuyến đến thư mục chính của người dùng thích hợp khi đăng nhập. Thêm các cài đặt này vào bất kỳ đâu trong tệp:
. . .
user_sub_token=$USER
local_root=/home/$USER/ftp
Giới hạn phạm vi cổng có thể được sử dụng cho FTP thụ động để đảm bảo có đủ kết nối:
. . .
pasv_min_port=40000
pasv_max_port=50000
Lưu ý: Ở Bước 2, bạn đã mở các cổng được đặt ở đây cho dải cổng thụ động. Nếu bạn thay đổi các giá trị này, hãy nhớ cập nhật cài đặt tường lửa của mình.
Để cho phép truy cập FTP trong từng trường hợp cụ thể, hãy đặt cấu hình sao cho người dùng chỉ có quyền truy cập khi họ được thêm vào danh sách một cách rõ ràng, thay vì theo mặc định:
. . .
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
userlist_deny
thay đổi logic: khi nó được đặt thành YES
, người dùng trong danh sách bị từ chối truy cập FTP; khi nó được đặt thành NO
, chỉ những người dùng trong danh sách mới được phép truy cập.
Khi bạn thực hiện xong các thay đổi, hãy lưu tệp và thoát khỏi trình chỉnh sửa. Nếu bạn đã sử dụng nano
để chỉnh sửa tệp, bạn có thể làm như vậy bằng cách nhấn CTRL + X
, Y
, rồi ENTER
.
Cuối cùng, thêm người dùng của bạn vào /etc/vsftpd.userlist
. Sử dụng cờ -a
để thêm vào tệp:
- echo "sammy" | sudo tee -a /etc/vsftpd.userlist
Kiểm tra xem nó đã được thêm vào như bạn mong đợi chưa:
- cat /etc/vsftpd.userlist
Outputsammy
Khởi động lại daemon để tải các thay đổi cấu hình:
- sudo systemctl restart vsftpd
Với cấu hình sẵn có, bây giờ bạn có thể kiểm tra quyền truy cập FTP.
Chúng ta đã thiết lập cấu hình máy chủ để chỉ cho phép người dùng sammy kết nối qua FTP. Bây giờ chúng ta sẽ đảm bảo rằng điều này hoạt động như mong đợi.
Vì bạn đã tắt quyền truy cập ẩn danh nên bạn có thể kiểm tra bằng cách thử kết nối ẩn danh. Nếu cấu hình được thiết lập đúng cách, người dùng ẩn danh sẽ bị từ chối cấp quyền. Mở một cửa sổ đầu cuối khác và chạy lệnh sau. Đảm bảo thay thế 203.0.113.0
bằng địa chỉ IP công khai của máy chủ của bạn:
- ftp -p 203.0.113.0
Khi được nhắc nhập tên người dùng, hãy thử đăng nhập với tư cách người dùng không tồn tại, chẳng hạn như anonymous và bạn sẽ nhận được kết quả sau:
OutputConnected to 203.0.113.0.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:default): anonymous
530 Permission denied.
ftp: Login failed.
ftp>
Đóng kết nối:
- bye
Người dùng không phải sammy cũng không kết nối được. Hãy thử kết nối với tư cách là người dùng sudo của bạn. Họ cũng nên bị từ chối truy cập và điều đó sẽ xảy ra trước khi họ được phép nhập mật khẩu của mình:
- ftp -p 203.0.113.0
OutputConnected to 203.0.113.0.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:default): sudo_user
530 Permission denied.
ftp: Login failed.
ftp>
Đóng kết nối:
- bye
Mặt khác, người dùng sammy có thể kết nối, đọc và ghi tệp. Đảm bảo rằng người dùng FTP được chỉ định của bạn có thể kết nối:
- ftp -p 203.0.113.0
OutputConnected to 203.0.113.0.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:default): sammy
331 Please specify the password.
Password: your_user's_password
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Bây giờ thay đổi vào thư mục files
:
- cd files
Output250 Directory successfully changed.
Tiếp theo, hãy chạy get
để chuyển tệp thử nghiệm mà bạn đã tạo trước đó sang máy cục bộ của mình:
- get test.txt
Output227 Entering Passive Mode (203,0,113,0,169,12).
150 Opening BINARY mode data connection for test.txt (17 bytes).
226 Transfer complete.
17 bytes received in 0.00 secs (4.5496 kB/s)
ftp>
Tiếp theo, tải lên tệp có tên mới để kiểm tra quyền ghi:
- put test.txt upload.txt
Output227 Entering Passive Mode (203,0,113,0,164,71).
150 Ok to send data.
226 Transfer complete.
17 bytes sent in 0.00 secs (5.3227 kB/s)
Đóng kết nối:
- bye
Bây giờ bạn đã kiểm tra cấu hình của mình, tiếp theo, bạn sẽ thực hiện các bước để tăng cường bảo mật cho máy chủ của mình.
Vì FTP không mã hóa bất kỳ dữ liệu nào khi truyền, kể cả thông tin đăng nhập của người dùng, nên bạn có thể bật TLS/SSL để cung cấp mã hóa đó. Bước đầu tiên là tạo chứng chỉ SSL để sử dụng với vsftpd
.
Sử dụng openssl
để tạo chứng chỉ mới và sử dụng cờ -days
để làm cho chứng chỉ hợp lệ trong một năm. Trong cùng một lệnh, hãy thêm 2048-bit RSA key riêng tư. Bằng cách đặt cả hai cờ -keyout
và -out
thành cùng một giá trị, key riêng và chứng chỉ sẽ nằm trong cùng một tệp:
- sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Bạn sẽ được nhắc cung cấp thông tin địa chỉ cho chứng chỉ của mình. Thay thế thông tin của riêng bạn cho các giá trị được đánh dấu:
OutputGenerating a 2048 bit RSA private key
............................................................................+++
...........+++
writing new private key to '/etc/ssl/private/vsftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:NY
Locality Name (eg, city) []:New York City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:CloudFly
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []: your_server_ip
Email Address []:
Để biết thêm thông tin chi tiết về cờ chứng chỉ, hãy đọc OpenSSL Essentials: Working with SSL Certificates, Private Keys and CSRs.
Khi bạn đã tạo chứng chỉ, hãy mở lại tệp cấu hình vsftpd
:
- sudo nano /etc/vsftpd.conf
Ở cuối tệp, sẽ có hai dòng bắt đầu bằng rsa_
. Nhận xét chúng bằng cách đặt trước mỗi dòng một dấu thăng (#
):
. . .
# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
# rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
. . .
Sau những dòng đó, hãy thêm các dòng sau trỏ đến chứng chỉ và key riêng mà bạn đã tạo:
. . .
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
. . .
Bây giờ, bạn sẽ buộc sử dụng SSL, điều này sẽ ngăn các máy khách không thể xử lý TLS kết nối. Điều này là cần thiết để đảm bảo rằng tất cả lưu lượng được mã hóa, nhưng nó có thể buộc người dùng FTP của bạn thay đổi ứng dụng khách. Thay đổi ssl_enable
thành YES
:
. . .
ssl_enable=YES
. . .
Tiếp theo, thêm các dòng sau để từ chối rõ ràng các kết nối ẩn danh qua SSL và yêu cầu SSL cho cả truyền dữ liệu và đăng nhập:
. . .
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
. . .
Sau đó thiết lập cấu hình máy chủ để sử dụng TLS, phiên bản kế thừa ưu tiên của SSL, bằng cách thêm các dòng sau:
. . .
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
. . .
Cuối cùng, thêm hai tùy chọn cuối cùng. Cái đầu tiên sẽ không yêu cầu sử dụng lại SSL vì nó có thể phá vỡ nhiều máy khách FTP. Thứ hai sẽ yêu cầu các bộ mật mã mã hóa “cao”, hiện có nghĩa là độ dài khóa bằng hoặc lớn hơn 128 bit:
. . .
require_ssl_reuse=NO
ssl_ciphers=HIGH
. . .
Đây là cách phần này của tệp sẽ xuất hiện sau khi tất cả những thay đổi này đã được thực hiện:
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
#rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
Khi bạn hoàn tất, hãy lưu và đóng tệp. Nếu bạn đã sử dụng nano
, bạn có thể thoát bằng cách nhấn CTRL + X
, Y
, sau đó ENTER
.
Khởi động lại máy chủ để các thay đổi có hiệu lực:
- sudo systemctl restart vsftpd
Tại thời điểm này, bạn sẽ không thể kết nối với ứng dụng khách dòng lệnh không an toàn nữa. Nếu bạn đã thử, bạn sẽ nhận được thông báo sau:
Outputftp -p 203.0.113.0
Connected to 203.0.113.0.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:default): sammy
530 Non-anonymous sessions must use encryption.
ftp: Login failed.
421 Service not available, remote server has closed connection
ftp>
Tiếp theo, xác minh rằng bạn có thể kết nối bằng ứng dụng khách hỗ trợ TLS, chẳng hạn như FileZilla.
Hầu hết các máy khách FTP hiện đại có thể được cấu hình để sử dụng mã hóa TLS. Vì mục đích của chúng tôi, chúng tôi sẽ trình bày cách kết nối với FileZilla vì hỗ trợ đa nền tảng của nó. Tham khảo tài liệu cho các khách hàng khác.
Khi bạn mở FileZilla lần đầu tiên, hãy tìm biểu tượng Site Manager nằm phía trên từ Host, biểu tượng ngoài cùng bên trái ở hàng trên cùng. Bấm vào nút này:
Một cửa sổ mới sẽ mở ra. Nhấp vào nút New Site ở góc dưới cùng bên phải:
Trong My Sites, một biểu tượng mới có dòng chữ New Site sẽ xuất hiện. Bạn có thể đặt tên cho nó ngay bây giờ hoặc quay lại sau và sử dụng nút Rename.
Điền vào trường Host với tên hoặc địa chỉ IP. Trong menu thả xuống Encryption, chọn Require explicit FTP over TLS.
Đối với Logon Type, hãy chọn Ask for password. Điền người dùng FTP của bạn vào trường User:
Nhấp vào nút Connect ở cuối giao diện. Bạn sẽ được hỏi mật khẩu của người dùng:
Chọn OK để kết nối. Bây giờ bạn sẽ được kết nối với máy chủ của mình bằng mã hóa TLS/SSL.
Tiếp theo, bạn sẽ được cung cấp chứng chỉ máy chủ giống như sau:
Khi bạn đã chấp nhận chứng chỉ, hãy nhấp đúp vào thư mục tệp và kéo tệp upload.txt
sang bên trái để xác nhận rằng bạn có thể tải tệp xuống:
Khi bạn đã hoàn thành việc đó, hãy nhấp chuột phải vào bản sao cục bộ, đổi tên nó thành upload-tls.txt
và kéo nó trở lại máy chủ để xác nhận rằng bạn có thể tải tệp lên:
Bây giờ bạn đã xác nhận rằng bạn có thể truyền tệp an toàn và thành công khi bật SSL/TLS.
Nếu bạn không thể sử dụng TLS do yêu cầu của máy khách, bạn có thể đạt được một số bảo mật bằng cách vô hiệu hóa khả năng đăng nhập của người dùng FTP theo bất kỳ cách nào khác. Một cách để ngăn chặn nó là tạo một vỏ tùy chỉnh. Mặc dù điều này sẽ không cung cấp bất kỳ mã hóa nào, nhưng có thể đáng làm như vậy để hạn chế quyền truy cập của tài khoản bị xâm phạm vào các tệp có thể truy cập bằng FTP.
Đầu tiên, mở một tệp có tên ftponly
trong thư mục bin
:
- sudo nano /bin/ftponly
Thêm thông báo cho người dùng biết lý do tại sao họ không thể đăng nhập:
#!/bin/sh
echo "This account is limited to FTP access only."
Lưu tệp và thoát trình chỉnh sửa của bạn. Nếu bạn đã sử dụng nano
, bạn có thể thoát bằng cách nhấn CTRL + X
, Y
, sau đó ENTER
.
Sau đó, thay đổi quyền để làm cho tệp có thể thực thi được:
- sudo chmod a+x /bin/ftponly
Mở danh sách các shell hợp lệ:
- sudo nano /etc/shells
Ở dưới cùng thêm:
. . .
/bin/ftponly
Cập nhật shell của người dùng bằng lệnh sau:
- sudo usermod sammy -s /bin/ftponly
Bây giờ, hãy thử đăng nhập vào máy chủ của bạn với tên sammy:
- ssh sammy@your_server_ip
Bạn sẽ nhận được thông báo sau:
OutputThis account is limited to FTP access only.
Connection to 203.0.113.0 closed.
Điều này xác nhận rằng người dùng không còn có thể ssh
đến máy chủ và chỉ giới hạn ở quyền truy cập FTP. Xin lưu ý, nếu bạn nhận được thông báo lỗi khi đăng nhập vào máy chủ của mình, điều này có thể có nghĩa là máy chủ của bạn không chấp nhận xác thực mật khẩu. Việc sử dụng xác thực dựa trên mật khẩu có thể khiến máy chủ của bạn dễ bị tấn công và đây là lý do tại sao bạn có thể muốn xem xét việc tắt xác thực mật khẩu. Nếu bạn đã thiết lập cấu hình xác thực dựa trên SSH key, bạn có thể tìm hiểu thêm về cách tắt xác thực mật khẩu trên máy chủ của mình ở Bước 4 của hướng dẫn Cách thiết lập khóa SSH trên Ubuntu 20.04.
Trong hướng dẫn này, chúng tôi đã giải thích cách thiết lập FTP cho người dùng có tài khoản cục bộ. Nếu bạn cần sử dụng nguồn xác thực bên ngoài, bạn có thể muốn khám phá khả năng hỗ trợ người dùng ảo của vsftpd
. Điều này cung cấp một bộ tùy chọn phong phú thông qua việc sử dụng PAM (Pluggable Authentication Modules) và là một lựa chọn tốt nếu bạn quản lý người dùng trong một hệ thống khác như LDAP hoặc Kerberos. Bạn cũng có thể đọc về các tính năng vsftpd, các bản phát hành mới nhất và các bản cập nhật để tìm hiểu thêm.