学习Linux的第九天(安全机制更深入的学习)

Linux安全机制第二部分

在linux系统中,firewalld 服务和iptables服务是冲突的,所以二者只有一个能运行,如果开启了iptables,那么必须永久关闭防火墙,iptables也会有默认的基本配置,保证网络安全。

systemctl  stop firewall 
systemctl  disable firewall

这样才能用iptables
iptables -F 可以删掉所有的规则
iptables-save 保存当前配置

Selinux 安全子系统
SELinux(Security-Enhanced Linux)是美国国家安全局在Linux开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。RHEL 7系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。
selinux在linux环境中有非常重要的用途
在我们linux环境中,如果禁用selinux,是可以减少非常多的报错,但是在生产环境中相当不推荐

selinux在linux当中的三个用途:

  1. 可以允许或者拒绝访问我们的文件和资源
  2. 可以明确一个进程,服务,可以调用哪些端口
  3. 可以对一个文件做更精确的限制,远远比我们的用户权限高很多,更精确。

selinux有三个模式:

  1. 强制模式 enforcing selinux会强制执行严格的访问控制,系统默认就是这个模式,他会拒绝其他服务访问违规端口,同时也限制这些服务的访问执行权限,而且但凡发现了违规行为,会记录在日志里面。
  2. 许可模式 permissive 不执行严格的访问控制,但是会记录这些违规的警告,这个模式主要用于测试和故障排除
  3. 关闭模式 disabled selinux功能完全关闭,不拒绝仍和的违规行为,而且不予记录。

三种模式的查看和切换: *只是当前有效 关机重启后会变成原来的模式
getenforce 查看当前模式
setenforce 0 设置为许可模式
setenforce 1 设置为强制模式

关闭模式不能通过简单命令来实现 需要修改配置文件,同时修改配置文件也是永久修改默认模式的方法
selinux的配置文件: /etc/selinux/config

SELINUX = disabled
enforcing
permissive

selinux 三个模式:
targeted: 默认模式,针对网络服务的限制比较多,对本机的限制比较少
minimun:只会选择性的保护我们的系统模块 例如内核 device
mls:完整的selinux限制,对系统各方面都做限制

默认是targeted 模式,因为一般只需要对网络服务做限制

安全上下文:
在启动selinux的时候,selinux会给系统中的资源设置一个安全上下文,保存在 /etc/selinux/targeted/contexts/files/file_contexts

ls -Z 查看安全上下文

[root@rhel8-server /]# ls -Zd    /var/www/html/
system_u:object_r:httpd_sys_content_t:s0 /var/www/html/

在文件上设置的selinux安全上下文,是由用户段,角色段,类型段等多个信息组成
system_u 代表了系统进程的身份
object_r 代表了文件目录的角色
httpd_sys_content_t 代表了网站服务的系统文件
S0 : sensitivity

semanage 管理安全策略

使用getsebool命令查询并过滤出所有与HTTP协议相关的安全策略。其中,off为禁止状态,on为允许状态。

[root@localhost ~]# getsebool -a | grep http
httpd_anon_write --> offhttpd_builtin_scripting --> onhttpd_can_check_spam --> offhttpd_can_connect_ftp --> offhttpd_can_connect_ldap --> offhttpd_can_connect_mythtv --> offhttpd_can_connect_zabbix --> offhttpd_can_network_connect --> offhttpd_can_network_connect_cobbler --> offhttpd_can_network_connect_db --> offhttpd_can_network_memcache --> offhttpd_can_network_relay --> offhttpd_can_sendmail --> offhttpd_dbus_avahi --> offhttpd_dbus_sssd --> offhttpd_dontaudit_search_dirs --> offhttpd_enable_cgi --> onhttpd_enable_ftp_server --> offhttpd_enable_homedirs --> offhttpd_execmem --> offhttpd_graceful_shutdown --> onhttpd_manage_ipa --> offhttpd_mod_auth_ntlm_winbind --> offhttpd_mod_auth_pam --> offhttpd_read_user_content --> offhttpd_run_ipa --> offhttpd_run_preupgrade --> offhttpd_run_stickshift --> offhttpd_serve_cobbler_files --> offhttpd_setrlimit --> offhttpd_ssi_exec --> offhttpd_sys_script_anon_write --> offhttpd_tmp_exec --> offhttpd_tty_comm --> offhttpd_unified --> offhttpd_use_cifs --> offhttpd_use_fusefs --> offhttpd_use_gpg --> offhttpd_use_nfs --> offhttpd_use_openstack --> offhttpd_use_sasl --> offhttpd_verify_dns --> offnamed_tcp_bind_http_port --> offprosody_bind_http_port --> off[root@localhost ~]# setsebool -P httpd_enable_homedirs=on

