# 更新软件包列表
sudo apt update # Debian/Ubuntu
sudo yum check-update # CentOS/RHEL
# 升级所有已安装的软件包
sudo apt upgrade # Debian/Ubuntu
sudo yum update # CentOS/RHEL
# 自动安全更新 (Debian/Ubuntu)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
# 创建新用户
sudo adduser newusername
# 设置/修改密码 (强制复杂性)
sudo passwd username
# 锁定不使用的账户
sudo usermod -L username
# 查看空密码账户
sudo awk -F: '($2 == "") {print}' /etc/shadow
# 设置密码过期策略
sudo chage -M 90 -m 7 -W 7 username
# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
# 推荐修改以下参数:
Port 2222 # 更改默认端口
PermitRootLogin no # 禁止root直接登录
PasswordAuthentication no # 禁用密码认证,仅使用密钥
MaxAuthTries 3 # 最大尝试次数
ClientAliveInterval 300 # 超时设置
AllowUsers user1 user2 # 只允许特定用户登录
# 重启SSH服务
sudo systemctl restart sshd
# 生成SSH密钥对 (在客户端执行)
ssh-keygen -t ed25519
ssh-copy-id user@server -p 2222
# UFW (Ubuntu)
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp # SSH自定义端口
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw status numbered
# FirewallD (CentOS/RHEL)
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
# 安装fail2ban防止暴力破解
sudo apt install fail2ban # Debian/Ubuntu
sudo yum install fail2ban # CentOS/RHEL
# 配置fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# 查看登录失败记录
sudo grep "Failed password" /var/log/auth.log
sudo lastb
# 安装并配置rkhunter进行rootkit检测
sudo apt install rkhunter # Debian/Ubuntu
sudo yum install rkhunter # CentOS/RHEL
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
# 查找SUID/SGID文件
sudo find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
# 查找世界可写文件
sudo find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
# 检查无属主文件
sudo find / -xdev \( -nouser -o -nogroup \) -print
# 设置文件权限
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys
# 查看监听端口
sudo netstat -tulnp
sudo ss -tulnp
# 禁用不必要的服务
sudo systemctl stop servicename
sudo systemctl disable servicename
# 检查cron作业
sudo crontab -l
sudo ls /etc/cron.*
# 查看系统日志
sudo tail -f /var/log/syslog
sudo journalctl -xe
# 设置日志轮转
sudo nano /etc/logrotate.conf
# 编辑sysctl配置文件
sudo nano /etc/sysctl.conf
# 添加以下安全参数
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_responses=1
net.ipv4.tcp_syncookies=1
net.ipv6.conf.all.accept_redirects=0
net.ipv6.conf.default.accept_redirects=0
# 应用配置
sudo sysctl -p
# 使用Lynis进行安全审计
sudo apt install lynis # Debian/Ubuntu
sudo yum install lynis # CentOS/RHEL
sudo lynis audit system
# 检查用户登录历史
sudo last
sudo who
# 检查sudo使用记录
sudo grep sudo /var/log/auth.log
以上措施应根据您的具体服务器环境和需求进行调整。实施后,建议定期复查这些配置并保持系统更新。