作为一种操作系统级别的安全机制,SELinux(Security-Enhanced Linux)采用强制访问控制(MAC)方式实现对系统资源的保护,有效地提高了系统的安全性。而在SELinux的安全策略中,角色是其中一个重要的概念,不仅可以实现资源的访问控制,还可以控制进程之间的互相访问,本文将深入阐述SELinux角色的功能和实现。 一、角色的概念 在SELinux中,角色是一种资源访问控制模式ERP软件开发,相当于应用程序中的权限角色。“角色”指的是一组相对稳定、结构化的任务,与用户不同,角色在系统中不会改变。通过角色,可以限定一个进程对于系统中某些资源的访问权限,避免了一些潜在的安全风险。SELinux中的角色包括预定义角色和自定义角色两种类ERP生产管理软件型。预定义角色包括admin、guest、staff、user、sysadm_r等,可以满足大部分的安全需求;而自定义角色可以根据用户对系统的特定需求进行定义和配置。 二、角色的实现 SELinux中的角色是通过策略文件实现的。由于策客户管理软件开发略文件是系统中所有进程的授权依据,因此其安全性和稳定性至关重要。一个策略文件由多个模块组成,每个模块负责一部分安全规则的实现。角色的定义和实现处理主要在policy/modules目录下的selinux目录中,角色相关的策略文件主要包括:进销存软件 1. roles.te文件:角色配置文件,用于在策略文件中定义角色名和对应的角色定义。 2. policy/modules/system/userdomn.te文件:用户域配置文件,用于定义用户所属域和域可以访问的对象。 3. policy/mod企业微信ERP生产管理软件ules/system/user.te文件:用于配置用户及其所属角色和域。 除了以上的角色配置文件外,用户还需要定义每个角色对应的安全上下文,也即角色绑定。在kernel中,对象访问控制是基于安全上下文的。安全上下文是销售管理由主题(subject)和客体(object)组成的,主题可以是进程、用户或角色,而客体则可以是文件、端口或其他系统资源。安全上下文用于限制进程或用户在使用系统资源时的行为,防止越权访问或误操作。在SELinux中,角色绑定是通过角色与安全上下文的对应关生产管理系实现的。 三、角色的功能 在SELinux中,角色能够实现以下安全策略功能: 1. 对用户、进程和资源进行访问控制 通过防止未授权的主体(如恶意程序)访问系统资源,确保系统的安全性。角色限定了进程对于系统的访问权限,可以有效保护系统的安全。 2. 账户采购管理和角色的分离 在主流操作系统中,进程一般都以root权限运行,因此造成了潜在的风险。而在SELinux中,可以将权限拆分为用户和角色,实现账户和角色的分离。用户有自己的标识和口令,而角色有特定的权限和行为,两者互不干扰,可以更加精细地控制访问授权。 3.客户管理 程序沙盒 在一些应用场景中,会需要在同一台服务器上运行多个程序,而每个程序都有自己的用户特权,并且不能互相访问。SELinux可以通过角色来实现程序之间的沙盒隔离,同一台服务器上运行的程序之间互相不干扰,保证了系统的安全。 在SELinux中,角色是实BOM物料管理现资源和行为访问限制的重要手段,通过角色可以实现对系统资源的访问控制和进程之间的隔离,增加了系统的安全性。本文从角色的概念、实现和功能三个方面进行了介绍和阐述,希望对读者能有所启发。 相关问题拓展阅读: 如何在CentOS 7上安装Elast财务管理ic Stack 如何在CentOS 7上安装Elastic Stack 步骤 1 – 操作系统初始化 禁用腊租旁 CentOS 7 服务器上的 SELinux 我们将禁用 CentOS 7 服务器上的 SELinux。 编辑 SELinux 配置文件。分手机APP ERP管理软件 vim /etc/sysconfig/selinux 将 SELINUX 的值从 enforcing改成disabled SELINUX=disabled 然后重启服务器: reboot 再次登录服务器并检查 S企业微信ERP软件
ELinux 状态。 getenforce disabled 步骤 2 – 安装 Java环境 部署 Elastic stack 依赖于Java,Elasticsearch 需要 Java 8 版本,推荐使用 Oracle JDK 1.8 。从官方的 Oracle rpm 包安装 Java 8。 wget \\下载java8的版本 rpm -ivh jdk-8u77-linux-x64.rpm\\rpm安装jdk环境 java -version\\查看java的版本 检查能否工作 步轮橡骤 3 – 安装和配置 Elasticsearch 在此步骤中,我们将安装和配置 Elasticsearch。 从 elastic.co 网站提供的 rpm 包安装 Elasticsearch,并将其配置运行在 localhost 上(以确保该程序安全,而且不能从外部访问)。 将 elastic.co 的密钥添加到服务器 elastic.co网站是一个https的网站(私有证书),我们需要添加证书秘钥才能安全的顺利下载。 rpm –import 步骤 3 – 安装和配置 Elasticsearch 在此步骤中,我们将安装和配置 Elasticsearch。 从 elastic.co 网站提供的 rpm 包安装 Elasticsearch,并将其配置运行在 localhost 上(以确保该程序安全,而且不能从外部访问)。 将 elastic.co 的密钥添加到服务器 elastic.co网站是一个https的网站(私有证书),我们需要添加证书秘钥才能安全的顺利下载。 rpm –import 下载安装 Elasticsearch 5.1 wget rpm -ivh elasticsearch-5.1.1.rpm 安装完成后型唯我们编辑配置文件 配置文件名称:elasticsaerch.yml cd /etc/elasticsearch/ vim elasticsearch.yml bootstrap.memory_lock: true \\去掉第 40 行的注释,启用 Elasticsearch 的内存锁。这将禁用 Elasticsearch 的内存交换。 network.host: localhost http.port: 9200 \\在 Network 块中,取消注释 network.host 和 http.port 行。 编辑 elasticsearch.service 文件的内存锁配置。 vim /usr/lib/systemd/system/elasticsearch.service MAX_LOCKED_MEMORY=unlimited \\去掉第 60 行的注释,确保该值为 unlimited。 设置服务启动 Elasticsearch监听端口号9200,启用 CentOS 服务器上启用mlockall 来禁用内存交换,设置Elasticsearch开机自启动,然后启动服务。 sudo systemctl daemon-reload sudo systemctl enable elasticsearch sudo systemctl start elasticsearch 检查对外监听端口: netstat -plntu 内存锁启用 mlockall,检查 Elasticsearch 是否正在运行。 curl -XGET ‘localhost:9200/_nodes?filter_path=**.mlockall&pretty’ curl -XGET ‘localhost:9200/?pretty’ 步骤 4 – 安装和配置 Kibana 和 Nginx 先安装Kibana,然后安装nginx,最后设置nginx反向代理kibana 安装并配置Kibana wget rpm -ivh kibana-5.1.1-x86_64.rpm 编辑 Kibana 配置文件。 vim /etc/kibana/kibana.yml 在配置文件中找的一下三行,修改配置 server.port: 5601 server.host: “localhost” elasticsearch.url: “ “ 将 Kibana 设为开机启动 sudo systemctl enable kibana sudo systemctl start kibana 检查Kibana 对外监听端口 5601 确保其正常启动。 netstat -plntu 安装并配置nginx服务器 yum -y install epel-release nginx 服务的yum包在epel包中可以找的 直接yum安装 yum -y install nginx httpd-tools httpd-tools 软件包包含 Web 服务器的工具,可以为 Kibana 添加 htpasswd 基础认证。 编辑 Nginx 配置文件并删除 server {}模块,这样我们添加新的虚拟主机配置。 cd /etc/nginx/ vim nginx.conf \\删除 server { } 块。 创建kibana.conf的虚拟主机: vim /etc/nginx/conf.d/kibana.conf server { listen 80; server_name elk-stack.co; auth_basic “Restricted Access”; auth_basic_user_file /etc/nginx/.kibana-user; location / { proxy_pass proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection ‘upgrade’; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } 使用 htpasswd 命令创建一个新的基本认证文件。 sudo htpasswd -c /etc/nginx/.kibana-user admin “输入你的密码” 启动 Nginx。 nginx -t systemctl enable nginx systemctl start nginx 步骤 5 – 安装和配置 Logstash 在此步骤中,我们将安装 Logstash,并将其配置为:从配置了 filebeat 的 logstash 客户端里集中化服务器的日志,然后过滤和转换 Syslog 数据,并将其移动到存储中心(Elasticsearch)中。 下载 Logstash 并使用 rpm 进行安装。 wget rpm -ivh logstash-5.1.1.rpm 生成新的 SSL 证书文件,以便客户端可以识别 elastic 服务端。 cd /etc/pki/tls \\ 进入 tls 目录并编辑 openssl.cnf 文件。 vim openssl.cnf 在 部分添加服务器标识。 # Server IP Address subjectAltName = IP: 10.0.15.bway.cnf -x509 -dayatch -nodes -newkey rsa:2023 -keyout /etc/pki/tls/private/logstash-forwarder.key -out /etc/pki/tls/certs/logstash-forwarder.crt 证书文件可以在 /etc/pki/tls/certs/ 和 /etc/pki/tls/private/ 目录中找到。 接下来,我们会为 Logstash 创建新的配置文件。创建一个新的 filebeat-input.conf 文件来为 filebeat 配置日志源,然后创建一个 syslog-filter.conf 配置文件来处理 syslog,再创建一个 output-elasticsearch.conf 文件来定义输出日志数据到 Elasticsearch。 转到 logstash 配置目录,并在 conf.d 子目录中创建新的配置文件。 cd /etc/logstash/ vim conf.d/filebeat-input.conf 输入配置,粘贴以下配置: input { beats { port => 5443 ssl => true ssl_certificate => “/etc/pki/tls/certs/logstash-forwarder.crt” ssl_key => “/etc/pki/tls/private/logstash-forwarder.key” } } 创建 syslog-filter.conf 文件 vim conf.d/syslog-filter.conf 粘贴以下配置: filter { if == “syslog” { grok { match => { “message” => “%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\)?: %{GREEDYDATA:syslog_message}” } add_field => add_field => } date { match => } } } 我们使用名为 grok 的过滤器插件来解析 syslog 文件。 创建输出配置文件 output-elasticsearch.conf。 vim conf.d/output-elasticsearch.conf output { elasticsearch { hosts => hosts => “localhost:9200” manage_template => false index => “%{}-%{+YYYY.MM.dd}” document_type => “%{}” } } 启动logstash服务 sudo systemctl enable logstash sudo systemctl start logstash 步骤 6 – 在 CentOS 客户端上安装并配置 Filebeat Beat 作为数据发送人的角色,是一种可以安装在客户端节点上的轻量级代理,将大量数据从客户机发送到 Logstash 或 Elasticsearch 服务器。有 4 种 beat,Filebeat 用于发送“日志文件”,Metricbeat 用于发送“指标”,Packetbeat 用于发送“网络数据”,Winlogbeat 用于发送 Windows 客户端的“事件日志”。 在本教程中,我将向您展示如何安装和配置 Filebeat,通过 SSL 连接将数据日志文件传输到 Logstash 服务器。 登录到客户端1的服务器上。 然后将证书文件从 elastic 服务器复制到客户端1的服务器上。 ssh root@client1IP scp root@elk-serverIP:~/logstash-forwarder.crt . ….. sudo mkdir -p /etc/pki/tls/certs/ mv ~/logstash-forwarder.crt /etc/pki/tls/certs/ 接下来,在客户端 1 服务器上导入 elastic 密钥。 rpm –import 下载 Filebeat 并且用 rpm 命令安装。 wget rpm -ivh filebeat-5.1.1-x86_64.rpm Filebeat 已经安装好了,请转到配置目录并编辑 filebeat.yml 文件。 cd /etc/filebeat/ vim filebeat.yml \\ 在第 21 行的路径部分,添加新的日志文件。 我们将创建两个文件,记录 ssh 活动的 /var/log/secure 文件 ,以及服务器日志 /var/log/messages : paths: – /var/log/secure – /var/log/messages \\在第 26 行添加一个新配置来定义 syslog 类型的文件: document-type: syslog \\在 83 行和 85 行添加注释来禁用 Elasticsearch 输出,更改为 Logshtash: – #Elasticsearch output— #output.elasticsearch: # Array of hosts to connect to. # hosts: — —-现在添加新的 logstash 输出配置 output.logstash: # The Logstash hosts hosts: bulk_max_size: 1024 ssl.certificate_authorities: template.name: “filebeat” template.path: “filebeat.template.json” template.overwrite: false — PS:Filebeat 默认使用 Elasticsearch 作为输出目标。 在本教程中,我们将其更改为 Logshtash。 将 Filebeat 设定为开机启动并启动。 sudo systemctl enable filebeat sudo systemctl start filebeat 步骤 7 – 在 Ubuntu 客户端上安装并配置 Filebeat 从服务端拷贝证书文件 ssh root@ubuntu-clientIP scp root@elk-serverIP:~/logstash-forwarder.crt . ……. sudo mkdir -p /etc/pki/tls/certs/ mv ~/logstash-forwarder.crt /etc/pki/tls/certs/ 在服务器上导入 elastic 密钥。 wget -qO – | sudo apt-key add – 下载 Filebeat .deb 包并且使用 dpkg 命令进行安装。 wget dpkg -i filebeat-5.1.1-amd64.deb 转到配置目录并编辑 filebeat.yml 文件。 cd /etc/filebeat/ vim filebeat.yml \\ 在第 21 行的路径部分,添加新的日志文件。 我们将创建两个文件,记录 ssh 活动的 /var/log/secure 文件 ,以及服务器日志 /var/log/messages : paths: – /var/log/secure – /var/log/messages \\在第 26 行添加一个新配置来定义 syslog 类型的文件: document-type: syslog \\在 83 行和 85 行添加注释来禁用 Elasticsearch 输出,更改为 Logshtash: – #Elasticsearch output— #output.elasticsearch: # Array of hosts to connect to. # hosts: — —-现在添加新的 logstash 输出配置 output.logstash: # The Logstash hosts hosts: bulk_max_size: 1024 ssl.certificate_authorities: template.name: “filebeat” template.path: “filebeat.template.json” template.overwrite: false — PS:Filebeat 默认使用 Elasticsearch 作为输出目标。 在本教程中,我们将其更改为 Logshtash。 将 Filebeat 设定为开机启动并启动。 sudo systemctl enable filebeat sudo systemctl start filebeat 检查服务状态: systemctl status filebeat 打开您的网络浏览器,并访问您在 Nginx 中配置的 elastic stack 域名,我的是“elk-stack.co”。 使用管理员密码登录,然后按 Enter 键登录 Kibana 仪表盘。 创建一个新的默认索引 filebeat-*,然后点击“创建”按钮。 默认索引已创建。 如果 elastic stack 上有多个 beat,您可以在“星形”按钮上点击一下即可配置默认 beat。 转到 “发现” 菜单,您就可以看到 elk-client1 和 elk-client2 服务器上的所有日志文件。 来自 elk-client1 服务器日志中的无效 ssh 登录的 ON 输出示例。 使用其他的选项,你可以使用 Kibana 仪表盘做更多的事情。 Elastic Stack 已安装在 CentOS 7 服务器上。 Filebeat 已安装在 CentOS 7 和 Ubuntu 客户端上。
文章来源于网络,如有侵权,请联系删除。
我司专注于ERP软件开发,ERP生产管理软件,客户管理软件开发,进销存软件,货代软件,FMS物流软件,
企业微信ERP生产管理软件,销售管理,生产管理,采购管理,客户管理,BOM物料管理,财务管理,统计分析于一体ERP管理软件,分手机APP ERP管理软件,企业微信ERP软件。多年来一直专于研发,销信于一体软件公司。