面对如此多的SeLinux域安全策略规则,实在没有必要逐个理解它们,我们只要能通过名字大致猜测出相关的策略用途就足够了。比如,想要开启httpd服务的个人用户主页功能,那么用到的SELinux域安全策略应该是httpd_enable_homedir

semanage-port 管理安全上下文
-a 增加
-d 删除
-t 指定文件上下文类型

例如:

 修改httpd服务监听端口改成82 (默认是80)
vim /etc/httpd/conf/httpd.conf 
需要修改配置文件为Listen 82端口
systemctl restart httpd
journalctl -xe
semanage port -a -t http_port_t -p tcp 82
systemctl restart httpd

深入理解文件系统 (存储部分)
万物皆文件:

  1. 什么是文件
  2. 什么是目录
    文件: 数据+文件属性(元数据)
    什么是目录: 就是一个表,没有任何文件,完全就不是一个容器 (是文件和inode值得对应关系表)

inode
每个文件都会对应一个inode值
inode值储存了文件的元数据信息
文件类型 文件权限 UID GID 文件连接数 文件大小 文件创建时间 文件的数据块block 在磁盘上的块指针

对人而言 识别的是文件名
对系统而言 认识的是inode
什么是目录 目录就是 文件名 和 inode的对应表

系统到底是如何工作的:
cp : 系统分配一个新的inode值 并且添加到inode表
在新的目录里面 给这个inode关联一个文件名
把数据拷贝到磁盘的新位置

mv : 在新的目录下 创建一条列表记录 关联源文件的inode值和新的文件名
会删除旧的目录下 文件和inode的关联关系
该数据在磁盘上未发生任何改动 所有元属性全都保存

在Linux系统中存在硬链接和软连接两种文件:
硬链接(hard link):
可以将它理解为一个“指向原始文件inode的指针”,系统不为它分配独立的inode和文件。所以,硬链接文件与原始文件其实是同一个文件,只是名字不同。我们每添加一个硬链接,该文件的inode连接数就会增加1;而且只有当该文件的inode连接数为0时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件inode的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局限性,我们不能跨分区对目录文件进行链接。
软链接(也称为符号链接[symbolic link]):
仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,从这一点上来说与Windows系统中的“快捷方式”具有一样的性质。

硬链接
ln 源文件 目标位置 +新名称
就是把文件的inode值 关联给了一个新的名称 并且加入了目录列表
本质上是同一个文件 相当于多了个入口
硬链接是绝对不能跨越文件系统的

软链接 ln -s 源文件 目标位置+新名称
会产生一个新的文件 用来执行之前那个文件 会产生新的inode值
可以跨越文件系统

rm 链接数-1 如果此时链接数 =0 则直接回收该文件
文件和 inode映射关系会从目录中拿掉 同时磁盘指针会标志该存储区域可用 但是数据并不会擦除 直到下次被其他数据覆盖

如果此时链接数 不等于0 inode依然保留 只会把目录当中的一个链接拿掉 其他的文件元数据保持不变

文件类型:
普通文件 -
目录 d
链接文件 l
设备文件 c 串行端口设备 鼠标 键盘
b 存储数据的设备 硬盘 磁盘 固态

文件系统的使用情况
df 查看已经挂载的文件系统的使用情况
-h 查看文件系统使用情况 单位是M
-i 查看inode使用情况
-T 查看文件系统类型

du 查看目录大小
-s 总大小
-h 显示所有子目录文件

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值