一、selinux
作用:通过对软件进程限制某些权限,从而保证系统的安全。通过上下文类型和设定好的上下文类型是否一致。如果一致,那么软件就可以完成后续的操作,例如访问文件中数据,或者让数据通过某个端口。做好个人防护不容忽视
注意:selinux的功能有点类似360安全管家之类 的软件,但是他不能完全代替防火墙,杀毒软件,它的本意是在这些软件的基础上,进一步加强系统对软件的控-制,从而保证系统-- 的安全。
1.selinux的三种模式
如何查看系统中selinux的当前模式?
getenforce
(1)enforcing:强制模式,selinux处于运行状态:凡是软件违反selinux规则的操作,都会被禁止,而且会被记录下来。
(2)Permissive:许可模式,selinux也是处于运行状态,凡是软件违反selinux规则的操作,不会被禁止,但是会被记录下来。
(3)disabled:禁用模式,selinux处于关闭状态,凡是软件违反selinux规则的操作,不会被禁止,也不会被记录下来。
2.如何修改selinux的运行模式
(1)临时修改(临时生效,系统一旦重启就会生效)
setenforce 模式(1代表Enforcing,0代表Permissive)
(2)永久修改
(凡是看到永久生效,大概率都是要修改某个配置文件,然后让系统在启动过程中,可以加载这个文件里的内容。)
vim /etc/selinux/config
# permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=模式 # SELINUXTYPE= can take one of these three values: |
如果考试过程中,涉及到修改当前系统selinux模式。注意为了能在当前环境和重启后都生效,一般都是临时生效和永久生效都要进行。如果只改配置文件永久生效,那么只能等重启系统后,当前环境selinux模式才会发生变化。
关于权限的设置
3.软件针对文件内容访问的限制
作用:通过比较文件上的selinux上下文类型是否和设定的默认上下文类型一致,如果一致才可以访问文件的内容,如果不一致那么禁止访问。
(1)如何查看文件的上下文类型
ls -Z 文件的路径(如果想要查看目录本身的上下文还需要加上-d选项)
unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/index.html
其中在文件的上下文中,最重要的是上下文类型(特点:是以_t结尾),决定了软件是否有权限访问文件的内容。
(1)如何修改文件本身的上下文
注意:修改文件本身上下文的目的就是为了和系统设定的默认上下文保存类型一致。
1. 如何去查看文件设定的默认上下文
semanage fcontext -l
(1)已经设定好正确的默认上下文的情况
那么只需要把文件的上下文恢复重置成默认上下文即可
restorecon -Rv 文件路径
(2)文件本身设定的默认上下文是错误的
1. 修改文件默认上下文
注意:要学会使用man semanage-fcontext查看手册中的例子,进入后/EXAMPLE回车。
semanage fcontext -a -t 上下文类型 "目录路径(/.*)?" (-a 添加,-m修改 -t 指明修改的类型 注意:如果路径是一个目录的话那么就后面一定要加上(/.*)? 目的为了保证此目录下的所有文件默认上下文都发生修改,如果是具体文件的话就不需要)
题目: 将/var/www/html下的文件的默认上下文修改为admin_home_t,然后尝试从浏览器中访问,请问能否正常访问(若更改selinux运行模式,效果如何)127.0.0.1:55/file1
注意: 由于浏览器的缓存机制,可能导致本来应该不能访问的网页,却能够看到里面的内容, 那么就需要清空缓存,然后再打开网页。
(1)selinux设置软件对端口的访问权
如何修改httpd的默认端口
vim /etc/httpd/conf/httpd.conf
#Listen 12.34.56.78:80 # Listen 80 Listen 8888 |
查看selinux默认开放的端口
semanage port -l
通过给指定端口加上上下文类型,从而限制软件能够使用的端口,防止软件偷偷使用其他的端口。
如何给指定端口加上上下文类型?
man semanage-port 查看手册,看例子
semanage port -a -t 端口上下文类型 -p tcp 端口号 (删除端口上的类型,使用的是-d )
注意:由于默认访问端口已经发生修改,所以访问时必须加上指定端口号。
http://192.168.182.131:8888/2.html
(2)通过selinux的策略限制某些软件功能
查看selinux有哪些策略
semanage boolean -l
修改selinux策略的布尔 值
man semanage-boolean 查看例子
semanage boolean -m --on 策略名 (--on开启,--off关闭)
(1)删除httpd软件。包括/var/www/html目录下所有的文件,
1.安装httpd
2.修改httpd的默认访问端口为8899
vim /etc/httpd/conf/httpd.conf
#Listen 12.34.56.78:80
# Listen 80
Listen 8899
3.在/目录下创建文件1.html,内容为hello world
4. 修改/var/www/html的默认上下文为admin_home_t,然后使用restorncon进行默认上下文类的重置,发现是否可以访问网页,不然不行,请修改成正确的默认上下文。
5. 在selinux强制模式下,防火墙开启状态,在windows中可以访问到对应的1.html网页。
网页访问问题:首先看httpd的状态---selinux的工作模式(强制)---上下文类型(semanage-fcontext)---selinux端口有没有放行semanage port---防火墙有没有active---防火墙有没有放行对应端口---httpd(是否重启服务) 5555 注意: 服务的重启、开机自启
[root@workstation audit]# sealert -a audit.log
二、磁盘管理
磁盘的作用:用来存储和读取数据
磁盘中的最小存储单位叫做扇区。
磁盘管理中主要由4个步骤组成
添加磁盘 创建分区 格式化 挂载
1. 添加磁盘
(1)关机
(2)编辑虚拟机设置
(3)添加
(4)添加硬盘---》下一步(下面都是默认,然后在选择磁盘大小是进行修改)
lsblk查看块设备信息
2.分区
n 添加分区
p 打印分区表信息
d 删除分区
w 保存并退出
q 直接退出不保存
第一个注意点:由于扩展分区是来用划分逻辑分区的,所以在划分扩展分区时,应该把磁盘的剩余空间都给扩展分区
第二个注意点:扩展分区的作用就是用来划分逻辑分区,不能够用来存储和读取数据,不能格式化和挂载。
fdisk的缺点是单个分区大小不能超过2T。
gdisk -- > GPT类型的分区,单个分区的大小可以达到2PE(2048TB)
注意:GPT类型的分区只有主分区,最多只能划分128个主分区。
gdisk 磁盘路径 (?寻求帮助)
n 添加分区
p 打印分区表信息
d 删除分区
w 保存并退出
q 直接退出不保存
partprobe 刷新分区表(如果对分区进行了设置或修改,但是lsblk无法看的话,可以使用此命令,让内核重新读取分区表信息)
3.格式化
格式化:给分区创建一个文件系统。例如电脑硬件需要进行使用操作的话,就必须安装操作系统,那么磁盘,分区如果想要完成对文件管理,存储和读取,那么就必须安装文件系统,安装文件系统的过程就是格式化的过程(对文件的复制,删除等操作,都是要依赖文件系统才能完成的。)
(1)mkfs -t 文件系统类型 分区路径
(2)mkfs.文件系统类型 分区路径
注意:如果对已有文件系统的分区,进行格式化,那么xfs的类型的需要加上-f选项
查看文件系统类型 blkid 分区路径
题目:在磁盘sdb下创建一个分区sdb2,大小自定义,然后将此分区,格式化成xfs类型,然后blkid查看是否格式化成功,成功后,在对他进行格式化,改为ext4类型,blkid查看分区后格式化的信息
blkid 分区的路径 (查看格式化是否成功,成功的话,会显示分区的文件系统类型)、、
4.挂载
挂载的作用:给分区提供一个入口(也就是目录),通过入口对分区进行读取和存储数据。
1. 创建挂载点,也就是创建一个目录
mkdir 目录路径 (一般创建在mnt目录下)
临时挂载:(系统一旦重启,挂载就失效)
mount 格式后的分区路径 挂载点
umount 格式后的分区路径 (取消挂载)
永久挂载
vim /etc/fstab
/dev/mapper/rhel-root / xfs defaults 0 0 |
此目录中,一行就是一条挂载信息
/dev/mapper/rhel-root: 格式化后的分区路径(也可以使用uuid来表示,推荐uuid)
/: 挂载点路径
xfs: 文件系统类型,blkid查看
defaults:挂载的类型, 例如ro,以只读的形式挂载,rw以读写的形式挂载
0:是否启用dump备份
0:是否开启磁盘校验
一般情况下,只需要动前面3个参数,后面3个defaults 0 0 照抄即可。
编辑完成后,使用mount -a来加载/etc/fstab文件,实现挂载,注意报错信息,如果出现报错,那么就说明fstab中出现了问题, 需要进行修改。
创建一个新的分区,然后格式化成ext4类型的文件系统,挂载到/mnt/rhel/ (永久挂载)