10% Cài đặt và cấu hình dịch vụ SSH để cho phép điều khiển từ xa Server.___12 - Chỉ có thành viên ban giám đốc và tài khoản mới có quyền điều khiển từ xa Server.. $sudo nmcli general ho
Trang 1TRƯỜNG ĐẠI HỌC CẦN THƠ TRƯỜNG CÔNG NGHỆ THÔNG TIN && TRUYỀN THÔNG
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
MINI PROJECT QUẢN TRỊ HỆ THỐNG
Mã số sinh viên: B2104821
Trang 2- Chỉ có thành viên ban giám đốc và tài khoản <Mã số sinh viên> mới có quyền điều khiển từ xa Server Tài khoản root không được nối kết tới server từ xa. 12
- Chỉ cho phép chứng thực bằng private key, không cho phép chứng thực bằng
password Tạo private/public key cho người dùng <Mã số sinh viên> để có thể SSH tớiserver. _121.4 (10%) Tạo thư mục /data trên server và phân quyền sao cho thành viên ban giám đốc có toàn quyền (read, write và execute), các trưởng phòng có quyền read và
execute, các nhân viên không có bất cứ quyền gì Ngoài ra chỉ chủ sở hữu tập tin có quyền xóa hoặc đổi tên tập tin trong thư mục /data. 161.5 (5%) Cài đặt và cấu hình tường lửa trên Server để cho phép: _18
- Có thể truy cập các dịch vụ DNS, DHCP, SSH, Web, SAMBA trên Server Các dịch
vụ khác KHÔNG cập truy cập được. _181.6 (5%) Cài đặt và cấu hình dịch vụ DHCP trên Server để cấu hình mạng tự động chocác máy Desktop trong nhánh mạng: _21
- Địa chỉ IP của desktop: trong dãy 192.168.1.100/24 đến 192.168.1.254/24 21
Trang 3Tên miền: gateway.lautamquoc.com < > IP: 192.168.1.1 29
1.10 (5%) Sử dụng dịch vụ cron và shell script tự động thực hiện công việc sao lưu dữliệu mỗi ngày, mỗi tuần, mỗi tháng trên Server như sau: 32+ Các thư mục cần sao lưu sao lưu: /home, /data, /etc 32+ Nơi lưu dữ liệu sao lưu: /mnt/backup _32
2 Hình thức bài báo cáo bài tập tổng hợp (30%) 36Viết báo cáo trình bày các bước thực hiện công việc 1.1 đến 1.10. 36Trình bày rõ ràng đầy đủ từng bước thực hiện và có hình ảnh minh hoạ Báo cáo ít lỗi chính tả, trình bày đẹp; có hình ảnh minh họa rõ, chi tiết, có mục lục, … _36
Trang 4BÀI TẬP TỔNG HỢP CUỐI KỲ Môn: Quản Trị Hệ Thống Học kỳ 2 - Năm học 2023-2024
Sinh viên (làm cá nhân) hoàn thành một báo cáo bài tập tổng hợp theo mô tả
Lưu ý:
- Bài tập tổng hợp chiếm 15% điểm đánh giá môn học
- Mọi sao chép bài của nhau giữa các sinh viên sẽ nhận 0đ cho điểm của phần bài tập tổnghợp
- Thời gian nộp báo cáo dự kiến: trước khi thi cuối kỳ (tuần 19), nộp qua Google classroomcủa môn học File báo cáo phải có định dạng PDF
Mô tả bài tập tổng hợp:
Công ty Tam Quốc chuyên kinh doanh buffet lẩu cay Tứ Xuyên có nhu cầu cài đặt các dịch
vụ mạng phục vụ cho công việc của công ty như sau:
Trang 61 Cài đặt và cấu hình Server/Desktop (70%)
Trang 7Host name Server Host name Desktop
Hệ điều hành
CentOS 9
Hệ điều hành Lubuntu 22.04,
hoặc bất kỳ hệ điềuhành khác
CPU/RAM/DISK 1core/2G/10G
Hoặc tùy chỉnh theocấu hình máy củasinh viên
CPU/RAM/DISK 1core/2G/20G
Hoặc tùy chỉnh theocấu hình máy của sinhviên
Network NAT Network
Subnet mask 255.255.255.0 Subnet mask
- Trong quá trình cài hệ điều hành CentOS 9 Stream, tạo 1 tài khoản với username là
<Mã số sinh viên>; firstname và lastname là họ tên của sinh viên Cấp quyền quản trị(sudo) cho tài khoản Sử dụng tài khoản vừa tạo để thực hiện bài tập tổng hợp (khôngdùng tài khoản root)
- Tắt dịch vụ tường lửa trên Server
SERVER:
Trang 8+ Đổi tên hostname: Lệnh:
$sudo nmcli general hostname
+ Xem lại cấu hình:
$nmcli -f ipv4.addresses,ipv4.gateway,ipv4.dns con show enp0s3
+ Cập nhật lại các thay đổi:
$nmcli con down enp0s3, $nmcli con up enp0s3
DESKTOP:
+ Đổi tên hostname:
Trang 9$sudo nmcli general hostname
Ta sẽ cấu hình máy ảo Ubuntu với các thông số như sau:
• Hostname: desktop
• IP, Subnet mask, gateway, DNS : Automatic (DHCP)
+ Đầu tiên để cấu hình động cho Desktop, ta phải cài đặt dịch vụ DHCP Server trên máy Server(làm câu 1.6 trước)
+ Sau khi cài đặt dịch vụ DHCP, tiếp theo từ máy ảo Desktop ta vào Settings > Network > Wired
> IPv4 > IPv4 Method: Automatic (DHCP)
+ Kiểm tra IP, Subnetmask, gateway, DNS:
Trang 10+ Ping từ desktop đến server, từ desktop đến internet:
+ Ping từ server đến desktop, từ server đến internet:
Trang 111.2 (10%) Để quản lý các bộ phận và người dùng trong công ty, hãy tạo các nhóm người dùng (group) và người dùng (user) trên server như sau Cấp quyền sudo cho người dùng Gia Cát Lượng.
STT Họ Tên Nhóm Username Password Mô tả
1 Lưu Bị bangiamdoc bi.luu luubi Giám đốc
2 Gia Cát Lượng bangiamdoc luong.giacat giacatluong Phó giám đốc
3 Quan Vũ hanhchanh vu.quan quanvu Trưởng phòng
4 Trương Phi hanhchanh phi.truong truongphi Nhân viên
5 Triệu Vân banhang van.trieu trieuvan Trưởng phòng
6 Mã Siêu banhang sieu.ma masieu Nhân viên
7 Hoàng Trung banhang trung.hoang hoangtrung Nhân viên+ Để tạo một user mới ta dùng lệnh:
$sudo adduser
+ Để tạo mật khẩu cho usename vừa tạo ta dùng lệnh:
$sudo passwd
Trang 12+ Để tạo nhóm người dùng ta dùng lệnh:
$sudo groupadd
+ Để thêm các user vào 1 nhóm ta dùng lệnh:
$sudo usermod -aG
+ Cấp quyền sudo cho người dùng luong.giacat:
Trang 13• Ta sẽ không cấp quyền sudo trực tiếp cho người dùng luong.giacat, mà ta sẽ thêmngười dùng này nhóm có quyền sudo Ở đây, ta sẽ thêm người dùng luong.giacat vàonhóm wheel
• Lệnh để thêm một người dùng vào nhóm: $sudo usermod -aG
1.3 (10%) Cài đặt và cấu hình dịch vụ SSH để cho phép điều khiển từ xa Server
- Chỉ có thành viên ban giám đốc và tài khoản <Mã số sinh viên> mới có quyền điều khiển từ xa Server Tài khoản root không được nối kết tới server
$sudo dnf install openssh-server -y
+ Khởi động và cho phép dịch vụ SSH tự động thực thi khi khởi động hệ điều hành:
$sudo systemctl start sshd
$sudo systemctl enable sshd
+ Kiểm tra trạng thái dịch vụ SSH:
$sudo systemctl status sshd
Trang 14Cấu hình SSH cho phép (hoặc chặn) nhóm (hoặc người) dùng điều khiển server từ xa:
Note 1: nhóm truongphong đã tạo gồm 2 người dùng là Zoro và Sanji
Note 2: AllowGroups và AllowUsers trong file sshd_config
AllowGroups: nếu sau này muốn thêm người dùng khác có quyền điều khiển server từ
xa thì chỉ cần thêm người dùng này vào nhóm, không cần phải mở file cấu hìnhsshd_config như AllowUsers
AllowUsers: nếu muốn thêm người dùng khác có quyền điều khiển server từ xa thìphải mở file cấu hình sshd_config và thêm user này vào
- Tiến hành cấu hình SSH server:
1 Mở file config SSH: $sudo nano /etc/ssh/sshd_config
2 Cho phép nhóm bangiamdoc, b2104821 điều khiển server từ xa, thêm dòng này:AllowGroups bangiamdoc “Enter” AllowUsers b2104821
3 Chặn tài khoản root điều khiển server từ xa: tìm đến dòng “#PermitRootLogin yes”,
bỏ ghi chú dấu “#” và thay “yes” thành “no” Nếu không có dòng “#PermitRootLogin”
mà chỉ có dòng “#PermitRootLogin prohibit-password” thì ta thêm dòng
“PermitRootLogin no”
4 Khởi động lại dịch vụ SSH:
$sudo systemctl restart sshd
Trang 155 Kiểm tra kết quả:
-Kết nối bằng tài khoan root thất bại
-Kết nối thành công bằng tài khoản b2104821
-Kết nối thành công bằng tài khoản thuộc bangiamdoc
Chỉ cho chứng thực bằng private key, tạo private/public key cho người dùng b2104821
+ Kết nối desktop đến server bằng người dùng b2104821:
+ Tạo keygen SSH:
$ssh-keygen
Trang 16+ Nhận được tập tin chứa private key (dùng cho b2104821) và tập tin chứa public key (dùngcho server)
+ Đổi tên tập tin chứa public key thành tên khác và nằm trong thư mục ssh/, ví dụ như:security_keys
+ Phân quyền lại cho tập tin chứa public key
$chmod 600 ssh/security_keys
+ Tắt chức năng chứng thực bằng password và mở chứng thực bằng public key:
$sudo nano /etc/ssh/sshd_config
Trang 17Tìm đến dòng PubkeyAuthentication và PasswordAuthentication ta thay đổi như sau:
+ Tạo thư mục /data:
Trang 18$sudo mkdir /data
+ Để phân quyền như yêu cầu, ta sử dụng kỹ thuật ACL (Access Control List) kết hợp stickybit
+ Phân quyền cho thành viên ban giám đốc có toàn quyền (read write execute) trên thư mục/data: Ta dùng lệnh:
$sudo setfacl -m g:bangiamdoc:rwx /data
+ Phân quyền cho trưởng phòng quyền read và execute, các nhân viên không có bất cứ quyềngì: Ta có các lệnh để tạo nhóm và phân quyền trên nhóm như sau:
$sudo groupadd truongphong
$sudo usermod -aG truongphong vu.quan
$sudo usermod -aG truongphong van.trieu
$sudo setfacl -m g:hanhchanh: - /data
$sudo setfacl -m g:banhang: - /data
$sudo setfacl -m g:truongphong:r-x /data
+ Chủ sở hữu tập tin mới có quyền xóa hoặc đổi tên tập tin:
$sudo chmod +t /data
Trang 191.5 (5%) Cài đặt và cấu hình tường lửa trên Server để cho phép:
- Có thể truy cập các dịch vụ DNS, DHCP, SSH, Web, SAMBA trên Server Các dịch vụ khác KHÔNG cập truy cập được.
+ Khởi động tường lửa firewalld
$sudo systemctl start firewalld
+ Tạo zone mới có tên là tamquoc
$sudo firewall-cmd –permanent new-zone=tamquoc
+ Khởi động lại tường lửa để áp dụng zone mới vừa tạo ra
$sudo systemctl restart firewalld
+ Kiểm tra các rule của zone tamquoc:
Trang 20$sudo firewall-cmd list-all zone=tamquoc
+ Cho phép các dịch vụ DNS, DHCP, SSH, Web, SAMBA hoạt động trên zone tamquoc
$sudo firewall-cmd permanent zone=daihaitrinh add-service=dns
$sudo firewall-cmd permanent zone=daihaitrinh add-service=dhcp
$sudo firewall-cmd permanent zone=daihaitrinh add-service=ssh
$sudo firewall-cmd permanent zone=daihaitrinh add-service=http
$sudo firewall-cmd permanent zone=daihaitrinh add-service=https
$sudo firewall-cmd permanent zone=daihaitrinh add-service=samba
Trang 21+ Thêm rule chỉ cho phép máy desktop SSH đến server
$sudo firewall-cmd permanent zone=tamquoc add-rich-rule='rule family=ipv4source address=192.168.1.100/32 port port=22 protocol=tcp accept'
+ Khởi động lại tường lửa, chuyển giao diện mạng sang zone daiahitrinh và kiểm tra các rule
đã thiết lập trên zone
$sudo systemctl restart firewalld
$sudo firewall-cmd permanent zone=daihaitrinh –change interface=enp0s3
$sudo firewall-cmd list-all zone=tamquoc
+ Kiểm tra kết quả
Trang 221.6 (5%) Cài đặt và cấu hình dịch vụ DHCP trên Server để cấu hình mạng tự động cho các máy Desktop trong nhánh mạng:
- Địa chỉ IP của desktop: trong dãy 192.168.1.100/24 đến 192.168.1.254/24
- Địa chỉ gateway: 192.168.1.1
- DNS server: 192.168.1.2 và 8.8.8.8
$sudo dnf -y install dhcp-server
Cấu hình DHCP:
+ Mở tập tin để tiến hành cấu hình: $sudo nano /etc/dhcp/dhcpd.conf
+ Nội dung file cấu hình như sau:
+ Khởi động dịch vụ DHCP, cho phép DHCP tự chạy mỗi khi máy khởi động
$sudo systemctl start dhcpd $sudo systemctl enable dhcpd
Trang 23+ Kiểm tra trạng thái dịch vụ DHCP Server:
$sudo systemctl status dhcpd
1.7 (5%) Cài đặt và cấu hình dịch vụ máy chủ Web trên Server sử dụng Docker Tạo một trang web cho công ty có tên miền lautamquoc.com với nội dung trang chủ giới thiệu về các thành viên trong công ty.
+ Chuẩn bị trang web (trangchu.html) được đặt trong thư mục ~/myweb, với nội dung trangchủ giới thiệu về các thành viên trong công ty
+ Tiến hành tải, chạy và đăng nhập docker
Trang 241 Gỡ bỏ PodMan do sẽ đụng độ với Docker:
$sudo dnf -y remove podman runc
2 Cài đặt công cụ yum-utils:
$sudo dnf install -y yum-utils
3 Thêm địa chỉ repo của Docker vào công cụ yum:
https://download.docker.com/linux/centos/docker-ce.repo
4 Cài đặt Docker: $sudo dnf install docker-ce -y
5 Thêm người dùng hiện tại vào nhóm docker:
$sudo usermod -aG docker $USER
6 Login lại vào shell:
Trang 25$su - $USER
7 Chạy dịch vụ Docker và cho phép Docker khởi động cùng hệ thống:
$sudo systemctl start docker
$sudo systemctl enable docker
8 Đăng nhập vào Docker:
$docker login -u
9 Kiểm tra Docker đã hoạt động tốt chưa:
$docker run hello-world
Trang 26+ Triển khai dịch vụ web:
Kiểm tra thông tin các image httpd có trên docker hub:
$docker search httpd
Tạo container từ image httpd:
$docker run -d -it -p 8080:80 name lautamquoc httpd
Trang 27Sao chép thư mục ~/myweb chứa nội dung gioithieu.html vào thư mục gốc của dịch vụ webtrên Docker container
$docker cp myweb/ Stawhat:/usr/local/apache2/htdocs/
+ Trên máy desktop, vào địa chỉ 192.168.1.2:8080/myweb/trangchu.html tiến hành kiểmchứng trang web vừa tạo:
1.8 (5%) Cài đặt và cấu hình dịch vụ SAMBA trên Server Cấu hình chỉ cho phép:
- Thành viên ban giám đốc và trưởng phòng có thể truy cập vào thư mục /data trên Server.
- Tất cả người dùng có thể truy cập vào thư mục cá nhân của họ (/home/<username>) trên Server.
- Trên Desktop tạo ổ cứng ảo nối kết tới dịch vụ SAMBA trên Server.
+ Cài dặt dịch vụ Samba:
$sudo dnf íntall -y samba
Trang 28+ Tạo thư mục cần chia sẻ và phân quyền:
$sudo mkdir lecturers /data
$sudo chown :lecturers /data
$sudo chown -R 775 /data
+ Cấu hình dịch vụ Samba:
$sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig
$sudo nano /etc/samba/smb.conf
#Thêm đoạn cấu hình bên dưới vào cuối tập tin
Trang 29valid users = @lecturers
+ Thêm người dùng cho dịch vụ Samba:
$sudo smbpasswd -a bi.luu,
#Đặt mật khẩu Samba cho người dung
+ Cấu hình SELINUX cho phép Samba
$sudo setsebool -P samba_export_all_rw on
$sudo setsebool -P samba_enable_home_dirs on
+ Tắt tường lửa:
$sudo systemctl stop firewalld
Trang 30+Khởi động cho phép Samba tự động thực thi khi khởi động hệ điều hành:
$sudo systemctl start smb
$sudo systemctl enable smb
+ Trên File Explorer của máy Desktop, chọn tính năng “Add a network location” đểnối kết tới Samba server sử dụng địa chỉ \\<IP máy CentOS>\data
1.9 (5%) Cài đặt và cấu hình dịch vụ DNS trên Server để phân giải tên miền
lautamquoc.com
Tên miền: www.lautamquoc.com < > IP: 192.168.1.2 (Server IP) Tên miền: gateway.lautamquoc.com < > IP: 192.168.1.1
+ Cài đặt BIND và các công cụ cần thiết:
$sudo dnf install bind bind-utils -y
+ Cấu hình DNS server:
$sudo nano /etc/named.conf
Trang 31+ Tạo tập tin cấu hình phân giải xuôi:
$sudo cp /var/named/named.localhost /var/named/forward.lautamquoc
$sudo chgrp named /var/named/forward.lautamquoc
$sudo nano /var/named/forward.lautamquoc
Trang 32+ Tạo tập tin cấu hình phân giải ngược:
$sudo cp /var/named/forward.lautamquoc /var/named/reverse.lautamquoc
$sudo chgrp named /var/named/reverse.lautamquoc
$sudo nano /var/named/reverse.lautamquoc
Trang 341.10 (5%) Sử dụng dịch vụ cron và shell script tự động thực hiện công việc sao lưu dữ liệu mỗi ngày, mỗi tuần, mỗi tháng trên Server như sau:
+ Các thư mục cần sao lưu sao lưu: /home, /data, /etc
+ Nơi lưu dữ liệu sao lưu: /mnt/backup
- Sao lưu mỗi ngày: thực hiện vào lúc 23:59 từ thứ 2 đến thứ 7, dữ liệu sẽ được nén lại
và lưu với tên như sau: backup_<thứ> (ví dụ: backup_monday)
- Sao lưu mỗi tuần: thực hiện vào lúc 23:59 ngày chủ nhật hàng tuần, dữ liệu sẽ đượcnén lại và lưu với tên như sau: backup_week<thứ tự tuần> (ví dụ: backup_week1)
- Sao lưu mỗi tháng: thực hiện vào lúc 23:59 ngày 1 hằng tháng, dữ liệu sẽ được nénlại và lưu với tên backup_month1 nếu là tháng lẻ, backup_month2 nếu là tháng chẵn
+ Tạo file script backup_day
$sudo nano backup_day.sh
+ Tạo file script backup_week
$sudo nano backup_week.sh
Trang 35+ Tạo file script backup_moth
$sudo nano backup_moth.sh
+ Lên lịch bằng Crontab:
$export EDITOR=nano