(一) Proc目录

1、proc目录

注意:1)不要将proc目录下的数据拷贝到硬盘上,否则硬盘

空间很快被迅速占满。

2)不要用vi打开该目录下的文件。vi是编辑文本文

件的命令,当用vi保存退出的时候,会按照文本文

件的操作方式给编辑的文件添加起始符和结束符,

导致内存中数据被破坏。

所以/proc目录下文件用cat命令查看

clip_p_w_picpath002[4]

/proc目录下的数字目录是当前的进程在内存中的抽象展示

clip_p_w_picpath004[4]

2、proc/目录中主要文件和目录

(1)stat 当前进程在内存中的状态

status 详细的内存状态输出

clip_p_w_picpath006[4]

(2)fd 文件描述符

clip_p_w_picpath008[4]

(3)driver 驱动的内存映射信息

(4)fs 文件系统进程的映射信息

(5)ide 关于ide总线的一些内容

(6)特殊的文件目录:sys目录,显示内核的运行状态信息。sys目录是/proc下唯一可写的目录。对该目录下的子文件目录的修改相当于修改当前内核的运行的方式。

clip_p_w_picpath010[4]

crypto 加密系统

debug 调试信息的

dev

fs

kernel 内核

net 网络

sunrpc

vm 虚拟内存

clip_p_w_picpath012[4]

core 内核的网络功能

token-ring 令牌环

<1>/sys/net/ipv4下的

lp_forward 控制当前内核是否转发ip数据包

值为0 表示内核关闭ip转发功能;

值为1表示开启内核ip转发功能

clip_p_w_picpath014[4]

通过这种方式可以方便的调整内核的功能

<2> tcp_wmem 控制当前tcp写缓存的大小

clip_p_w_picpath016[4]

扩大tcp的缓存空间,处理能力提高

<3>tcp_svncooks

(7)filesystems 记录着目前系统kernel支持的文件系统

cat filesystems

clip_p_w_picpath018[4]

(8)interrupts 当前所有中段总线的简要信息

cat interrupts

clip_p_w_picpath020[4]

(9)cpuinfo cpu的信息

clip_p_w_picpath022[4]

clip_p_w_picpath024[4]

processor 核心编号;

0表示第一个CPU

1表示第二个CPU

vendor_id 生产厂商

model name 当前模块名称

flags 当前CPU支持的各种指令集和各种功能

cpu MHZ cpu的核心频率

coche size cpu核心缓存

physical id 标识的物理核心的编号

当两个physical id相同时,可以判断为一块物理封

装的两颗CPU核心即双核CPU

core id 当两个core id不同时,表示有两个真实核心存在。

如果相同,则后一个是虚拟出来的核心。

(10)meminfo 内存的信息

clip_p_w_picpath026[4]

MemTotal 当前内存大小

MemFree 当前空闲内存大小

free命令是将meminfo的内容格式化输出

(11)loadavg 当前系统的平均负载值

clip_p_w_picpath028[4]

第一列0.00 表示1分钟之内CPU的平均负载,

一分钟之内当前CPU平均每一秒钟处理

的进程数量

第二列0.00 表示5分钟之内的平均负载

第三列0.00 表示15分钟之内的平均负载

第三列 1/148 /前的数字1表示当前采样的这一刻运行队列中

(可以立即交换到CPU内部进行计算的进程)的进程

数量。如果这个数值超过CPU核心数量两倍以上,说

明CPU性能遇到瓶颈。

/后的数字148表示执行命令的采样这一刻的系统中

活跃的任务数量。不包括已经运行和已经结束的任

务。

第四列 4985 当前最大的pid值(进程编号)

(12)uptime 当前系统的运行时间

clip_p_w_picpath030[4]

第一列2506.88 系统开机时间

第二列2428.63 系统正常运行时间

(13)partitions 显示当期系统分区

clip_p_w_picpath032[4]

(14)version 显示当前内核和gcc版本以及当前系统创建的时间

clip_p_w_picpath034[4]

(15)tcp_syncookies 开启可以防止基于syn的洪水***

clip_p_w_picpath036[4]

3、伪文件系统(Virtual filesystem)是在系统运行起来以后,在内存中创立出来的;并且在内存卸载以后执行删除。在磁盘上没有存储相应的数据结构。

伪文件系统不占用硬盘空间。

4、调整内核参数

注意:绝对不能使用vi方式修改

1)使用echo方式传递值,重新启动后会失效。可以使用脚本

2)使用sysctl方式修改

