gsecurity 是 Linux 内核的一组修补程序, 重点是增强安全性。除其他外, 它允许系统管理员为系统定义最小特权策略, 在该策略中, 每个进程和用户只有运行所需的最低权限。典型应用是在Web服务器和系统中接受来自不受信任位置的远程连接,例如为其用户提供shell访问的系统。

同grsecurity一起使用的主要组件是PaX,标记数据存储器,如堆栈上的数据存储器,不可执行,以及程序存储器不可写。 防止可执行内存页被注入的代码覆盖,从而防止利用许多类型的安全漏洞,例如缓冲区溢出。 PaX还提供地址空间布局随机化(ASLR),它随机化重要的内存地址,以阻止依赖这些地址的攻击。 PaX本身不是由grsecurity开发人员开发的,可以独立于grsecurity。 grsecurity的另一个组成部分是它提供了一个完整的基于角色的访问控制(RBAC)系统。 RBAC旨在限制对通常由Unix访问控制列表提供的系统的访问,目的是创建一个完全最小权限的系统,其中用户和进程具有正常工作的绝对最小权限,仅此而已。 这样,如果系统受到攻击,攻击者破坏或获取系统上敏感信息的能力可以大大降低。 RBAC通过一系列“角色”进行工作。 每个角色都可以对他们能做什么或不能做什么有限制,这些角色和限制形成一个“政策”,可以根据需要进行修改。grsecurity以各种方式限制chroot,以防止各种漏洞,特权升级攻击,以及添加额外的检查和平衡。 Chroot修改: 在chroot之外没有附加共享内存,在chroot之外没有kill,在chroot之外没有ptrace(独立架构)。 grsecurity还为内核添加增强的审计(auditing)功能。为审核一个特定用户组,审核设备的安装/卸载,系统时间和日期的更改,chdir日志记录等。其他一些事情允许管理员也记录被拒绝的资源尝试,失败的fork尝试和带参数的exec日志记录。 可信路径执行是另一个可选功能,可用于防止用户执行非root用户拥有的二进制文件,或者为可写的。这有助于防止用户执行他们自己的恶意二进制文件或意外执行可能已被恶意用户修改的系统二进制文件(可全球写入)。 grsecurity也加强了chroot“jails”工作的方式。可以使用chroot的jails将特定进程与系统的其余部分隔开来,如果服务受到损害,可以使用chroot监控,完成最小化损坏的可能。 例如将dmesg和netstat命令限制为root用户]。 其他功能和安全性改进: / proc限制不泄漏有关进程所有者的信息;符号链接/硬链接限制,以防止/ tmp比赛;硬链接限制及接到他们不拥有的文件;FIFO /命名管道限制dmesg(8)限制,增强了可信路径执行的实现;基于组的套接字限制。

使用的不同术语,其中一些含义相同。我们在此列出了其中一些术语及其定义。
访问控制列表
“访问控制列表(ACL)是附加到对象的权限列表。该列表指定允许访问对象的人员或内容以及允许对该对象执行的操作。”在这里:ACL用于表示单个角色或主题定义,或整个策略文件。
使用域,组合不属于同一组的用户以及组,以便他们共享单个策略。域名就像角色一样工作。
对象
对象是系统上运行的程序使用的系统的一部分。它可以是文件或目录的绝对路径;能力;系统资源;一个PaX标志;网络访问(IP ACL)。
策略
该策略是由grsecurity强制执行的系统范围的规则集。强制访问控制文章中提供了非常好的描述:“任何对象的任何操作都将根据授权规则集(a.k.a. policy)进行测试,以确定是否允许操作。”
角色
角色是一种抽象,包含存在于Linux发行版中的传统用户和组以及特定于grsecurity的特殊角色。角色可用于将系统管理的职责分解为较小的逻辑责任集,例如“数据库管理员”或“DNS管理员”。将此方法与拥有单个超级用户(例如root)的方法进行比较,该超级用户用于执行系统上的每个管理任务。
规则集
规则集的使用方式与“访问控制列表”的方式相同。它可能更常用于引用角色或主题定义,而不是整个策略文件。
主题
主题使用和访问对象,主题的规则集强制执行它可能使用的对象以及以何种方式使用。在实践中,主题通常是在系统上运行的程序。在grsecurity中,主题被定义为实际程序可执行文件(例如/ sbin / init)或目录(例如/ lib / hal / scripts)的绝对路径。
最简单的方法是通过纠正拼写错误的单词或重构句子或段落来增强现有内容,使其更具可读性。如果您的文本不适合任何其他页面,也欢迎您通过展开正在开发的页面或添加  全新页面来添加新内容。随着grsecurity的积极开发和添加和删除功能,非常感谢帮助保持内容最新。
如何努力

结构

结构遵循grsecurity项目的原始文档,该文档有三个主要章节:安装,配置和规范,以及使用gradm和学习模式。配置和规范被重新命名为策略配置。使用gradm和学习模式被重新命名为管理,并且在策略配置之前也被移动,因为在配置策略之前必须知道如何管理grsecurity。这就是最终的核心结构:安装,管理,策略配置。
受益目标
主要适用于能够自行解决各种复杂性的硬件和软件问题以及实际阅读本博客的人员。了解自己最喜欢的Linux发行版,熟悉从源代码配置和构建软件。
目标
目的是提供全面,可靠和最新的grsecurity及相关工具文档。除了知道如何做某事外,还提供了有关最佳实践的信息以及在实践中学到的常见缺陷。这是主要目标。
每章都有其他目标,定义了读者阅读后应该知道的内容。这些目标是在大部分核心内容到位后定义的,因此在撰写本文时,某些章节可能无法实现其所有目标。
简介 - 读者必须从基本层面了解grsecurity是什么,它的目标是什么以及如何实现这些目标。应该大致了解grsecurity的含义。

