selinux及防火墙

server/2024/11/26 1:39:31/

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/server/144946.html

相关文章

Java基础-组件及事件处理(中)

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 BorderLayout布局管理器 说明: 示例: FlowLayout布局管理器 说明: …

数据结构哈希表-(开放地址法+二次探测法解决哈希冲突)(创建+删除+插入)+(C语言代码)

#include<stdio.h> #include<stdlib.h> #include<stdbool.h> #define M 20 #define NULLDEL -1 #define DELDEY -2typedef struct {int key;int count; }HashTable;//创建和插入 void Insert(HashTable ha[], int m, int p, int key) {int i, HO, HI;HO key…

ubuntu增加swap交换空间

论坛_开发者_技术论坛_鲲鹏_昇腾_华为 先关闭 &#xff0c;否则报错 fallocate: fallocate 失败: 文本文件忙 sudo swapoff /swapfile sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile sudo vim /etc/fstab 添加…

【案例】泛微.齐业成助力北京中远大昌汽车实现数电票全流程管理

中远大昌统一发票共享平台上线三个多月以来&#xff0c;实现&#xff1a; 5000份 60000元 发票开具 成本节约 客户简介及需求分析 北京中远大昌汽车服务有限公司&#xff08;以下简称“中远大昌”&#xff09;成立于2002年&#xff0c;是中远海运集团所属香远&#xff08;北…

Java Database Connectivity (JDBC + Servlet)

https://blog.csdn.net/SuYuewu/article/details/143986880?sharetypeblogdetail&sharerId143986880&sharereferPC&sharesourceSuYuewu&spm1011.2480.3001.8118 Java Database Connectivity (JDBC)是一个Java API&#xff0c;用于与数据库进行连接和操作。通过…

微信万能门店小程序系统存在任意文件读取漏洞

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…

5、AI测试辅助-生成测试用例思维导图

AI测试辅助-生成测试用例思维导图 创建测试用例两种方式1、Plantuml思维导图版本 (不推荐&#xff09;2、Markdown思维导图版本&#xff08;推荐&#xff09; 创建测试用例两种方式 完整的测试用例通常需要包含以下的元素&#xff1a; 1、测试模块 2、测试标题 3、前置条件 4、…

鸿蒙生态崛起

1.鸿蒙生态&#xff1a;开发者的新蓝海 从开发者角度看&#xff0c;鸿蒙生态带来了巨大机遇。其分布式能力实现了不同设备间的无缝体验&#xff0c;如多屏协同&#xff0c;让应用能跨手机、平板、智能穿戴和车载设备流畅运行。开发工具也有显著提升&#xff0c;方舟编译器等极大…