SELinux 和 iptables

最近操作服务器时,遇到了一些不同清楚的概率,查找了一些资料,整理如下。

1. BLP 安全模型

该模型将信息系统中的实体分为两部分:
  • 主体(Subject),实时操作的,如用户和进程
  • 客体(Object),被操作的对象,如文件和数据库等。
  • MAC(Mandatory Access Control,强制访问控制)。MAC 机制是指系统不再允许对象的拥有者随意修改或授予此对象相应的权限,而是通过强制的方式为每个对象一一授予权限,SELinux 即采用这种机制。该机制主要通过安全级来实现。
  • Permissive 表示仅记录安全警告但不阻止可疑行为
  • Enforcing 表示记录警告且阻止可疑行为
  • 1 指代 Enforcing
  • 数据包内容修改
  • 数据包过滤的防火墙
  • OUTPUT:本机输出
  • FORWARD:转发
  • PREROUTING:输入控制
  • POSTROUTING:输出控制
  • nat 表用于要转发的信息包
  • mangle 表用于信息包及其头内进行更改
  • 命令
    • -A 或 –append 该命令将一条规则附加到链的末尾
  • -D 或 –delete 通过用 -D 指定要匹配的规则或者指定规则在链中的位置编号,该命令从链中删除该规则
  • -P 或 –policy 该命令设置链的默认目标,即策略。所有与链中任何规则都不匹配的信息包都将被强制使用此链的策略
  • -N 或 –new-chain 用命令中所指定的名称创建一个新链
  • -F 或 –flush 如果指定链名,该命令删除链中的所有规则,如果未指定链名,该命令删除所有链中的所有规则。此参数用于快速清除
  • -L 或 –list 列出指定链中的所有规则
  • -R 或 –replace 替换指定链中一条匹配的规则
  • -X 或 –delete-chain 删除指定用户的的定义链,若没有指定链,则删除所有的用户链
  • -C 或 –check 检查数据包是否与指定链的规则相匹配
  • -Z 或 –zero 将指定链中所有规则的 byte 计数器清零
  • 匹配
    • -p 或 –protocol 该通用协议匹配用于检查某些特定协议。协议示例有 TCP、UDP、ICMP、用逗号分隔的任何这三种协议的组合列表以及 ALL(用于所有协议)。ALL 是默认匹配。可以使用!符号表示不与该项匹配
  • -s 或 –source 该源匹配用于根据信息包的源IP地址来与它们匹配。该匹配还允许对某一范围内的IP地址进行匹配,可以使用!符号,表示不与该项匹配。默认源匹配与所有 IP 地址匹配
  • -d 或 –destination 该目的地匹配用于根据信息包的目的地 IP 地址来与它们匹配。该匹配还允许对某一范围内 IP 地址进行匹配,可以使用!符号表示不与该项匹配
  • –sport 指定匹配规则的源端口或端口范围
  • –dport 指定匹配规则的目的端口或端口范围-i 匹配单独的网络接口或某种类型的接口设置过滤规则
  • 目标
    • ACCEPT 当信息包与具有 ACCEPT 目标的规则完全匹配时,会被接受(允许它前往目的地)
  • DROP 当信息包与具有 DROP 目标的规则完全匹配时,会阻塞该信息包,并且不对它做进一步处理。该目标被指定为 -j DROP
  • REJECT 该目标的工作方式与 DROP 目标相同,但它比 DROP 好。和 DROP 不同,REJECT 不会在服务器和客户机上留下死套接字。另外,REJECT 将错误消息发回给信息包的发送方。该目标被指定为 -j REJECT
  • RETURN 在规则中设置的 RETURN 目标让与该规则匹配的信息包停止遍历包含该规则的链。如果链是如 INPUT 之类的主链,则使用该链的默认策略处理信息包。它被指定为 -jump RETURN
  • LOG 表示将包的有关信息记录入日志
  • TOS 表示改写数据包的 TOS 值
  • rulenum 指的是规则的编号
  • http://jiayu0x.com/2014/12/23/Linux-authority-and-access-control/