凌峰创科服务平台

linux服务器安全策略详解

Linux服务器安全策略是保障系统稳定运行、防止未授权访问和数据泄露的核心措施,需从系统基础配置、访问控制、漏洞管理、日志审计等多个维度综合实施,以下从关键环节详细阐述具体策略及操作方法。

linux服务器安全策略详解-图1
(图片来源网络,侵删)

系统初始化安全配置

服务器首次部署时,需完成基础安全加固,避免默认配置带来的风险。

  1. 用户与权限管理:禁用或删除默认无用账户(如admsync等),仅保留管理员root和必要业务账户,为root账户设置复杂密码(至少12位,包含大小写字母、数字及特殊字符),并通过/etc/login.defs配置密码策略(如最小长度、有效期),限制root远程登录,编辑/etc/ssh/sshd_config,设置PermitRootLogin no,强制管理员通过普通用户susudo提权。
  2. 服务最小化原则:通过systemctl list-unit-files --type=service查看开机自启服务,关闭非必要服务(如telnetrshcups等),仅保留业务必需服务(如nginxmysql),使用firewalldiptables配置防火墙规则,仅开放必要端口(如Web服务的80/443端口、SSH的22端口),其他端口全部禁用。
  3. 文件系统权限优化:设置关键目录权限(如/etc权限设为750,/var/log权限设为755),通过chattr +i锁定重要系统文件(如/etc/passwd/etc/shadow),防止篡改,定期检查/etc/passwd/etc/shadow文件异常,使用pwckgrpck命令验证文件完整性。

访问控制与身份认证

  1. SSH安全加固:修改SSH默认端口(如从22改为2222),禁用密码登录,启用密钥认证(编辑sshd_config设置PasswordAuthentication noPubkeyAuthentication yes),限制允许登录的IP地址,通过AllowUsersAllowHosts参数指定白名单用户或主机。
  2. 双因素认证(2FA):对管理员账户启用双因素认证,使用Google AuthenticatorFreeOTP等工具,生成动态验证码,通过pam_google_authenticator模块集成到SSH登录流程,提升账户安全性。
  3. 定期审计用户权限:通过/etc/sudoers文件精细化管理sudo权限,避免赋予NOPASSWD全权权限,定期清理长期未登录的账户(通过lastlog命令查询用户登录时间,删除超过90天未登录的账户)。

漏洞管理与补丁更新

  1. 系统补丁及时更新:对于基于Debian/Ubuntu的系统,使用apt update && apt upgrade -y更新软件包;对于CentOS/RHEL系统,使用yum update -ydnf update -y,配置自动更新任务(如通过cron设置每周日凌晨2点执行更新),确保安全补丁第一时间生效。
  2. 漏洞扫描与修复:使用lynisOpenVAS等工具定期扫描系统漏洞,lynis可通过lynis audit system生成详细报告,根据建议修复高危漏洞(如 OpenSSL、SSH组件漏洞),对于无法立即修复的漏洞,通过防火墙临时隔离受影响端口或限制访问来源。
  3. 第三方软件安全:定期检查业务软件(如Nginx、MySQL、Redis)的版本,及时更新至最新稳定版,禁用第三方软件的默认测试账户(如MySQL的root@localhost匿名账户),修改默认配置文件中的敏感信息(如数据库密码、API密钥)。

日志监控与异常检测

  1. 日志配置与集中存储:确保系统日志服务(rsyslog)正常运行,配置日志级别为info,记录登录失败、权限变更、关键命令执行等事件,通过/etc/rsyslog.conf配置日志远程传输,将所有服务器日志发送至 centralized 日志服务器(如ELK Stack或Graylog),防止本地日志被篡改。
  2. 实时监控与告警:使用fail2ban监控登录失败日志,对连续多次失败(如5次)的IP地址实施临时封禁(如banaction = iptables-multiport),部署Prometheus + Grafana监控系统资源(CPU、内存、磁盘IO)和业务状态,设置阈值告警(如CPU使用率超过80%触发邮件/短信通知)。
  3. 日志定期分析:通过awkgrepELK分析日志,识别异常行为(如非工作时间登录、大量文件下载、敏感命令执行),使用grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr统计高频失败登录IP,定位潜在攻击来源。

恶意代码防范与数据备份

  1. 恶意代码检测:安装ClamAV杀毒软件,定期扫描系统文件(clamscan -r / --exclude-dir=/proc),重点关注/tmp/var/tmp等临时目录,使用chkrootkit检查rootkit,防止黑客通过隐藏工具控制系统。
  2. 数据备份与恢复:制定备份策略,对重要数据(如数据库、配置文件)进行每日增量备份和每周全量备份,备份数据加密存储并异地保存(如上传至AWS S3或阿里云OSS),定期测试备份数据的恢复流程,确保备份有效性。
  3. 文件完整性校验:使用AIDE(Advanced Intrusion Detection Environment)监控关键文件变化,安装aide并初始化数据库(aide --init),每日通过aide --check对比文件哈希值,发现异常及时告警。

网络与容器安全(如适用)

  1. 容器安全:对于Docker容器,以非root用户运行容器(通过--user参数指定),定期扫描镜像漏洞(使用trivyclair),限制容器网络访问,使用--network=none或自定义网络隔离,避免容器间横向渗透。
  2. Web应用防火墙(WAF):在服务器前端部署WAF(如ModSecurity),拦截SQL注入、XSS、CSRF等常见Web攻击,配置自定义规则过滤恶意请求(如SecRule ARGS "@detectSQLi" "id:100,phase:2,block")。

相关问答FAQs

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

  1. 系统资源异常(CPU/内存使用率飙升,存在不明进程);
  2. 文件异常(如/etc/passwd文件被修改、出现未知隐藏文件);
  3. 日志异常(大量登录失败记录、非管理员IP执行敏感命令);
  4. 网络异常(出现陌生外联IP、端口扫描行为)。
    建议使用rkhunterchkrootkit等工具深度扫描,并结合日志分析定位入侵来源。

Q2:Linux服务器如何防止暴力破解攻击?
A:可采取以下组合措施:

  1. 修改SSH默认端口,避免使用22端口;
  2. 启用SSH密钥认证,禁用密码登录(PasswordAuthentication no);
  3. 使用fail2ban工具监控登录失败日志,对高频攻击IP实施自动封禁;
  4. 配置防火墙(如iptables)限制单个IP的SSH连接频率(如iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set);
  5. 启用双因素认证(2FA),即使密码泄露也能阻止未授权登录。
linux服务器安全策略详解-图2
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