# 更新软件包列表并升级所有已安装包
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # CentOS/RHEL
sudo dnf upgrade -y # Fedora
# 自动安全更新 (Debian/Ubuntu)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
# 检查空密码账户
sudo awk -F: '($2 == "") {print $1}' /etc/shadow
# 锁定不必要账户
sudo passwd -l username
# 设置密码策略
sudo vi /etc/login.defs # 修改PASS_MAX_DAYS, PASS_MIN_DAYS等参数
sudo apt install libpam-pwquality # Debian/Ubuntu
sudo yum install pam_pwquality # CentOS/RHEL
# 检查UID为0的账户(除root外)
sudo awk -F: '($3 == 0) {print $1}' /etc/passwd
# 编辑SSH配置文件
sudo vi /etc/ssh/sshd_config
# 推荐修改以下参数:
# Port 2222 # 修改默认端口
# PermitRootLogin no # 禁止root直接登录
# PasswordAuthentication no # 禁用密码认证,仅使用密钥
# MaxAuthTries 3 # 最大尝试次数
# ClientAliveInterval 300 # 客户端活动检查间隔
# ClientAliveCountMax 0 # 不活动时断开连接
# 重启SSH服务
sudo systemctl restart sshd
# 检查登录失败的尝试
sudo grep "Failed password" /var/log/auth.log
# UFW (Ubuntu)
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp # 替换为你的SSH端口
# firewalld (CentOS/RHEL)
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
# iptables (通用)
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo iptables -A INPUT -j DROP
# 检查SUID/SGID文件
sudo find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
# 检查无属主文件
sudo find / -nouser -o -nogroup
# 检查可写目录
sudo find / -type d \( -perm -g+w -o -perm -o+w \) ! -path "/proc/*" -exec ls -ld {} \;
# 检查可执行脚本
sudo find / -type f -perm +111 -name "*.sh"
# 查看系统日志
sudo tail -f /var/log/syslog # Debian/Ubuntu
sudo tail -f /var/log/messages # CentOS/RHEL
# 检查失败的登录尝试
sudo grep "authentication failure" /var/log/auth.log
# 安装并配置logwatch
sudo apt install logwatch # Debian/Ubuntu
sudo yum install logwatch # CentOS/RHEL
sudo vi /etc/logwatch/conf/logwatch.conf
# 安装配置AIDE (高级入侵检测环境)
sudo apt install aide # Debian/Ubuntu
sudo yum install aide # CentOS/RHEL
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# 定期检查
sudo aide --check
# 安装配置rkhunter (Rootkit检测)
sudo apt install rkhunter # Debian/Ubuntu
sudo yum install rkhunter # CentOS/RHEL
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
# 检查监听端口
sudo netstat -tulnp
sudo ss -tulnp
# 禁用不必要服务
sudo systemctl list-unit-files --type=service | grep enabled
sudo systemctl disable servicename
# 检查异常进程
sudo ps aux | grep -E '(nmap|nikto|sqlmap|hydra|john)'
# 使用Lynis进行安全审计
sudo apt install lynis # Debian/Ubuntu
sudo yum install lynis # CentOS/RHEL
sudo lynis audit system
# 使用OpenSCAP
sudo apt install openscap-scanner # Debian/Ubuntu
sudo yum install openscap-scanner # CentOS/RHEL
sudo oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_standard \
--results scan-results.xml \
/usr/share/xml/scap/ssg/content/ssg-ubuntu1604-ds.xml
#!/bin/bash
# 简易安全检查脚本
echo "=== 系统信息 ==="
uname -a
echo ""
echo "=== 已登录用户 ==="
who
echo ""
echo "=== 最近登录 ==="
last -n 10
echo ""
echo "=== 监听端口 ==="
ss -tulnp
echo ""
echo "=== 检查SUID/SGID文件 ==="
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \; 2>/dev/null
echo ""
echo "=== 检查可写目录 ==="
find / -type d \( -perm -g+w -o -perm -o+w \) ! -path "/proc/*" -exec ls -ld {} \; 2>/dev/null
echo ""
echo "=== 检查cron作业 ==="
ls -la /etc/cron* /var/spool/cron/*
echo ""
通过定期执行这些命令和脚本,您可以有效提高Linux服务器的安全性。建议将这些任务设置为定期执行的cron作业,并监控其输出以发现潜在的安全问题。