解决方案:
# 强制密码复杂度策略
sudo apt install libpam-pwquality # Debian/Ubuntu
sudo yum install pam_pwquality # CentOS/RHEL
# 修改/etc/pam.d/common-password或/etc/pam.d/system-auth
# 添加或修改以下行:
password requisite pam_pwquality.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
# 禁用root远程登录
sudo sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
解决方案:
# 设置自动安全更新
sudo apt install unattended-upgrades # Debian/Ubuntu
sudo dpkg-reconfigure -plow unattended-upgrades
# CentOS/RHEL
sudo yum install yum-cron
sudo systemctl enable --now yum-cron
# 定期手动检查更新
sudo apt update && sudo apt upgrade # Debian/Ubuntu
sudo yum update # CentOS/RHEL
解决方案:
# 查看运行的服务
sudo systemctl list-units --type=service --state=running
# 查看监听端口
sudo ss -tulnp
# 禁用不必要的服务
sudo systemctl disable --now <service_name>
# 配置防火墙
sudo ufw enable # Ubuntu
sudo ufw default deny incoming
sudo ufw allow ssh
# CentOS/RHEL
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
解决方案:
# 设置关键目录权限
sudo chmod 700 /root
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd
# 查找全局可写文件
sudo find / -xdev -type f -perm -o+w
# 查找无主文件
sudo find / -xdev -nouser -o -nogroup
解决方案:
# 修改SSH默认端口
sudo sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config
# 禁用密码认证,使用密钥
sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
# 限制SSH访问IP
echo "sshd: 192.168.1.0/24" | sudo tee -a /etc/hosts.allow
echo "sshd: ALL" | sudo tee -a /etc/hosts.deny
# 安装fail2ban防暴力破解
sudo apt install fail2ban # Debian/Ubuntu
sudo yum install fail2ban # CentOS/RHEL
sudo systemctl enable --now fail2ban
# 检查SELinux状态
sestatus
# 启用SELinux (CentOS/RHEL)
sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/' /etc/selinux/config
# 安装AppArmor (Ubuntu/Debian)
sudo apt install apparmor apparmor-utils
sudo aa-enforce /etc/apparmor.d/*
# 配置日志轮转
sudo nano /etc/logrotate.conf
# 安装日志分析工具
sudo apt install logwatch # Debian/Ubuntu
sudo yum install logwatch # CentOS/RHEL
# 配置定期日志报告
sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/
sudo nano /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 crontab -e
# 添加: 0 5 * * * /usr/bin/aide --check
cat /etc/passwd
, cat /etc/group
find / -perm -4000 -o -perm -2000
ls -la /etc/cron.*
netstat -antp
sysctl -a | grep kernel
通过实施这些措施,您可以显著提高Linux服务器的安全性,减少被攻击的风险。