This commit is contained in:
Luftmensch
2026-08-26 14:11:37 +07:00
commit e528419f9a
135 changed files with 413970 additions and 0 deletions
@@ -0,0 +1,464 @@
============================================================================
THÔNG TIN HỆ THỐNG
============================================================================
Script Version: 2.0.2
--- Thông tin cơ bản ---
Operating System: Ubuntu 24.04.4 LTS
Kernel Version: 6.8.0-124-generic
Architecture: x86_64
Hostname: antt-ksc01
FQDN: antt-ksc01.vascloud.vnpt.vn
IP Address: 10.144.82.37
All IP Addresses: 10.144.82.37
Audit Time: 2026-07-16 14:18:53
Timezone: Asia/Ho_Chi_Minh
Uptime: up 1 week, 1 day, 3 hours, 45 minutes
--- Thông tin CPU ---
CPU Model: Intel(R) Xeon(R) Gold 5220R CPU @ 2.20GHz
CPU Cores: 16
CPU Architecture: x86_64
--- Thông tin Memory ---
Total Memory: 15Gi
Used Memory: 1.5Gi
Free Memory: 8.5Gi
Swap Total: 15Gi
--- Thông tin Disk ---
Disk Usage:
/ 15G used of 482G (4%)
/ 15G used of 482G (4%)
/ 15G used of 482G (4%)
/tmp 0 used of 7.8G (0%)
--- Thông tin Network Interfaces ---
Primary Interface: ens160
MAC Address: 00:50:56:9e:6d:4a
Default Gateway: 10.144.82.33
DNS Servers: 127.0.0.53
--- Thông tin bổ sung ---
AppArmor Status: Enabled
UFW Status: Status: active
Last Boot: 2026-07-08 10:33
Current Users: 3
Load Average: 0.20 0.09 0.08
Ubuntu Version Detected: 24.04
============================================================================
IPv6 Status: DISABLED (kernel support not available)
############################################################################
{"1.1.1.1. Cấu hình vô hiệu hoá cramfs filesystem" : "PASSED"}
{"1.1.1.2. Cấu hình vô hiệu hoá freevxfs filesystem" : "PASSED"}
{"1.1.1.3. Cấu hình vô hiệu hoá hfs filesystem" : "PASSED"}
{"1.1.1.4. Cấu hình vô hiệu hoá hfsplus filesystem" : "PASSED"}
{"1.1.1.5. Cấu hình vô hiệu hoá jffs2 filesystem" : "PASSED"}
{"1.1.1.6. Cấu hình vô hiệu hoá squashfs filesystem" : "PASSED"}
{"1.1.1.7. Cấu hình vô hiệu hoá udf filesystem" : "PASSED"}
{"1.1.2.1. Cấu hình tuỳ chọn nodev cho phân vùng /tmp" : "PASSED"}
{"1.1.2.2. Cấu hình tuỳ chọn nosuid cho phân vùng /tmp" : "PASSED"}
{"1.1.2.3. Cấu hình tuỳ chọn noexec cho phân vùng /tmp" : "PASSED"}
-------------------
# Chỉnh sửa file /etc/fstab và thêm tùy chọn nodev, nosuid, noexec vào trường thứ 4 trong cấu hình của phân vùng /tmp. Ví dụ:
# tmpfs /tmp tmpfs defaults,nodev,nosuid,noexec 0 0
# Thực hiện các lệnh sau để mount phân vùng /tmp và cập nhật cấu hình fstab:
# mount /tmp
# mount -o remount /tmp
-------------------
######################################
{"1.1.3.1. Cấu hình tuỳ chọn nodev cho phân vùng /var/tmp" : "PASSED"}
{"1.1.3.2. Cấu hình tuỳ chọn nosuid cho phân vùng /var/tmp" : "PASSED"}
{"1.1.3.3. Cấu hình tuỳ chọn noexec cho phân vùng /var/tmp" : "PASSED"}
-------------------
# Chỉnh sửa file /etc/fstab và thêm tùy chọn nodev, nosuid, noexec vào trường thứ 4 trong cấu hình của phân vùng /var/tmp. Ví dụ:
# tmpfs /var/tmp tmpfs defaults,nodev,nosuid,noexec 0 0
# Thực hiện các lệnh sau để mount phân vùng /var/tmp và cập nhật cấu hình fstab:
# mount /var/tmp
# mount -o remount /var/tmp
-------------------
######################################
{"1.1.4.1. Cấu hình tuỳ chọn nodev cho phân vùng /home" : "PASSED"}
{"1.1.4.2. Cấu hình tuỳ chọn nosuid cho phân vùng /home" : "PASSED"}
-------------------
# Chỉnh sửa file /etc/fstab và thêm tùy chọn nodev, nosuid, noexec vào trường thứ 4 trong cấu hình của phân vùng /home. Ví dụ:
# <device> /home <fstype> defaults,nodev,nosuid 0 0
# Thực hiện các lệnh sau để cập nhật cấu hình fstab:
# mount -o remount /home
-------------------
######################################
{"1.1.5.1. Cấu hình tuỳ chọn nodev cho phân vùng /dev/shm" : "PASSED"}
{"1.1.5.2. Cấu hình tuỳ chọn nosuid cho phân vùng /dev/shm" : "PASSED"}
{"1.1.5.3. Cấu hình tuỳ chọn noexec cho phân vùng /dev/shm" : "PASSED"}
-------------------
# Chỉnh sửa file /etc/fstab và thêm tùy chọn nodev, nosuid, noexec vào trường thứ 4 trong cấu hình của phân vùng /dev/shm. Ví dụ:
# tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0
# Thực hiện các lệnh sau để mount phân vùng /dev/shm và cập nhật cấu hình fstab:
# mount /dev/shm
# mount -o remount /dev/shm
-------------------
######################################
{"1.1.6. Cấu hình sticky bit cho tất cả các thư mục dùng chung" : "PASSED"}
{"2.2.2. Cấu hình vô hiệu hoá autofs services" : "PASSED"}
{"1.1.8. Cấu hình vô hiệu hoá usb storage" : "PASSED"}
{"1.2.1. Kiểm tra cài đặt AIDE" : "PASSED"}
{"1.2.2. Cấu hình kiểm tra tính toàn vẹn của filesystem" : "PASSED"}
{"1.3.1. Phân quyền đối với file cấu hình bootloader" : "PASSED"}
{"1.3.2. Cấu hình xác thực khi truy cập single user mode" : "PASSED"}
{"1.3.3. Cấu hình xác thực khi truy cập single user mode" : "PASSED"}
{"1.4.1. Cấu hình kích hoạt ASLR (address space layout randomization)" : "PASSED"}
{"1.4.2. Cấu hình vô hiệu hoá prelink" : "PASSED"}
{"1.4.3. Cấu hình vô hiệu hoá core dump" : "PASSED"}
{"1.5.1. Kiểm soát nội dung motd (Message Of The Day)" : "PASSED"}
{"1.5.2. Kiểm soát nội dung thông báo khi đăng nhập" : "PASSED"}
{"1.5.3. Kiểm soát nội dung thông báo khi đăng nhập từ xa" : "PASSED"}
{"1.5.4. Cấu hình phân quyền đối với file /etc/motd" : "PASSED"}
######################################
{"1.5.5. Cấu hình phân quyền đối với file /etc/issue" : "PASSED"}
{"1.5.6. Cấu hình phân quyền đối với file /etc/issue.net" : "PASSED"}
{"1.5.7. Kiểm soát nội dung thông báo khi truy cập GNOME" : "PASSED"}
{"2.1.1. Cấu hình sử dụng chrony" : "PASSED"}
{"2.1.2. Cấu hình sử dụng NTP" : "PASSED"}
######################################
{"2.2.1. Cấu hình vô hiệu hoá xinetd services" : "PASSED"}
----------[PASSED]----------
#dpkg -l | grep xinetd
----------[PASSED]----------
#systemctl is-enabled xinetd.service
not-found
----------[PASSED]----------
#systemctl is-active xinetd.service
inactive
----------LOG----------
#systemctl is-enabled xinetd.service
not-found
#systemctl is-active xinetd.service
inactive
{"2.2.3. Cấu hình vô hiệu hoá X window server services" : "PASSED"}
{"2.2.4. Cấu hình vô hiệu hoá avahi daemon services" : "PASSED"}
{"2.2.5. Cấu hình vô hiệu hoá cups services" : "PASSED"}
{"2.2.6. Cấu hình vô hiệu hoá dhcp server services" : "PASSED"}
{"2.2.7. Cấu hình vô hiệu hoá ldap server services" : "PASSED"}
{"2.2.6. Cấu hình vô hiệu hoá NFS" : "PASSED"}
{"2.2.8. Cấu hình vô hiệu hoá dns server services" : "PASSED"}
######################################
{"2.2.9. Cấu hình vô hiệu hoá dnsmasq services" : "PASSED"}
----------[PASSED]----------
#grep -E "\s[7-9].[0-9]" /etc/os-release
----------[PASSED]----------
#dpkg-query -l dnsmasq
----------[PASSED]----------
#systemctl is-enabled dnsmasq.service
not-found
----------[PASSED]----------
#systemctl is-active dnsmasq.service
inactive
----------LOG----------
PRETTY_NAME="Ubuntu 24.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.4 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
{"2.2.10. Cấu hình vô hiệu hoá ftp server services" : "PASSED"}
{"2.2.12. Cấu hình vô hiệu hoá web server services" : "PASSED"}
######################################
{"2.2.11. Cấu hình vô hiệu hoá tftp server services" : "PASSED"}
----------[PASSED]----------
#grep -E "\s[7-9].[0-9]" /etc/os-release
----------[PASSED]----------
#dpkg -l | grep tftpd-hpa
----------[PASSED]----------
#systemctl is-enabled tftp.socket
not-found
----------[PASSED]----------
#systemctl is-enabled tftpd-hpa.service
not-found
----------[PASSED]----------
#systemctl is-active tftp.socket
inactive
----------[PASSED]----------
#systemctl is-active tftpd-hpa.service
inactive
----------LOG----------
{"2.2.13. Cấu hình vô hiệu hoá imap and pop3 server services" : "PASSED"}
{"2.2.14. Cấu hình vô hiệu hoá samba file server services" : "PASSED"}
{"2.2.15. Cấu hình vô hiệu hoá web proxy server services" : "PASSED"}
{"2.2.16. Cấu hình vô hiệu hoá snmp services" : "PASSED"}
{"2.2.14. Cấu hình vô hiệu hoá telnetd" : "PASSED"}
{"2.2.15. Cấu hình vô hiệu hoá rsh-server" : "PASSED"}
{"2.2.18. Cấu hình mail transfer agents sang chế độ local-only" : "PASSED"}
######################################
{"2.2.17. Cấu hình vô hiệu hoá nis server services" : "PASSED"}
----------[PASSED]----------
#dpkg -l | grep ypserv
----------[PASSED]----------
#systemctl is-enabled ypserv.service
not-found
----------[PASSED]----------
#systemctl is-active ypserv.service
inactive
----------LOG----------
#systemctl is-enabled ypserv.service
not-found
#systemctl is-active ypserv.service
inactive
######################################
{"2.2.19. Cấu hình vô hiệu hoá network file system services" : "PASSED"}
----------[PASSED]----------
#dpkg -l | grep nfs-kernel-server
----------[PASSED]----------
#systemctl is-enabled nfs-server.service
not-found
----------[PASSED]----------
#systemctl is-active nfs-server.service
inactive
----------LOG----------
#systemctl is-enabled nfs-server.service
not-found
#systemctl is-active nfs-server.service
inactive
{"2.2.20. Cấu hình vô hiệu hoá rsync services" : "PASSED"}
{"2.3.1. Cấu hình vô hiệu hoá nis client" : "PASSED"}
{"2.3.2. Cấu hình vô hiệu hoá rsh client" : "PASSED"}
{"2.3.3. Cấu hình vô hiệu hoá talk client" : "PASSED"}
{"2.3.4. Cấu hình vô hiệu hoá telnet client" : "PASSED"}
{"2.3.5. Cấu hình vô hiệu hoá ldap client" : "PASSED"}
{"2.3.6. Cấu hình vô hiệu hoá rpc" : "PASSED"}
{"2.3.7. Cấu hình vô hiệu hoá ftp client" : "PASSED"}
----------[PASSED]----------
#grep -E "\s[7-9].[0-9]" /etc/os-release
----------[PASSED]----------
#dpkg -l | grep ftp
ii openssh-sftp-server 1:9.6p1-3ubuntu13.16 amd64 secure shell (SSH) sftp server module, for SFTP access from remote machines
ii tnftp 20230507-2build3 amd64 enhanced ftp client
----------LOG----------
######################################
{"3.1.1. Cấu hình vô hiệu hoá IP forwarding" : "PASSED"}
######################################
{"3.1.2. Cấu hình vô hiệu hoá tính năng chuyển hướng gói tin (packet redirect)" : "PASSED"}
######################################
{"3.2.1. Cấu hình từ chối các gói tin với nguồn được định tuyến trước" : "PASSED"}
######################################
{"3.2.2. Cấu hình từ chối các ICMP redirect message" : "PASSED"}
######################################
{"3.2.3. Cấu hình từ chối các secure ICMP redirect message" : "PASSED"}
######################################
{"3.2.4. Cấu hình từ chối các gói tin ICMP request broadcast" : "PASSED"}
######################################
{"3.2.5. Cấu hình bỏ qua phản hồi ICMP không hợp lệ" : "PASSED"}
######################################
{"3.2.6. Cấu hình Reverse Path Filtering" : "PASSED"}
######################################
{"3.3.1. Cấu hình từ chối các gói tin với nguồn được định tuyến trước (Source Routed Packet Acceptance)" : "PASSED"}
{"3.3.2. Cấu hình từ chối các ICMP redirect message" : "PASSED"}
{"3.3.3. Cấu hình từ chối các secure ICMP redirect message" : "PASSED"}
{"3.3.4. Cấu hình từ chối các gói tin ICMP request broadcast" : "PASSED"}
{"3.3.5. Cấu hình bỏ qua phản hồi ICMP không hợp lệ" : "PASSED"}
{"3.3.6. Cấu hình Reverse Path Filtering" : "PASSED"}
{"3.2.7. Cấu hình TCP SYN Cookies" : "PASSED"}
{"3.3.8. Cấu hình từ chối IPv6 router advertisements" : "PASSED"}
{"3.4.1.1. Cấu hình kích hoạt ufw" : "PASSED"}
{"3.4.2.1. Cấu hình kích hoạt Iptables" : "PASSED"}
{"3.4.1.2. Cấu hình vô hiệu hoá iptables-persistent, nftables khi sử dụng ufw" : "PASSED"}
{"3.4.1.3. Cấu hình ufw loopback traffic" : "PASSED"}
{"3.4.1.4. Cấu hình ufw rule cho tất cả các port và protocol đang mở" : "PASSED"}
######################################
# Các rule UFW hiện tại:
-------------------
Status: active
To Action From
-- ------ ----
[ 1] Anywhere on lo ALLOW IN Anywhere
[ 2] Anywhere ALLOW OUT Anywhere on lo (out)
[ 3] Anywhere DENY IN 127.0.0.0/8
[ 4] 22/tcp ALLOW IN Anywhere
[ 5] 53 ALLOW OUT Anywhere (out)
[ 6] 80/tcp ALLOW OUT Anywhere (out)
[ 7] 443/tcp ALLOW OUT Anywhere (out)
[ 8] 123/udp ALLOW OUT Anywhere (out)
[ 9] Anywhere (v6) on lo ALLOW IN Anywhere (v6)
[10] Anywhere (v6) ALLOW OUT Anywhere (v6) on lo (out)
[11] Anywhere (v6) DENY IN ::1
[12] 22/tcp (v6) ALLOW IN Anywhere (v6)
[13] 53 (v6) ALLOW OUT Anywhere (v6) (out)
[14] 80/tcp (v6) ALLOW OUT Anywhere (v6) (out)
[15] 443/tcp (v6) ALLOW OUT Anywhere (v6) (out)
[16] 123/udp (v6) ALLOW OUT Anywhere (v6) (out)
-------------------
# Inbound rules (ALLOW):
Anywhere on lo ALLOW Anywhere
22/tcp ALLOW Anywhere
Anywhere (v6) on lo ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
-------------------
# Outbound rules (ALLOW OUT):
Anywhere ALLOW OUT Anywhere on lo
53 ALLOW OUT Anywhere
80/tcp ALLOW OUT Anywhere
443/tcp ALLOW OUT Anywhere
123/udp ALLOW OUT Anywhere
Anywhere (v6) ALLOW OUT Anywhere (v6) on lo
53 (v6) ALLOW OUT Anywhere (v6)
80/tcp (v6) ALLOW OUT Anywhere (v6)
443/tcp (v6) ALLOW OUT Anywhere (v6)
123/udp (v6) ALLOW OUT Anywhere (v6)
-------------------
# IPv6 rules:
Anywhere (v6) on lo ALLOW Anywhere (v6)
Anywhere (v6) DENY ::1
22/tcp (v6) ALLOW Anywhere (v6)
Anywhere (v6) ALLOW OUT Anywhere (v6) on lo
53 (v6) ALLOW OUT Anywhere (v6)
80/tcp (v6) ALLOW OUT Anywhere (v6)
443/tcp (v6) ALLOW OUT Anywhere (v6)
123/udp (v6) ALLOW OUT Anywhere (v6)
######################################
{"3.4.1.5. Cấu hình chính sách từ chối mặc định cho ufw" : "PASSED"}
{"3.4.2.2. Cấu hình vô hiệu hoá ufw, nftables khi sử dụng iptables" : "PASSED"}
{"3.4.2.3. Cấu hình iptables loopback traffic" : "PASSED"}
{"3.4.2.4. Cấu hình iptables rule cho tất cả các port và protocol đang mở" : "PASSED"}
{"3.4.2.5. Cấu hình chính sách từ chối mặc định cho iptables" : "PASSED"}
{"4.1.1.1. Cấu hình kích hoạt rsyslog service" : "PASSED"}
{"4.1.1.2. Phân quyền đối với file log sinh ra từ rsyslog" : "PASSED"}
{"4.1.1.3. Cấu hình lưu trữ log sinh ra từ rsyslog tập trung" : "FAILED"}
######################################
# Chỉnh sửa file /etc/rsyslog.conf và /etc/rsyslog.d/*.conf và thêm vào 1 trong các dòng sau:
# <files to sent to the remote log server> action(type="omfwd" target="<FQDN or ip of loghost>" port="<port number>" protocol="tcp" action.resumeRetryCount="<number of re-tries>" queue.type="LinkedList" queue.size=<number of messages to queue>") # Hoặc
# *.* @@< FQDN or ip of loghost >
# Thực hiện câu lệnh sau để khởi động lại rsyslog:
# systemctl restart rsyslog
-------------------
#grep -E '^\h*([^#]+\s+)?action\(([^#]+\s+)?\btarget=\?[^#"]+\?\b' /etc/rsyslog.conf /etc/rsyslog.d/*.conf 2>/dev/null -ne 0
######################################
######################################
{"4.1.1.4. Phân quyền đối với tất cả các file log" : "PASSED"}
{"4.1.2. Phân quyền đối với tất cả các file log" : "PASSED"}
{"5.1.1. Cấu hình kích hoạt cron daemon" : "PASSED"}
{"5.1.2. Cấu hình phân quyền cho file /etc/crontab" : "PASSED"}
{"5.1.3. Cấu hình phân quyền cho file /etc/cron.hourly" : "PASSED"}
{"5.1.4. Cấu hình phân quyền cho file /etc/cron.daily" : "PASSED"}
{"5.1.5. Cấu hình phân quyền cho file /etc/cron.weekly" : "PASSED"}
{"5.1.6. Cấu hình phân quyền cho của file /etc/cron.monthly" : "PASSED"}
{"5.1.7. Cấu hình phân quyền cho file /etc/cron.d" : "PASSED"}
{"5.1.8. Cấu hình at/cron hạn chế chỉ cho người dùng được ủy quyền" : "PASSED"}
{"5.2.1. Cấu hình phân quyền cho file /etc/ssh/sshd_config" : "PASSED"}
{"5.2.2. Cấu hình phân quyền cho các file SSH private host key" : "PASSED"}
{"5.2.3. Cấu hình phân quyền cho các file SSH public host key" : "PASSED"}
{"5.2.4. Cấu hình giới hạn truy cập cho máy chủ SSH" : "PASSED"}
{"5.2.5. Cấu hình LogLevel cho máy chủ SSH" : "PASSED"}
{"5.2.6. Cấu hình sử dụng SSH PAM" : "PASSED"}
{"5.2.7. Cấu hình vô hiệu hoá đăng nhập bằng root cho máy chủ SSH" : "PASSED"}
{"5.2.8. Cấu hình vô hiệu hoá HostbasedAuthentication cho máy chủ SSH" : "PASSED"}
{"5.2.9. Cấu hình vô hiệu hoá PermitEmptyPasswords cho máy chủ SSH" : "PASSED"}
{"5.2.10. Cấu hình vô hiệu hoá PermitUserEnviroment cho máy chủ SSH" : "PASSED"}
{"5.2.11. Cấu hình vô hiệu hoá IgnoreRhosts cho máy chủ SSH" : "PASSED"}
{"5.2.12. Cấu hình vô hiệu hoá X11 Forwarding cho máy chủ SSH" : "PASSED"}
{"5.2.13. Cấu hình sử dụng các thuật toán mã hoá được cho phép" : "PASSED"}
{"5.2.14. Cấu hình các thuật toán MAC được cho phép" : "PASSED"}
{"5.2.15. Cấu hình thuật toán trao đổi khoá được cho phép" : "PASSED"}
{"5.2.16. Cấu hình vô hiệu hoá SSH AllowTcpForwarding" : "PASSED"}
{"5.2.17. Cấu hình cảnh báo SSH" : "PASSED"}
{"5.2.18. Cấu hình SSH MaxAuthTries" : "PASSED"}
{"5.2.19. Cấu hình SSH MaxStartups" : "PASSED"}
{"5.2.20. Cấu hình SSH MaxSessions" : "PASSED"}
{"5.2.21. Cấu hình SSH LoginGraceTime" : "PASSED"}
{"5.2.22. Cấu hình khoảng thời gian chờ không hoạt động cho máy chủ SSH" : "PASSED"}
{"5.3.1. Cấu hình điều kiện tạo mật khẩu" : "PASSED"}
{"5.3.2. Cấu hình khoá truy cập do nhiều lần nhập mật khẩu thất bại" : "PASSED"}
{"5.3.3. Giới hạn việc sử dụng lại mật khẩu" : "PASSED"}
{"5.3.4. Cấu hình thuật toán hash mật khẩu mạnh" : "FAILED"}
######################################
# Đối với phiên bản 22.04 trở lên:
# Chỉnh sửa file /etc/pam.d/common-password đảm bảo rằng không có bất cứ thuật toán hash nào được cấu hình trong pam_unix.so như dưới đây:
# password [success=1 default=ignore] pam_unix.so remember=5
# Thêm hoặc chỉnh sửa ENCRYPT_METHOD trong file /etc/login.defs như sau:
# ENCRYPT_METHOD yescrypt
# Đối với phiên bản 20.04 trở về trước: Chỉnh sửa file /etc/pam.d/common-password để có tuỳ chọn sha512 cho pam_unix.so như dưới đây:
# password [success=1 default=ignore] pam_unix.so sha512 remember=5
-------------------
#grep -P "^\h*password\h*\[success=1 default=ignore\]\h*pam_unix.so.*sha512" /etc/pam.d/common-password -ne 0
-------------------
#grep -v ^# /etc/pam.d/common-password | grep -E "(yescrypt|md5|bigcrypt|sha256|sha512|blowfish)" -eq 0
password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass yescrypt
######################################
{"5.4.1.1. Cấu hình thời gian tối thiểu giữa những lần thay đổi mật khẩu" : "PASSED"}
{"5.4.1.2. Cấu hình thời gian hết hạn sử dụng mật khẩu" : "PASSED"}
{"5.4.1.3. Cấu hình thời gian cảnh báo mật khẩu hết hạn" : "PASSED"}
{"5.4.1.4. Cấu hình thời gian khoá tài khoản không thay mật khẩu sau khi hết hạn" : "PASSED"}
{"5.4.1.5. Đảm bảo thời gian thay đổi mật khẩu lần cuối hợp lệ" : "PASSED"}
{"5.4.2. Cấu hình vô hiệu hoá đăng nhập bằng tài khoản hệ thống" : "PASSED"}
{"5.4.3. Cấu hình group mặc định của tài khoản root" : "PASSED"}
{"5.4.4. Cấu hình user umask mặc định" : "PASSED"}
{"5.4.5. Cấu hình shell timeout mặc định" : "PASSED"}
{"5.4.6. Cấu hình hạn chế truy cập cho câu lệnh su" : "PASSED"}
{"6.1.1. Cấu hình phân quyền cho file /etc/passwd" : "PASSED"}
{"6.1.2. Cấu hình phân quyền cho file /etc/shadow" : "PASSED"}
{"6.1.3. Cấu hình phân quyền cho file /etc/group" : "PASSED"}
{"6.1.4. Cấu hình phân quyền cho file /etc/gshadow" : "PASSED"}
{"6.1.5. Cấu hình phân quyền cho file /etc/passwd-" : "PASSED"}
{"6.1.6. Cấu hình phân quyền cho file /etc/shadow-" : "PASSED"}
{"6.1.7. Cấu hình phân quyền cho file /etc/group-" : "PASSED"}
{"6.1.8. Cấu hình phân quyền cho file /etc/gshadow-" : "PASSED"}
{"6.1.9. Đảm bảo không có file world-writable tồn tại" : "PASSED"}
{"6.1.10. Đảm bảo các file hoặc thư mục không có chủ sở hữu không tồn tại" : "PASSED"}
{"6.1.11. Đảm bảo các file hoặc thư mục không có nhóm không tồn tại" : "PASSED"}
{"6.2.1. Cấu hình tài khoản trong /etc/passwd sử dụng shadowed passwords" : "PASSED"}
{"6.2.2. Đảm bảo trường mật khẩu không để trống" : "PASSED"}
{"6.2.3. Đảm bảo mọi nhóm trong file /etc/passwd tồn tại trong file /etc/group" : "PASSED"}
{"6.2.4. Đảm bảo shadow group rỗng" : "PASSED"}
{"6.2.5. Đảm bảo UID không bị lặp" : "PASSED"}
{"6.2.6. Đảm bảo GID không bị lặp" : "PASSED"}
{"6.2.7. Đảm bảo tên người dùng không bị lặp" : "PASSED"}
{"6.2.8. Đảm bảo tên group không bị lặp" : "PASSED"}
{"6.2.9. Đảm bảo tính toàn vẹn cho biến môi trường PATH của root" : "FAILED"}
######################################
# Thực hiện đoạn script sau để kiểm tra tính toàn vẹn cho môi trường PATH của root:
# RPCV="$(sudo -Hiu root env 2>/dev/null | grep '^PATH=' | cut -d= -f2)"; echo "$RPCV" | grep -q "::" && echo "root's path contains a empty directory (::)"; echo "$RPCV" | grep -q ":$" && echo "root's path contains a trailing (:)" ; for x in $(echo "$RPCV" | tr ":" " "); do if [ -d "$x" ]; then ls -ldH "$x" | awk '$9 == "." {print "PATH contains current working directory (.)"} $3 != "root" {print $9, "is not owned by root"} substr($1,6,1) != "-" {print $9, "is group writable"} substr($1,9,1) != "-" {print $9, "is world writable"}'; else echo "$x is not a directory"; fi; done
# Sửa chữa hoặc lý giải kết quả tìm được.
-------------------
#RPCV="$(sudo -Hiu root env 2>/dev/null | grep '^PATH=' | cut -d= -f2)"; echo "$RPCV" | grep -q "::" && echo "root's path contains a empty directory (::)"; echo "$RPCV" | grep -q ":$" && echo "root's path contains a trailing (:)" ; for x in $(echo "$RPCV" | tr ":" " "); do if [ -d "$x" ]; then ls -ldH "$x" | awk '$9 == "." {print "PATH contains current working directory (.)"} $3 != "root" {print $9, "is not owned by root"} substr($1,6,1) != "-" {print $9, "is group writable"} substr($1,9,1) != "-" {print $9, "is world writable"}'; else echo "$x is not a directory"; fi; done | grep -v "/root/bin" -eq 0
/snap/bin is not a directory
######################################
{"6.2.10. Đảm bảo root là tài khoản duy nhất có UID là 0" : "PASSED"}
{"6.2.11. Đảm bảo mọi người dùng đều tồn tại thư mục home" : "PASSED"}
{"6.2.12. Đảm bảo người dùng sở hữu thư mục home của chính họ" : "PASSED"}
{"6.2.13. Đảm bảo quyền thư mục home của người dùng có mức bảo mật cao" : "FAILED"}
######################################
# Thực hiện đoạn script sau để đặt quyền cho thư mục home của tất cả người dùng là 750:
# awk -F: '($1\!~/(halt|sync|shutdown|nfsnobody)/ && $7\!~/^(\/usr)?\/sbin\/nologin(\/)?$/ && $7\!~/(\/usr)?\/bin\/false(\/)?$/) {print $6}' /etc/passwd | while read -r dir; do if [ -d "$dir" ]; then dirperm=$(stat -L -c "%A" "$dir"); if [ "$(echo "$dirperm" | cut -c6)" != "-" ] || [ "$(echo "$dirperm" | cut -c8)" != "-" ] || [ "$(echo "$dirperm" | cut -c9)" != "-" ] || [ "$(echo "$dirperm" | cut -c10)" != "-" ]; then chmod g-w,o-rwx "$dir"; fi; fi; done
-------------------
#awk -F: '($1\!~/(halt|sync|shutdown|nfsnobody)/ && $7\!~/^(\/usr)?\/sbin\/nologin(\/)?$/ && $7\!~/(\/usr)?\/bin\/false(\/)?$/) {print $1 " " $6}' /etc/passwd | while read -r user dir; do if [ ! -d "$dir" ]; then echo "User: \"$user\" home directory: \"$dir\" doesn't exist"; else dirperm=$(stat -L -c "%A" "$dir"); if [ "$(echo "$dirperm" | cut -c6)" != "-" ] || [ "$(echo "$dirperm" | cut -c8)" != "-" ] || [ "$(echo "$dirperm" | cut -c9)" != "-" ] || [ "$(echo "$dirperm" | cut -c10)" != "-" ]; then echo "User: \"$user\" home directory: \"$dir\" has permissions: \"$(stat -L -c "%a" "$dir")\""; fi; fi; done -eq 0
User: "cicd_to2" home directory: "/home/cicd_to2" has permissions: "755"
User: "landesk" home directory: "/opt/landesk" has permissions: "755"
######################################
{"6.2.14. Đảm bảo không người dùng nào có file .netrc" : "PASSED"}
{"6.2.15. Đảm bảo không người dùng nào có file .forward" : "PASSED"}
{"6.2.16. Đảm bảo không người dùng nào có file .rhosts" : "PASSED"}
{"6.2.17. Đảm bảo các file dot của người dùng không cấp quyền write cho group hoặc other" : "PASSED"}