从零开始学 Linux 系统安全:基础防护与实战应用

发布于:2025-07-18 ⋅ 阅读:(20) ⋅ 点赞:(0)

一、Linux 系统安全核心原则:为何安全防护至关重要?

Linux 系统并非天生 “免疫” 从零开始学 Linux 系统安全:基础防护与实战应用攻击,其安全风险主要来自个方面:

  • 系统自身漏洞:内核、软件包等可能存在未修复的漏洞,成为攻击者的突破口;
  • 配置不当风险:弱密码、过度开放的权限、不必要的服务启用等,会直接降低系统安全性;
  • 人为操作失误:误删重要文件、误执行危险命令等操作,可能导致数据泄露或系统崩溃。

安全防护的核心目标是:保障系统保密性(数据不泄露)、完整性(数据不被篡改)、可用性(服务不中断)。对于初学者来说,从基础配置和日常操作入手,是构建安全体系的第一步。

二、用户与权限管理:Linux 安全的 “第一道防线”

Linux 是多用户操作系统,权限管理是安全防护的核心。不合理的用户权限配置,可能导致普通用户获取系统控制权,因此必须严格规范用户与权限管理。

1. 用户账号管理:最小权限原则

  • 禁用 root 直接登录:root 是 Linux 系统的超级用户,拥有所有权限。直接使用 root 登录存在极高风险,建议创建普通用户并通过sudo命令临时获取权限。
    操作示例:

    bash

    # 创建普通用户
    useradd -m username  
    # 设置密码
    passwd username  
    # 授予sudo权限(需编辑/etc/sudoers文件)
    visudo  
    # 在文件中添加:username ALL=(ALL:ALL) ALL
    
  • 定期清理无效账号:删除长期不使用的用户账号,避免被恶意利用。
    操作示例:userdel -r username(-r 参数同时删除用户家目录)。
  • 使用强密码策略:密码应包含大小写字母、数字和特殊符号,长度不低于 8 位。可通过passwd命令强制用户定期修改密码,或通过pam_cracklib模块限制弱密码。

2. 文件与目录权限:控制访问边界

Linux 通过 “读(r)、写(w)、执行(x)” 三种权限,对文件和目录的访问进行控制,权限分为所有者(User)、所属组(Group)、其他用户(Other)三个维度。

  • 权限表示方法:
    权限既可以用数字表示(r=4,w=2,x=1),也可以用字母表示。例如 “rwxr-xr--” 表示:所有者可读 / 写 / 执行,所属组可读 / 执行,其他用户仅可读,对应的数字权限为 754。
  • 关键目录权限配置:
    • /etc/:系统配置文件目录,建议权限设置为 755(所有者可读写执行,其他用户只读执行),避免普通用户篡改配置;
    • /home/:用户家目录,权限建议为 700(仅所有者可访问),保护用户隐私数据;
    • /bin/、/sbin/:系统命令目录,权限建议为 755,禁止普通用户修改系统命令。
  • 谨慎使用 chmod 777:777 权限表示所有用户可读写执行,会导致文件完全暴露,仅在临时测试场景使用,且需及时恢复权限。

3. 特殊权限与 ACL:精细化权限控制

  • SUID/SGID 权限:允许用户临时获得文件所有者或所属组的权限(如passwd命令需要修改 /etc/shadow 文件,通过 SUID 权限实现普通用户执行)。但滥用会带来风险,需定期检查:
    操作示例:find / -perm -4000 -o -perm -2000(查找带有 SUID/SGID 权限的文件)。
  • ACL(访问控制列表):当基础权限无法满足需求时,可通过 ACL 为用户或组设置更精细的权限。
    操作示例:setfacl -m u:username:rwx /path/to/file(为指定用户授予读写执行权限)。

三、系统服务与端口管理:关闭 “不必要的大门”

Linux 系统默认启用了部分服务(如 ssh、cups 等),每个服务对应一个网络端口,开放不必要的端口会增加被攻击的风险。因此,精简服务、控制端口是安全防护的重要环节。

1. 服务管理:只保留必要服务

  • 查看运行中的服务:
    不同 Linux 发行版命令不同,例如 CentOS 使用systemctl list-unit-files --type=service --state=enabled,Ubuntu 使用service --status-all
  • 禁用无用服务:
    关闭不需要的服务(如邮件服务 postfix、打印服务 cups 等),操作示例:
    systemctl disable --now servicename(disable 永久禁用,--now 立即停止)。
  • 重点防护关键服务:
    SSH 服务是远程管理的常用工具,需特别配置:
    • 修改默认端口(22)为自定义端口(如 2222),减少扫描攻击;
    • 禁用密码登录,改用密钥登录(编辑/etc/ssh/sshd_config,设置PasswordAuthentication no);
    • 限制允许登录的用户(添加AllowUsers username)。

2. 端口管理:控制网络访问

  • 查看开放端口:
    使用netstat -tulnss -tuln查看当前监听的端口,确认每个端口对应的服务是否必要。
  • 使用防火墙限制端口访问:
    Linux 防火墙工具主要有firewalld(CentOS)和ufw(Ubuntu),建议只开放必要端口(如 SSH 端口、Web 服务端口 80/443)。
    操作示例(firewalld):

    bash

    # 开放SSH端口2222
    firewall-cmd --add-port=2222/tcp --permanent  
    # 开放Web端口80和443
    firewall-cmd --add-service=http --permanent  
    firewall-cmd --add-service=https --permanent  
    # 重新加载配置
    firewall-cmd --reload  
    

四、日志管理与安全审计:及时发现异常行为

日志是系统运行的 “黑匣子”,通过分析日志可以追踪用户操作、检测异常登录、定位攻击痕迹。Linux 系统的日志文件主要存放在/var/log/目录下。

1. 核心日志文件及作用

  • /var/log/secure:记录用户登录、sudo 操作、SSH 连接等安全相关事件,是检测暴力破解、异常登录的关键日志;
  • /var/log/messages:系统综合日志,包含内核消息、服务启动 / 停止等信息;
  • /var/log/auth.log(Ubuntu):类似 secure 日志,记录认证相关事件。

2. 日志分析技巧

  • 实时监控日志:使用tail -f /var/log/secure实时查看登录事件,若发现大量失败登录(如来自同一 IP 的多次尝试),可能是暴力破解攻击;
  • 关键词检索:通过grep命令筛选关键信息,例如查找失败的 SSH 登录:
    grep "Failed password" /var/log/secure
  • 设置日志轮转:日志文件会不断增大,通过logrotate工具自动切割、压缩旧日志,避免磁盘空间占满。

五、数据备份与恢复:最后一道 “安全网”

无论防护多么严密,都无法完全避免数据丢失风险(如硬件故障、勒索病毒等)。定期备份数据是保障系统可用性的最后一道防线。

1. 备份策略:3-2-1 原则

  • 3 份备份:同一份数据至少保存 3 个副本;
  • 2 种介质:备份到不同存储介质(如本地硬盘 + U 盘 + 云存储);
  • 1 个离线备份:至少 1 份备份与网络隔离,防止勒索病毒加密。

2. 常用备份工具与操作

  • tar 命令:适用于文件级备份,操作示例:
    tar -zcvf /backup/etc_backup_$(date +%F).tar.gz /etc(备份 /etc 目录并压缩);
  • rsync 工具:支持增量备份,适合远程备份,操作示例:
    rsync -avz /home/ user@remote_ip:/backup/home/(将本地 /home 同步到

网站公告

今日签到

点亮在社区的每一天
去签到