SELinux安全机制 自定义用户环境 firewalld基础配置

Top

NSD ENGINEER DAY03

  1. 案例1:启用SELinux保护
  2. 案例2:自定义用户环境
  3. 案例3:配置firewalld防火墙

1 案例1:启用SELinux保护

1.1 问题

本例要求为虚拟机 server0、desktop0 配置SELinux:

  1. 确保 SELinux 处于强制启用模式
  2. 在每次重新开机后,此设置必须仍然有效

1.2 方案

SELinux,Security-Enhanced Linux:是由美国NSA国家安全局提供的一套基于内核的增强的强制安全保护机制,针对用户、进程、文档标记安全属性并实现保护性限制。

SELinux安全体系直接集成在Linux内核中,包括三种运行模式:

  • disabled:彻底禁用,内核在启动时不加载SELinux安全体系
  • enforcing:强制启用,内核加载SELinux安全体系,并强制执行保护策略
  • permissive:宽松模式,内核加载SELinux安全体系,只记录不执行

执行getenforce可以查看当前所处的模式。

在disabled模式与enforcing、permissive模式之间切换时,需要重新启动Linux系统;而在enforcing模式与permissive模式之间切换时,并不需要重启,可以直接执行setenforce 1|0操作。

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:调整当前的SELinux运行模式

1)查看当前模式

  1. [[email protected] ~]# getenforce
  2. Permissive                                     //表示当前为宽松模式

若上述操作显示的结果为Disabled,表示SELinux机制已被禁用,只能通过步骤修改固定配置后再重启;若显示的结果为Enforcing,表示已经处于强制启用模式。

2)切换为enforcing强制启用模式

如果在操作1)中显示的结果为Permissive,则执行以下操作切换为强制启用:

  1. [[email protected] ~]# setenforce 1                 //强制启用
  2. [[email protected] ~]# getenforce                     //确认切换结果
  3. Enforcing

如果在操作1)中显示的结果为Disabled,则无法使用setenforcing命令:

  1. [[email protected] ~]# getenforce
  2. Disabled
  3. [[email protected] ~]# setenforce 1
  4. setenforce: SELinux is disabled

步骤二:为SELinux运行模式建立固定配置

1)修改配置文件/etc/selinux/config

  1. [[email protected] ~]# vim /etc/selinux/config
  2. SELINUX=enforcing
  3. .. ..

2)重启验证结果

  1. [[email protected] ~]# reboot
  2. .. ..
  3. [[email protected] ~]# getenforce
  4. Enforcing

2 案例2:自定义用户环境

2.1 问题

本例要求为系统 server0 和 desktop0 创建自定义命令,相关说明如下:

  1. 自定义命令的名称为 qstat
  2. 此自定义命令将执行以下操作:/bin/ps -Ao pid,tt,user,fname,rsz
  3. 此自定义命令对系统中的所有用户都有效

2.2 方案

命令别名:为一个复杂的命令行建立一个更加简短的命令字,方便重复使用。

基本管理操作:

  • 定义别名:alias 别名=‘复杂的命令行‘
  • 查看别名:alias、alias 别名
  • 取消别名:unalias 别名、unalias -a

用户登录初始化文件:

  • 全局配置:/etc/bashrc、
  • 用户自定义配置:~/.bashrc

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:为主机server0添加别名qstat

1)为所有用户添加初始化命令

  1. [[email protected] ~]# vim /etc/bashrc
  2. .. ..
  3. alias qstat=‘/bin/ps -Ao pid,tt,user,fname,rsz‘

2)验证别名qstat是否生效

  1. [[email protected] ~]# exit                                     //退出
  2. logout
  3. Connection to server0 closed.
  4. [[email protected] ~]$ ssh -X [email protected]                 //重登录
  5. Last login: Sat Nov 26 15:30:15 2016 from 172.25.0.250
  6. [[email protected] ~]# alias qstat                             //可查到别名
  7. alias qstat=‘/bin/ps -Ao pid,tt,user,fname,rsz‘
  8. [[email protected] ~]# qstat                                     //且此别名正常可用
  9. PID TT USER COMMAND RSZ
  10. 1 ? root systemd 6548
  11. 2 ? root kthreadd 0
  12. 3 ? root ksoftirq 0

步骤二:为主机desktop0添加别名qstat

操作与步骤一相同。

3 案例3:配置firewalld防火墙

3.1 问题

