Professional Documents
Culture Documents
MINI PROJECT
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ổng
hợ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 classroom
của môn học. File báo cáo phải có định dạng PDF.
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:
1. Cài đặt và cấu hình Server/Desktop (70%)
1.1. (10%) Sử dụng phần mềm VirtualBox/VMware/UTM/Parallels/…:
- Tạo 1 NAT Network tên "QTHT" có địa chỉ mạng là 192.168.1.0/24.
Tắt dịch vụ DHCP có sẵn trên NAT Network "QTHT".
CenOS9(server):
Lubuntu(desktop):
Server Desktop
Host name Server Host name Desktop
Lubuntu 22.04,
Hệ điều hành Hệ điều hành
CentOS 9 hoặc bất kỳ hệ điều
hành khác
IP 192.168.1.2 IP
Cấu hình động sử dụng
Subnet mask 255.255.255.0 Subnet mask
dịch vụ DHCP trên
Gateway 192.168.1.1 Gateway server
DNS 192.168.1.1 DNS
- 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ông
dùng tài khoản root).
SERVER:
• Hostname: Server
• IP: 192.168.1.2
• Gateway: 192.168.1.1
• DNS: 192.168.1.1
DESKTOP:
• Hostname: desktop
+ Đầ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)
$sudo adduser
$sudo passwd
+ Để tạo nhóm người dùng ta dùng lệnh:
$sudo groupadd
• 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
từ xa.
- 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ới server.
+ Cài đặt dịch vụ SSH:
+ 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:
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ình
sshd_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
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”
Chỉ cho chứng thực bằng private key, tạo private/public key cho người dùng b2104821
$ssh-keygen
+ Nhận được tập tin chứa private key (dùng cho b2104821) và tập tin chứa public key (dùng
cho 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
+ Tắt chức năng chứng thực bằng password và mở chứng thực bằng public key:
• PubkeyAuthentication yes
• PasswordAuthentication no
+ Private key nằm ở trên máy client, do đó ta sẽ tải tập tin chứa Private key này về máy
Desktop
+ Tập tin private key sau khi tải về có tên là known_hosts, ta sẽ đổi tên lại để dễ nhớ, ở đây ta
sẽ đổi thành id_rsa:
+ Tiến hành kết nối đến server bằng private/public key với người dùng b2104821 bằng lệnh:
1.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.
+ Tạo thư mục /data:
$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 sticky
bit.
+ 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:
+ 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ền
gì: Ta có các lệnh để tạo nhóm và phân quyền trên nhóm như sau:
+ Chủ sở hữu tập tin mới có quyền xóa hoặc đổi tên tập tin:
+ Khởi động lại tường lửa để áp dụng zone mới vừa tạo ra
+ Cho phép các dịch vụ DNS, DHCP, SSH, Web, SAMBA hoạt động trên zone tamquoc
+ 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.
+ Khởi động dịch vụ DHCP, cho phép DHCP tự chạy mỗi khi máy khởi động.
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 trang
chủ giới thiệu về các thành viên trong công ty.
$sudoyum-config-manager\--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
7. Chạy dịch vụ Docker và cho phép Docker khởi động cùng hệ thống:
$docker login -u
Kiểm tra thông tin các image httpd có trên docker hub:
+ Trên máy desktop, vào địa chỉ 192.168.1.2:8080/myweb/trangchu.html tiến hành kiểm
chứ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:
#Thêm đoạn cấu hình bên dưới vào cuối tập tin
[data]
path = /data
browsable = yes
writable = yes
read only = no
valid users = @lecturers
+ 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
)
@ IN NS dns.lautamquoc.com.vn.
dns IN A 192.1.1
www IN A 192.168.1.2
fpt IN A 192.168.1.2
+ 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
)
@ IN NS dns.lautamquoc.com.vn.
dns IN A 192.168.1.1
1 IN PTR www.lautamquoc.com.vn.
+ Kiểm tra và sử dụng dịch vụ DNS
- Tắt tường lửa:
$sudo systemctl stop firewalld
- 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ẽ được
né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én
lạ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.
$export EDITOR=nano
$crontab -e
+ Để Crontab thực thi được cái file shell script thì ta cần cấp quyền thực thi:
Viế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.
Trì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, …
--- Hết ---