Lưu trữ ảo với PureFTPd và MySQL (Bao gồm quản lý hạn ngạch và băng thông)
Tài liệu này mô tả cách cài đặt máy chủ PureFTPd sử dụng người dùng ảo từ cơ sở dữ liệu MySQL thay vì người dùng hệ thống thực. Điều này hiệu quả hơn nhiều và cho phép có hàng nghìn người dùng ftp trên một máy duy nhất. Ngoài ra, tôi sẽ chỉ ra việc sử dụng hạn ngạch và giới hạn băng thông tải lên / tải xuống với thiết lập này. Mật khẩu sẽ được lưu trữ mã hóa dưới dạng chuỗi MD5 trong cơ sở dữ liệu.
Để quản lý cơ sở dữ liệu MySQL, bạn có thể sử dụng các công cụ dựa trên web như phpMyAdmin cũng sẽ được cài đặt trong cách làm này. phpMyAdmin là một giao diện đồ họa thoải mái, có nghĩa là bạn không cần phải loay hoay với dòng lệnh.
Hướng dẫn này dựa trên Debian Sarge (Debian 3.1). Bạn hẳn đã thiết lập một hệ thống Debian cơ bản, như được mô tả ở đây: https://www.howtoforge.com/perfect_setup_debian_sarge và https://www.howtoforge.com/perfect_setup_debian_sarge_p2. Nó sẽ áp dụng cho các bản phân phối dựa trên Debian khác như Ubuntu , Knoppix , v.v. mà không cần sửa đổi. Trên các bản phân phối khác như SuSE , Fedora , Mandriva , v.v. chỉ có cài đặt PureFTPd là khác; cấu hình của PureFTPd cũng phải áp dụng cho các bản phân phối này.
Cách làm này có nghĩa là một hướng dẫn thực hành; nó không bao gồm các nền tảng lý thuyết. Chúng được xử lý trong rất nhiều tài liệu khác trên web.
Tài liệu này không có bảo hành dưới bất kỳ hình thức nào! Tôi muốn nói rằng đây không phải là cách duy nhất để thiết lập một hệ thống như vậy. Có nhiều cách để đạt được mục tiêu này nhưng đây là cách tôi thực hiện. Tôi không đưa ra bất kỳ đảm bảo nào rằng điều này sẽ hiệu quả với bạn!
1 Cài đặt MySQL và phpMyAdmin
Tất cả điều này có thể được cài đặt bằng một lệnh duy nhất:
apt-get install mysql-server mysql-client libmysqlclient12-dev phpmyadmin
Bạn sẽ được hỏi một số câu hỏi:
Bật suExec? <- Vâng
Cấu hình máy chủ mysql (Gợi ý cài đặt) <- OK
Bạn muốn máy chủ web nào tự động cấu hình lại? <- apache, apache2
Bạn có muốn tôi khởi động lại apache bây giờ không? <- Vâng
Tạo mật khẩu cho gốc người dùng MySQL (thay thế mật khẩu của bạn bằng mật khẩu bạn muốn sử dụng):
mysqladmin -u mật khẩu gốc của bạn
2 Cài đặt PureFTPd với hỗ trợ MySQL
Đối với Debian, có sẵn gói pure-ftpd-mysql được cấu hình sẵn. Cài đặt nó như một daemon độc lập như thế này:
apt-get install pure-ftpd-mysql
Chạy pure-ftpd từ inetd hay dưới dạng một máy chủ độc lập? <- độc lập
Bạn có muốn cài đặt pure-ftpwho root không? <- Không
Sau đó, chúng tôi tạo một nhóm ftp (” ftpgroup “) và người dùng (” ftpuser “) mà tất cả người dùng ảo của chúng tôi sẽ được ánh xạ tới. Thay thế group- and userid 2001 bằng một số miễn phí trên hệ thống của bạn:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s / bin / false -d / bin / null -c “người dùng pureftpd” -g ftpgroup ftpuser
3 Tạo cơ sở dữ liệu MySQL cho PureFTPd
Bây giờ chúng ta tạo một cơ sở dữ liệu có tên là pureftpd và một người dùng MySQL có tên là pureftpd mà daemon PureFTPd sẽ sử dụng sau này để kết nối với cơ sở dữ liệu pureftpd :
mysql -u root -p
TẠO CƠ SỞ DỮ LIỆU pureftpd;
CẤP CHỌN, CHÈN, CẬP NHẬT, XÓA, TẠO, DROP TRÊN pureftpd. * ĐỂ ‘pureftpd’ @ ‘localhost’ ĐƯỢC XÁC ĐỊNH BỞI ‘ftpdpass’;
CẤP CHỌN, CHÈN, CẬP NHẬT, XÓA, TẠO, XÓA TRÊN pureftpd. * ĐẾN ‘pureftpd’@’localhost.localdomain’ ĐƯỢC XÁC ĐỊNH BỞI ‘ftpdpass’;
QUYỀN RIÊNG TƯ CỦA FLUSH;
Thay thế chuỗi ftpdpass bằng bất kỳ mật khẩu nào bạn muốn sử dụng cho người dùng MySQL pureftpd . Vẫn trên MySQL shell, chúng tôi tạo bảng cơ sở dữ liệu mà chúng tôi cần (vâng, chỉ có một bảng!): Quảng cáo
SỬ DỤNG pureftpd;
TẠO BẢNG ftpd (
Người dùng varchar (16) NOT NULL default ”,
trạng thái enum (‘0’, ‘1’) KHÔNG NULL mặc định ‘0’,
Mật khẩu varchar (64) NOT NULL mặc định ”,
Uid varchar (11) NOT NULL mặc định ‘-1’,
Gid varchar (11) NOT NULL mặc định ‘-1’,
Dir varchar (128) NOT NULL default ”,
ULBandwidth smallint (5) KHÔNG NULL mặc định ‘0’,
DLBandwidth smallint (5) KHÔNG NULL mặc định ‘0’,
bình luận tí hon KHÔNG ĐẦY ĐỦ,
ipaccess varchar (15) NOT NULL mặc định ‘*’,
QuotaSize smallint (5) NOT NULL mặc định ‘0’,
QuotaFiles int (11) NOT NULL mặc định 0,
KHÓA CHÍNH (Người dùng),
Người dùng KEY DUY NHẤT (Người dùng)
) TYPE = MyISAM;
từ bỏ;
Như bạn có thể đã nhận thấy, với việc bỏ thuốc lá; lệnh chúng ta đã rời khỏi MySQL shell và trở lại trên Linux shell.
BTW, (Tôi gợi ý rằng tên máy chủ của hệ thống máy chủ ftp của bạn là server1.example.com ), bạn có thể truy cập phpMyAdmin qua http://server1.example.com/phpmyadmin/ (bạn cũng có thể sử dụng địa chỉ IP thay vì server1 .example.com ) trong trình duyệt và đăng nhập bằng pureftpd . Sau đó, bạn có thể xem cơ sở dữ liệu. Sau này, bạn có thể sử dụng phpMyAdmin để quản lý máy chủ PureFTPd của mình.