转载于:https://www.cnblogs.com/alpine-enterprise/p/10872489.html

alpine-linux grsecurity 安全相关推荐

  1. Alpine Linux:从漏洞发现到代码执行

    本文讲的是Alpine Linux:从漏洞发现到代码执行, 我最近在Alpine Linux的软件包管理器中发现了两个关键的漏洞,分别是CVE-2017-9669和CVE-2017-9671,如果你正 ...

  2. alpine linux 简介

    alpine linux系统操作 文章目录 1.alpine linux 简介 2.alpine国内源 3.包管理 3.1包管理器 3.2apk update 3.3apk search 3.4apk ...

  3. alpine linux系统操作

    alpine linux系统操作 文章目录 alpine linux系统操作 一.Alpine Linux 简介 二.apline 国内镜像源 三.包管理 3.1包管理器 3.2apk update ...

  4. Docker微容器之Alpine Linux 初体验

    0x00 前言 Alpine Linux是一个面向安全的轻型的Linux发行版,基于Alpine Linux的超小型Docker镜像,大小只有5MB,并且可以访问比其他基于BusyBox的镜像更完整的 ...

  5. Alpine Linux 配置使用技巧,docker的基本使用以及docker in docker、docker run docker

    Alpine Linux 配置使用技巧,docker的基本使用以及docker in docker.docker run docker. 最后把基于Linux系统实现的 docker in docke ...

  6. alpine安装启动mysql_在php5-fpm-alpine docker容器中安装php-gd依赖于alpine linux

    试图在docker中的alpine linux上安装GD依赖项. 我正在构建php5-fpm-alpine图像. FROM php:5-fpm-alpine RUN docker-php-ext-in ...

  7. Alpine Linux 3.9.1 发布,面向安全的轻量级 Linux 发行版

    Alpine Linux 3.9.1 已发布,Alpine Linux 是一款面向安全的轻量级 Linux 发行版,体积十分的小. Alpine Linux 是由社区开发的操作系统,它面向 x86 路 ...

  8. alpine linux 执行文件崩溃 报错 找不到/lib/x86_64-linux-gnu/libc.so 解决方法

    原因: 原因: 大多数 Linux 软件都与 glibc 相连接,GNU libc 库(libc 提供标准的 c 库和 POSIX API). 大多数 Linux 发行版都基于 glibc. Alpi ...

  9. alpine linux docker容器时区修改

    适用对象 使用 Alpine Linux 发行版的 Docker 镜像容器. 仅仅适用于没有安装uclibc的系统. 修改步骤 进入容器命令行 # docker exec -it container_ ...

  10. alpine linux 简介(面向安全应用的发行版)apk

    Alpine Linux 是一个社区开发的面向安全应用的轻量级Linux发行版. 适合用来做Docker镜像.路由器.防火墙.VPNs.VoIP 盒子 以及服务器的操作系统,基于uClibc 和 Bu ...

最新文章

  1. 016-热更新之FishingJoy一
  2. 为什么魂斗罗只有 128 KB却可以实现那么长的剧情?
  3. rust(26)-单元类型与never
  4. 点击button时候传递一个参数实现局部刷星_Tkinter的一个小小的规则,如果不了解,可能不会解决掉这个问题...
  5. android studio中error,ERROR在Android Studio中
  6. 第5章 Python 数字图像处理(DIP) - 图像复原与重建14 - 逆滤波
  7. python图像加密模块_使用Pycryp的图像加密和解密
  8. c 控制mysql数据导出_MySql数据库导入导出的三种方式
  9. ES6——let、const和var的用法和区别
  10. Foxpro 简体转繁体的一种方式(代码)
  11. 重置uchome密码
  12. BD和ts是什么意思
  13. 阿里云盘小白羊版!你值得拥有的一款第三方阿里云盘客户端
  14. 怎么查看笔记本内存条型号_怎么看电脑内存条型号 电脑内存条型号查看方法【详解】...
  15. python安装不了是什么问题_python为什么安装了运行不了?
  16. AXI协议详解(9)-数据总线
  17. 如何让项目开发提速?
  18. 2018大学计算机答案,2018年大学计算机程序试题及答案
  19. 研读Rust圣经解析——Rust learn-15(unsafe Rust )
  20. 使用Fidget jQuery插件构建多点触控界面

热门文章

  1. plugin.super mysql_使用MySQ Clone Plugin部署MySQL Group Replication
  2. 在linux中 清屏命令是,急!请问linux下的清屏命令是什么!
  3. conda pip 安装NumPy速度不佳解决方案
  4. python内置函数open_Python学习教程:Python内置函数大总结(下篇)
  5. Windows10下VB6.0开发——常用数值处理函数工具
  6. php include_once 路径,php使用include加密路径的方法介绍
  7. 从Unix开源开发学习应对大型复杂项目开发
  8. clickhouse Aggregatingmergetree表引擎
  9. There is insufficient memory for the Java Runtime Environment to continue.
  10. 实现左侧固定宽度, 右侧自适应的两栏布局常见方法