Tin tức, hướng dẫn và chia sẻ về công nghệ

[FTP][Phần 4][LAB]Phân quyền User trong FTP server(CentOS-7)

các bài viết trước, ta đã tìm hiểu về FTP và cách cấu hình của nó.

Trong bài viết này, chúng ta sẽ thực hiện việc phân quyền User để sử dụng FTP server.

Mục lục

  1. Mô hình lab phân quyền
  2. Cài đặt và cấu hình FTP server với vsftpd
  3. Phân quyền các User
  4. Sử dụng FileZilla để kiểm tra phân quyền

I. Mô hình Lab

Chuẩn bị:

Ta sẽ có 3 user để thực hiện phân quyền:

Trong đó:

  • user1user2 chỉ được sử dụng các thư mục của chính nó (user1 : /user1user2 : /user2) và thư mục dùng chung(/user12)
  • user3 có thể truy cập tất cả các thư mục nhưng chỉ có quyền đọc, kể cả với chính thư mục của nó (/user3)

II. Cài đặt và cấu hình FTP server

Ta sẽ sử dụng vsftpd để cài đặt FTP server trên CentOS-7. Bạn có thể xem tại đây

1. Cài đặt Vsftpd:

Cài đặt gói vsftpd:

# yum install vsftpd

Copy file cấu hình để backups: /etc/vsftpd/vsftpd.conf

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.example

2. Cấu hình FTP server

  • Chỉnh sửa file cấu hình
# vi /etc/vsftpd/vsftpd.conf
# không cho user nặc danh truy cập ftp server
anonymous_enable=NO

# sử dụng local user
local_enable=YES

# cho phép local user upload, delete file
write_enable=YES

# chroot và tạo 1 file /etc/vsftpd/chroot_list chứa danh sách các local user không bị giới hạn bởi chroot
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

# Ta chỉ sử dụng IPv4
listen=YES

# Không sử dụng IPv6
listen_ipv6=NO

# Chỉ cho các user có trong file /etc/vsftpd/user_list được truy cập FTP server
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list

# Thư mục home của FTP Server
local_root=/var/ftp/

# Sử dụng thời gian của hệ thống
use_localtime=YES
  • Khởi động vsftp :
# systemctl start vsftpd
# systemctl enable vsftpd
  • Cấu hình tường lửa:
# firewall-cmd --permanent --add-port=21/tcp
# firewall-cmd --permanent --add-service=ftp
# firewall-cmd --reload
  • SELinux:
# setsebool -P ftpd_full_access on

III. Tạo user và phân quyền

1. Tạo các user và group

  • Tạo 3 user: user1, user2, user3 và thay đổi Home directory của chúng như sau:
# useradd -d /var/ftp/user1 user1
# useradd -d /var/ftp/user2 user2
# useradd -d /var/ftp/user3 user3
  • Đặt mật khẩu cho các user vừa tạo. Ở đây, mình đặt mật khẩu của 3 user giống nhau là nhanhoa2020 :
# passwd user1
# passwd user2
# passwd user3
  • Tạo 2 group:
    • ftp_basic : user có quyền bình thường đối với thư mục của mình và thư mục dùng chung. Dùng cho user1user2.
    • ftp_onlyread : user chỉ có quyền đọc. Dùng cho user3.
# groupadd ftp_basic

# groupadd ftp_onlyread
  • Thêm các user vào 2 group vừa tạo:
# usermod -g ftp_basic user1
# usermod -g ftp_basic user2
# usermod -g ftp_onlyread user3

2. Cấp quyền truy cập và phân quyền các user:

  • Cấp quyền truy cập FTP server cho các user vừa tạo bằng cách thêm vào file /etc/vsftpd/user_list, mỗi user trên một dòng và lưu lại.
# vi /etc/vsftpd/user_list
  • Thêm vào danh sách không bị chroot giới hạn
# vi /etc/vsftpd/chroot_list
  • Tạo 1 thư mục dùng chung cho user1 user2 tên là /user12:
# mkdir /var/ftp/user12 
  • Thay đổi quyền sở hữu thư mục:
# chown -R user1:ftp_basic /var/ftp/user1
# chown -R user2:ftp_basic /var/ftp/user2
# chown -R user3:ftp_onlyread /var/ftp/user3
# chown -R :ftp_basic /var/ftp/user12
  • Thay đổi permission để kiểm soát truy cập của từng user đối với các thư mục

Quyền và permission của các user với các thư mục:

# chmod 705 /var/ftp/user1
# chmod 705 /var/ftp/user2
# chmod 550 /var/ftp/user3
# chmod 775 /var/ftp/user12

Như vậy ta đã phân quyền xong. Ta tiến hành restart lại dịch vụ vsftpd:

# systemctl restart vsftpd

IV. Sử dụng FileZilla để truy cập FTP server kiểm tra phân quyền

Ta sẽ sử dụng FileZilla Client để xem sau khi phân quyền, các user có quyền truy cập và thao tác trên FTP server đúng như ta đã đặt ra hay không.
Có thể xem cách sử dụng FileZilla Client tại đây.

1. user1 và user2

Đăng nhập vào FTP server, sau khi đăng nhập thành công sẽ có thông báo kết nối thành công và chuyển vào Home directory của FTP server.

Ở đây, mình sẽ thử với user1. (user2 hoàn toàn tương tự)

1.1. Truy cập vào các thư mục không thuộc quyền sở hữu

Ta truy cập vào 2 thư mục /user2/user3 sẽ không thành công và hiện thông báo lỗi như hình:

1.2. Truy cập vào thư mục cá nhân

  • Truy cập vào thư mục /user1: ta sẽ thấy các nội dung trong thư mục /user1
  • Upload file: Ta sẽ upload file fileupload.txt từ local lên thư mục /user1 của FTP server. Ta sẽ thấy thông báo thành công và file hiển thị trên FTP server.
  • Download file: Ta sẽ download file u1.download về local. Ta sẽ thực hiện thành công việc download như hình
  • Xóa file trên FTP server: xóa file fileupload.txt

1.3. Truy cập thư mục chung /user12

  • Truy cập thư mục: /user12
  • Upload file:
  • Download:
  • Xóa file: xóa file fileupload.txt

2. user3

user3 có thể truy cập tất cả các thư mục trên FTP server, tuy nhiên nó chỉ có thể xem nội dung và download mà không thể chỉnh sửa nội dung trên FTP server

  • Truy cập các thư mục trên FTP server
  • Upload file: không upload thành công lên server
  • Download file:

Trên thư mục /user3:

Trên các thư mục khác:

  • Xóa file: không thể thực hiện

Trên các thư mục khác:

Trên thư mục /user3


Trên đây là bài lab phân quyền user local trong FTP server. Rất mong những ý kiến đóng góp từ các bạn.

Xem thêm các bài viết về FTP.

1 Comment

  1. Huỳnh Hữu Nhân

    many thanks

Leave a Reply

Your email address will not be published. Required fields are marked *