selinux及防火墙

ops/2024/11/25 21:51:21/

selinux说明

SELinux Security-Enhanced Linux 的缩写,意思是安全强化的 linux
SELinux 主要由美国国家安全局( NSA )开发,当初开发的目的是为了避免资源的误用。

httpd进程标签(/usr/share/nginx/html )

        拥有http标签的进程可以读取http标签的文件

        拥有某标签的进程可以使用拥有某标签的端口

selinux的工作原理

SELinux 是通过 MAC 的方式来控制管理进程,它控制的主体是进程,而目标则是该进程能否读取的文件资源。
主体( subject ):就是进程
目标( object ):被主体访问的资源,可以是文件、目录、端口等。
策略( policy ):由于进程与文件数量庞大,因此 SELinux 会依据某些服务来制定基本的访问安全策略。
主要的策略:
        targeted:针对网络服务限制较多,针对本机限制较少,是默认的策略;
        strict:完整的 SELinux 限制,限制方面较为严格。
安全上下文( security context ):主体能不能访问目标除了策略指定外,主体与目标的安全上下文必须一致才能够顺利访问。
最终文件的成功访问还是与文件系统的 rwx 权限设置有关。
#查看文件的安全上下文
[root@localhost ~]# ls -Z
安全上下文用冒号分为四个字段:
Identify role type
  • 身份标识( Identify ):相当于账号方面的身份标识,主要有以下三种常见的类型:
    root :表示 root 的账号身份;
    system_u :表示程序方面的标识,通常就是进程;
    unconfined_u :代表的是一般用户账号相关的身份。
  • 角色(role):通过角色字段,可知道这个数据是属于程序、文件资源还是代表用户。一般角色有:
    object_r :代表的是文件或目录等文件资源;
    system_r :代表的是进程。
  • 类型( type ):在默认的 targeted 策略中, Identify role 字段基本上是不重要的,重要的在于这个类型字段。而类型字段在文件与进程的定义不太相同,分别是:
    type :在文件资源上面称为类型。
    domain :在主体程序中则称为域。
    domain 需要与 type 搭配,则该程序才能够顺利读取文件资源。
    最后一个字段是和 MLS MCS 相关的东西,代表灵敏度,一般用 s0 s1 s2 来命名,数字代表灵敏度的分级。数值越大、灵敏度越高。
# 更改安全上下文
chcon -t httpd_sys_content_t /www/https/index.html[root@localhost conf.d]# ll /www/https/ -Z
总用量 4
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 6 11月  2 14:23 index.html

selinux的启动、关闭与查看

SELinux 三种模式:
         enforcing :强制模式,代表 SELinux 正在运行中,开始限制 domain/type
        permissive:宽容模式,代表 SELinux 正在运行中,不过仅会有警告信息并不会实际限制domain/type的访问。
        disabled:关闭, SELinux 并没有实际运行。
#查看目前的模式
[root@localhost~]#getenforce Enforcing#查看目前的selinux使用的策略
[root@localhost~]#sestatus#查看selinux的策略:
[root@localhost~]#vim/etc/selinux/config改变策略之后需要重新启动;
如果由enforcing或permissive改成disabled,或由disabled改为其它两个,也必须要重新启动。将selinux模式在enforcing和permissive之间切换的方法为:
setenforce0转换成permissive宽容模式
setenforce1转换成enforcing强制模式

查看端口占用情况 


实验 访问网络端口

semanage port -l | grep 80semanage port -a -t http_port_t -p tcp 10000#修改自定义目录的安全上下文的值:
[root@localhost~]#chcon-thttpd_sys_content_t/www/-R

防火墙

iptables

iptables 服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,
具体如下:
在进行路由选择前处理数据包,用于目标地址转换( PREROUTING );
处理流入的数据包( INPUT );
处理流出的数据包( OUTPUT );
处理转发的数据包( FORWARD );
在进行路由选择后处理数据包,用于源地址转换( POSTROUTING )。
搭建iptables环境
yum -y install iptables-nft-services
systemctl start iptables.service 

iptables 命令可以根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配,一旦匹配成功,iptables 就会根据策略规则所预设的动作来处理这些流量。
 实验1  搭建web服务,设置任何人能够通过80端口访问
iptables -I INPUT -p tcp --dport 80 -j ACCEPT

此时在计算机本机上win+R输入80端口的IP地址即可连接成功

#拒绝本机访问,查询本机使用进入的IP地址,禁用
iptables -I INPUT -p tcp -s 192.168.30.1 --dport 80 -j REJECT

删除

