SELinux(Security-Enhanced Linux,安全增强型 Linux)
配置文件:/etc/selinux/config
SELinux是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。
传统Linux使用的是DAC(自主访问控制)主体是用户;而SELinux使用的是MAC(强制访问控制),主体是进程(即使以root登陆的服务进程,也不能访问所有资源)。
在SELinux模式下是先判断DAC再判断MAC。
由于linux中进程数量庞大,所以需要策略来规定。
SELinux默认定义的策略:
--targeted:这是 SELinux 的默认策略,这个策略主要是限制网络服务的,对本机系统的限制极少。
--mls:多级安全保护策略,这个策略限制得更为严格。
- SELinux的三种工作模式:
-Disable工作模式(关闭模式)
-Permissive工作模式(宽容模式)
-Enforcing工作模式(强制模式)
(可以通过setenforce命令修改,但重启后失效;也可以修改配置文件)
安全上下文:进程、目录、文件都具有自己的安全上下文,通过安全上下文是否匹配,能够决定进程主体对资源是否具备访问权限。详见:SELinux安全上下文查看方法(超详细) (biancheng.net)
权限
访问权限
读取权限:对于文件表示有读取文件内容的权限;对于目录表示有查看目录检索的权限(列出目录下的内容,如ls)
写入权限:对于文件表示有修改文件内容、修改文件名、删除文件等权限;对于目录表示有在目录下创建新对象、删除对象、修改对象属性等权限
执行权限:对于文件表示可以将文件的代码调入内存运行。对于目录表示有切换到当前目录的权限(如cd)所有权
属主
属组特殊权限
SUID
SGID
SBIT
常见的软件包类型
1)rpm软件包:扩展名为.rpm,红帽系列
2)deb软件包:扩展名为.deb,kali、ubuntu、debian系列
3)若软件以tar包发布,查看包中内容,若有configure文件则为编译安装(源代码安装);若有install.sh、setup.bin、INSTALL这样的文件,则为脚本安装;若有文件与软件同名,则多数情况下为绿化版,直接执行即可。
rpm包分析
名称定义规则
如: . rpm
软件包名称-软件版本(兼容性要求很强,依赖需要什么版本必须匹配)-发布次数 . 软件对应的系统平台(x86为32位系统,64为64位系统). 后缀
编译安装(掌握)
1)解包到/usr/src
2)配置./configure(如:./configure --prefix=/usr/local/httpd
)
3)编译、安装make && make install
4)为/usr/local/httpd/bin做软链接到/usr/local/bin
文件底层属性
底层属性>权限
查看方式:lsattr
修改方式:chattr
SET位:SUID、SGID
作用:可以让其他用户执行该文件时临时获得属主或属组权限。让被执行参数认为是root账户在执行命令
粘滞位:SBIT
作用:要使共享目录(内的文件)只对用户开放读、写权限,而执行(删除、修改)权限只能针对用户自己的文件。
方法:对共享目录SBIT设置后能避免出现其他用户对该目录完全拥有执行权限,避免用户互相删除、修改对方的文件。
注意:粘滞位只对目录有效
磁盘分区
查看或管理磁盘分区:fdisk
查看挂载情况:df -h
挂载
将新建分区挂载到已建分区的逻辑“/”目录下(如/mailbox),这样/mailbox目录重新指向新分区(与原目录的数据断开连接,当卸载时可以重新连接)
理解:"/"挂载在已建的分区设备上,/mailbox重新挂载后,逻辑上仍在"/"中。所以可以通过"/"访问到/mailbox,从而打开新建分区的入口
1)临时挂载:用mount命令
2)永久挂载:/etc/fstab文件
例子:写入/dev/sdb1 /mailbox ext4 defaults 0 0
挂载swap:临时:mkswap命令
永久:/dev/sdb5 /swap swap defaults 0 0
(记得修改fdisk中的文件系统ID值,方便其他人查看)
/etc/fstab
格式:Device Mount point filesystem parameters dump fsck
parameters表示挂载时使用的参数,注意有些mount 参数是特定文件系统才有的。默认为default
dump表示dump工具,决定什么时候备份,默认没有该工具为0(忽略)
fsck表示:通过该数值。fsck决定需要检查的文件系统顺序。0表示不会被fsck检查
LVM:动态逻辑卷
- 阶段
PV(物理卷):将分区或磁盘转化成物理卷
VG(卷组):将物理卷打碎后装入一个卷组()
LV(逻辑卷):从卷组中取出相应卷碎片组成新分区
例子:
一共加入三块硬盘,两块作为LVM初始硬盘分配,一块作为后期扩展容量使用。做两个LV卷,一个以ext4系统挂载给/mailbox,一个以xfs系统挂载给/data目录
所有空间都交给LVM,则无需分区直接对硬盘操作
步骤(1)初始分配
PV阶段:
pvcreate /dev/sdb /dev/sdc
VG阶段:
vgcreate [vg名称] /dev/sdb /dev/sdc
LV阶段:
lvcreate -l PE块个数/-L 空间M,G -n [lv名称] [vg名称]
格式化逻辑卷:
mkfs.ext4 /dev/[vg名]/[lv1名]
和mkfs.xfs /dev/[vg名]/[lv2名]
挂载逻辑卷:和挂载分区一样
步骤(2)后期扩展
pvcreate /dev/sdd
vgextend [需要扩展的vg名称] /dev/sdd
lvextend -l +[增加的PE块个数]/-L 空间M,G [需要扩展的lv1位置]
lvextend -l +[增加的PE块个数]/-L 空间M,G [需要扩展的lv2位置]
resize2fs [挂载点1]
xfs_growfs [挂载点2]
(xfs的刷新不是用resize2fs)
注意:步骤中“位置”与“名称”有区别
删除逻辑卷:(1)umount [挂载点]
(2)lvremove [逻辑卷位置]
减小逻辑卷/卷组:“百度”
磁盘配额(quotas)
条件:需要linux内核支持、安装xfsprogs与quota软件包
特点:作用范围:针对指定的文件系统(分区)
限制对象:账户账号、组账号
限制类型:软限制和硬限制
(一)EXT4文件系统
1、让文件系统支持配额属性
mount -o [remount,]usrquota,grpquota [分区] [挂载点]
(临时)
[分区] [挂载点] [文件系统] defaults,usrquota,grpquota 0 0
(永久,/etc/fstab,修改后需要重新挂载或重启)
2、扫描支持配额的分区,生成配额文件
quotacheck -augvc
结果会在分区生成两个文件
3、为某账号设置配额项
edquota -u [账号名]
(进入类似vi模式)
其中blocks soft hard inodes soft hard
各列表示用户在该目录已占用数据大小、软限制大小、硬限制大小、已有文件数量、软限制大小、硬限制大小
4、启用配额功能
quotaon -ugv [挂载点]
5、验证配额功能(更改权限,让该用户到目录创建文件)
6、查看配额信息
quota -u [账号名]
(在用户角度看配额)
或repquota [挂载点]
(在文件角度看用户配额)
(二)XFS文件系统
1、让文件系统支持配额属性
mount -o usrquota,grpquota [分区] [挂载点]
(不支持remount,若已挂载需要先卸载)
2、直接针对用户编辑配额项
xfs_quota -x -c 'limit -u bsoft=N bhard=N isoft=N ihard=N [用户名]' [挂载点]