Linux系统安全

一、Linux系统安全核心概述

Linux系统以开源、稳定、可定制性强著称,但开源特性也使其面临更多安全风险(如权限滥用、恶意攻击、漏洞利用等)。系统安全的核心目标是:保障系统机密性、完整性、可用性,防止未授权访问、数据泄露、系统被篡改或瘫痪。

安全防护原则:最小权限原则(仅授予必要权限)、纵深防御原则(多层面防护)、定期审计原则(及时发现异常)。

二、用户与权限安全

2.1 用户管理安全

  • 禁用root远程登录:root为超级用户,权限极高,一旦泄露后果严重。修改SSH配置文件/etc/ssh/sshd_config,设置PermitRootLogin no,重启SSH服务(systemctl restart sshd)。

  • 创建普通用户并授权:通过useradd 用户名创建普通用户,passwd 用户名设置密码;如需管理员权限,通过visudo添加用户到sudoers文件(避免直接修改/etc/sudoers),格式为用户名 ALL=(ALL) ALL

  • 清理无用用户/组:删除长期不使用的用户(userdel -r 用户名)、组(groupdel 组名),避免冗余账号成为安全隐患。

  • 密码安全策略:设置密码复杂度(长度≥8位,包含大小写、数字、特殊符号),修改/etc/login.defs配置密码有效期(PASS_MAX_DAYS)、最小长度(PASS_MIN_LEN);定期强制用户修改密码(chage -d 0 用户名)。

2.2 文件与目录权限控制

Linux权限分为读(r=4)、写(w=2)、执行(x=1),对应所有者(u)、所属组(g)、其他用户(o),通过ls -l查看权限,chmod修改权限,chown修改所有者/所属组。

  • 关键文件权限设置:

    • /etc/passwd(用户信息文件):权限设为644(只有root可写,其他只读),防止被篡改。

    • /etc/shadow(密码加密文件):权限设为000400,仅root可访问,避免密码泄露。

    • 系统命令(如/bin/ls、/bin/bash):权限设为755(所有者可读写执行,其他只读执行),禁止普通用户修改。

  • 目录权限注意:禁止给普通用户赋予/tmp、/var/tmp等临时目录写权限(避免恶意脚本执行);/home目录给每个用户设置700权限(仅自身可访问)。

  • 特殊权限控制:避免使用SUID、SGID权限(可能被滥用提权),通过chmod -s 文件名取消特殊权限,定期用find / -perm +4000 -o -perm +2000排查特殊权限文件。

三、系统服务与端口安全

3.1 服务管理

  • 关闭无用服务:通过systemctl list-unit-files --type=service查看所有服务,禁用不需要的服务(如telnet、ftp、rpcbind等),命令为systemctl disable --now 服务名,避免服务暴露漏洞。

  • 服务运行权限:尽量以普通用户身份运行服务(如Nginx、MySQL),避免用root运行,降低服务被攻破后的影响范围。

  • 定期更新服务:及时更新服务版本(yum update 服务名apt update && apt upgrade 服务名),修复已知漏洞(如Heartbleed、Shellshock等漏洞)。

3.2 端口安全

  • 查看开放端口:通过netstat -tulnpss -tulnp查看当前开放的端口及对应服务,排查未授权开放的端口。

  • 防火墙配置:使用firewalld(CentOS)或ufw(Ubuntu)限制端口访问,仅开放必要端口(如SSH的22端口、HTTP的80端口),禁止所有不必要的入站连接。

    • firewalld常用命令:firewall-cmd --add-port=22/tcp --permanent(开放22端口)、firewall-cmd --reload(重载配置)、firewall-cmd --list-ports(查看开放端口)。

    • 禁止端口扫描:配置防火墙拦截ICMP协议(ping请求),避免被端口扫描工具探测。

四、系统漏洞与补丁管理

Linux系统漏洞主要分为内核漏洞、应用程序漏洞,漏洞利用是黑客攻击的主要方式,因此补丁更新是安全防护的重要环节。

  • 定期更新系统:CentOS使用yum update,Ubuntu使用apt update && apt upgrade,更新系统内核及所有已安装软件,修复已知漏洞。

  • 漏洞扫描:使用工具(如OpenVAS、Nessus)定期扫描系统漏洞,生成漏洞报告,针对高危漏洞优先修复。

  • 内核安全:禁止内核模块加载(修改/etc/modprobe.d/blacklist.conf,添加禁止加载的模块);如需升级内核,选择稳定版本,避免使用测试版内核。

五、日志审计与监控

日志是排查安全事件、发现异常行为的重要依据,Linux系统日志主要存储在/var/log/目录下,核心日志文件如下:

  • /var/log/secure:记录SSH登录、用户认证等安全相关日志,重点关注失败登录记录(如"Failed password"),排查暴力破解尝试。

  • /var/log/messages:系统核心日志,记录系统启动、服务运行、错误信息等,可排查系统异常。

  • /var/log/audit/audit.log:审计日志,记录文件访问、权限变更等操作,需开启auditd服务(systemctl enable --now auditd)。