本例要求为两个虚拟机 server0、desktop0配置防火墙策略:

  1. 允许从172.25.0.0/24网段的客户机访问 server0、desktop0 的任何服务
  2. 禁止从my133t.org域(172.34.0.0/24网段)的客户机访问 server0、desktop0 的任何服务
  3. 在172.25.0.0/24网络中的系统,访问 server0 的本地端口5423将被转发到80
  4. 上述设置必须永久有效

3.2 方案

RHEL7的防火墙体系根据所在的网络场所区分,提供了预设的安全区域:

  • public:仅允许访问本机的sshd等少数几个服务
  • trusted:允许任何访问
  • block:阻塞任何来访请求
  • drop:丢弃任何来访的数据包
  • ……

新增防火墙规则的位置包括:

  • 运行时(runtime):仅当前有效,重载防火墙后失效
  • 永久(permanent):静态配置,需要重载防火墙才能生效

本地端口转发(端口1 --> 端口2):

  • 从客户机访问防火墙主机的 端口1 时,与访问防火墙的 端口 2 时等效
  • 真正的网络应用服务其实在 端口2 提供监听

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:采取“默认全允许,仅拒绝个别”的防护策略

1)启用防火墙服务

  1. [[email protected] ~]# systemctl restart firewalld
  2. [[email protected] ~]# systemctl enable firewalld

2)将默认区域设置为trusted

  1. [[email protected] ~]# firewall-cmd --get-default-zone                 //修改前
  2. public
  3. [[email protected] ~]# firewall-cmd --set-default-zone=trusted         //修改操作
  4. success
  5. [[email protected] ~]# firewall-cmd --get-default-zone             //修改后
  6. trusted

步骤二:封锁指定的IP网段

1)添加永久配置“阻塞来自网段172.34.0.0/24的任何访问”

  1. [[email protected] ~]# firewall-cmd --permanent --zone=block --add-source=172.34.0.0/24
  2. success

2)重载防火墙

  1. [[email protected] ~]# firewall-cmd --reload
  2. success

3)检查运行时规则

  1. [[email protected] ~]# firewall-cmd --list-all --zone=block
  2. block
  3. interfaces:
  4. sources: 172.34.0.0/24
  5. services:
  6. ports:
  7. masquerade: no
  8. forward-ports:
  9. icmp-blocks:
  10. rich rules:

步骤三:实现5423-->80端口转发

1)针对80端口部署测试应用

快速搭建一个测试网站:

  1. [[email protected] ~]# yum -y install httpd                    //装包
  2. .. ..
  3. [[email protected] ~]# vim /var/www/html/index.html             //部署测试网页
  4. test site.
  5. [[email protected] ~]# systemctl restart httpd                 //起服务

从客户端访问,确认测试网页:

  1. [[email protected] ~]# yum -y install elinks
  2. .. ..
  3. [[email protected] ~]# elinks -dump http://server0.example.com/
  4. test site.

2)配置5423-->80端口转发策略

  1. [[email protected] ~]# firewall-cmd --permanent --zone=trusted --add-forward-port=port=5423:proto=tcp:toport=80                             //添加永久配置
  2. success
  3. [[email protected] ~]# firewall-cmd --reload                     //重载服务
  4. Success
  5. [[email protected] ~]# firewall-cmd --list-all                 //确认运行时规则
  6. trusted (default, active)
  7. interfaces: eth1 eth2 eth0 team0
  8. sources:
  9. services:
  10. ports:
  11. masquerade: no
  12. forward-ports: port=5423:proto=tcp:toport=80:toaddr=
  13. icmp-blocks:
  14. rich rules:

3)验证端口转发策略

从desktop0上访问server0的5423端口,与访问server0的80端口效果一样:

  1. [[email protected] ~]# elinks -dump http://server0.example.com:5423/
  2. test site.
  3. [[email protected] ~]# elinks -dump http://server0.example.com/
  4. test site.

原文地址:https://www.cnblogs.com/tiki/p/10783094.html

时间: 2024-11-02 16:09:06

SELinux安全机制 自定义用户环境 firewalld基础配置的相关文章

wamp-php 集成环境的基础配置

域名访问设置(本地局域网) 用记事本打开 127.0.0.1是本地回环地址 配置完后 通过在本地浏览器输入www.0705.com就可以访问本地站点了 Wamp集成环境多站点配置 配置条件: 一个服务器可能会存在多个站点 每个站点都会有自己的域名,这时我们就需要在服务器设置多站点服务了 打开wamp的安装目录找到这个红框文件 用记事本打开 ctrl+f调出搜索框 输入 Virtual hosts  就会跳转到下图这行 找到apache下的extra文件下的httpd-vhosts.conf文件

PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念

PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念 据我个人所知,windows下的cmd shell除了能够通过修改系统参数来对其中的环境变量进行改变外,其环境的可自定义性相对来说很困难,而在Linux环境中,可以通过修改/etc目录下的某些配置文件来达到配置shell环境的目的.也许这也是某些人诟病cmd shell功能不强的原因之一. 而目前这种状况在windows powershell中得到了改善,可以说PS中提供的自定义环境的功能

MySQL基础环境_安装配置教程(Windows7 64或Centos7.2 64、MySQL5.7)

MySQL基础环境_安装配置教程(Windows7 64或Centos7.2 64.MySQL5.7) 安装包版本 1)     VMawre-workstation版本包 地址: https://my.vmware.com/web/vmware/details?downloadGroup=WKST-1411-WIN&productId=686&rPId=20814 包名:VMware-workstation-full-12.5.7.20721.exe 2)     Windows版本包

Linux基础环境_安装配置教程(CentOS7.2 64、JDK1.8、Tomcat8)

Linux基础环境_安装配置教程 (CentOS7.2 64.JDK1.8.Tomcat8) 安装包版本 1)     VMawre-workstation版本包 地址: https://my.vmware.com/web/vmware/details?downloadGroup=WKST-1411-WIN&productId=686&rPId=20814 包名:VMware-workstation-full-12.5.7.20721.exe 2)     CentOS版本包 地址:htt

firewalld基础

firewalld简介 Centos7中默认将原来的防火墙iptables升级为了firewalld,firewalld跟iptables比起来至少有两大好处: 1.firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效: 2.firewalld在使用上要比iptables人性化很多,即使不明白"五张表五条链"而且对TCP/IP协议也不理解也可以实现大部分功能. 多知道点 iptables实际包含五张表 大部分iptables的资

NetScaler AG自定义用户门户

自定义用户门户 为×××用户提供门户服务的NetScaler Gateway安装包括选择门户主题的选项,以便为门户页面创建自定义外观.您可以从提供的主题集中进行选择,也可以使用主题作为模板来构建自定义或品牌门户.使用配置实用程序,您可以通过添加新徽标,背景图像,自定义输入框标签以及基于CSS的门户网站设计的各种其他属性来修改主题.内置门户主题包括五种语言的内容:英语,法语,西班牙语,德语和日语.不同的用户以不同的语言提供服务,具体取决于其Web浏览器报告的区域设置. 您可以选择创建自定义最终用户

PHP面试 PHP基础知识 十一(开发环境及相关配置)

开发环境及相关配置 版本控制软件 集中式和分布式 集中式:集中式版本控制工具,版本库集中存放在中央服务器,团队成员里的每个人工作时从中央服务器下载代码,个人修改后再提交到中央服务器 分布式:分布式版本控制工具,没有中央服务器,每个开发人员都通过clone,在本地拷贝一个完整的仓库. Git 与 Svn Svn的特点(集中式) 1.每个版本库有唯一的URL,每个用户都从这个地址获取代码和数据 2.获取代码的更新,也只能连接到这个唯一的版本库,同步以取得最新数据 3.提交必须有网络连接(非本地版本库

Bash shell用户环境

介绍 了解Linux的启动顺序,也有助于本内容的理解,加载用户环境是Linux启动的最后一步.不同的shell 会使用不同的配置文件: bash (.profile), ksh (.profile), csh (.login). bash shell 被设计成兼容sh, ksh,  它会在用户主目录依次检查.bash_profile,.bash_login,.profile是否存在,并加载找到的第一个文件.无论文件名字如何,加载用户环境的原理一样,只设定一个配置文件即可.但若有兼容bash,ks

《学习bash》笔记--定制用户环境

1. .bash_profile..bash_logout和.bashrc文件 当用户和退出一个新的shell时,文件.bash_profile..bash_logout和.bashrc文件被bash所读取.在用户每次登陆到系统时, .bash_profile文件被读取,可以对.bash_profile文件进行编辑,但是知道退出并在此登录后,该文件才会被重新读取,你编辑 的新内容才会生效,或者使用source命令: source ./bash_profile bash允许有.bash_profi