sysctl是读取/etc/ sysctl.conf文件,根据这个文件的描

述,修改内核中相对应的参数。

vi /etc/ sysctl.conf

clip_p_w_picpath038[4]

sysctl -p 把当前的设定值设定为常量

clip_p_w_picpath040[4]

开机启动过程中会执行这条命令,将sysctl.conf文件执行生效。

(二)SELINUX

1、selinux(Security-Enhanced Linux), 安全增强式Linux是

一种强制访问控制(mandatory access control)的实现。

国家安全局安全增强式Linux是一组给Linux核心的补丁

并提供一些更强、更安全的强制访问控制架构来和核心的主

要子系统共同运作。基于机密及完整性原则,它提供一个架

构来强制信息的分离,以对付***的威胁或任何企图略过安

全架构的应用程序。借此限制恶意或设计不良的程序可能造

成的破坏。它包含一组安全性原则组态设置档的范本以符合

一般的安全性目标

2、selinux的由来

SELinux主要由美国国家安全局开发,并于2000年12月22

发布给开放源代码的开发社区。

3、访问控制的分类

1)自主访问控制

这种控制形式可以被用户非法绕过或者被继承的。安全性

较低

2)强制访问控制

这种控制机制是无法绕过的。这种机制下,每个用户及文

件都被赋予了一定的安全级别,用户不能改变自身或任何

客体的安全级别。禁止单个用户确定访问权限;必须是管

理员或其他的管理的组织确定相应用户或组的访问权限。

同时,不同的用户和不同组具有的权限还不一样。

如linux系统

3)基于角色的访问控制

强制性访问控制的缺陷:对相应权限的分级的不够细致,

不能定义细节性的事情。

基于角色的访问控制的优点:

(1)一个用户可以充当多个角色;一个角色也可以由多个

用户来担任

(2)便于我们的授权管理;需要进行相应权限设置的时候,

让多个用户同时确认,才能发生相应权限的变更。

(3)根据工作进行分级,为其赋予最小权限,方便任务的

分担以及任务的分级管理

如mysql中的相应用户权限就是基于角色的方位控制

4)/etc/init.d/httpd 查看本机是否安装apache。

(1)执行service httpd start运行一个apache服务器

clip_p_w_picpath042[4]

(2)查看apache服务进程

clip_p_w_picpath044[4]

apache用户作为普通用户,可以读apache服务器默认

指定的相应/var/www目录;也可以读非这个目录下的内

容,如/etc/passwd.

clip_p_w_picpath046[4]

clip_p_w_picpath048[4]

SElinux会允许网站访问者拥有apache用户身份,但只

能读/var/www目录下的内容,而不能读这个目录之外的

文件。这种权限是ugo权限无法实现的。

先进行selinux的判断机制,经过selinux的判断机制允

许后方可再进行判断ugo的权限部分。

只有部分linux的发行版支持selinux

4、selinux组成

1)安全服务器

外挂的主体,包含是3个基本组成部分:

(1)RBAC(role-based access control基础规则访问

控制),给予当前linux角色访问控制的功能

(2)TE(type enforcement) 类型的加强

(3)MLS(Multi-level security) 多级安全

2)访问策略缓冲

3)网络接口表

4)netlink时间通知代码

5)selinux伪文件系统

提供对于当前进程访问安全服务器的api

clip_p_w_picpath050[4]

除了null这个设备文件之外,文件大小都为0。

6)hook函数

让用户执行内核的每个操作加入到selinux的访问控

制。

5、selinux模式

1)Enforcing

启用和强制执行selinux机制,如果出现违反相应策略的相

关操作或者执行违反相关机制的行为时,selinux会强制禁

止当前行为,并且发出相应的日志报告记录下行为和拒绝操

作的相关信息。

2)Permissive

仅仅警告selinux发现的违法安全策略的操作,不禁止执

行。

3)Disabled

关闭selinux

6、管理selinux模式

getenforce 查看当前selinux运行模式

clip_p_w_picpath052[4]

三种控制方式

1)setenforce修改当前运行状态下selinux的运行模式

clip_p_w_picpath054[4]

1 代表Enforcing ; 0代表permissive

clip_p_w_picpath056[4]

2)通过执行vi /etc/sysconfig/selinux 修改selinux运行模

clip_p_w_picpath058[4]

注意该文件下修改selinux模式,必须重启计算机才能生效。

因为/etc/rc.d/rc.sysinit开机启动脚本,是在开机启动过程中判断selinux的状态。该文件修改不影响当前selinux状态。

