centos 基线检查脚本是一个用于自动化检测和评估 CentOS 系统安全性、配置和性能的工具。
在CentOS系统上进行基线检查是确保系统配置符合安全和性能标准的重要步骤,以下是一个详细的CentOS基线检查脚本示例,该脚本将帮助系统管理员验证系统配置是否符合预定的标准。
CentOS 基线检查脚本
#!/bin/bash
定义颜色代码
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
打印信息函数
function print_info {
echo -e "${GREEN}$1${NC}"
}
打印警告函数
function print_warning {
echo -e "${YELLOW}$1${NC}"
}
打印错误函数
function print_error {
echo -e "${RED}$1${NC}"
}
检查内核版本
print_info "检查内核版本..."
kernel_version=$(rpm -q --queryformat '%{VERSION}-%{RELEASE}' kernel)
required_kernel="3.10.0-957.el7"
if [[ $kernel_version < $required_kernel ]]; then
print_error "内核版本过低: $kernel_version (需要 >= $required_kernel)"
else
print_info "内核版本检查通过: $kernel_version"
fi
检查SELinux状态
print_info "检查SELinux状态..."
sestatus=$(sestatus | grep "SELinux status:" | awk '{print $3}')
if [[ $sestatus == "disabled" ]]; then
print_error "SELinux已禁用, 请启用SELinux."
else
print_info "SELinux状态正常: $sestatus"
fi
检查防火墙状态
print_info "检查防火墙状态..."
firewall_status=$(systemctl is-active firewalld)
if [[ $firewall_status != "active" ]]; then
print_error "防火墙未启动, 请启用防火墙."
else
print_info "防火墙状态正常: $firewall_status"
fi
检查SSH配置
print_info "检查SSH配置..."
ssh_config="/etc/ssh/sshd_config"
if [ ! -f $ssh_config ]; then
print_error "SSH配置文件不存在: $ssh_config"
elif grep -q "^PermitRootLogin.*yes" $ssh_config; then
print_error "SSH配置允许root登录, 请更改为禁止."
else
print_info "SSH配置检查通过"
fi
检查用户密码策略
print_info "检查用户密码策略..."
password_aging=$(grep "^PASS_MAX_DAYS" /etc/login.defs | awk -F '=' '{print $2}')
min_days=60
max_days=90
if [[ $password_aging -lt $min_days || $password_aging -gt $max_days ]]; then
print_error "密码最大有效期设置不合理: $password_aging天 (建议$min_days-$max_days天)"
else
print_info "密码策略检查通过: $password_aging天"
fi
检查系统日志配置
print_info "检查系统日志配置..."
logrotate_conf="/etc/logrotate.conf"
if [ ! -f $logrotate_conf ]; then
print_error "日志轮转配置文件不存在: $logrotate_conf"
else
print_info "日志轮转配置检查通过"
fi
检查软件包更新
print_info "检查软件包更新..."
last_update=$(yum list updates | wc -l)
if [[ $last_update -gt 0 ]]; then
print_error "$last_update个软件包需要更新,请运行yum update
."
else
print_info "所有软件包都是最新的."
fi
echo "基线检查完成。"
FAQs
Q1: 这个脚本如何运行?
A1: 将上述脚本内容复制到一个文件中,例如baseline_check.sh
,然后给文件添加可执行权限:chmod +x baseline_check.sh
,以root用户或使用sudo命令运行脚本:./baseline_check.sh
。
Q2: 如果脚本发现某个检查项有问题,我应该怎么办?
A2: 当脚本发现某个检查项有问题时,它会输出相应的错误信息和建议,根据提示,采取相应的措施来修正问题,例如更新软件包、修改配置或启用服务等,完成后,可以再次运行脚本以确保所有问题都已解决。
小编有话说
基线检查是维护系统安全和稳定性的关键步骤,通过定期运行基线检查脚本,系统管理员可以及时发现并修复潜在的问题,确保系统始终处于最佳状态,记得根据实际情况调整脚本中的检查项目和阈值,以满足您的具体需求。