sepgsql学习总结

这篇文章是对最近一个星期学习sepgsql的一个总结。sepgsql是postgresql的一个插件,可以结合selinux机制来实现postgresql的强制访问控制(MAC),因此,学习selinux是前提。下面归纳了所有的学习资料,这些资料并不是碎片知识,而都是系统化的教程。通过阅读这些资料,很容易理解sepgsql,并很快上手。

资源

关于selinux:

《Getting Started with SE Linux HOWTO: the new SE Linux》中文版 英文版
《selinux详解》
建议先读这本书的前两章。
SE Linux官方文档

关于sepgsql:

postgresql官方手册sepgsql小节
里面是sepgsql的安装步骤,该手册也是学习postgresql的最好资料
sepostgresql Wiki
这篇介绍是在2010之前编写,和现在的版本有一定出入,里面介绍的security_label column,也就是row-level的强制访问控制在最新版本的sepgsql中并未找到。
Google Code上的sepgsql项目
2010后就没有更新,不知道后来是谁在维护
postgresql源码下载页
或 git clone git://git.postgresql.org/git/postgresql.git
源码目录下的contrib/sepgsql/下是sepgsql工具的源码,其中的sql文件夹中有测试用例,是使用sepostgres很好的例子。这些测试用例很重要,因为前面资料中的一些用法在现在的sepgsql版本中已经不支持,因此这些用例是很好的参考。

其它

1、通过runcon来运行程序,可以设置进程的安全上下文,例如:
$:runcon -1 s0:c0 psql
2、赋予标签格式
SECURITY LABEL [ FOR provider ] ON { TABLE object_name | COLUMN table_name.column_name | AGGREGATE agg_name (agg_type [, ...] ) | DOMAIN object_name | FOREIGN TABLE object_name FUNCTION function_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) LARGE OBJECT large_object_oid | [ PROCEDURAL ] LANGUAGE object_name | SCHEMA object_name | SEQUENCE object_name | TYPE object_name | VIEW object_name } IS 'label'

    原文作者:sinyer
    原文地址: https://www.jianshu.com/p/15d19834bd1f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