linux中的内核级防火墙(SELINUX)
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.
linux中的内核级防火墙(SELINUX)的更多相关文章
- 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中文件内核数据结构
3.文件io 3.1 文件内核数据结构 3.2 复制文件描述符的内核数据结构 3.3 对指定的描述符打印文件标志 #include "apue.h" #include <fc ...
- 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中CentOS 7版本安装JDK、Tomcat、MySQL、lezsz、maven软件详解
软件安装 在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下: 安装方式 特点 二进制发布包安装 软件已经针对具体平台编译打包发布,只要解压,修改配置即可 rpm安装 软件已经按照 ...
- 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 ...
随机推荐
- JDK安装及Java环境变量配置
1.JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html. 2.点击A ...
- iframe窗口嵌套,子窗口跳转重叠在父窗口的问题
window.top //最顶层窗口 window.self //当前窗口 window.parent //父级窗口 "window.location.href"."lo ...
- 临界区代码 critical section Locks and critical sections in multiple threads
临界区 在同步的程序设计中,临界区段(Critical section)指的是一个访问共享资源(例如:共享设备或是共享存储器)的程序片段,而这些共享资源有无法同时被多个线程访问的特性. 当有线程进入临 ...
- DevOps时代的软件过程改进探讨 杨振涛 云加社区 今天 作者:杨振涛,腾讯云TVP 本文从Jenkins,DevOps,云原生等视角探讨了软件过程改进在各个时代的挑战和价值,重新审视了SPI在软件开发和交付的效率和质量提升方面的意义
DevOps时代的软件过程改进探讨 杨振涛 云加社区 今天 作者:杨振涛,腾讯云TVP 本文从Jenkins,DevOps,云原生等视角探讨了软件过程改进在各个时代的挑战和价值,重新审视了SPI在软件 ...
- es6语法中的arrow function=>
(x) => x + 相当于 function(x){ ; }; var ids = this.sels.map(item => item.id).join() var ids = thi ...
- MySQL数据库之sql_mode解释
在MySQL5.6中,默认的SQL模式为:NO_ENGINE_SUBSTITUTION, 而在MySQL5.7中默认的SQL模式为:ONLY_FULL_GROUP_BY, STRICT_TRANS_T ...
- 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_09-前端显示当前用户-需求分析
登陆成功 应该要显示用户的信息 cookie只存了用户的身份令牌.不包含用户的信息 拿着短令牌 请求认证服务获取到jwt.然后存储到sessionStorage 1.用户请求认证服务,登录成功. 2. ...
- ReentrantLock、Condition结合使用实现多线程通讯
package maptoxml; import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors; ...
- 置BAT批处理窗口显示颜色
置BAT批处理窗口显示颜色 摘自:https://blog.csdn.net/tp7309/article/details/53450131 2016年12月04日 01:08:33 亦游 阅读数:1 ...
- SpringCloud学习成长之路三 服务消费者(Feign)
一.Feign简介 Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单.使用Feign,只需要创建一个接口并注解. 它具有可插拔的注解特性,可使用Feign 注解和JAX-RS ...