Pure-FTPd là máy chủ FTP miễn phí (giấy phép BSD), an toàn, chất lượng sản xuất và tuân thủ tiêu chuẩn. Nó không cung cấp các tiện ích không cần thiết nhưng tập trung vào hiệu quả và dễ sử dụng. Hướng dẫn này cung cấp quy trình từng bước để cài đặt và cấu hình Pure-FTPd trên Ubuntu.
Tạo người dùng cho Pure-FTPd:
Thay thế
Sửa đổi cấu hình Pure-FTPd để kích hoạt TLS:
để biết thông tin chính xác và toàn diện nhất.
Điều kiện tiên quyết để cài đặt Pure-FTPd
Trước khi tiến hành cài đặt, hãy đảm bảo bạn có:- Cài đặt máy chủ Ubuntu
- Truy cập vào tài khoản người dùng có quyền
sudo
Cài đặt Pure-FTPd từng bước
Cập nhật hệ thống Gói
Đầu tiên, hãy cập nhật danh sách gói của hệ thống:
Mã:
sudo apt update
Cài đặt Pure-FTPd
Tiếp theo, hãy cài đặt Pure-FTPd bằng lệnh sau:
Mã:
sudo apt install pure-ftpd
Cấu hình Pure-FTPd để tăng cường bảo mật
Thiết lập môi trường bảo mật
Tạo nhóm chuyên dụng cho người dùng FTP:
Mã:
sudo groupadd ftpgroup
Mã:
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser
Quản lý quyền truy cập của người dùng
Để thêm người dùng vào máy chủ FTP:
Mã:
sudo pure-pw useradd [username] -u ftpuser -g ftpgroup -d /home/ftpusers/[username]
sudo pure-pw mkdb
[username]
bằng tên người dùng mong muốn.Cấu hình TLS để truyền dữ liệu an toàn
Tạo chứng chỉ tự ký:
Mã:
sudo openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Mã:
echo 1 | sudo tee /etc/pure-ftpd/conf/TLS
sudo service pure-ftpd restart
Tùy chọn cấu hình nâng cao
Sau đây là danh sách các thiết lập phổ biến có thể được cấu hình cho Pure-FTPd trong thư mục /etc/pure-ftpd/conf/ trên Ubuntu. Tên tệp cấu hình được in đậm.- AltLog: Chỉ định các phương pháp ghi nhật ký thay thế. Ví dụ, AltLog clf:/var/log/pureftpd.log sẽ ghi nhật ký các lần chuyển ở định dạng W3C.
- AnonymousOnly: Khi được bật (bằng cách tạo tệp có tên là AnonymousOnly), nó sẽ hạn chế máy chủ chỉ cho phép đăng nhập ẩn danh.
- AntiWarez: Nếu tệp này tồn tại, người dùng không được phép tải lên các tệp đã tồn tại trên máy chủ.
- AutoRename: Tự động đổi tên các tệp đã tải lên nếu có tệp có cùng tên.
- Bind: Liên kết máy chủ với một địa chỉ IP và cổng cụ thể. Ví dụ, Bind 21 liên kết với cổng 21 trên tất cả các địa chỉ khả dụng.
- BrokenClientsCompatibility: Cho phép tương thích với các máy khách FTP không tuân thủ nghiêm ngặt các tiêu chuẩn FTP.
- ChrootEveryone: Nếu được bật, sẽ hạn chế tất cả người dùng vào thư mục gốc của họ.
- CreateHomeDir: Tự động tạo các thư mục gốc nếu chúng không tồn tại khi người dùng đăng nhập.
- CustomerProof: Tăng khả năng phục hồi trước các lỗi thường gặp trong cấu hình và lệnh của máy khách.
- Daemonize: Khi tệp này tồn tại, Pure-FTPd sẽ chạy dưới dạng daemon.
- DisplayDotFiles: Kiểm soát việc hiển thị các tệp dot (tệp ẩn) hay không.
- DontResolve: Ngăn chặn việc phân giải DNS để ghi nhật ký và kiểm soát băng thông, điều này có thể cải thiện hiệu suất.
- ExtAuth: Chỉ định một chương trình bên ngoài để xác thực người dùng.
- ForcePassiveIP: Buộc máy chủ báo cáo một địa chỉ IP cụ thể cho các máy khách chế độ thụ động.
- FSCharset: Đặt bộ ký tự hệ thống tệp, hữu ích cho tên tệp không phải ASCII.
- IPv4Only hoặc IPv6Only: Hạn chế máy chủ chỉ lắng nghe các địa chỉ IPv4 hoặc IPv6.
- KeepAllFiles: Ngăn chặn việc xóa bất kỳ tệp nào trên máy chủ.
- LDAPConfigFile: Chỉ định đường dẫn đến tệp cấu hình LDAP để xác thực.
- LimitRecursion: Giới hạn độ sâu đệ quy và số lượng tệp được hiển thị trong danh sách thư mục.
- MaxClientsNumber: Giới hạn số lượng tối đa các clients.
- MaxClientsPerIP: Hạn chế số lượng kết nối đồng thời từ một địa chỉ IP duy nhất.
- MaxDiskUsage: Giới hạn phần trăm sử dụng đĩa.
- MaxIdleTime: Đặt thời gian nhàn rỗi tối đa tính bằng phút trước khi ngắt kết nối một client.
- MaxLoad: Ngắt kết nối các client hoặc từ chối các kết nối mới vượt quá tải hệ thống nhất định.
- MinUID: Đặt UID tối thiểu để đăng nhập. Người dùng có UID thấp hơn không thể đăng nhập.
- MySQLConfigFile: Chỉ định đường dẫn đến tệp cấu hình MySQL để xác thực dựa trên cơ sở dữ liệu.
- NoAnonymous: Vô hiệu hóa đăng nhập ẩn danh nếu tệp này tồn tại.
- NoChmod: Vô hiệu hóa lệnh CHMOD trên máy chủ.
- NoRename: Ngăn người dùng đổi tên tệp.
- PassivePortRange: Xác định phạm vi cổng cho các kết nối thụ động (ví dụ: 30000 35000).
- PerUserLimits: Đặt giới hạn cho mỗi người dùng.
- PureDB: Chỉ định đường dẫn đến tệp cơ sở dữ liệu người dùng PureDB.
- Quota: Đặt hạn ngạch người dùng limits.
- SyslogFacility: Định nghĩa tiện ích syslog để ghi nhật ký.
- TLSCipherSuite: Chỉ định các mã hóa TLS được phép cho các kết nối được mã hóa.
- TrustedGID: Chỉ định danh sách ID nhóm đáng tin cậy để đăng nhập.
- UMask: Đặt umask mặc định để tạo tệp.
- UnixAuthentication: Cho phép xác thực với cơ sở dữ liệu mật khẩu UNIX.
- UploadScript: Chỉ định một tập lệnh để chạy sau khi tải lên thành công.
Mã:
pure-ftpd-wrapper --help
Ví dụ
Sau đây là danh sách các thiết lập Pure-FTPd trong /etc/pure-ftpd/conf/ với các ví dụ minh họa cho các loại giá trị mà chúng chấp nhận:- AltLog:
AltLog clf:/var/log/pureftpd.log
Ví dụ:clf:/var/log/pureftpd.log
AnonymousOnly
.- Không cần giá trị.
AntiWarez
.- Không cần giá trị.
AutoRename
.- Không cần giá trị.
Bind 21
- Ví dụ:
192.168.0.1,21
BrokenClientsCompatibility
.- Không cần giá trị.
ChrootEveryone
.- Không cần giá trị.
CreateHomeDir
.- Không cần giá trị.
CustomerProof
.- Không cần giá trị.
Daemonize
.- Không cần giá trị.
DisplayDotFiles
.- Không cần giá trị.
DontResolve
.- Không cần giá trị.
ExtAuth /path/to/authenticator
- Ví dụ:
/usr/local/bin/myauth
ForcePassiveIP 192.168.0.1
- Ví dụ:
192.168.0.1
FSCharset utf-8
- Ví dụ:
utf-8
IPv4Only
hoặc IPv6Only
.- Không cần giá trị.
KeepAllFiles
.- Không cần giá trị.
LDAPConfigFile /etc/pure-ftpd/ldap.conf
- Ví dụ:
/etc/pure-ftpd/ldap.conf
LimitRecursion 10000 8
- Ví dụ:
10000 8
(10000 tệp, sâu 8 cấp)
MaxClientsNumber 50
- Ví dụ:
50
MaxClientsPerIP 8
- Ví dụ:
8
MaxDiskUsage 95
- Ví dụ:
95
(95 phần trăm)
MaxIdleTime 15
- Ví dụ:
15
(15 phút)
MaxLoad 4.0
- Ví dụ:
4.0
MinUID 1000
- Ví dụ:
1000
MySQLConfigFile /etc/pure-ftpd/mysql.conf
- Ví dụ:
/etc/pure-ftpd/mysql.conf
NoAnonymous
.- Không cần giá trị.
NoChmod
.- Không cần giá trị.
NoRename
.- Không cần giá trị.
PassivePortRange 30000 35000
- Ví dụ:
30000 35000
PerUserLimits 8
- Ví dụ:
8
(8 kết nối đồng thời cho mỗi người dùng)
PureDB /etc/pure-ftpd/pureftpd.pdb
- Ví dụ:
/etc/pure-ftpd/pureftpd.pdb
Quota 1000M
- Ví dụ:
1000M
(1000 Megabyte)
SyslogFacility ftp
- Ví dụ:
ftp
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
- Ví dụ:
HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
TrustedGID 1000
- Ví dụ:
1000
UMask 133:022
- Ví dụ:
133:022
(Tệp: 133, Thư mục: 022)
UnixAuthentication
.- Không cần giá trị.
UploadScript /path/to/script
- Ví dụ:
/usr/local/bin/uploadscript
Giám sát và bảo trì
Kiểm tra nhật ký thường xuyên trong/var/log/pure-ftpd/
để phát hiện bất kỳ hoạt động hoặc lỗi bất thường nào.