Linux之selinux和防火墙
selinux(强化的linux)
传统的文件权限与账号的关系:自主访问控制,DAC;
以策略规则制定特定程序读取特定文件:强制访问控制,MAC
SELinux是通过MAC的方式来控制管理进程,它控制的主体是进程
主体(subject):就是进程
目标(object):被主体访问的资源,可以是文件、目录、端口等。
策略(policy):由于进程与文件数量庞大,因此SELinux会依据某些服务来制定基本的访问安全策略。
目前主要的策略有:
targeted:针对网络服务限制较多,针对本机限制较少,是默认的策略;
strict:完整的SELinux限制,限制方面较为严格
安全上下文(security context):主体能不能访问目标除了策略指定外,主体与目标的安全上下文必须 一致才能够顺利访问。
安全上下文用冒号分为四个字段:
identify:role:type:
身份标识(Identify):相当于账号方面的身份标识
角色(role):通过角色字段,可知道这个数据是属于程序、文件资源还是代表用户
类型(type):在默认的targeted策略中,Identify与role字段基本上是不重要的,重要的在于这 个类型字段。
最后一个字段是和MLS和MCS相关的东西,代表灵敏度,一般用s0、s1、s2来命名,数字代表灵敏 度的分级。数值越大、灵敏度越高。
selinux有三种模式
enforcing:强制模式,代表SELinux正在运行中,开始限制domain/type
permissive:宽容模式,代表SELinux正在运行中
disabled:关闭,SELinux并没有实际运行。
getenforce
#查看目前的模式
sestatus
#查看目前的selinux使用的策略
/etc/selinux/config
#查看和修改selinux策略的位置,改变策略之后需要重启
setenforce 0
#转换成permissive
setenforce 1
#转换成enforcing
#修改安全上下文
chcon -R -t -u -r 文件
chcon -R --reference=文件地址
#连同子目录同时修改(R),后面接安全上下文的类型字段(t),后面接身份识别(u),接角色(r)
semanage
防火墙
Netfilter,即数据包过滤机制,真正使用规则干活的是内核的netfilter。
iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类:
在进行路由选择前处理数据包,用于目标地址转换(PREROUTING);
处理流入的数据包(INPUT);本机只需要修改这个
处理流出的数据包(OUTPUT);
处理转发的数据包(FORWARD);
在进行路由选择后处理数据包,用于源地址转换(POSTROUTING)