selinux 了解2
凡是对内核级, 如selinux的修改, 不只是对软件, 程序的修改, 那么修改之后都要重新启动.
针对windows下的截图, 像linux下的screenshot截图那样设置快捷键 shift+super+A 设置无效! 好像不能识别super, 所以就设置成shift+alt+a了.
=========================================================
可以记忆一下 某某影音 的快捷键设置 : 因为估计它也是借鉴 ffmpeg, mplayer 而来的, 可能对后面有帮助:
1.关于设置的快捷键: f3: 播放列表, f4: 播放设置, 如设置图像,声音,声道等等. f5: 就是程序本身的设置
2. 关于播放速度: ctrl+up/down调整速度; R复原播放速度.
3. 关于声音大小: up/down, M静音.
4. 快进: left/right=5秒, ctrl+left/right=30s, alt+left/right=300s=5min.
5. 重复播放: ctrl+1: 设置A点 ctrl+2: 设置B点, ctrl+3: 取消重复;
6. 截图: alt+s:
7. 屏幕大小: enter全屏, shift+enter迷你模式. T(top)在最上面.
8. 文件: ctrl+o打开文件, ctrl+f=打开文件夹; ctrl+u: 打开url, ctrl+s: 关闭当前播放的视频但是不退出程序.
(windows和linux的系统, 都会考虑对方系统使用人员的一些习惯, 做一些通用的 共通的, 非反人类的设置, 如:alt+esc, super+up/down等等)
=========================================================
selinux是通过 "策略" 来 "控制, 就是 限制" 哪些进程(域) 可以/不可以访问哪些文件(安全上下文)
通常使用的是selinux的预置策略. 除非是 我们自己开发的程序, 你才需要自己写selinux策略.
selinux策略类型通常是 target. 意思是: 只有target指定的 进程域 "才" 受selinux的控制/限制, 其他非target的进程不受selinux的限制, 就好象这个selinux不存在一样.
======================================================
/boot/grub2/grub.cfg中的 $prefix 就是指文件的目录路径 /boot/grub2???
if [ -s $prefix/grubenv ]; then
load_env
fi
而实际决定grub的条目和默认启动项的还是在/etc中:
/etc/grub.d : 下面是一些可执行的 文本文件, 如 00_header;
设置默认的超时时间和 启动条目: /etc/default/grub 文件: GRUB_TIMEOUT=5;.... GRUB_DEFAULT=saved;
===========================================
selinux 的target策略 "只限制网络应用程序,如: dhcpd, named, httpd, mysqld,...."
setenforce 只能设置0和1, 0=permissive, 1=enforce
为什么selinux会影响我们对文件的操作呢? 是因为, 我们在进行某些操作的时候, 可能会改变某些文件的context 安全上下文, 所以, 在后面进行操作的时候, 就发生了限制问题.
要对文件的context进行操作, 主要有两个方法:
- restorecon: restore - context, 恢复文件的context为原来默认的: restorecon -R -v /var/www
- chcon: change - context, 改变context,通常是根据某个默认文件为参考: chcon --reference=/etc/named.conf.origin /etc/named.conf
================================================
对vmware workstation的界面熟练掌握:
- 版本是10.0, 能够完美 无故障的 使用;
- 可以对单个虚拟机进行配置, and you are also able to configure the application totally: the shortcut keyboard is ctrl+p.
- 有几个部分区域的按钮: 一个是电源按钮/ shots区域, 快照备份, 快照管理, 快照恢复/ 视图区: 左边的库"侧边栏", 底部的"缩略栏", 全局视图/ 控制台视图(即可以查看,操作控制台, 但同时vm并没有关闭).
- 其中, 全屏视图: ctrl+alt+enter. 采取"exclusive"独占模式.
一般不要点 "三个键重叠在一起"的那个按钮, 那是发送 "ctrl+alt+del"
====================================================
实际上, 对selinux的理解可以总结为以下几点:
- 基于文件/目录的所有者, 读写权限的acl是dac, 是基本的linux安全设置;
- 而selinux是在dac基础上的 进一步的 安全防御措施. 如果在不是特别敏感和重要的 服务器上可以 关闭;
3. 如果开启seliux, 实际上是对linux的安全 再加上了 一把 强有力的 大锁: 可以把它理解为: "selinux主要就是针对 进程, 如httpd, named等网络服务程序, 对文件的访问, 主要就是这个作用, 因为 系统的危险 主要 就是来自 网络的 访问!"
举例:
对httpd服务, 默认的访问/var/www/html.
对一些 系统默认的 目录, 如: /etc. /usr/, /var/www/html等, 系统都有默认的selinux上下文设置. 如:对/var/www/html中的文件, 系统默认的context是: system_u: object_r: httpd_sys_content_t....., 也就是说, 只有httpd才能访问这些文件??? 或者说, httpd要能够访问/var/www/html中的文件, 这个文件一定的安全上下文 一定要是: system_u: object_r: httpd_sys_content_t..., 如果不是就不能访问. 这个 就是selinux对httpd 对文件的 访问限制.
管理员在做一些mv, cp(主要就是这两个吗?) 文件操作的时候, 将其他一些文件, 移动到 html文件夹中来, 并不会改变文件原来的 type类型.
当文件的类型, 不是 /var/www/html/的context时, 就会被selinux限制!!!
要将在/root目录下创建的文件, (其context type是: .....:admin_home_t)移动到 /var/www/html/时, 由于selinux context type类型限制, 所以httpd就不能访问移动过来的 index.html
要修改, 要 troubleshoot 这个selinux的问题, 只要 restore或change context就好了:
[root@localhost ~] # restorecon -R /var/www/html ;;;恢复/...html中的所有文件的context为系统原来默认的type...
或 chcon --reference=/var/www/html /var/www/html/index.html
============================================================
虚拟机的独占exclusive模式/
- 与全屏模式比较, 全屏模式时, 鼠标移到顶端会显示工具栏和边缘条, 而exclusive模式则不会;
- 什么时候使用独占模式? 当某些浏览器的顶端是标签页, 鼠标切换标签页会和工具栏和边缘条相混淆时, 可以采用独占模式.
- 无法为独占模式设置 快捷键, 因为系统的提供的 快捷键, "热键"修改, 只是针对ctrl+alt等几个???
单独对虚拟机(官方的语言/称谓叫 客户机 )...的设置,是ctrl+d, 对整个程序的设置是ctrl+p;
- unity: 统一, 完整, 一体化: Europe economic unity. vmware中的unity, 是指将 虚拟机 的 "桌面" 搬到 物理机/主机 上来. 也就是说, 即使没有全屏或独占(所谓独占, 是指 该vmware只 显示在当前监视器上, 是针对有多个监视器的 情况), 虚拟机中的窗口和桌面, 也不仅仅局限在vmware的窗口中, 而是全部显示到真机的 桌面上.
unity就是将真机和虚拟机 "统一"了起来, 目的是, 避免 在 真机和虚拟机之间 频繁地 移动 鼠标
但是unity 只能针对 图形界面, 对于centos字符界面是不行的, 报错: "不能修改客户机的os的分辨率".
========================================================
网站的标题title, 其实还是比较重要的, 它可以在firefox, chrome等浏览器在多个标签页的显示中, 看出/知道是 当前是在浏览哪个页面, title也可以做到 像普通的程序一样, 显示文档/文件的 标题的作用. 要习惯于看 网页的title.
在linux中 要排错的话, 遵循的几个步骤: iptables防火墙 -> server配置(如httpd服务器本身的配置, named的配置等) -> file/directory的权限 -> selinux
防火墙只能控制 数据流的方向, 不能区别账户信息, 控制tcp/.ip流...
如果因为selinux 阻止了 网络应用程序 "domain" 对文件 "type"的访问, 如何解决?
如果是mv / cp等操作, 使得 移动或复制的 文件 跟目标目录的 context属性不一致, 则可以采用 restorecon, chcon的方法进行 恢复
那, 如果不是因为mv, cp等的操作, 根本就没有这样的操作呢? 如ftpd服务, 普通用户, 不能访问自己的 家目录呢?
你不能关闭 selinux, 这个是很好的 加固 安全的 手段和工具. linux比windows 安全的表现 就是这样的, windows通常只有/主要有 防火墙??? 但是linux有 多重 (4重)保护!!!
你不能因为你不习惯, 不熟悉 selinux, 就把它关闭了, 那个是 捡了芝麻 丢了西瓜,这个时候, 因为是 selinux阻止了 网络进程domain对 文件type的访问, 而selinux 的targeted策略的实现, 是 通过 许多 bool值来实现 的: 在服务安装/配置的时候, 就会自动将要配置的 网络程序 默认的 规则 items (rules, sebools) 写入到 targeted策略中, 所以, 对 selinux的 调整 , 实际上 是可以精细的 通过 控制 某些相应的 sebool 的值 来控制:
[root@localhost] # getsebool -a | grep "http' 或者 'home'
那么, 从上面的selinux可以看出, httpd是不能访问用户的 家目录的, 而samba也不能创建家目录, 遇到这样的问题, 就是由selinux引起的...
selinux的思想, 更先进, 不是对用户来设置权限, 而是另外一种思路, 是通过 控制 进程/程序, 对资源 /文件等的 访问限制 来实现的, 而不管你运行 这个进程的用户是谁, (即使是root), 也只能访问特定的资源...
selinux的思路是, 是对进程进行限制, 是一种 mac: mandatory强制访问, 是对进程 而是不是对人 /用户进行限制, 因为 真正的/最终的对电脑上的任何东西产生影响的是 "动作" 是"进程" , 就如同人的犯罪一样, 是以人的行为, 而不是以人的思想来判断有罪的. 所以, 只要对进程进行了限制, 即使你有再大的权限, "说的比皇帝都大", 但是你没有具体 的 "执行" "实际行使的做事" 权力, 那仍然是空的, 仍然不会产生破坏的.
==========================================================
管理 selinux的命令有几个:
getenforce, setenforce. restorecon, chcon;
seinfo -r/-u/-b/-t/-A, sesearch, semanage....
但是这些不是单独 的程序包, 要使用这些 程序包, 需要安装 : setools-console程序包:
yum install setools-console...........
安装了 setools-console后, 可以使用seinfo 查看整个的selinux的 架构:
参考文章:http://blog.chinaunix.net/uid-28216282-id-3377263.html
对于 "文件或进程", 如果对方返回的 context信息: 的 system_u, 或者 system_r, 就说明查看的是 进程!! 而不是文件!!
=====================================================
centos7的新特性 new features
ifconfig命令在net-tools软件包里
nslookup,dig在bind-utils中
2,centos使用了systemd来代替sysvinit
systemd使用方法:
systemd的服务管理程序
systemctl是最主要的工具。它融合 service 和chkconfig的功能于一体。你可以使用它永久性或只在当前会话中启用/禁用服务。
凡是关于systemctl的东西, 关于sys v init启动功能的东西, 都是放在** /usr/lib/systemd/system/ **下面的, 包括runlevel等等...
systemd使用了target这个 目标, 这个"广泛使用的概念" , 来代替在sysvinit中使用的 运行级别 runlevel, 安全selinux等等.
在/etc/systemd/system下的target其实是 /usr/lib/systemd/system下各种target的符号链接
在/etc/selinux/targeted/policy/policy.29, 和 /usr/lib/systemd/system/*.target中的policy 中的数字, 有的是policy.21, policy.28/29 这个表示的是 selinux 中的 policy的版本号. 不是selinux的版本号
systemd 是用来管理 服务+系统(包括设备device, 装载点mount, 套接字sockets,....) +状态... 这些都叫单元文件unit-file, (其实是这些功能的配置文件),
参考文章很好: https://blog.linuxeye.com/400.html
systemd有两种单元文件, 一种是 用户安装包时, 添加的单元文件, 另一种是系统管理员 /系统安装的
[[[[
systemd单元文件的语法来源于 XDG桌面入口配置文件.desktop文件,最初的源头则是Microsoft Windows的.ini文件。单元文件可以从两个地方加载,优先级从低到高分别是:
/usr/lib/systemd/system/: 软件包安装的单元
/etc/systemd/system/: 系统管理员安装的单元
注意: 当systemd运行在用户模式下时,使用的加载路径是完全不同的。
]]]
.../systemd/system/ 下的target等文件和对应的.target.wants的关系?
通常, .targeted.wants是一个目录, 里面记录的是前面 的这个 相应的 target 所需要的 依赖文件, 顾名思义, wants, 表示的 是 被需要的文件集合..
可以打开其中的文件,看里面的文件的内容, 就知道 里面的 [Unit] 中的 Wants=... 表示被需要, 不一定必须的, 如果是Requires 则表示是必须的, After则表示启动的先后顺序...
========================================================
关于selinux的命令很多, 如查看selinux的状态, 使用: sestatus
: selinux的状态 !== selinux的模式:
selinux status: enalbed;
selinux mode: 可以是permissive.
设置/获取selinux的命令是用的 enforce, 不加ing, 而真正的模式, 则是 Enforcing , 要加ing, 而且要首字母大写, 如:Permissive
vim: warning: output is not to a terminal. 输出没有到终端, 因为vi/vim并没有输出内容到终端, 所以你后面用管道命令的话, 就会报错..., 如: vim /var/log/audit/audit.log | tail
ctrl+c和Ctrl+z的区别
ctrl+c是中断 "前台程序组"中的所有程序, 发送的是 SIGSTP信号??
ctrl+z是暂停 "挂起" suspend ..., 发送的是 SINGINT 信号..
重点是: ctrl_c并不一定能够终止程序, 所以有时候按ctrl+c并没有反应, 要按 ctrl+z才能退出前台被 卡住 的程序
当ctrl+z 挂起前台程序后, 可以按 fg/bg 前台/后台 命令 来切换...
===================================================
可以把selinux理解为城管, 城管记录的店铺的位置就相当于资源的 标签type context. 进程主体domain, 要访问资源, 除了要满足工商局的dac要求, 还要满足城管的上下文要求, selinux的context记录:
那么 ,城管所记录的几号店 ---就相当于店铺的 门牌号 --- 就相当于程序/资源的context上下文 type类型. 如果你更换了门牌号, 就相当于更改了 资源的上下文信息, 这时城管就会阻止你营业, 同样的, selinux就会阻止程序/服务的运行....(比如, 你修改了httpd的documentRoot的地址....)
修改文件的context?
有两种方法:
1. 是, 可以直接用-t来指定context类型, (目录要注意用-R):
chcon -R -t httpd_sys_content_t /www
2. 是, 如果记不住,或不知道, context类型, 就用参考来做:
chcon -R --reference=/var/www/html /www
创建本地的光盘yum仓库非常简单:
/etc/yum.repos.d/cdrom.repo:
[cdrom]
name=cdrom local repository
baseurl=file:///mnt
enabled=1
gpgcheck=0
===================================================
下面命令用于列出正在运行的服务或其他unit: systemctl , 或者:systemctl --list-units
===================================================
要使用setroubleshoot, 就要启用两个服务, 一个是setroubleshoot服务, 另一个是xinetd服务.
"玉米或dnf"的list, 显示所有可以安装的包, 和已经安装的包;
list package-name, 显示 已经安装的包
list中, 支持通配符* ?, 但是要球名字要完整:
===================================================
关于 selinux的排错, 有一个比较好的参考: http://bbs.chinaunix.net/thread-1925078-1-1.html
AVC: access vector cache. vector: 矢量/向量/容器/载体. 这里可以理解为 访问的所有东西, 访问的队列 等等.
type=AVC ... 表示当前这条selinux信息是由于访问 引起的 ???
挂于selinux排错, 有两个工具: 一个是setroubleshoot, 另一个是audit本身.
aduit提供了两个命令: audit2allow, audit2why. 他的日至在: /var/log/audit/audit.log. 注意没有auditd没有d, 后面的日志是audit的源, 可以认为audit就是为selinux记录日志的
通过查看和设置selinux的bool值: getsebool -a |grep '....', setsebool -P(永久生效) ftp_home_dir 1. (将ftp_home_dir这个bool值设为on)
===================================================================
查看audit.log中的内容, 一个条目表示一条audit错误信息:
missing or disabled te(type enforcement) allow rules?
**TE: 也叫做 类型强制, Type Enforcement. 是selinux的核心. **关于TE 的文章参考:http://blog.csdn.net/loongembedded/article/details/50845557
fedora23和 centos7 的selinux的policy 配置文件location is: /etc/selinux/targeted/policy/policy.29, 可惜是不可读的, 这个里面就是selinux的具体规则. 里面写的可能就是: allow, deny...等等内容:
audit2allow < /var/log/audit/audit.log创建 TE 允许规则:
如果是某一次, 启动时, 需要关闭selinux, 那么在 启动内核时, 按'e", 在内核的最后面, 加上: selinux=0 即可..
selinux 了解2的更多相关文章
- 关闭selinux
1.查看SELinux状态:getenforce Enforcing(启动) disable(禁用) 1.禁用SELinux(重启后依然生效) 修改 vi /etc/sysconfig/selinux ...
- 关闭SELinux和iptables防火墙
1.关闭SELinux: 编辑SELinux配置文件: [root@Redis selinux]# vim /etc/selinux/config 修改SELINUX配置项为disable SELIN ...
- 开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux
开发thinkphp的时候, 总是会出现各种个样 的奇怪的毛病, 比如: 说什么Application目录不可写, 比如: 说什么 _STORAGE_WRITE_ERROR, 不能生成 Runtime ...
- linux系统的初化始配置(包括网络,主机名,关闭firewalld与selinux)
每次我们使用Linux都会对系统进行初始化的配置,下面我们一一列出来. 1.服务的开启 systemctl enable firewalld.service //将指定的服务设置为开机启动 syste ...
- SElinux对一些服务关系的影响
kerberos 允许系统使用kerberos setsebool -P allow_kerberos 1 setsebool -P krb5kdc_disable_trans 1 service ...
- Centos 7 安装 设置 IP地址,DNS,主机名,防火墙,端口,SELinux (实测+笔记)
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.虚拟系统安装 1.1 使 ...
- Linux下开启关闭SeLinux
SELinux (Security-Enhanced Linux) in Fedora is an implementation of mandatory access control in the ...
- 关闭Linux防火墙(iptables) 及 SELinux
一.关闭防火墙 1.重启后永久性生效: 开启:chkconfig iptables on 关闭:chkconfig iptables off 2.即时生效,重启后失效: 开启:service ipta ...
- selinux 导致无法启动httpd
selinux 导致无法启动httpd ansible_dire:~ # /etc/init.d/httpd restart 停止 httpd: [失败]正在启动 httpd:(13)Permissi ...
- Linux selinux iptables
关闭SELINUX – 使用getenforce命令检查SELINUX状态,若结果不是”Disabled”,可使用setenforce 0命令临时关闭SELINUX.要永久关闭SELINUX,需修改/ ...
随机推荐
- 中国各个省市县的人口统计,echart展示
公司要做一个excel形式的人口统计表,我感觉应该更直观一些展示,所以就选用了echart进行展示,由于时间短所以制作的比较简单粗糙,但相应的数据还是有很大的可参考性. 刚好下载了jfinal3.5, ...
- 详解 nginx.conf 配置文件
Nginx 配置文件主要分为 4 部分: Main 全局设置:影响其他所有设置 Server 主机设置:配置指定的主机和端口 Upstream 负载均衡服务器设置 :设置一系列的后置服务器 Locat ...
- 026-Cinder服务-->使用NFS作为后端存储
以下将介绍如何使用NFS共享作为Openstack后端存储,本案例在计算节点上配置nfs [root@linux-node2 ~]# yum install -y openstack-cinder p ...
- Codeforces Round #567 (Div. 2)B. Split a Number (字符串,贪心)
B. Split a Number time limit per test2 seconds memory limit per test512 megabytes inputstandard inpu ...
- CPU指令重排序与MESI缓存一致性
一.重排序场景 class ResortDemo { int a = 0; boolean flag = false; public void writer() { a = 1; //1 flag = ...
- u-boot 用哪个lds链接脚本
顶层Makefile文件中 : ifndef LDSCRIPT #LDSCRIPT := $(srctree)/board/$(BOARDDIR)/u-boot.lds.debug ifd ...
- Centos7.5 ZABBIX4.0.3版本的编译安装
Zabbix监控的搭建理论 1. Zabbix Server会去采集监控数据,采集的监控数据会写入到SQL数据库 2. Zabbix的WEB后端采用php语言开发,所有配置信息.用 ...
- SpringBoot之集成数据库
一.集成 MySQL 数据库 1.1 配置 MySQL 添加依赖 <dependencies> <!--Spring 数据库相关依赖--> <dependency> ...
- 在父组件中,传值给子组件-vue
1.通过 props <x-test :name="username"></x-test>1)props为字符串数组 props: ['name']2)pr ...
- Django【第1篇】:Django之MTV模型
Django框架第一篇基础 一个小问题: 什么是根目录:就是没有路径,只有域名..url(r'^$') 补充一张关于wsgiref模块的图片 一.MTV模型 Django的MTV分别代表: Model ...