Cài đặt và cấu hình vsFTPd Server trên CentOS 7 & 8
Hướng dẫn cài đặt và cấu hình vsFTPd Server trên CentOS 7 & 8 cực đơn giản chỉ với vài câu lệnh và vài cú pháp cấu hình.
vsFTPd là một FTP Server Stand Alone được phân phối bởi Red Hat Enterprise Linux. vsFTPd được sử dụng rộng rãi trên Linux Server và sử dụng vsFTPd sẽ đảm bảo cho chúng ta an toàn trước 99% lỗ hỏng bảo mật trên FTP Server.
Mô hình của vsFTPd có những đặc điểm chính như sau:
-
Giữa tiến trình mang đặc quyền và tiến trình không mang đặc quyền có phân chia rõ ràng.
-
Các tiến trình được chạy trong chroot jail nhằm nâng cao bảo mật.
-
Chroot trên các hệ điều hành Unix là một công đoạn thay đổi thư mục root cho các tiến trình đang chạy hiện tại và các tiền trình con của nó.
Cài đặt vsFPTd trên CentOS 7
Lệnh cài đặt vsFPTd:
#yum install vsftpd
Lệnh khởi động vsFTPd:
systemctl start vsftpd
Lệnh kết thúc/trạng thái vsFTPd:
#systemctl [stop] [status] vsftpd.service
Cho phép tự chạy vsFTPd khi khởi động hệ điều hành:
systemctl enable vsftpd
Kiểm tra sơ bộ xem vsFTPd hoạt động hay chưa, chạy lệnh:
telnet localhost 21
Telnet
Nếu kết quả như trên chính là không thành công, không cài telnet bạn dùng lệnh netstat -tulpn cũng được thấy đang listen trên Port 21 là ok.
netstat-tulpn
Sau khi hoàn thành việc cấu hình, ta tiến hành restart vsFTPd bằng lệnh sau:
#systemctl restart vsftpd.service
Hướng dẫn cấu hình FTP Server trên CentOS 7 & 8 với vsFTPd
vsFTPd dùng chính account trên CentOS để log in vào hệ thống của nó. Ta chỉnh sửa file cấu hình tại:
# vi /etc/vsftpd/vsftpd.conf
1. Các tham số cấu hình cơ bản
Khi bật tham số listen, vsFTPd chạy ở mode stand alone và lắng nghe trên socket IPv4
listen= YES
Cho phép các kết nối không chứng thực (anonymous). Tham số sẽ tự động kích hoạt nếu ta comment tham số.
anonymous_enable=YES
Cho phép user local truy cập:
local_enable=YES
Cho phép user quyền truy cập chỉnh sửa file trên server:
write_enable=YES
Cho phép người dùng ẩn danh upload file (tính năng này chỉ có hiệu lực nếu tham số write_enable được bật). Thêm vào đó, bạn cần tạo đường dẫn cho phép người dùng ẩn danh chỉnh sửa.
anon_upload_enable=YES
Cho phép người dùng ẩn danh tạo đường dẫn thư mục mới:
anon_mkdir_write_enable=YES
2. Chroot Users
Chroot hiểu đơn giản là kỹ thuật “giam” một chương trình, dependencies và library cần thiết kế để chạy chương trình vào một folder tách biệt với hệ thống để nâng cao tính bảo mật. Và nếu chương trình đó bị xâm nhập trái phép thì nó chỉ ảnh hưởng trong nội tại như thư mục đó mà thôi.
Trong bài viết này, chúng ta sẽ học cách bật mí tính năng chroot cho các user khi đăng nhập vào FTP Server. Ta có các tùy chọn sau:
Chroot tất cả user:
chroot_local_user=YES chroot_list_enable=NO
Chỉ chroot đối với một số user nằm trong danh sách được tạo nên đường dẫn /etc/vsftpd.chroot_list:
chroot_local_user=NO chroot_list_enable=YES
Chroot tất cả user ngoại trừ danh sách các user được liệt kê tại /etc/vsftpd.chroot_list:
chroot_local_user=YES chroot_list_enable=YES
3. Cho phép và hạn chế người dùng đăng nhập vào hệ thống
Hạn chế các user truy cập vào FTP Server:
userlist_deny=YES userlist_file=/etc/vsftpd.denied_users
Hoặc có thể cấm tất cả các user truy cập FTP và lập danh sách những người được truy cập.
userlist_deny=NO userlist_enable=YES userlist_file=/etc/vsftpd.allowed_users
Bảo mật FTP Server
Để cấu hình bảo mật cho FTP Server thêm an toàn, bạn thêm vào 2 dòng bên dưới. Đây là cách chroot FPT rất cần thiết với máy chủ có nhiều user. Mục đích là đảm bảo mỗi user được tạo ra sẽ bị giới hạn truy cập trong Home Directory của nó, không thể view hoặc access vào bất kỳ thư mục nào.
chroot_local_user=YES # kích hoạt tính năng chroot cho local user. allow_writeable_chroot=YES # Phải có dòng này chroot mới hoạt động chuẩn được nhé.
Tiếp theo là userlist_enable. Nếu được gán giá trị YES thì tất cả các user được liệt kê trong file /etc/vsftpd/user_list sẽ không thể access vào FTP Server được. Tất cả các user trong user_list đều là những tài khoản quan trọng dùng để vận hành máy chủ, tốt nhất là không dùng cho FTP thì hơn. Nếu giá trị là NO thì ngược lại, toàn bộ những user trong user_list sẽ truy cập được FTP Server.
Mình chọn YES
userlist_enable=YES
Khi chroot user đồng nghĩa với việc user không thể truy cập được đâu ngoài thư mục của mình. Nhưng trong quá trình sử dụng, nhiều khi bạn muốn tạo ra một ngoại lệ (exception) để một user nào đó có thể đi vào tất cả các thư mục xem một tí thì phải làm thế nào?
Để làm được điều đó, bạn thêm vào 2 dòng bên dưới.
chroot_list_enable=YES # Dòng này vô hiệu hóa Chroot. chroot_list_file=/etc/vsftpd/chroot_list # Dòng này tạo ra một file chứa danh sách các local user không bị giới hạn bởi chroot.
Bạn có thể dùng vi tạo file có tên là chroot_list với đường dẫn như trên rồi thêm mỗi user vào một dòng.
Chú ý, nếu gặp lỗi 500 OOPS: vsftpd: refusing to run with writable root inside chroot(), bạn kiểm tra lại giá trị allow_writeable_chroot cho mình.
Cấu hình như trên là khá ổn rồi, bạn lưu lại file config vsftp ấn :wq để thoát trình soạn thảo vi.
Tạo tài khoản FTP
Khi cấu hình và bảo mật FTP đã sẵn sàng, để linh hoạt khi sử dụng FTP trên Linux, bạn bắt đầu tạo user FTP.
Theo mặc định Local User được tạo ra trên Linux có Home Directory là /home/user. Tất cả dữ liệu user upload/download đều nằm trong thư mục /home/user cả.
Nhưng nếu bạn không muốn dùng mặc định, muốn gom tất cả vào đường dẫn /var/ftp/user thì phải làm thế nào?
Bước 1 - Tạo Home Directory
Ví dụ mình sẽ tạo user1 có home directory là /var/ftp/user1, chạy lệnh:
mkdir /var/ftp/user1
Bước 2 - Tạo user
useradd -d /var/ftp/user1 -s /sbin/nologin user1
Ý nghĩa thông số:
-
-d: Thay đổi Home Directory sang /var/ftp/user1, nếu không user tạo ra sẽ dùng có Home Directory mặc định là /home/user1.
-
-s: Tạo Shell cho user1 không cho login vào server. Bạn nên dùng shell nologin thay cho /bin/bash, /bin/sh.
Chú ý: nếu một user2 được tạo ra trước đó sử dụng Home Directory mặc định, bạn có thể thay đổi bằng lệnh sau:
usermod -d /var/ftp/user2
Bước 3 - Thay đổi quyền sở hữu Home Directory
Thư mục tạo ra mặc định root:root quản lý, bạn phải chown lại cho thư mục.
chown user1:user1 -R /var/ftp/user1
Chúc bạn thành công!
Mọi người cùng tìm kiếm: vsftpd, install ftp centos 7, vsfptd, /etc/vsftpd.chroot_list, allow_writeable_chroot=yes
Các gói dịch vụ Cloud VPS của KDATA mang đến cho bạn nhiều lựa chọn về hiệu suất cũng như khả năng lưu trữ, mọi nhu cầu về doanh nghiệp đều được đáp ứng. KDATA đảm bảo khả năng uptime lên đến 99,99%, toàn quyền quản trị và free backup hằng ngày. Tham khảo ngay các gói dịch vụ Cloud VPS:
👉 Liên hệ ngay KDATA hỗ trợ tận tình, support tối đa, giúp bạn trải nghiệm dịch vụ giá hời chất lượng tốt nhất