凌峰创科服务平台

Linux服务器安全检查该怎么做?

Linux服务器安全检查是保障系统稳定运行和数据安全的重要环节,需从系统基础配置、服务端口管理、日志审计、权限控制、漏洞修复等多个维度进行全面排查,以下从具体操作步骤和检查要点展开详细说明:

系统基础信息检查

首先确认系统版本、内核信息及运行时间,确保系统为官方支持的稳定版本,避免使用已停止维护的发行版(如CentOS 7),通过命令uname -a查看内核版本,uptime检查系统运行时长,异常长时间关机后重启可能暗示异常访问,同时检查/etc/issue/etc/issue.net,确保未泄露系统敏感信息(如默认欢迎语中的版本号),必要时清空或修改为自定义提示。

账户与权限安全

  1. 用户账户审计:使用cat /etc/passwd查看所有系统用户,重点关注UID为0的root账户及UID小于1000的系统账户,检查是否存在异常高权限用户(如非管理员的UID为0账户),通过last命令查看用户登录历史,识别异常登录时间或来源IP。
  2. 密码策略:检查/etc/login.defs中密码复杂度要求(如最小长度、有效期)和/etc/security/pwquality.conf中的密码规则,确保符合企业安全标准,使用chage -l username查看用户密码过期时间,强制长期未修改密码的用户更新密码。
  3. sudo权限管理:检查/etc/sudoers文件(通过visudo编辑),确保只有必要用户拥有sudo权限,避免使用NOPASSWD选项,防止权限滥用。

服务与端口管理

  1. 运行服务检查:使用systemctl list-units --type=service --state=running查看当前运行的服务,禁用不必要的服务(如telnet、rsh等高风险服务),仅保留业务必需的服务(如sshd、nginx等),对于第三方服务,需确认其来源可信并及时更新。
  2. 端口开放检查:通过netstat -tulnss -tuln查看监听端口,确认端口开放符合最小化原则,默认情况下应只开放80(HTTP)、443(HTTPS)等业务端口,避免直接暴露22(SSH)端口,如需开放建议修改默认端口并启用密钥认证。
  3. 服务版本安全:使用nmap -sV IP地址扫描开放服务的版本信息,检查是否存在已知漏洞(如Apache 2.4.49路径穿越漏洞),及时更新服务版本或打补丁。

日志与审计

  1. 系统日志检查:Linux系统日志通常位于/var/log/目录,重点检查/var/log/secure(SSH登录记录)、/var/log/auth.log(认证日志)、/var/log/messages(系统消息),通过grep "Failed password" /var/log/secure分析失败登录尝试,识别暴力破解风险。
  2. 日志轮转配置:检查/etc/logrotate.conf/etc/logrotate.d/下的配置文件,确保日志设置了合理的轮转策略(如每天轮转、保留30天),避免日志占满磁盘导致审计失效。
  3. 集中日志管理:对于多台服务器,建议配置rsyslog或ELK stack将日志集中存储,便于统一分析和异常事件追溯。

文件系统与权限

  1. 重要文件权限:检查关键配置文件权限,如/etc/passwd应为644,/etc/shadow应为400,/etc/sudoers应为440,避免普通用户可读写,使用chmod命令修正异常权限。
  2. 敏感文件扫描:使用find / -type f -name "*.key" -o -name "*.pem" -o -name "id_rsa"查找密钥文件,确保权限设置为600,且未泄露到非授权目录。
  3. 异常文件检测:通过find / -mtime -7 -type f查找最近7天内修改的文件,结合ls -la检查文件所有者和修改时间,识别可疑文件(如非预期的可执行文件)。

安全加固措施

  1. 防火墙配置:启用iptables或firewalld,仅允许必要端口入站,
    # iptables示例
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -j DROP
  2. 入侵检测系统:部署AIDE(高级入侵检测环境)定期检查文件完整性,配置/etc/aide.conf监控关键目录,通过aide --check运行扫描。
  3. 内核参数优化:调整/etc/sysctl.conf增强安全性,如禁用IPv4转发(net.ipv4.ip_forward=0)、开启SYN Cookies(net.ipv4.tcp_syncookies=1)。

漏洞与补丁管理

定期使用yum updateapt upgrade更新系统补丁,使用lynis等安全审计工具扫描系统漏洞:

# 安装lynis
apt install lynis
# 运行审计
lynis audit system

根据扫描结果修复高危漏洞,如OpenSSL、Samba等组件的已知漏洞。

FAQs

Q1: 如何判断服务器是否被入侵?
A: 可通过以下方式排查:

  1. 检查进程列表:ps aux查看是否存在异常进程(如非系统自带的高CPU占用进程);
  2. 分析登录日志:grep "Accepted password" /var/log/secure查看成功登录IP,结合who检查当前登录用户;
  3. 检查系统文件:rpm -Va(RPM系统)或debsums -c(Debian系统)校验文件完整性;
  4. 查看网络连接:netstat -an | grep ESTABLISHED检查异常外联连接,若发现异常,应立即隔离服务器并备份日志。

Q2: 如何防止SSH暴力破解?
A: 可采取以下措施:

  1. 修改默认端口:编辑/etc/ssh/sshd_config,将Port 22改为其他端口(如2222),重启SSH服务;
  2. 禁用密码登录,启用密钥认证:在sshd_config中设置PasswordAuthentication noPubkeyAuthentication yes
  3. 使用fail2ban:安装fail2ban,配置/etc/fail2ban/jail.local,对SSH失败登录进行封禁(如3次失败后封禁IP 10分钟);
  4. 限制登录IP:通过iptables或firewalld仅允许指定IP访问SSH端口。
分享:
扫描分享到社交APP
上一篇
下一篇