Linux 服务器巡检脚本
介绍
服务器巡检脚本,巡检内容包括活跃用户、用户密码修改策略、用户密码复杂度策略、帐户登录失败策略、系统登录超时时间、telnet服务状态、关键文件权限、syslog配置信息、/var/log/日志文件列表、rsyslog和audit服务状态、服务器安装的应用程序(rpm方式)、共享服务状态、高危端口状态、服务器操作系统版本及是否安装补丁
1. 创建巡检脚本
$ vim system_check.sh
#!/bin/bash
# 获取服务器eth0网卡的IP地址
ip_address=$(ip addr show eth0 | grep -Po 'inet \K[\d.]+')
# 输出结果文件
result_file="${ip_address}_check.txt"
# 函数:执行检查项,并在终端打印执行信息
run_check() {
echo "正在执行检查项:$1"
echo "---------------------------------" >> "$result_file"
echo "$1" >> "$result_file"
echo "---------------------------------" >> "$result_file"
shift
"$@" >> "$result_file"
echo "" >> "$result_file"
}
# 执行基线检查
# 1. 检查服务器中所有在用的用户
run_check "1. 检查服务器中所有在用的用户" awk -F: '$7 ~ /^(\/bin\/bash|\/bin\/sh)$/ {print $1}' /etc/passwd
# 2. 检查用户密码修改策略
run_check "2. 检查用户密码修改策略" grep -E "^PASS_MAX_DAYS|^PASS_MIN_DAYS|^PASS_MIN_LEN|^PASS_WARN_AGE" /etc/login.defs
# 3. 检查用户密码复杂度策略
run_check "3. 检查用户密码复杂度策略" grep -E "password\s+requisite\s+pam_cracklib.so" /etc/pam.d/system-auth
# 4. 检查帐户登录失败策略
run_check "4. 检查帐户登录失败策略" grep -E "auth\s+required\s+pam_tally2.so" /etc/pam.d/system-auth
# 5. 检查系统登录超时时间
run_check "5. 检查系统登录超时时间" grep "TMOUT" /etc/profile
# 6. 检查是否关闭telnet服务
run_check "6. 检查是否关闭telnet服务"
if systemctl is-active telnet &> /dev/null; then
echo "Telnet服务状态: $(systemctl is-active telnet)" >> "$result_file"
else
echo "Telnet服务状态: 未开启telnet服务" >> "$result_file"
fi
echo "" >> "$result_file"
# 7. 检查关键文件权限
run_check "7. 检查关键文件权限"
echo "文件详细信息:" >> "$result_file"
[ -f "/etc/passwd" ] && ls -l "/etc/passwd" >> "$result_file" || echo "未找到 /etc/passwd 文件" >> "$result_file"
[ -f "/etc/shadow" ] && ls -l "/etc/shadow" >> "$result_file" || echo "未找到 /etc/shadow 文件" >> "$result_file"
echo "passwd文件权限: $(stat -c %a /etc/passwd)" >> "$result_file"
echo "shadow文件权限: $(stat -c %a /etc/shadow)" >> "$result_file"
echo "" >> "$result_file"
# 8. 检查是否通过syslog配置日志信息
run_check "8. 检查是否通过syslog配置日志信息"
syslog_file="/etc/rsyslog.conf"
if [ -f "$syslog_file" ]; then
echo "syslog配置:" >> "$result_file"
grep -E "^\s*\w" "$syslog_file" | grep -vE "^\s*#" >> "$result_file"
# 列出begin forwarding rule的完整配置信息
echo "begin forwarding rule:" >> "$result_file"
awk '/^# begin forwarding rule/,/^# end forwarding rule/' "$syslog_file" | grep -vE "^\s*#" >> "$result_file"
else
echo "未找到 $syslog_file 文件" >> "$result_file"
fi
echo "" >> "$result_file"
# 9. 检查/var/log/下有哪些文件
run_check "9. /var/log/日志文件列表" ls -l /var/log/
echo "" >> "$result_file"
# 10. 检查rsyslog和audit服务状态
run_check "10. 检查rsyslog和audit服务状态"
echo "rsyslog服务状态: $(systemctl is-active rsyslog)" >> "$result_file"
echo "audit服务状态: $(systemctl is-active auditd)" >> "$result_file"
echo "检查日志内容是否包括日期、时间、帐号、IP地址、事件是否成功等信息" >> "$result_file"
echo "最近的系统日志信息:" >> "$result_file"
journalctl -n 10 >> "$result_file"
echo "" >> "$result_file"
# 11. 检查服务器安装的组件或应用程序(使用rpm命令)
run_check "11. 检查服务器安装的组件或应用程序" rpm -qa
# 12. 检查是否关闭默认共享服务
run_check "12. 检查是否关闭默认共享服务"
echo "Samba服务状态: $(systemctl is-active smbd)" >> "$result_file"
echo "NFS服务状态: $(systemctl is-active nfs)" >> "$result_file"
echo "FTP服务状态: $(systemctl is-active vsftpd)" >> "$result_file"
echo "" >> "$result_file"
# 13. 检查是否关闭tcp20、21、23、135、139、445端口并列出所有开放端口
run_check "13. 检查是否关闭tcp20、21、23、135、139、445端口"
netstat -ntlp >> "$result_file"
echo "" >> "$result_file"
# 14. 检查服务器操作系统版本及是否安装补丁
run_check "14. 检查服务器操作系统版本及是否安装补丁" cat /etc/os-release
echo "基线检查已完成,请查看 ${ip_address}_check.txt 文件获取详细信息。"
echo "基线检查完成时间:$(date)" >> "$result_file"
echo "基线检查完成时间:$(date)"
2. 给巡检脚本授权
$ chmod 755 system_check.sh
3. 执行巡检脚本
$ ./system_check.sh
正在执行检查项:1. 检查服务器中所有在用的用户
正在执行检查项:2. 检查用户密码修改策略
正在执行检查项:3. 检查用户密码复杂度策略
正在执行检查项:4. 检查帐户登录失败策略
正在执行检查项:5. 检查系统登录超时时间
正在执行检查项:6. 检查是否关闭telnet服务
正在执行检查项:7. 检查关键文件权限
正在执行检查项:8. 检查是否通过syslog配置日志信息
正在执行检查项:9. /var/log/日志文件列表
正在执行检查项:10. 检查rsyslog和audit服务状态
正在执行检查项:11. 检查服务器安装的组件或应用程序
正在执行检查项:12. 检查是否关闭默认共享服务
正在执行检查项:13. 检查是否关闭tcp20、21、23、135、139、445端口
正在执行检查项:14. 检查服务器操作系统版本及是否安装补丁
基线检查已完成,请查看 192.168.0.1_check.txt 文件获取详细信息。
基线检查完成时间:2024年 05月 19日 星期日 17:14:59 CST
巡检结果已保存在当前目录的 IP_check.txt
文件里
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
运维小记!
喜欢就支持一下吧
打赏
微信
支付宝