日志监控技巧:

  • 使用tail -f /var/log/secure实时监控SSH登录情况,发现异常立即阻断IP。

  • 定期备份日志:避免日志被篡改或删除,可将日志同步到远程服务器(如使用rsync工具)。

  • 使用日志分析工具:如ELK(Elasticsearch+Logstash+Kibana),实现日志集中管理、检索和可视化,快速发现异常行为。

六、恶意软件与入侵防御

6.1 恶意软件防护

  • 安装杀毒软件:如ClamAV(开源杀毒软件),定期扫描系统(clamscan -r /),查杀病毒、木马、恶意脚本。

  • 禁止恶意脚本执行:限制.sh.py等脚本的执行权限,避免普通用户运行恶意脚本;排查/tmp/var/tmp目录下的可疑文件。

  • 谨慎安装软件:仅从官方源或可信渠道安装软件,避免安装来路不明的rpm、deb包,防止软件中植入恶意代码。

6.2 入侵防御

  • 防止暴力破解:配置SSH登录限制,修改/etc/ssh/sshd_config,设置MaxAuthTries 3(最多3次登录失败),LoginGraceTime 60(登录超时时间60秒);使用fail2ban工具,自动封禁多次登录失败的IP。

  • 禁止异常登录:通过last命令查看用户登录记录,lastlog查看用户最近登录时间,发现陌生IP登录立即排查。

  • 文件完整性检查:使用md5sumsha256sum记录关键文件的哈希值,定期校验,若哈希值变化,说明文件被篡改,需立即排查。

七、应急响应流程

当系统发生安全事件(如被入侵、数据泄露、服务瘫痪)时,需遵循"止损→排查→修复→复盘"的流程,降低损失。

  1. 止损:立即断开受影响服务器的网络连接(避免攻击扩散),暂停相关服务,备份重要数据(防止数据被进一步破坏)。

  2. 排查:查看系统日志(secure、messages),定位攻击来源(IP、攻击方式);检查可疑进程(ps aux)、可疑文件(find / -mtime -1查看最近1天修改的文件)、用户账号(是否有新增陌生用户)。

  3. 修复:删除可疑文件、进程,禁用陌生用户;修复漏洞(更新系统、服务补丁);重新配置权限、防火墙,恢复系统正常运行。

  4. 复盘:记录安全事件的原因、影响范围、处理过程,优化安全防护策略,避免同类事件再次发生。

八、常用安全工具汇总

常用安全工具包括多种类型,各自有明确用途和常用操作命令:firewalld/ufw是防火墙工具,主要用于限制端口访问,常用命令有firewall-cmd --list-ports(查看开放端口)、ufw status(查看ufw防火墙状态);fail2ban用于防止SSH暴力破解,可自动封禁多次登录失败的IP,常用命令为systemctl start fail2ban(启动服务)、fail2ban-client status(查看服务状态);ClamAV是开源杀毒软件,能够查杀病毒、木马、恶意脚本,常用命令有clamscan -r /(全盘扫描系统)、freshclam(更新病毒库);OpenVAS用于漏洞扫描,可检测系统漏洞,常用命令为openvas-start(启动漏洞扫描服务);auditd是系统审计工具,用于记录文件访问、权限变更等操作,常用命令有systemctl start auditd(启动审计服务)、ausearch -k keyword(根据关键词查询审计日志)。

九、安全防护总结

Linux系统安全是一个持续的过程,核心在于"预防为主、防治结合":

  • 基础防护:做好用户权限、文件权限、端口防火墙配置,关闭无用服务。

  • 定期维护:定期更新系统补丁、扫描漏洞、审计日志,备份重要数据。

  • 应急准备:熟悉应急响应流程,掌握常用安全工具,发生安全事件时快速止损、修复。

  • 持续优化:根据系统运行情况和安全威胁,不断调整安全策略,提升防护能力。

相关推荐
我爱学习好爱好爱2 小时前
Elasticsearch 7.17.10 双节点集群部署(二):安装 elasticsearch-head 插件实现可视化
大数据·linux·elasticsearch
奥地利落榜美术生灬2 小时前
红黑树(rbtree) & ksvstore引擎(引擎层应用)
linux
智能工业品检测-奇妙智能2 小时前
linux 安装 FFmpeg 和windows安装 FFmpeg
linux·windows·ffmpeg
那我掉的头发算什么2 小时前
【Linux】Linux基本使用和程序部署
linux·运维·服务器·数据库·spring·mybatis
灰阳阳2 小时前
Docker-网络管理-命令入门
运维·docker·容器·eureka
灰阳阳2 小时前
Docker-容器相关命令解析
运维·docker·容器
咋吃都不胖lyh4 小时前
linux环境在vscode链接到一个git仓库,克隆和拉取详细命令行
linux·git·vscode
小小小米粒6 小时前
NAT 模式, 仅主机模式 Host-Only ,桥接模式 Bridge
linux·服务器·网络
梦白.8 小时前
Python的容器类型
运维·python