1.Chuẩn bị thiết bị:
Một máy chủ Linux CentOS 7 và cài đặt FTP Server.
Một máy Windows đã cài đặt SecureCRT.
Một Switch kết nối Server Linux và PC.
2.Yêu cầu nội dung:
Kết nối thiết bị theo mô hình.
Đặt địa chỉ IP trên Server.
Sử dụng SecureCRT kết nối để thực hiện các nhiệm vụ cơ bản sau:
Cài đặt dịch vụ vsftpd trên máy chủ Linux.
Cài đặt và cấu hình thêm dịch vụ phân giải tên miền (nếu cần).
Tạo thư mục cho việc truy cập tài nguyên trên FTP Server.
Tạo User cho việc chứng thực truy cập.
Giới hạn truy cập vào FTP Server cho mỗi User.
Phần I. Cài đặt dịch vụ FTP Server
B1: Mount DVD vào thư mục media và sửa file yum, gán alias
[root@anln ~]# mount /dev/cdrom /media/
[root@anln ~]# vi /etc/yum.repos.d/CentOS-Media.repo
[root@anln ~]# vi .bashrc
B2: Cài đặt FTP Server từ DVD
yum install vsftpd -y
B3: gán quyền truy cập cho người dùng vào thư mục
setsebool -P ftp_home_dir="1
B4: Tao tạo user:
useradd anln
passwd anln
B5: khởi động dịch vụ ftp và cho phép khởi động cùng hệ thống
systemctl start vsftpd
systemctl enable vsftpd
B6: Bật firewalld
firewall-cmd --permanent --zone=public --add-port=20-21/tcp
firewall-cmd --permanent --zone=public --add-port=50000-50999/tcp
firewall-cmd --reload
firewall-cmd --list-all
B7: Cấu hình Passive mode
[root@anln ~]# vi /etc/vsftpd/vsftpd.conf
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50999
port_enable=YES
B8. Khởi động lại dịch vụ FTP
systemctl restart vsftpd
B9: Đổi thư mục cho người dùng
mkdir /Data
useradd -d /Data/Data1 jenln
passwd jenln
B10: Dùng File zilla client kiểm tra sau khi cấu hình
Chú ý:
- Khi dùng FTP ở port 21 sẽ không vào được các thư mục khác ngoài thư mục Home và dữ liệu không được bảo mật.
- Nên dùng giao thức SFTP chạy ở Port 22 bằng SSH để bảo mật và vào được mọi thư mục theo yêu cầu
- Nếu truy cập dịch vụ FTP dùng SFTP truy cập vào máy chủ: 118.70.119.44 ta dùng port 202 đã được NAT
Username: vt, password: 123456a@
II. CẤU HÌNH FTP VIRTUAL USER
1. Cài đặt dịch vụ FTP Server
B1: Cài đặt dịch vụ FTP Server
yum install vsftpd -y
B2: Nếu bật Selinux thì ta cần phải gán quyền truy cập cho thư mục mới của người dùng
setsebool -P allow_ftpd_full_access on
B3: Bật dịch vụ
systemctl start vsftpd
systemctl enable vsftpd
B4. Cài đặt dịch vụ Berkeley DB
yum install -y db-util
B5. Kiểm tra quá trình cài đặt
db_load -V
Kết quả như này là được
#db_load -V
2. Cấu hình Virtual User trên VSFTPD
a. Cấu hình trong File Vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
Sửa các thông số cấu hình như bên dưới.
anonymous_enable=NO
write_enable=NO
chroot_local_user=YES
allow_writeable_chroot=YES
##########Phần cấu hình cho Virtual User##########
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list_deny
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/vuser_conf
user_sub_token=$USER
pam_service_name=vuser_vsftpd
local_root=/var/ftp/$USER
#Cau hinh Passive mode
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50999
port_enable=YES
###########END###########
Chú ý: thếm dâu # trước pam_service_name="vsftpd
b. Tạo file cấu hình virtual user riêng
B1: Tạo folder chứa Virtual User
mkdir /etc/vsftpd/vuser_conf
Trong bài mình sẽ tạo hai user ảo là vuser1 và vuser2
B2: Sưa file cấu hình riêng cho vuser1.
vi /etc/vsftpd/vuser_conf/vuser1
Thêm nội dung như sau:
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
virtual_use_local_privs=YES
B3:Copy sang cho vuser2
cp /etc/vsftpd/vuser_conf/vuser1 /etc/vsftpd/vuser_conf/vuser2
c. Tạo Virtual user Database
B1: Tạo file chứa user:
vi /etc/vsftpd/vuser_list
Nội dung như sau, với username một dòng và password một dòng:
vuser1
123456a@
vuser2
123456a@
B2: Tiếp theo import vuser_list vào Berkeley DB
db_load -T -t hash -f /etc/vsftpd/vuser_list /etc/vsftpd/vuser_list.db
B3: Gán quyền read và execute.
chmod 600 /etc/vsftpd/vuser_list.db
Sau đó bạn có thể xóa file vuser_list nếu muốn, rm -f vuser_list
d. Cấu hình PAM
Nếu không dùng file PAM mặc định mà tạo file riêng để xác thực cho Virtual User. File sẽ có tên là vuser_vsftpd.
vi /etc/pam.d/vuser_vsftpd
Nội dung file:
auth required pam_userdb.so db="/etc/vsftpd/vuser_list
account required pam_userdb.so db="/etc/vsftpd/vuser_list
session required pam_loginuid.so
e. Cấu hình Home Directory cho Virtual User
B1: Sửa file passwd
vi /etc/passwd
Sửa /var/ftp thành
/var/ftp/$USER
B2: Tạo Home Directory cho Virtual User
mkdir /var/ftp/vuser1
mkdir /var/ftp/vuser2
Chown, toàn bộ dữ liệu trong /var/ftp thuộc sở hữu của tài khoản ftp
chown -R ftp:ftp /var/ftp/*
B3: Tạo file user_listdy_deny
vi /etc/vsftpd/user_list_deny
Thêm user muốn deny vào (ví dụ vuser1)
vuser1
B4: Mở Firewall
firewall-cmd --permanent --zone=public --add-port=20-21/tcp
firewall-cmd --permanent --zone=public --add-port=50000-50999/tcp
firewall-cmd --reload
firewall-cmd --list-all
B5: Khợi động lại dịch vụ
systemctl restart vsftpd
6. Kiểm tra hoạt động FTP Server
Deny vuser1 bằng cách thêm nó vào user_listdy_deny như đã cấu hình ở trên. Còn vuser2 vẫn cho truy cập upload/delete/rename bình thường.
Kết quả khi dùng FileZilla đăng nhập vào FTP Server trên VPS -> vuser1 đã bị chặn truy cập
vuser1
vuser2 đăng nhập bình thường và có thể upload file.
vuser2
Tất cả đã hoạt động ok, bạn thử tạo thêm nhiều user ảo khác và check rename, delete, create folder xem sao.
4.Video hướng dẫn: