202-系统安全保护-配置用户环境-条件测试及选择-列表式循环-防火墙策略管理
SELinux安全机制
SELinux概述
• Security-Enhanced Linux
– 美国NSA国家安全局主导开发,一套增强Linux系统安
全的强制访问控制体系
– 集成到Linux内核(2.6及以上)中运行
– RHEL7基于SELinux体系针对用户、进程、目录和文件
提供了预设的保护策略,以及管理工具
SELinux运行模式的切换
• SELinux的运行模式
– enforcing(强制)、permissive(宽松)
– disabled(彻底禁用)
任何模式切换到disabled都要经历重起系统
• 切换运行模式
– 临时切换:setenforce 1|0 #只影响当前系统此次开机
– 固定配置:/etc/selinux/config 文件 #永久配置文件,每次开机默认的状态
虚拟机server
[root@server0 ~]# getenforce #查看SELinux状态
Enforcing
[root@server0 ~]# setenforce 0 #临时修改SELinux状态
[root@server0 ~]# getenforce
[root@server0 ~]# vim /etc/selinux/config #每次开机默认
SELINUX=permissive
虚拟机desktop
[root@desktop0 ~]# getenforce #查看SELinux状态
Enforcing
[root@desktop0 ~]# setenforce 0 #临时修改SELinux状态
[root@desktop0 ~]# getenforce
[root@desktop0 ~]# vim /etc/selinux/config
SELINUX=permissive
####################################################
配置用户环境
alias别名设置
• 查看已设置的别名
– alias [别名名称]
• 定义新的别名
– alias 别名名称= '实际执行的命令行'
• 取消已设置的别名
– unalias [别名名称]
• 影响指定用户的 bash 解释环境
– ~/.bashrc,每次开启 bash 终端时生效
• 影响所有用户的 bash 解释环境
– /etc/bashrc,每次开启 bash 终端时生效
[root@server0 ~]# vim /root/.bashrc
alias hello='echo hello'
[root@server0 ~]# vim /home/student/.bashrc
alias hi='echo hi'
[root@server0 ~]# vim /etc/bashrc
alias abc='echo abc'
#重新远程管理,才能生效。
exit
gos
#################################################
防火墙策略管理
一 虚拟机server:构建Web服务器
Web服务:提供一个网页内容
http协议:超文本传输协议
实现Web服务的软件:httpd Nginx Tomcat
1.安装httpd软件
[root@server0 ~]# yum -y install httpd
2.重起httpd软件(httpd服务)
[root@server0 ~]# systemctl restart httpd
[root@server0 ~]# firefox 172.25.0.11 #本机测试访问
3.书写一个页面文件(html语言)
页面文件默认存放路径:/var/www/html
页面文件名称:index.html
[root@server0 ~]# vim /var/www/html/index.html
<marquee><font color=red><h1>NSD1907阳光明媚
滚动 字体颜色为红色 字体变大
[root@server0 ~]# firefox 172.25.0.11 #本机测试访问
#<marquee>产生动态效果,解决并发问题
一 虚拟机server:构建FTP服务器
FTP协议:文件传输协议
软件:vsftpd
1.安装vsftpd软件
[root@server0 ~]# yum -y install vsftpd
2.重起vsftpd程序(vsftpd服务)
[root@server0 ~]# systemctl restart vsftpd
[root@server0 ~]# firefox ftp://172.25.0.11 #本机访问测试
3.默认共享数据的路径:/var/ftp
#####################################################
防火墙策略管理
作用:隔离 严格过滤入站,允许出站
硬件防火墙
软件防火墙
firewalld服务基础
Linux的防火墙体系
• 系统服务:firewalld
• 管理工具:firewall-cmd(命令管理)、firewall-config(图形的管理工具)
[root@serverO ~]# systemctl restart firewalld
[root@serverO ~]# firewall-config &
预设安全区域
• 根据所在的网络场所区分,预设保护规则集
– public:仅允许访问本机的ssh dhcp ping少数几个服务
– trusted:允许任何访问
– block:阻塞任何来访请求(明确拒绝,给出客户端回应)
– drop:丢弃任何来访的数据包(不给出客户端回应,节省服务器资源)
配置规则的位置
-运行时 ( runtime )
-永久( permanent )
查看防火墙规则列表
列表查看操作
- firewall-cmd --list-all [--zone=区域名]
- firewall-cmd --list-all-zones
- firewall-cmd --get-zones
- firewall-cmd --get-services
- firewall-cmd --get-default-zone
数据包:源IP地址 目标IP地址 数据
防火墙进入区域的判断:
1.首先查看客户端请求数据包中,源IP地址然后检测自己所有区域中,那个区域有此源IP地址规则,则进入该区域
2.进入默认区域(默认为public)
####################################################
配置防火墙
指定默认的安全区域
·使用--set-default-zone=区域名
-默认为public,限制较严格
-对于开放式环境,建议将默认区域修改为trusted
-针对“运行时/永久配置”均有效
[root@serverO ~]# firewall-cmd --get-default-zone //修改前
public
[root@serverO ~]# firewall-cmd --set-default-zone=trusted
[root@server0 ~]# firewall-cmd --get-default-zone //修改之后
trusted
#######################################################
防火墙默认区域的修改
虚拟机server:
]# firewall-cmd --get-default-zone #查看默认区域
虚拟机desktop:
]# ping 172.25.0.11 #可以通信
虚拟机server:
]# firewall-cmd --set-default-zone=block #修改默认区域
]# firewall-cmd --get-default-zone #查看默认区域
虚拟机desktop:
]# ping 172.25.0.11 #不可以通信,有回应
虚拟机server:
]# firewall-cmd --set-default-zone=drop #修改默认区域
]# firewall-cmd --get-default-zone #查看默认区域
虚拟机desktop:
]# ping 172.25.0.11
#不可以通信,没有回应
###################################################
在public区域中添加允许的协议
虚拟机server:
]# firewall-cmd --set-default-zone=public #修改默认区域
]# firewall-cmd --zone=public --list-all #查看区域规则
虚拟机desktop
]# firefox 172.25.0.11 #失败
]# firefox ftp://172.25.0.11 #失败
虚拟机server:
# firewall-cmd --zone=public --add-(两次TAB键) #看到能够添加的协议
# firewall-cmd --zone=public --add-service=http #添加协议
# firewall-cmd --zone=public --add-service=ftp #添加协议
# firewall-cmd --zone=public --list-all #查看区域规则
虚拟机desktop
]# firefox 172.25.0.11 #成功
]# firefox ftp://172.25.0.11 #成功
#################################################
封网段、开服务
·若针对“永久配置”,需添加--permanent
-使用--add-source=网段地址
-使用--add-service=服务名
[root@server0 ~]# firewall-cmd --permanent --zone=block--add-source=172.34.0.0/24
[root@server0 ~]# firewall-cmd --permanent --zone=public --add-service=http
[root@server0 ~]# firewall-cmd --permanent --zone=public --add-service=ftp
[root@server0 ~]# firewall-cmd --reload //重载配置
实现本机的端口映射
·本地应用的端口重定向(端口1-->端口2)
-从客户机访问端口1的请求,自动映射到本机端口2
-比如,访问以下两个地址可以看到相同的页面
http://server0.example.com:5423/
http://server0.example.com/
[root@serverO ~]# firewall-cmd --permanent --zone=trusted --add-forward-port=port=5423:proto=tcp:toport=80
[root@serverO ~]# firewall-cmd --reload //重载配置(重新加载防火墙所有配置)
#################################################
添加永久的规则:永久( --permanent) #下一次开机读取防火墙规则才能够生效
虚拟机server:
]# firewall-cmd --reload #重新加载防火墙所有配置规则
]# firewall-cmd --zone=public --list-all #查看区域规则
]# firewall-cmd --permanent --zone=public --add-service=http
]# firewall-cmd --reload #重新加载防火墙所有配置规则
]# firewall-cmd --zone=public --list-all #查看区域规则
]# firewall-cmd --permanent --zone=public --add-service=ftp
]# firewall-cmd --reload #重新加载防火墙所有配置规则
]# firewall-cmd --zone=public --list-all #查看区域规则
#使用网页访问时候,前一个http实验是在网页浏览器上有缓存,以前的配置有影响,重新载入reload,查看是否ftp配置成功
##################################################
利用源IP地址,单独拒绝一个主机进行访问
虚拟机server:
]# firewall-cmd --zone=block --add-source=172.25.0.10(虚拟机desktop的IP)
]# firewall-cmd --zone=block --list-all
虚拟机desktop
]# firefox 172.25.0.11 #失败
]# firefox ftp://172.25.0.11 #失败
真机测试
]# firefox 172.25.0.11 #成功
]# firefox ftp://172.25.0.11 #成功
###################################################
端口:程序或服务或协议编号
数据包:源IP地址 目标IP地址 数据 端口
http:默认端口为80
ftp:默认端口为21
实现本机的端口映射
• 本地应用的端口重定向(端口1 --> 端口2)(#能够让用户访问到我们想让他访问的端口,防火墙将端口)重新转到另一个端口。
– 从desktop访问 5423端口 的请求,自动映射到本机 80端口
– 比如,访问以下两个地址可以看到相同的页面:
172.25.0.11:5423
172.25.0.11
虚拟机server
1.将拒绝的规则删除
]# firewall-cmd --zone=block --remove-source=172.25.0.10
2.添加端口转发的规则
]# firewall-cmd --zone=public
--add-forward-port=port=5423:proto=tcp:toport=80
#添加端口转发规则=目标端口为5423:协议为tcp协议:转发到80端口
#proto协议toport转到端口
3.查看public区域的规则
]# firewall-cmd --zone=public --list-all
虚拟机desktop 访问测试
]# firefox 172.25.0.11:5423 #访问对方的编号为5423的程序
####################################################