Trên CentOS nói riêng và Linux nói chung có rất nhiều phần mềm để tạo máy chủ FTP, tuy nhiên nói đến tính bảo mật, đơn giản trong cấu hình sử dụng thì phải kề đến Pure FTPd.
Mục lục
Cài đặt
Trên CentOS, gói cài đặt có tên pure-ftpd
:
1 |
$ yum install pure-ftpd |
FTP server có thể khởi chạy:
1 |
$ systemctl start pure-ftpd |
Để FTP server tự khởi động:
1 |
$ systemctl enable pure-ftpd |
Để dừng FTP server :
1 |
$ systemctl stop pure-ftpd |
Để xem thông tin log, hoạt động của FTP server:
1 |
$ systemctl status pure-ftpd |
Cấu hình
tất cả cấu hình cần thiết của Pure FTPd có thể tìm thấy ở file /etc/pure-ftpd/pure-ftpd.conf
Tạo “user ảo”
Đa phần các phần mềm FTP server thường dùng user của hệ điều hành để cho phép login vào. Còn Pure Ftpd dùng “user ảo” là user của riêng pure-ftpd, không phải user của hệ điều hành.
Đầu tiên cấu hình một chút.
1 2 3 4 |
# Chặn tính năng anonymous. NoAnonymous yes # Sử dụng file làm nơi lưu trữ thông tin ứng dụng PureDB /etc/pure-ftpd/pureftpd.pdb |
Tạo thư mục muốn cho phép user sử dụng
1 2 |
$ mkdir /srv/ftp $ chown -R ftp:ftp |
Tiếp đến tạo user bằng cách cập nhật /etc/pureftpd.pdb
1 |
$ pure-pw useradd someuser -u ftp -d /srv/ftp |
Sau đó, lưu lại “công việc” bằng lệnh:
1 |
$ pure-pw mkdb |
Chú ý:User ảo FTP mặc định (ứng dụng FTP chạy như là quyền user hệ thống là “ftp”) sẽ ko thể login do trong cấu hình mặc định chỉ cho phép user có id lớn hơn 1000 đăng nhập. Ta có thể thay đổi cấuMinUID
trong file/etc/pure-ftpd.conf
thành 14 (UID của ftp user).Chúng ta cũng cần tắt shell đối với FTP system user trong
/etc/shells
.
# echo "/bin/false" >> /etc/shells
Đổi mật khẩu user
1 2 |
$ pure-pw passwd someuser $ pure-pw mkdb |
Xóa user
1 2 |
$ pure-pw userdel someuser $ pure-pw mkdb |
Lệnh này không xóa thưc mục của user
Kiểm tra thông tin về user
Hiển thị thông tin chi tiết của một user
1 |
$ pure-pw show someuser |
Liệt kê danh sách user
1 2 |
$ cat /etc/pure-ftpd/pureftpd.passwd john:$6$d9g5jS.qR/v2JxD0$/AJNNbaIifyEtiSf4.a9nQx6m9.rVEWJDffaJsB.:14:50::/var/www/john/./:::::::::::: |
john
trong phần thông tin trên là user. Nếu có nhiều user thì mỗi user 1 dòng như trên.
Lưu trữ thông tin user
Chúng ta có thể dùng nhiều công cụ khác nhau để lưu thông tin tài khoản user
/etc/passwd
- MySQL
- LDAP
- PostgreSQL
- PAM
- PureDB
Cài đặt TLS
Tạo chứng chỉ
Xem chi tiết tài liệu tại đây . Ngắn gọn thì làm như sau:
Tạo Self-Signed Certificate:
1 2 |
$ mkdir -p /etc/ssl/private $ openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -sha256 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem |
Đặt quyền truy cập:
1 |
# chmod 600 /etc/ssl/private/*.pem |
Kích hoạt TLS
Gần cuối file /etc/pure-ftpd/pure-ftpd.conf
bạn sẽ tìm thấy phần cấu hình TLS. Đổi giá trị TLS sang 1
để kích hoạt SFTP:
1 |
TLS 1 |
Bây giờ phải restart Pure FTPd server
1 2 |
$ systemctl stop pure-ftpd $ systemctl start pure-ftpd |
Xong.