注意:删除的编号会重新更新,如果要删除最开始表中的1,2,只要一直执行删除第一行就行。

iptables -D INPUT 1

firewalld

firewalld 所提供的模式就可以叫做动态防火墙,它的出现就是为了解决这一问题,任何规则的变更都不 需要对整个防火墙规则列表进行重新加载,只需要将变更部分保存并更新即可, 它具备对 IPv4 IPv6 防 火墙设置的支持。
相比于传统的防火墙管理工具, firewalld 支持动态更新技术并加入了区域的概念。区域就是 firewalld 预先准备了几套防火墙策略集合(策略模板),用户可以选择不同的集合,从而实现防火墙策略之间的快速切换。

firewalld中常见的区域名称(默认为public)以及相应的策略规则: 

 

 

# 启动服务,这个服务会监听一个9090的端口
systemctl start cockpit
#配置端口转发(在172.24.8.0网段的主机访问该服务器的5423端口将被转发到80端口)
[root@localhost ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.30.0/24" forward-port to-addr="192.168.30.132" to-port="10000" protocol="tcp" port="10000"'

排除计算机上访问不了服务时:

1.查询监听端口 —— 服务没有运行或者是服务没有在此端口上运行

2.在服务端进行测试 —— 403没有权限读取,404不存在

3.客户端ping一下服务端

4.测试该IP端口能否访问

5.客户端可以访问


http://www.ppmy.cn/ops/136675.html

相关文章

Oracle SQL优化③——表的连接方式

前言 表(结果集)与表(结果集)之间的连接方式非常重要,如果CBO选择了错误的连接方式,本来几秒就能出结果的SQL可能执行一天都执行不完。如果想要快速定位超大型SQL性能问题,就必须深入理解表连接…

Mysql的加锁情况详解

最近在复习mysql的知识点,像索引、优化、主从复制这些很容易就激活了脑海里尘封的知识,但是在mysql锁的这一块真的是忘的一干二净,一点映像都没有,感觉也有点太难理解了,但是还是想把这块给啃下来,于是想通…

【LeetCode热题100】队列+宽搜

这篇博客是关于队列宽搜的几道题&#xff0c;主要包括N叉树的层序遍历、二叉树的锯齿形层序遍历、二叉树最大宽度、在每个数行中找最大值。 class Solution { public:vector<vector<int>> levelOrder(Node* root) {vector<vector<int>> ret;if(!root) …

服务器数据恢复—DS5300存储硬盘指示灯亮黄灯的数据恢复案例

服务器存储数据恢复环境&#xff1a; 某单位一台某品牌型号为DS5300的服务器存储&#xff0c;1个机头4个扩展柜&#xff0c;底层是2组分别由数十块硬盘组建的RAID5阵列。存储系统上层一共分了11个卷。 服务器存储故障&分析&#xff1a; 存储设备上一组raid5阵列上的2块磁盘…

计算机网络(14)ip地址超详解

先看图&#xff1a; 注意看第三列蓝色标注的点不会改变&#xff0c;A类地址第一个比特只会是0&#xff0c;B类是10&#xff0c;C类是110&#xff0c;D类是1110&#xff0c;E类是1111. IPv4地址根据其用途和网络规模的不同&#xff0c;分为五个主要类别&#xff08;A、B、C、D、…

IT人员面试重点底层逻辑概念

arrayList的底层原理 ArrayList是个动态数组&#xff0c;实现List接口&#xff0c;主要用来存储数据&#xff0c;如果存储基本类型的数据&#xff0c;如int&#xff0c;long&#xff0c;boolean&#xff0c;short&#xff0c;byte&#xff0c;那只存储它们对应的包装类。 它的…

嵌入式学习-C嘎嘎-Day06

嵌入式学习-C嘎嘎-Day06 1. 什么是异常&#xff1f; 2. 抛出异常 3. 捕获异常 4. 标准异常族 5. 异常捕获技巧 5.1 捕获基类异常 5.2 多重捕获 1. 什么是异常&#xff1f; 异常是程序在运行期间产生的问题&#xff0c;即没有语法错误&#xff0c;出现的是逻辑错误&#xff0c;C…

HarmonyOS Next 浅谈 发布-订阅模式

HarmonyOS Next 浅谈 发布-订阅模式 前言 其实在目前的鸿蒙应用开发中&#xff0c;或者大前端时代、vue、react、小程序等等框架、语言开发中&#xff0c;普通的使用者越来越少的会碰到必须要掌握设计模式的场景。大白话意思就是一些框架封装太好了&#xff0c;使用者只管在它…