当前状态的改变必须用setenforce命令实现。

如果要改成disabled彻底关闭selinux则必须在这个文件修改,然后重新启动计算机。如果计算机正在运行且不能重启,则只能在enforcing和permissive两种状态切换。

SELINUXTYPE=targeted

这里指定selinux使用的相应的安全策略集

targeted -Only targeted network daemons are protected.

表示只保护指定的网络的一些服务

strict -Full SELinux protection.

表示selinux保护功能全开

/etc/selinux/config 和/etc/sysconfig/selinux文件是一样的,

二者是硬链接的关系

3)我们也可以在开机过程中加载内核的时候控制selinux的开启和

关闭。

/boot/grub/grub.conf文件

vi /boot/grub/grub.conf

clip_p_w_picpath060[4]

如果在kenel后加enforce=0,表示不加载selinux模块,即彻底关闭selinux。

7、SELINUX策略:

1)默认的策略级:

/etc/selinux/targeted/policy/policy.21

2)当前系统上下文定义

/etc/selinux/targeted/contexts/目录下的contexts文件

default_contexts 默认的上下文;

vi file_contexts

clip_p_w_picpath062[4]

clip_p_w_picpath064[4]

具体目录下文件的安全上下文的设置;

可以自定义目录的安全上下文设置

3)SELINUX布尔值

/selinux/目录是SELINUX的伪文件系统。

/selinux/booleans/目录下的文件是selinux的布尔值设置。

配置布尔值的命令:

setsebool

setsebool https_use_nfs 1(或者0)

clip_p_w_picpath066[4]

4)ps –Z 查看进程的安全上下文

clip_p_w_picpath068[4]

ll –Z 查看文件的安全上下文

clip_p_w_picpath070[4]

clip_p_w_picpath072[4]:严格意义上安全上下文应该是4个部分,用:分分隔。这里RHEL5中主要使用了三个部分。

第一个部分: root:用户(或者称为身份)。

用来影响哪个域可以进入。本质上是否可执行。为第一层防御。

第二个部分: object_r:角色。

角色是身份的具体实现。用户可以具备不同的

角色;不同的角色也决定那些与可以被用户所

使用。

第三个部分: user_home_t:域(或者类型)。

如果是一个静态的文件,就是一个类型;

类型是分配给一个对象,并决定谁可以访问这

个对象;在静态文件上生效。

如果是一个进程,则称为域。

所有进程都是在域中运行的,域直接决定着进

程的访问。域是控制进程的运行的区域。

域和类型的定义是基本相同的。

不同的是域是对进程的应用;类型是分配给目

录、文件或者sockets套接字接口。

第四个部分:范围或者级别。

对于静态的文件,称为级别;

对于进程,称为范围。

对应的是多类别和多层次安全

5)命令

(1)查看当前selinux的状态:getenforce

设置当前selinux模式:setenforce

(2)取得当前布尔值的相应设置getsebool

getsebool

clip_p_w_picpath074[4]

设置布尔值 setsebool

-P 设置的布尔值变成常量,重新启动后依然生效。

clip_p_w_picpath076[4]

(3)chcon 修改文件的安全上下文

chcon -t user_home_t file

clip_p_w_picpath078[4]

(4)查看当前selinux的运行状态

sestatus

-b 查看当前selinux所有布尔值的状态

(5)restorecon 恢复文件默认的安全上下文

restorecon file

clip_p_w_picpath080[4]

注意:这里的恢复默认,是按照selinux安全策略中对那些指定目录下的文件上下文的描述来修改的或者按照默认的selinux安全策略来修改的。

(6)查看selinux的报警

sealert

sealert –b 在图形界面下打开一个浏览器查看

clip_p_w_picpath082[4]

Summary 总结

Detailed Description 细节,引发报警的原因。

Allowing Access 允许的操作

(7)图像化的selinux配置工具

system-config-selinux

clip_p_w_picpath084[4]

Status的模式修改相当于修改/etc/sysconfig/selinux文件。这里的修改需要重启才能生效。

Boolean 布尔值修改,如修改apache的修改

clip_p_w_picpath086[4]

File Labeling 布尔值文件默认的配置,就可以直接通过Add添加

clip_p_w_picpath088[4]

User Mapping 多类型和多层次安全

Selinux User Selinux用户的身份

root 系统管理员身份

system_u 系统身份

user_u 普通用户身份

Network Port 当前的各个端口预设的配置

Policy_Module 规则集的模块,我们可以通过添加或删除模块扩展当前selinux保护的网络服务的数量。