Pure-FTPd là một máy chủ FTP miễn phí và nhẹ dựa trên Troll-FTPd, quá trình phát triển bắt đầu vào năm 2001 và chạy trên nhiều hệ điều hành giống Unix bao gồm Linux, *BSD, Solaris và HP-UX. Pure-FTPd có nhiều tính năng như miền ảo, thư mục gốc chroot, người dùng ảo, hỗ trợ TLS/SSL, hạn ngạch ảo và nhiều tính năng khác.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt và cấu hình pure-ftpd trên OpenSUSE Leap 42.1. Tôi sẽ chỉ cho bạn cách thiết lập pure-ftpd với TLS/SSL và sau đó thiết lập virtual-users.
Điều kiện tiên quyết
Cài đặt SuSEfirewall2 bằng zypper:
Tiếp theo, chỉnh sửa tệp cấu hình '/etc/sysconfig/SuSEfirewall2' bằng vim:
Thêm các dịch vụ ssh và FTP mới vào dòng 253:
Lưu và thoát.
Bây giờ, hãy khởi động SuSEfirewall2 bằng lệnh systemctl:
Cài đặt các ứng dụng với zypper như được hiển thị bên dưới:
Bây giờ hãy thêm nhóm mới 'ftpgroup' và người dùng mới cho 'người dùng FTP' chính có tên là 'ftpuser' vào nhóm.
Đi tới thư mục pure-ftpd và chỉnh sửa tệp cấu hình 'pure-ftpd.conf' bằng trình soạn thảo vim:
Thay đổi giá trị ở dòng 81 thành 'yes' cho vô hiệu hóa người dùng ẩn danh.
Bỏ chú thích dòng 131 để cấu hình phần phụ trợ. Pure-ftpdhas hỗ trợ MySQL, PostgreSQL và LDAP làm backend, nhưng trong hướng dẫn này, chúng ta sẽ sử dụng 'PureDB' để sao lưu.
Bình luận dòng PAMAuthentication để tắt xác thực PAM ở dòng 141 vì chúng ta sẽ sử dụng PureDB làm nguồn xác thực.
Lưu và thoát.
Thay đổi quyền của tệp chứng chỉ thành 0600:
Tiếp theo, quay lại thư mục pure-ftpd và chỉnh sửa tệp cấu hình để bật hỗ trợ TLS/SSL cho kết nối máy khách.
Bỏ chú thích dòng 439 để bật TLS.
Bỏ chú thích dòng 449 và thêm tùy chọn mới để bảo mật hơn.
Bỏ chú thích dòng 445 để xác định tệp chứng chỉ.
Lưu và thoát.
Bây giờ hãy khởi động pure-ftpd bằng lệnh systemctl:
Chúng ta có thể tạo một người dùng ảo mới bằng lệnh 'pure-pw' do pure-ftpd cung cấp. Ở bước này, chúng ta sẽ tạo một người dùng ảo mới có tên là 'shiro' với thư mục '/srv/ftp/shiro' làm thư mục gốc ftp và người dùng được chroot đến thư mục đó để không thể truy cập vào các thư mục hệ thống khác.
Tạo người dùng ảo mới bằng pure-pw:
Tạo thư mục cho người dùng ảo và thay đổi chủ sở hữu của thư mục đó thành 'FTP user' chính.
Tiếp theo, chúng ta phải lưu các thay đổi bằng lệnh bên dưới:
Bây giờ người dùng shiro đã sẵn sàng để sử dụng, chúng ta có thể sử dụng FTPp từ dòng lệnh hoặc FileZilla cho giao diện GUI để kết nối với máy chủ.
Lưu ý:
pure-pw có nhiều tùy chọn lệnh hơn, bạn có thể sử dụng 'pure-pw help' để xem tất cả các lệnh hữu ích.
Tiếp theo nhập ip máy chủ pure-ftpd:
Đăng nhập bằng tên người dùng 'shiro' và mật khẩu, sau đó nhấn 'Enter'.
Thử tải tệp lên bằng lệnh 'put':
Bây giờ bạn sẽ thấy tệp mypict.png trên máy chủ bằng lệnh ls bên dưới:
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt và cấu hình pure-ftpd trên OpenSUSE Leap 42.1. Tôi sẽ chỉ cho bạn cách thiết lập pure-ftpd với TLS/SSL và sau đó thiết lập virtual-users.
Điều kiện tiên quyết
- OpenSUSE Leap 42.1
- Quyền root
- Kiến thức về OpenSUSE, Zypper
Bước 1 - Cài đặt và cấu hình SuSEfirewall2
SuSEfirewall2 là một tập lệnh để tạo cấu hình tường lửa trong tệp '/etc/sysconfig/SuSEfirewall2'. Chúng tôi sẽ cài đặt SuSEfirewall2 và sau đó mở các cổng cho SSH và dịch vụ FTP.Cài đặt SuSEfirewall2 bằng zypper:
Mã:
zypper trong SuSEfirewall2
Mã:
vim /etc/sysconfig/SuSEfirewall2
Mã:
FW_SERVICES_EXT_TCP="ssh ftp"
Bây giờ, hãy khởi động SuSEfirewall2 bằng lệnh systemctl:
Mã:
systemctl start SuSEfirewall2
Bước 2 - Cài đặt và cấu hình Pure-FTPd
Trong Bước, chúng ta sẽ cài đặt pure-ftpd với OpenSSL để cấu hình TLS/SSL và cấu hình người dùng và nhóm pure-ftpd.Cài đặt các ứng dụng với zypper như được hiển thị bên dưới:
Mã:
zypper trong pure-ftpd openssl
Mã:
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
Mã:
cd /etc/pure-ftpd/
vim pure-ftpd.conf
Mã:
KhôngKhông ẩn danh có
Mã:
PureDB /etc/pure-ftpd/pureftpd.pdb
Mã:
#PAMAuthentication yes
Bước 3 - Cấu hình TLS/SSL cho Pure-FTPd
Tạo tệp chứng chỉ tự ký mới trong thư mục '/etc/ssl/private' bằng lệnh openssl:
Mã:
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 365
Mã:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Mã:
cd /etc/pure-ftpd/
vim pure-ftpd.conf
Mã:
TLS 1
Mã:
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3
Mã:
CertFile /etc/ssl/private/pure-ftpd.pem
Bây giờ hãy khởi động pure-ftpd bằng lệnh systemctl:
Mã:
systemctl start pure-ftpd
Bước 4 - Cấu hình Người dùng ảo
Pure-FTPd cung cấp các tính năng để tạo và sử dụng người dùng ảo thay vì người dùng hệ thống thực (Linux). Pure-FTPd cung cấp một số backend xác thực và cấu hình người dùng ảo phụ thuộc vào backend được máy chủ sử dụng. Ở bước 2, chúng ta đã đặt 'PureDB' làm backend.Chúng ta có thể tạo một người dùng ảo mới bằng lệnh 'pure-pw' do pure-ftpd cung cấp. Ở bước này, chúng ta sẽ tạo một người dùng ảo mới có tên là 'shiro' với thư mục '/srv/ftp/shiro' làm thư mục gốc ftp và người dùng được chroot đến thư mục đó để không thể truy cập vào các thư mục hệ thống khác.
Tạo người dùng ảo mới bằng pure-pw:
Mã:
pure-pw useradd shiro -u ftpuser -d /srv/ftp/shiro
Mã:
mkdir -p /srv/ftp/shiro
chown -R ftpuser.ftpgroup /srv/ftp/shiro
Mã:
pure-pw mkdb
Bây giờ người dùng shiro đã sẵn sàng để sử dụng, chúng ta có thể sử dụng FTPp từ dòng lệnh hoặc FileZilla cho giao diện GUI để kết nối với máy chủ.
Lưu ý:
pure-pw có nhiều tùy chọn lệnh hơn, bạn có thể sử dụng 'pure-pw help' để xem tất cả các lệnh hữu ích.
Bước 5 - Kiểm tra
Tôi sẽ sử dụng lệnh FTP trong thiết bị đầu cuối để kiểm tra. Mở terminal của bạn và nhập "ftp":
Mã:
ftp
Mã:
open 192.168.43.69
Thử tải tệp lên bằng lệnh 'put':
Mã:
put picture.png mypict.png
Mã:
ls
Tham khảo
- https://www.pureftpd.org/project/pure-ftpd/dochttps://www.pureftpd.org/project/pure-ftpd/doc?utm_source=diendancongnghe.com
- https://www.suse.com/communities/blog/pure-ftpd-administration/https://www.suse.com/communities/blog/pure-ftpd-administration/?utm_source=diendancongnghe.com
- https://www.novell.com/coolsolutions/feature/11418.html