SElinux是基于内核开发出来的一种安全机制,被称之为内核级加强型防火墙,有力的提升了系统的安全性。
SElinux的作用分为两方面:1.在服务上面加上标签; 2.在功能上面限制功能
在linux系统中使用 getenforce 命令可以查看selinux的状态:
disabled 为关闭状态,对服务和功能都没有限制
enforcing 为强制状态,对服务和功能都进行限制
permissive 为警告状态,服务和功能可以使用,但会收到警告信息,可视为对安全的提示
在selinux开启状态时,可使用setenforce 0|1 来调整selinux的状态,0为警告状态,1为强制状态,如下图所示:
selinux的状态在配置文件 /etc/selinux/config 中也可以设置:
路径:vim /etc/selinux/config 或 vim /etc/sysconfig/selinux (链接文件,指向/etc/selinux/config)
注:由于selinux是基于内核开发的,所以改变状态以后,需要重启内核,也就是关机以后才能够生效
在selinux开启的状态下,可以看到文件的安全上下文的标签,输入ls -Z 可以看到目录下的文件和目录的安全上下文标签:
Linux内核防火墙的工作原理
Linux的内核提供的防火墙功能通过netfiter框架实现,并提供iptables工具配置和修改防火墙的规则
netfilter的通用框架不依赖于具体的协议,而是为每种网络协议定义一套钩子函数。这些钩子函数在数据包经过协议栈的几个关键点时被调用,
在这几个点中,协议栈将数据包及钩子函数作为参数,传递
netfilter框架
对于每种网络协议定义的钩子函数,任何内核模块可以对每种协议的一个或多个钩子函数进行注册,实现挂接。这样当某个数据包被传递给
netfilter框架时,内核能检测到是否有有关模块对该协议和钩子函数进行了注册,如发现注册信息则调用该模块在注册时使用的回调函数,然后对
应模块去检查、修改、丢弃该数据包及指示netfilter将该数据包传入用户空间的队列。
钩子函数提供了一种方便的机制,以便在数据包通过Linux内核的不同位置上截获和操作处理数据包
如下图所示;
钩子函数说明:
NF_IP_PRE_ROUTING:网络数据包进入系统,经过简单的检测后,数据包转交给该函数进行处理, 然后根据系统设置的规则对数据包进行处理,
如果数据包不被丢弃则交给路由函数进行处理,在该函数中可替换IP包的目的地址,即DNAT;
NF_IP_LOCAL_IN:所有发送给系统的数据包都要能过该函数的处理,该函数根据系统设置的规则对数据包进行处理,如果数据包不被丢弃则交给
本地的应用程序;
NF_IP_FORWARD:所有不是发送给本机的数据包都要能过该函数进行处理,该函数会根据系统设置的规则对数据包进行处理,如数据包不被丢弃
则转 NF_IP_POST_ROUTING 进行处理。
NF_IP_LOCAL_OUT:所有从本地应用程序出来的数据包必须通过该函数的处理,该函数根据系统设置的规则对数据包进行处理,如果数据包不被
丢弃则交给路由函数进行处理。
NF_IP_POST_ROUTING:所有数据包在发给其他主机之前需要通过该函数的处理,该函数根据系统设置的规则对数据包进行处理,如果数据包
不被丢弃,将数据包发给数据链路层,在该函数中可以替换IP包的源地址,即SNAT.
Mysql : L闪存卡linux中的内核参数设置
将 Nytro WarpDrive 加速卡配置为文件系统 本节说明的操作使您可调整 Nytro WarpDrive 加速卡,增强使用 Oracle Linux with Unbreakable Ent ...
Linux中的内核链表
链表中一般都要进行初始化.插入.删除.显示.释放链表,寻找节点这几个操作,下面我对这几个操作进行简单的介绍,因为我的能力不足,可能有些东西理解的不够深入,造成一定的错误,请各位博友指出. A.Linu ...
Linux中的运行级
1. Linux系统有7个运行级别(runlevel): 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 ...
linux中firewall与iptables防火墙服务
火墙firewall-cmd --state 查看火墙的状态firewall-cmd --get-active-zones 目前所处的域firewall-cmd --get-default-zone ...
linux常用的内核镜像格式
linux常用的内核镜像格式 Linux内核有多种格式的镜像,包括vmlinux.Image.zImage等. 1. Linux内核镜像格式 1.1 vmlinux vmlinuz是可引导的. ...
Linux 2.6内核中新的锁机制--RCU
转自:http://www.ibm.com/developerworks/cn/linux/l-rcu/ 一. 引言 众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁 ...
Redhat Enterprise Linux中如何关闭SELinux?
转自http://www.cnitblog.com/lywaml/archive/2005/06/21/468.html 红帽企业 Linux 4 包括了一个 SELinux 的实现.SELinux ...
Linux中的SELinux详解--16
SELinux 宽容模式(permissive) 强制模式(enforcing) 关闭(disabled) 几种模式之间的转换 在CentOS6.2 中安装intel 的c++和fortran 的编 ...
随机推荐
【JavaScript】JS 中 原始字符串 和 HTML 字符转换
参考资料:http://www.sjyhome.com/javascript/js-html-escape.html JS转换HTML转义符 SJY • 发表于:2013年10月05日 17:04 • ...
mysql order排序
使用order by 可以对结果进行排序, 默认情况下,order by 以升序进行排序,因此ASC 子句是可选的. DESC 是降序排列. 升序 select * from emp where d ...
PHP的高效IOC框架——CanoeDI
一个非常简单且实用的IoC框架,相对于其他的Ioc框架有如下特点: 高效: 框架使用了非常实用且高效的算法,使得框架本身对应用的影响微乎其微,且框架提供了C扩展,最大限度的将性能提升到最高. 配置简单 ...
linux基本工具使用(二)
1 查找某个目录下面一个所有的可执行文件,并且删除(对删除一个工程的可执行文件格外有用) find . -maxdepth 1 -file f -perm -111 | xargs rm
《深入浅出Node.js》第4章 异步编程
@by Ruth92(转载请注明出处) 第4章 异步编程 Node 能够迅速成功并流行起来的原因: V8 和 异步 I/O 在性能上带来的提升: 前后端 JavaScript 编程风格一致 一.函数式 ...
gdb调式
1.PCB版的相应目录下执行命令: gdbserver 10.18.13.84:5555 DvdPlayer 2.linux操作系统执行:(如果是android找到android项目路径下的gdb)m ...
OpenSSL加解密
http://www.caole.net/diary/des.html Table of Contents OpenSSL - DES Summary DES使用的例子 另一个带注释的例子 另一段Co ...
SQL SERVER中架构的理解
在sqlserver 2005中,可能大家在工作或学习的时候会经常发现这样一些问题,你使用一个账户在数据库中创建了一张表,却发现你自己创建的表却没有修改和查询的权限,这是一件很郁闷的事情,在sqlse ...
CSS position overflow float 属性 详解
position overflow float 几个属性比较容易混淆,写一段代码详解各自具体情况: position在w3school的可能取值: 值 描述 absolute 生成绝对定位的元素,相 ...
ISupportInitialize的用处
[译]ISupportInitialize的用处 [译]ISupportInitialize的用处 注:本文是对How ISupportInitialize Can Help的翻译.原文作者编 ...