凌峰创科服务平台

linux服务器安全策.

Linux服务器安全策略是保障系统稳定运行和数据完整性的核心,涉及从系统初始化到日常运维的全流程防护,以下从系统加固、访问控制、漏洞管理、日志审计、网络安全、数据备份及应急响应七个维度展开详细说明,并结合表格形式清晰呈现关键配置要点。

系统初始化与基础加固

系统安装阶段是安全防护的第一道关卡,需选择最小化安装,仅启用业务必需的服务和组件,避免预装无关软件(如telnet、rsh等明文传输协议),安装完成后,立即更新系统至最新稳定版本,修复已知漏洞:

# CentOS/RHEL系统
yum update -y  
# Debian/Ubuntu系统  
apt update && apt upgrade -y  

禁用不必要的系统服务,通过systemctl list-unit-files --type=service查看服务状态,对未使用的服务执行systemctl disable [service_name]并停止,关闭核心转储功能,避免敏感信息泄露:

echo "* hard core 0" >> /etc/security/limits.conf  
sysctl -w fs.suid_dumpable=0  

修改默认SSH端口(默认22)为非标准端口(如2222),禁用root远程登录,在/etc/ssh/sshd_config中配置PermitRootLogin noPort 2222,重启SSH服务使配置生效。

严格的访问控制与身份认证

用户权限管理是安全的核心原则,需遵循最小权限原则,为不同角色创建独立用户,并通过sudo授权必要权限,避免直接使用root账号,创建web运维用户并授权:

useradd webops && passwd webops  
echo "webops ALL=(ALL) NOPASSWD:/usr/bin/nginx,/usr/bin/systemctl restart nginx" >> /etc/sudoers  

强制复杂密码策略,在/etc/login.defs中设置密码最小长度(PASS_MIN_LEN 12)、密码有效期(PASS_MAX_DAYS 90),并使用pam_pwquality模块 enforce密码复杂度(包含大小写字母、数字及特殊字符)。
启用双因素认证(2FA),通过Google Authenticator或FreeOTP生成动态口令,SSH登录时需同时输入密码和动态验证码,配置示例:

yum install google-authenticator -y  
google-authenticator  
# 根据提示生成密钥并备份,选择"yes"启用短信验证码和重用限制  

漏洞管理与软件更新

建立定期漏洞扫描机制,使用工具如OpenVAS、Nessus或Lynis进行系统漏洞检测,Lynis扫描命令:

lynis audit system  

扫描后根据报告修复高危漏洞,及时更新第三方软件(如Nginx、MySQL),可通过yumapt管理,也可使用yum-plugin-securityunattended-upgrades实现自动化更新。
对于容器化环境,需定期扫描镜像漏洞,使用Trivy或Clair工具:

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy image [image_name]  

日志审计与监控

完善的日志审计是追溯安全事件的关键,启用系统日志服务(rsyslog或systemd-journald),配置日志集中存储至远程服务器(如ELK Stack或Graylog),在/etc/rsyslog.conf中添加:

*.* @log-server-ip:514  

对关键操作(如sudo登录、SSH失败尝试)进行实时监控,使用fail2ban拦截恶意IP,针对SSH暴力破解,配置/etc/fail2ban/jail.local

[sshd]  
enabled = true  
port = 2222  
filter = sshd  
logpath = /var/log/secure  
maxretry = 3  
bantime = 3600  

部署监控工具如Prometheus+Grafana,监控CPU、内存、磁盘IO及网络流量,设置阈值告警(如CPU使用率超过80%时触发邮件或短信通知)。

网络安全防护

通过防火墙限制访问端口,使用iptables或firewalld实现端口白名单,仅允许HTTP(80)、HTTPS(443)及SSH(2222)端口入站:

# firewalld配置  
firewall-cmd --permanent --add-service=http  
firewall-cmd --permanent --add-service=https  
firewall-cmd --permanent --add-port=2222/tcp  
firewall-cmd --reload  

启用网络加密,禁止明文协议(如FTP、HTTP),改用SFTP、HTTPS,配置SSL/TLS证书时,优先使用Let's Encrypt免费证书或企业级证书,定期更新避免过期。
部署入侵检测系统(IDS)如Snort,监控网络异常流量,规则示例:

alert tcp any any -> any 22 (msg:"SSH Brute Force"; threshold:type both, track by_src, count 5, seconds 60; sid:1000001;)  

数据备份与恢复

制定备份策略,采用“3-2-1”原则(3份数据、2种介质、1份异地存储),定期全量备份(每周)和增量备份(每日),使用rsyncRestic工具:

# rsync增量备份示例  
rsync -avz --delete /data/ backup-server:/backup/data/  

备份数据需加密存储(如使用openssl),并定期恢复测试,确保备份数据可用性,关键配置如下表所示:

备份类型 频率 存储位置 保留周期
全量备份 每周日 本地NAS+异地云存储 3个月
增量备份 每日 本地磁盘 1周

应急响应与灾难恢复

制定应急响应预案,明确安全事件(如入侵、数据泄露)的处理流程:

  1. 隔离受影响系统:断开网络连接,防止攻击扩散;
  2. 分析事件原因:通过日志、工具(如foremost取证工具)追溯攻击路径;
  3. 清除恶意程序:杀毒软件扫描(如ClamAV),删除异常文件和进程;
  4. 系统恢复:从备份恢复数据,重置密码,修补漏洞;
  5. 总结复盘:记录事件处理过程,优化安全策略。
    定期组织应急演练,确保团队熟悉流程,减少实际事件响应时间。

相关问答FAQs

Q1: 如何判断Linux服务器是否被入侵?
A1: 可通过以下迹象判断:

  • 系统资源异常(CPU/内存使用率飙升,磁盘空间突增);
  • 异常进程(如挖矿程序、可疑的PID为1的子进程);
  • 日志异常(大量SSH失败登录、sudo操作记录);
  • 文件篡改(关键系统文件修改时间异常,隐藏文件存在);
  • 网络异常(陌生外连端口,流量异常增长)。
    建议结合topnetstat -tulnlastls -la /等命令初步排查,再用chkrootkitrkhunter等工具深度检测。

Q2: Linux服务器忘记root密码如何重置?
A2: 重置root密码需进入单用户模式,步骤如下(以CentOS 7为例):

  1. 重启服务器,在GRUB引导界面按e进入编辑模式;
  2. 找到linux16linux行,添加rd.break参数,按Ctrl+X启动;
  3. 系统挂载/sysroot为可读写模式:mount -o remount,rw /sysroot
  4. 切换根目录:chroot /sysroot
  5. 修改密码:passwd root,输入新密码两次;
  6. 更新SELinux信息(若启用):touch /.autorelabel
  7. 退出并重启:exitreboot
    注意:此操作需物理访问或KVM控制台权限,且重置后建议检查系统完整性。
分享:
扫描分享到社交APP
上一篇
下一篇