3.1: Đặt ra bài toán
Yêu cầu: Tạo các user và các folder để quản lý các file server
Tạo các user: boss, nv1, nv2 và áp dụp dụng cho các folder
User: boss = folder: giamdoc
User: nv1 = folder: it1
User: nv2 = folder: it2
Phân quyền chia sẻ tập tin phù hợp cho từng User và các đối tượng
Ở bài này chúng ta sẽ phải thêm user vào group để các user có quyền quản lý folder:
Group nv1: thêm user boss
Group nv2: thêm user boss
Đây là mô hình mô phỏng:
Làm Demo folder “giamdoc”
Folder “giamdoc” với yêu cầu các user trong group boss được phép truy cập vào folder này, và cấm toàn bộ user khác không thể truy cập vào folder.
Folder “it1” với yêu cầu cho phép user nv2 có thể truy cập vào folder và có quyền xem không thể sửa, xóa.
Folder “it2” với yêu cầu chặn user nv1 không thể truy cập vào folder.
Đặt hạn nghạch cho user nv1 và nv2:
User: nv1 đặt hạn nghạch tối đa 6MB lưu trữ.
User: nv2 tối đa chỉ được 4 tập tin.
Chặn toàn bộ user không thể thêm file định dạng .exe.
Quét toàn bộ các file không phải định dạng .txt 1 phút 1 lần đều sẽ bị xóa.
Hình 3.1: Sơ đồ mô phỏng và quản lý tài khoản
3.2 Cài đặt hệ điều hành Ubuntu
Bước 1: Cho File ISO Ubuntu 18.04 LTS vào máy ảo vào Boot đĩa lên.
- Khi boot File IOS lên sẽ xuất hiện màn hình "Install Options" (Tùy chọn cài đặt) sẽ xuất hiện.
Tùy chọn cài đặt như trong hình 3.2: Có thể chọn dùng thử Ubuntu mà không cần cài đặt hoặc chọn cài đặt ubuntu (Try Ubuntu); kiểm tra lỗi của ổ đĩa và bộ nhớ; đồng thời chọn khởi động từ ổ cứng hiện tại.
Tại màn hình tiếp theo chọn ngôn ngữ, Click “Continue" để tiếp tục.
Hình 3.3: Chọn ngôn ngữ
- Trong hình 3.3 chọn ngôn ngữ trong quá trình cài đặt.
Ở màn hình tiếp theo như trong hình 3.4, có thể chọn cài đặt bản Ubuntu bình thường (Normal installation) hoặc cài bản tối thiểu với trình duyệt và công cụ cơ bản (Minimal installation). Bạn có thể chọn cập nhật trong quá trình cài đặt Download updates while installing Ubuntu để cập nhật mọi thứ trong khi cài, hơi mất thời gian cài hơn nhưng đỡ phải cập nhật sau khi cài. Click "Continue" để tiếp tục.
Hình 3.4: Chọn cài đặt bản Ubuntu
- Tùy chọn tiếp theo sẽ hỏi bạn muốn xóa toàn bộ dữ liệu và cài đặt hay tạo phân vùng riêng từ tùy chọn "Something Else" (Thứ khác). Nên chọn Erase disk and install Ubuntu.
Hình 3.5: Tùy chọn ổ đĩa cài đặt Ununtu
Trong hình 3.5: Tùy chọn tiếp theo sẽ hỏi muốn xóa toàn bộ dữ liệu và cài đặt hay tạo phân vùng riêng từ tùy chọn "Something Else". Nhấp vào Continue trong màn hình tiếp theo. Xác nhận thay đổi trên ổ đĩa.
Chọn múi giờ trong bản đồ hoặc nhấp tên và chọn rồi nhấp chuột vào “Continue”.
Chọn múi giờ trong bản đồ, nhấp chuột vào “Continue” như hình 3.6.
Hình 3.6: Chọn múi giờ cho hệ thống
- Sau đó đến phần nhập thông tin người dùng hệ thống:
Your name: Tên người dùng
Your computer’s name: Tên của máy chủ
Pick a username: Tên đăng nhập vào hệ thống.
Choose a password và Confirm your password: Nhập mật khẩu đăng nhập vào hệ thống và xác nhận lại mật khẩu.
Sau đó Click chuột vào "Continue" để bắt đầu cài đặt hệ điều hành Ubuntu 18.04 LTS.
Sau khi hoàn tất cài đặt, click “Restart Now” (Khởi động bây giờ) để kết thúc quá trình cài đặt.
3.3 Cài đặt và cấu hình dịch vụ FTP
Sau khi cài xong hệ điều hành ubuntu, chúng ta mở chương trình Terminal. Sau đó sử dụng tài khoản root chạy dòng lệnh dưới đây.
Đầu tiên ta mở Terminal sau đó đăng nhập người quản trị bằng lệnh:
Sudo -i
Sau đó nhập password để chuyển sang chế độ root:
a) Cài đặt dịch vụ vsftpd
Trước khi cài đặt dịch vụ vsftp chúng ta phải cập nhật ubuntu:
#Lệnh update :
sudo apt-get update
#Lệnh cài đặt vsftpd :
sudo apt-get install vsftpd
Sau khi cài đặt dịch vụ vsftp trên ubuntu chúng ta sẽ cấu hình file vsftpd:
#Lệnh mở file vsftpd :
gedit /etc/vsftpd.conf
Chúng ta bắt đầu cấu hình file vsftp như sau :
#Lệnh cho phép tải tệp và dowload tệp tin :
ascii_upload_enable=YESascii_download_enable=YES
#Lệnh cho phép local user khác đăng nhập và thao tác :
local_enable=YES
#Lệnh cho phép local user có thể tạo file :
write_enable=YES
#Lệnh không cho phép local user khác truy cập tới các thư mục khác trong server:
chroot_local_user=YES
Cài đặt và cấu hình firewall cho vsftpd
Sau khi cấu hình xong bạn thuẹc hiện thao tác Save lại file cấu hình và tiếp tục bước cài firewall
#Lệnh cài Firellewall:
apt-get install ufw
#Lệnh mở Port FTP trên Filewallall:
sudo ufw allow 20/tcpsudo ufw allow 21/tcp
#Lệnh kiểm tra Firewall hoạt động hay không : ufw status
Tạo user và folder cho FTP để quản lý
#Lệnh tạo folder FTPsudo mkdir /home/toanit1/FTP#Lệnh tạo folder con giamdoc trong folder mẹ FTPsudo mkdir /home/toanit1/FTP/giamdoc#Lệnh tạo folder con it1 trong folder mẹ FTPsudo mkdir /home/toanit1/FTP/it1#Lệnh tạo folder con it2 trong folder mẹ FTPsudo mkdir /home/toanit1/FTP/it2#Lệnh tạo user boss:sudo adduser --home=/home/toanit1/FTP boss#Lệnh tạo user nv1:sudo adduser --home=/home/toanit1/FTP nv1#Lệnh tạo user nv2:sudo adduser --home=/home/toanit1/FTP nv2Thêm user boss vào group nv1 và nv2 để nhận quyền quản lý thư mục it1 và it2:addgroup boss nv1addgroup boss nv2
d) Phân quyền user cho các thư mục
Trong Linux, khi nói đến phân quyền là chúng ta sẽ nghĩ ngay đến 3 quyền hạn cơ bản của một user/group nào đó trên một file/folder nào đó bao gồm:
r (read) – quyền đọc file/folder
w (write) – quyền ghi/sửa nội dung file/folder
x (execute) – quyền thực thi (truy cập) thư mục. Đối với thư mục thì bạn cần phải có quyền execute thì mới dùng lệnh cd để truy cập vào được.
Trong đó:
Quyền r được biểu diễn bằng số 4.
Quyền w được biểu diễn bằng số 2.
Quyền x được biểu diễn bằng số 1.
Và chúng ta có thể phân quyền chi tiết cho từng user hay 1 groups theo thứ tự :
owner: Quyền của user mà chủ sở hữu của file này.
group: Quyền của những users thuộc group mà chủ sở hữu của file này.
other: Quyền của tất cả các user khác trên máy.
Áp dụng vào bài toán ta được như sau:
#Phân quyền cấm toàn bộ user không thể xem tệp tin trên folder giamdoc trừ user boss:
sudo chmod 070 /home/toanit1/FTP/giamdocchown :boss /home/toanit1/FTP/giamdoc
Phân quyền user nv2 chỉ được quyền xem vào không thể xóa sửa tại folder it1 của user nv1:
sudo chmmod 575 /home/toanit1/FTP/it1chown :nv1 /home/toanit1/FTP/it1
#Cấm user nv1 không được phép vào folder it2 của user nv2 nhưng user boss vẫn có thể truy cập vào:
sudo chmod 770 /home/toanit1/FTP/it2chown :nv2 /home/toanit1/FTP/it2
e) Đặt hạn nghạch cho user
#Lệnh cài đặt quota:apt-get install quota#Lệnh kiểm tra tên ổ cứng để đặt hạn nghạch:fdisk -l#Lệnh mount phân vùng dev/sda2/ vào thư mục:mount /dev/sda2 /home/toanit1/FTP#Lệnh sửa file cấu hình fstab:gedit /etc/fstab#Thêm lệnh này vào file fsatb:/dev/sda2 /home/toanit1/FTP ext3 defaults,usrquota,grpquota 1 2#Lệnh mount lại để thư mục nhận tính năng quota:mount -o remount /home/toanit1/FTP/#Lệnh kiểm tra tệp tin được cấu hình quota:quotacheck -mucg /home/toanit1/FTP/#Đặt hạn nghạch tối đa 6MB lưu trữ quota 6000 limit 6000 cho user nv1ls -l /home/toanit1/FTP/ edquota -u nv1#Kiểm ra đã đặt hạn nghạch thành công chưa:quota -uv nv1# User nv2 tối đa chỉ được 4 tập tin soft 4 hard 4edquota -u nv2 ( nv2 tối đa chỉ được 4 tập tin soft 4 hard 4)#Kích hoạt quota:quotaon /home/toanit1/FTP
f) Quản lý và ngăn chặn user thêm file
#Chặn toàn bộ user không được thêm hoặc tạo file định dạng .exe vào file server:deny_file={*.exe} //thêm vào file cấu hình vsftpd.conf#Cài crontab chạy lệnh tự động:apt install cronie để cài cron#Tạo hoặc chỉnh sửa file crontab:crontab -e#Hiển thị file crontab:crontab -l#Lọc file tự động và xóa khi không phải file .txt 1 phút quét 1 lần:* * * * * find /home/toanit1/ftp/ -type f ! -name \*.txt -exec rm -f {} \;#Lệnh cron tự động mỗi ki restartservice crond startchkconfig crond on
3.4 Kết quả của bài toán
Hình 3.8: Chặn toàn bộ user nhân viên không thể vào folder giamdoc
Hình 3.9: User nv2 có quyền xem nhưng không được sửa xóa của nv1
Hình 3.10: Folder it1 chỉ được tối đa dung lượng 6MB
Qua thực hiện bài toán ở t đã có tìm hiểu, triển khai dịch FTP Server, có những phần mình đã tìm hiểu chưa được kỹ nhưng phần nào cũng hoàn thành bài toán mình đã đề ra:
• Tìm hiểu về hệ điều hành mã nguồn mở.
• Phân quyền quản trị cho nhóm cũng như các user khác.
• Cài đặt dịch vụ và cấu hình dịch vụ FTP Server.
• Đặt giới hạn dung lượng cũng như quản lý file server.