对一台空白的 Linux 主机进行安全加固,可以增强其防御能力,减少被攻击的风险。以下是全面的安全加固步骤和相应指令:
1. 更新系统和安装安全补丁
保持系统和软件的更新是第一步。
sudo apt update && sudo apt upgrade -y
sudo yum update -y
2. 配置最小化用户权限
创建普通用户,避免直接使用 root
:
adduser newuser
passwd newuser
usermod -aG sudo newuser
限制 root 登录:编辑 SSH 配置,禁止 root 登录。
sudo vim /etc/ssh/sshd_config
PermitRootLogin no
重启 SSH 服务 使配置生效:
sudo systemctl restart sshd
3. 配置 SSH 安全
修改 SSH 默认端口(如非必须,避免使用默认端口 22)。
sudo vim /etc/ssh/sshd_config
Port 2222
禁用密码认证,使用密钥认证:
PasswordAuthentication no
生成 SSH 密钥(在本地机器执行)并将公钥添加到服务器:
ssh-keygen -t rsa -b 4096
ssh-copy-id -i ~/.ssh/id_rsa.pub newuser@server_ip
4. 安装并配置防火墙
使用 ufw
或 firewalld
管理防火墙规则。
UFW(Ubuntu)
sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Firewalld(CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
5. 禁用不必要的服务
查看开机启动服务并禁用不必要的服务:
systemctl list-unit-files --type=service | grep enabled
sudo systemctl disable <service_name>
6. 安装和配置 Fail2Ban 防暴力破解
安装 Fail2Ban:
sudo apt install fail2ban # Ubuntu/Debian
sudo yum install epel-release -y && sudo yum install fail2ban -y # CentOS/RHEL
创建本地配置文件:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
配置 SSH 监控:
sudo vim /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222 # 根据实际的 SSH 端口填写
maxretry = 5
bantime = 3600
启动并启用 Fail2Ban:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
7. 配置日志审核和系统日志管理
设置 logrotate 以管理日志文件:
sudo vim /etc/logrotate.conf
启用审核日志:
sudo apt install auditd -y # Ubuntu/Debian
sudo yum install audit -y # CentOS/RHEL
sudo systemctl enable auditd
sudo systemctl start auditd
8. 配置文件权限和安全性
设置重要文件的权限:
sudo chmod 600 /etc/ssh/sshd_config
sudo chmod 600 /etc/fstab
检查和修复 SUID 和 SGID 文件权限:
sudo find / -perm /6000 -type f -exec ls -l {} \;
9. 禁用不必要的网络协议
禁用 IPv6(如果不使用):
sudo vim /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
重启 sysctl 使配置生效:
sudo sysctl -p
10. 定期自动更新(可选)
- 安装
unattended-upgrades
,确保系统自动接收安全更新。sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
11. 检查系统账号和服务
删除无用的用户账号:
sudo userdel <username>
锁定系统中未使用的账号:
sudo usermod -L <username>
设置密码过期策略:
sudo vim /etc/login.defs
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 7
总结
这些步骤会大大增强 Linux 服务器的安全性。按需调整上述配置,并确保在操作前有备份,以避免误操作导致系统无法正常使用。