Linux-Ch07 Linux系统安全和防火墙

linux服务器安全可以分为系统安全和网络安全两个部分

Linux系统安全

权限三部曲

  1. UGO补充:默认权限:

    umask命令用于查看或设定新建文件和目录时的默认权限

    • 新建文件的默认权限=666-umask值

    • 新建目录的默认权限=777-umask值

  2. UGO补充:特殊权限:

    是UGO权限模型对普通rwx权限的补充。因为基本的rwx权限难以实现某些特殊场景,如普通用户修改密码。

    三种特殊权限:

    • SUID(针对可执行文件)

      仅对二进制文件有效,仅在运行时有效。执行者在拥有该程序的x权限前提下,将拥有该程序所有者的权限(可理解为用户身份变为文件拥有者)

    • SGID(针对可执行文件)

      和SUID类似,针对于组用户。,可以理解为用户的群组身份变成文件所属群组

    • SBIT(针对目录)

      用于设置目录的特殊权限,作用是:当用户拥有某目录的写入权限时(w、x),在该目录创建的文件只有该用户和root用户可以进行更名、移动、删除

    • 设置和修改三种特殊权限

      1
      2
      3
      4
      5
      6
      # 数字方法
      # SUID对应4 SGID对应2 SBIT对应1,即在权限数字前添加一个数字
      chmod 4755 test

      # 字符方法
      # SUID为u+s SGID为g+s SBIT为o+t
  3. ACL权限:

    Access Control List,访问控制列表,可以针对单一用户、单一文件或目录进行r、w、x的管理。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # ACL权限使用: setfacl和getfacl
    setfacl [-bkRd] [{-m|-x} acl参数] 目标文件名

    # -m:设定指定的acl参数给文件使用
    # -x:删除指定的acl参数
    # -b:删除所有的acl参数
    # -R:若目标文件为目录则递归设置

    # acl参数:
    # u:[用户账号列表]:[rwx]
    # g:[用户组列表]:[rwx]
    # m:[rwx]
    setfacl -m u:starlightglimmer:rwx test1

SELinux

传统Linux权限管理机制:DAC,自主访问控制

SELinux权限管理机制:MAC,委托访问控制

相关概念:

  • 主体:运行中的程序,进程
  • 目标:进程想访问的资源、文件
  • 策略:针对不同类型应用设置的一系列规则
  • 安全上下文:相当于rwx

三种模式:

  • enforcing:强制模式:SELinux运行中,根据策略和安全上下文控制访问
  • Permissive:宽容模式,SELinux运行中,但只提供警告
  • disabled:关闭SELinux

防火墙技术

Linux防火墙基本概念

防火墙是一种隔离系统内部网络和外部网络的过滤技术

通过实现方式可以分为硬件防火墙和软件防火墙

软件防火墙技术原理可以分为包过滤防火墙和代理服务防火墙

  • 包过滤防火墙采用数据包过滤技术,在网络层(IP层)依据预设的过滤规则对数据包进行选择。
  • 代理服务防火墙也称链路级网关,将所有跨越防火墙的网络通信分为两段,中间由代理服务进行转发,实现过滤的目的

LInux防火墙

  • Netfilter

    LInux内核中进行数据包过滤、连接跟踪、地址转换等功能的实现框架。

    实质是通过定义一系列hook点,每个hook点挂载多个hook函数,hook函数实现对数据包的处理。

  • iptables

    四表五链

    • iptables表

      filter表、nat表、mangle表、raw表

      filter表:保存数据包是否放行的规则,iptables机制中的默认表

      nat表:保存在进行网络地址转换时的规则,依据该表修改需要nat的ip数据包

      managle表:保存对数据包头部其他内容进行修改的规则

      raw表:保存数据包是否被跟踪的规则,优先级高

    • iptables链

      数据包进入到网卡后流向的五个阶段:

      路由前prerouting、入站input、转发forward、出站output、路由后postrouting

    • iptables基本原理就是在数据包进入到网卡后的不同阶段,查找对应表,用相关的规则对数据包进行处理

  • firewall

    在iptables的基础上改进:

    • 可以热部署,即可以动态修改规则
    • 新增zone概念,将网络连接分为多种可信等级
    • 提供可视化图形界面设置

Linux防火墙的使用

iptables规则组成:

  1. 数据包访问控制
    • ACCEPT、DROP、REJECT
  2. 数据包改写
    • SNAT、DNAT
  3. 信息记录
    • LOG

iptables完整语法:

iptables使用范例: