Cách cài đặt Pure-FTPd với TLS và người dùng ảo trên OpenSUSE Leap 42.1

theanh

Administrator
Nhân viên
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
  • 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
Tiếp theo, chỉnh sửa tệp cấu hình '/etc/sysconfig/SuSEfirewall2' bằng vim:
Mã:
vim /etc/sysconfig/SuSEfirewall2
Thêm các dịch vụ ssh và FTP mới vào dòng 253:
Mã:
FW_SERVICES_EXT_TCP="ssh ftp"
Lưu và thoát.

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
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.
Mã:
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
Đ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:
Mã:
cd /etc/pure-ftpd/
vim pure-ftpd.conf
Thay đổi giá trị ở dòng 81 thành 'yes' cho vô hiệu hóa người dùng ẩn danh.
Mã:
KhôngKhông ẩn danh có
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.
Mã:
PureDB /etc/pure-ftpd/pureftpd.pdb
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.
Mã:
#PAMAuthentication yes
Lưu và thoát.


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
Thay đổi quyền của tệp chứng chỉ thành 0600:
Mã:
chmod 600 /etc/ssl/private/pure-ftpd.pem
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.
Mã:
cd /etc/pure-ftpd/
vim pure-ftpd.conf
Bỏ chú thích dòng 439 để bật TLS.
Mã:
TLS 1
Bỏ chú thích dòng 449 và thêm tùy chọn mới để bảo mật hơn.
Mã:
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3
Bỏ chú thích dòng 445 để xác định tệp chứng chỉ.
Mã:
CertFile /etc/ssl/private/pure-ftpd.pem
Lưu và thoát.



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
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.
Mã:
mkdir -p /srv/ftp/shiro
chown -R ftpuser.ftpgroup /srv/ftp/shiro
Tiếp theo, chúng ta phải lưu các thay đổi bằng lệnh bên dưới:
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
Tiếp theo nhập ip máy chủ pure-ftpd:
Mã:
open 192.168.43.69
Đă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':
Mã:
put picture.png mypict.png
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:
Mã:
ls



Tham khảo​

 
Back
Bên trên