Linux内核功能介绍及如何使用保护您的网页安全
在本文中,我们快速浏览了Linux内核的许可流程,并向您展示了如何使用它们来保护您的网页或应用安全
传统上,Linux内核通过以下两类来区分其进程:
特权进程:这些进程使用户可以绕过所有内核权限检查。
非特权进程:这些进程需要进行完全权限检查,例如有效的UID,GID和补充组列表。
授予对用户进程的完全特权访问权限可能会导致系统滥用,例如未经授权的数据更改,后门,更改的ACL等。Linux 2.2附带了一个称为功能的解决方案。功能使开发人员可以授予二进制文件/文件特定的权限。
假设我们要使用非特权用户在端口80上启动Python的Simple HTTP Server模块。如果我们尝试在不授予任何功能的情况下开始该过程,则会收到以下错误:
anshulp@dzone-vagrant-box:$ python -m SimpleHTTPServer
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line , in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line , in _run_code
exec code in run_globals
File "/usr/lib/python2.7/SimpleHTTPServer.py", line , in <module>
test()
File "/usr/lib/python2.7/SimpleHTTPServer.py", line , in test
BaseHTTPServer.test(HandlerClass, ServerClass)
File "/usr/lib/python2.7/BaseHTTPServer.py", line , in test
httpd = ServerClass(server_address, HandlerClass)
File "/usr/lib/python2.7/SocketServer.py", line , in __init__
self.server_bind()
File "/usr/lib/python2.7/BaseHTTPServer.py", line , in server_bind
SocketServer.TCPServer.server_bind(self)
File "/usr/lib/python2.7/SocketServer.py", line , in server_bind
self.socket.bind(self.server_address)
File "/usr/lib/python2.7/socket.py", line , in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno ] Permission denied
让我们将CAP_NET_BIND_SERVICE 功能添加到我们的Python二进制文件中。
sudo setcap 'CAP_NET_BIND_SERVICE+ep' /usr/bin/python2.
上面的命令指出我们正在向 文件添加 CAP_NET_BIND_SERVICE 功能 /usr/bin/python2.7。 +ep 表示文件有效且已允许( "-" 将其删除)。
现在,让我们尝试再次在端口80上运行Python Simple HTTP Server模块:
anshulp@dzone-vagrant-box:$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port ...
172.28.128.1 - - [/Jul/ ::] "GET / HTTP/1.1" -
172.28.128.1 - - [/Jul/ ::] code , message File not found
172.28.128.1 - - [/Jul/ ::] "GET /favicon.ico HTTP/1.1" -
172.28.128.1 - - [/Jul/ ::] code , message File not found
172.28.128.1 - - [/Jul/ ::] "GET /favicon.ico HTTP/1.1" -
现在,我们可以通过非特权用户通过特权端口80提供流量。
在撰写本文时,可以根据需求分配40多种功能。
有3种模式为功能:
e:有效- 表示该功能已“激活”。
p:允许- 表示可以使用该功能。
i:已继承- 表示此功能由子元素/子流程继承。
功能提供了一种简洁有效的方法,可以将特权权限分配给非特权用户。
好文推荐:
Linux内核功能介绍及如何使用保护您的网页安全的更多相关文章
- Linux内核策略介绍
Linux内核策略介绍学习笔记 主要内容 硬件 策略 CPU 进程调度.系统调用.中断 内存 内存管理 外存 文件IO 网络 协议栈 其他 时间管理 进程调度 内核的运行时间 系统启动.中断发 ...
- Linux内核版本介绍与查询
Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息 ...
- Linux内核策略介绍学习笔记
主要内容 硬件 策略 CPU 进程调度.系统调用.中断 内存 内存管理 外存 文件IO 网络 协议栈 其他 时间管理 进程调度 内核的运行时间 系统启动.中断发生.系统调用以及内核线程. 进程和线程的 ...
- Linux 内核剖析
https://www.ibm.com/developerworks/cn/linux/l-linux-kernel/ 由于本文的目标是对 Linux 内核进行介绍并探索其体系结构和主要组件,因此首先 ...
- Linux内核编译与安装
2013-04-16 Linux内核介绍 Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统.内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制.L ...
- 20135327郭皓--Linux内核分析第三周 构造一个简单的Linux系统MenuOS
Linux内核分析第三周 构造一个简单的Linux系统MenuOS 前提回顾 1.计算机是如何工作的三个法宝 1.存储程序计算机 2.函数调用堆栈 3.中断 2.操作系统的两把宝剑 中断上下文的切换 ...
- linux内核分析(网课期末&地面课期中)
堆栈变化过程: Linux内核分析——计算机是如何工作的 计算机是如何工作的?(总结)——三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 函数调用堆栈,高级语言得以运行的基础,只有 ...
- 精《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #7 Cgroup、Namespace、Linux容器
HACK #7 Cgroup.Namespace.Linux容器 本节将介绍Cgroup与Namespace以及通过这两个功能实现的容器功能.CgroupCgroup(control group)是将 ...
- Linux内核分析实验三----跟踪分析Linux内核的启动过程
一.Linux内核源代码介绍 1.根目录 arch/x86目录下的代码是我们重点关注的,arch中包括支持不同CPU的源代码. init目录下包含内核启动相关的代码,如main.c(start_ker ...
随机推荐
- Beta冲刺<2/10>
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺--第二天(05.20) 作业正文 如下 其他参考文献 ... B ...
- IE对于input checkbox onclick方法显示不支持此对象和方法的解决方案
网站注册页,协议结束后,通过input checkbox勾选,进行下一步,FF没问题,IE一直显示不支持此对象和方法. 网上查找大部分说函数名称与系统函数重名,而事实上不是. <div name ...
- java 中的 viewUtils框架
IoC的概念介绍 控制反转(IOC)模式(又称DI:Dependency Injection)就是Inversion of Control,控制反转.在Java开发中,IoC意 味着将你设计好的类交给 ...
- python实现从文件夹随机拷贝出指定数量文件到目标文件夹
为了方便倒腾数据,功能如题,该脚本和操作目录在同一根目录 实际运行时要手动修改程序中:cpfile_rand('img', 'outfile', 10) # 操作目录,输出目录,输出数量 import ...
- Java工具类——日期相关的类
前言 在日常的开发工作当中,我们经常需要用到日期相关的类(包括日期类已经处理日期的类),所以,我就专门整理了一篇关于日期相关的类,希望可以帮助到大家. 正文 一.日期类介绍 在 Java 里面,操作日 ...
- Python3笔记006 - 2.3 变量
第2章 python语言基础 python语法特点 保留字与标识符 变量 数据类型 运算符 输入和输出 2.3 变量 在python中,不需要先声明变量类型,直接赋值即可创建各种类型的变量. 1.定义 ...
- (私人收藏)清新文艺唯美PPT模板
清新文艺唯美PPT模板 https://pan.baidu.com/s/12hP5pT2KfPGCgOnvp0rOIAf0dj
- H5和原生的职责划分
前言 在JSBridge实现后,前端网页与原生的交互已经通了,接下来就要开始规划API,明确需要提供哪一些功能来供前端调用. 但是在这之前,还有一点重要工作需要做: 明确H5与Native的职责划分, ...
- 6.29模拟赛 (T1:李时珍的皮肤衣 T2:马大嘴的废话 T3:SSY的队列 T4:清理牛棚);
啊,又是考炸的一天,成功的退步了三名,啊,成共的看错了T1 的题意 ,水了80分. 第十五名就是我,额,已经有点倒数的感觉了,并且一道题都没AC 我太难了. 好了,废话不多说了,下面正式提接: 这 ...
- C# 基于内容电影推荐项目(一)
从今天起,我将制作一个电影推荐项目,在此写下博客,记录每天的成果. 其实,从我发布 C# 爬取猫眼电影数据 这篇博客后, 我就已经开始制作电影推荐项目了,今天写下这篇博客,也是因为项目进度已经完成50 ...