通过本教程,您将掌握全面的服务器安全加固技能,有效抵御黑客攻击和数据泄露风险。
1. 系统基础安全配置
首先,确保操作系统保持最新状态。执行系统更新:对于CentOS系统使用"yum update -y",Ubuntu系统使用"apt update && apt upgrade -y"。禁用不必要的服务:编辑/etc/services文件,注释掉未使用的服务端口;执行"systemctl list-units --type=service"查看运行的服务,使用"systemctl disable [服务名]"禁用不必要服务。更改默认SSH端口:编辑/etc/ssh/sshd_config文件,将Port 22改为其他端口如2222,重启SSH服务"systemctl restart sshd"。禁用root远程登录:在sshd_config中设置"PermitRootLogin no",并使用普通用户登录。
2. 防火墙规则设置
配置防火墙是安全的第一道防线。使用iptables或firewalld设置严格的入站规则。对于iptables,执行"iptables -P INPUT DROP"默认拒绝所有连接,然后添加允许规则:"iptables -A INPUT -p tcp --dport 22 -j ACCEPT"(SSH)、"iptables -A INPUT -p tcp --dport 80 -j ACCEPT"(HTTP)、"iptables -A INPUT -p tcp --dport 443 -j ACCEPT"(HTTPS)。保存规则:"service iptables save"。对于firewalld,执行"firewall-cmd --permanent --add-service=ssh"、"firewall-cmd --permanent --add-service=http"、"firewall-cmd --permanent --add-service=https"后执行"firewall-cmd --reload"。
3. 用户权限管理
创建专用管理用户,避免直接使用root。执行"useradd adminuser",为用户设置强密码:"passwd adminuser"。使用visudo编辑sudoers文件,为管理用户添加适当sudo权限:"adminuser ALL=(ALL) NOPASSWD: /usr/bin/apt, /usr/bin/yum"。实施密码策略:编辑/etc/login.defs,设置PASS_MAX_DAYS 90、PASS_MIN_DAYS 7、PASS_MIN_LEN 12;安装pam_cracklib加强密码复杂度检查:"apt install libpam-cracklib"(Ubuntu)或"yum install cracklib-dicts"(CentOS),编辑/etc/security/pwquality.conf设置minlen=12、minclass=3。
4. 服务与端口优化
定期检查运行中的服务:"netstat -tulpn"或"ss -tulpn"。禁用不必要的服务:如"systemctl disable telnet.socket"、"systemctl disable rsh.socket"。禁用危险协议:编辑/etc/modprobe.d/disable.conf添加"install ipv6 /bin/true"禁用IPv6(如不需要);在/etc/modprobe.d/blacklist.conf中添加"blacklist dccp"、"blacklist sctp"禁用不常用协议。使用fail2ban防止暴力破解:安装"apt install fail2ban"或"yum install fail2ban",创建/jail.local配置文件设置SSH防护规则。
5. 日志监控与审计
配置集中日志管理:安装rsyslog并配置远程日志服务器,编辑/etc/rsyslog.conf添加"*.* @logs.example.com"。设置日志轮转:编辑/etc/logrotate.conf确保日志按大小轮转并保留适当天数。启用审计功能:安装auditd服务,执行"auditctl -w /etc/passwd -p wa -k auth",监控关键文件变更。使用logwatch生成日志报告:"apt install logwatch"(Ubuntu)或"yum install logwatch"(CentOS),设置cron定期执行"logwatch --range yesterday --mailto admin@example.com"。
6. 数据备份与恢复
配置自动备份脚本:创建backup.sh脚本,使用rsync进行增量备份:"rsync -avz --delete /data/ backup@backupserver:/data/"。设置备份计划:编辑crontab添加"0 2 * * * /bin/bash /path/to/backup.sh"。测试恢复流程:定期从备份恢复测试文件,确保备份可用。实施异地备份:将关键备份复制到远程存储或云服务。加密备份数据:使用gpg加密重要备份:"gpg -c backup.tar.gz"。
7. 定期安全评估与更新
配置自动安全检查:使用lynis进行定期安全审计:"apt install lynis"(Ubuntu)或"yum install lynis"(CentOS),执行"lynis audit system"生成报告。配置漏洞扫描:安装openvas或nmap定期扫描系统漏洞:"nmap -sV -O [目标IP]"。设置安全更新提醒:配置邮件接收安全公告,订阅操作系统安全邮件列表。实施补丁管理:使用unattended-upgrades自动安装安全更新(Ubuntu)或配置yum-cron(CentOS)。
常见坑提醒:
1. 不要在生产环境直接应用安全配置前先在测试环境验证
2. 修改SSH端口后不要关闭当前会话,确保新配置能正常工作
3. 禁用IPv6前确认系统依赖,某些应用可能需要IPv6支持
4. 配置防火墙规则时保持远程访问通道,避免锁死自己
5. 定期测试备份恢复流程,确保备份可用
6. 不要在/etc/hosts.deny中使用ALL: ALL,可能导致合法访问也被阻止

