flash建网站教程,采招网,西安做软件的公司,一般网站的流量是多少一、系统防火墙原理
麒麟操作系统从V10版本开始#xff0c;默认使用了Firewalld防火墙#xff0c;Firewalld是能提供动态管理的防火墙#xff0c;支持网络/防火墙区域#xff0c;用于定义网络连接或接口的信任级别。支持IPv4和IPv6防火墙设置、以太网桥接和IP集。将运行时…一、系统防火墙原理
麒麟操作系统从V10版本开始默认使用了Firewalld防火墙Firewalld是能提供动态管理的防火墙支持网络/防火墙区域用于定义网络连接或接口的信任级别。支持IPv4和IPv6防火墙设置、以太网桥接和IP集。将运行时配置和永久配置选项分开为服务或应用程序提供了直接添加防火墙规则的接口。
Firewalld的一个很大的优势的它是动态管理的不需要重启防服务的情况下也可以更改防火墙配置也不会中断服务器的任何连接。
Linux是通过内核中的 netfilter 来实现网络数据包的过滤管理查看、记录、修改、丢弃、拒绝。netfilter 代码被编译到 Linux 内核中并执行实际的包过滤用户没有办法直接鱼 netfilter 交互需要某种帮助程序作为桥梁来与 netfilter 交互。
与 netfilter 交互的方法
管理员编写内核模块程序与 netfilter 交互ipchains (Linux kernel 2.4)iptables (作为 Linux kernel 2.6 版本的1个特性引入)nftables
Firewalld可以理解为就是iptables的前端工具。
Netfilter是Linux核心层内部的一个数据包处理模块Linux平台下的包过滤防火墙
网络地址转换Network Address Translate数据包内容修改数据包过滤的防火墙功能
Netfilter专业术语
表tables相同功能规则的集合链chains关卡规则policy匹配条件、处理动作
内核空间的转发流程图
1. 链chains
链是一组规则的集合在配置规则的时候要注意规则的顺序。Firewalld会根据规则的先后进行匹配当匹配到合适项时会停止匹配。在没有匹配项时会应用缺省规则。
2. 表table
表是由链组成的四张表的优先级由高到低的顺序为raw -- mangle -- nat -- filter
raw关闭nat表上启用的连接追踪机制【iptable_raw】mangle表拆解报文做出修改并重新封装【iptable_mangle】nat表网络地址转换功能【内核模块iptable_nat】filter表负责过滤【内核模块iptable_filter】
如果想要Linux支持转发需要开启内核的ip_forward功能。可以临时修改对应文件/proc/sys/net/ipv4/ip_forward。
ip_forward默认是关闭的可以通过查看/proc/sys/net/ipv4/ip_forward文件查看
cat /pro/sys/net/ipv4/ip_forward临时启用IP转发功能使用echo命令修改文件以开启IP转发直接使用vim是无法编辑的
echo 1 /proc/sys/net/ipv4/ip_forward永久启用IP转发功能修改内核文件修改 ip_forward 的值
vim /etc/sysctl.conf
# 修改下列选项值为1
net.ipv4.ip_forward1sysctl -p # 生效配置文件二、 Firewalld防火墙控制
防火墙的类别
静态防火墙 只要修改规则就要进行所有规则的重新载入例如iptables service 动态防火墙 任何规则的变更都不需要对整个防火墙规则列表进行重新加载只需要将变更部分保存并更新到 iptables 例如firewalld
Firewalld提供了一个 daemon 和 service还有命令行和图形界面配置工具它仅仅是替代了 iptables service部分其底层还是使用 iptables 作为防火墙规则管理入口。真正利用规则进行数据包过滤是由内核中的 netfilter 子系统负责。
1. 区域zone
Firewalld将网卡对应到不同的区域zonezone默认一共有9个
不同区域之间的差异是它对待数据包的默认行为不同根据区域名字我们可以很直观的知道该区域的特征在银河麒麟操作系统中默认区域为public。Firewalld默认每个服务都是拒绝需要去设置才能放行
通过查看/usr/lib/firewalld/zones目录可以看到系统预先配置的区域和服务zones文件都是xml格式 Firewalld区域zone
区域zone默认策略规则适用区域trusted信任接受任何网络连接允许所有数据包进出内部网络home家庭流量与ssh、mdns、ipp-client、samba-client、dhcpv6-client服务相关允许进入家庭网络Internal内部等同于home区域内部网络work工作仅流量与ssh、ipp-client、dhcpv6-client服务相关允许进入工作区public公共只有经过选取的连接、流量与ssh、dhcpv6-client服务相关允许进入公共区域external外部流量与ssh服务相关允许进入启用伪装功能的外部网dmz非军事区可以公开访问、可以有限的进入内部网络、流量与ssh服务相关允许进入安全级别位于内网与外网间停火区域允许公网访问的服务器所在区域block限制任何接接收的网络连接都被拒绝保护区域
2. 图形界面修改防火墙设置 3. 命令行界面修改防火墙设置
Firewalld基本命令
命令说明systemctl start firewalld开启防火墙systemctl enable firewalld开机自启防火墙systemctl stop firewalld关闭防火墙systemctl disable firewalld开机自动关闭防火墙firewalld-cmd --state | systemclt status firewalld查看防火墙状态firewalld-cmd --get-active-zones查看防火墙管理的设备firewalld-cmd --get-default-zone查看防火墙生效的区域firewalld-cmd --get-zones查看防火墙所有区域firewalld-cmd --zonepublic --list-all列出关于public区域的服务设置firewalld-cmd --get-services列出可使用的服务firewalld-cmd --set-default-zonetrusted修改默认区域为trustedfirewalld-cmd --list-all-zones列出所有的区域firewalld-cmd --set-default-zonedmz设置防火墙的区域firewalld-cmd --set-default-zonedmz查看特定区域的信息
修改安全策略
命令说明firewalld-cmd --add-servicehttps临时添加服务默认的区域firewalld-cmd --permanent --add-servicehttps永久添加服务默认的区域firewalld-cmd --add-port80/tcp临时添加端口firewalld-cmd --remove-interfaceeth0删除接口firewalld-cmd --permanent --change-interfaceeth1 --zonedmz永久更改接口区域firewalld-cmd --remove-souce192.168.10.1 --zoneblock临时拒绝主机192.168.10.1的所有网络连接firewalld-cmd --remove-source192.168.10.1 --zoneblock --permanent永久移除限制firewalld-cmd --complete-reload中断连接重启防火墙策略firewalld-cmd --reload不中断连接重启防火墙策略firewalld-cmd --direct --get-all-rules查看设置的规则
[Step1]: Firewalld服务默认为开机自启可以通过命令查看 [Step2]: 当使用 firewalld-cmd 命令时如果拼写错误会有智能提示
firewalld-cmd --list-zone # 查看防火墙所有区域正确命令为[ --list-zones ][Step3]: 防火墙配置文件可以手动修改修改后需要重启防火墙或重新加载生效
vim /etc/firewalld/zones/public.xml# 允许http服务通过
service namehttpfirewall-cmd --reload # 重新加载防火墙不会中断用户连接
firewall-cmd --list-services --zonepublic # 查看防火墙放行的服务可以看到多出http[Step4]: 当防火墙出现严重问题时如防火墙规则设置正确但却出现状态信息问题和无法建立连接
firewall-cmd --complete-reload # 重新加载防火墙并中断用户连接4. 服务配置文件
在/usr/lib/firewalld/services目录下保存了daemon文件每个文件对应一项具体的网络服务。
与之对应的配置文件中记录了各项服务所使用的tcp/udp端口当默认提供的服务不够用或需要自定义某项服务的端口时我们需要将 service 配置文件放置在 /etc/firewalld/services目录中每加载一项已设置好的 service 配置就意味着开放对应端口访问请勿修改/usr/lib/firewalld/services只有/etc/firewalld/services的文件可以被编辑
查看ssh服务的配置文件内容
vim /usr/lib/firewalld/services/ssh.xml如果想修改特定服务可以将该服务配置文件复制到/etc/firewalld/services/目录下
系统会优先读取/etc/firewalld里面的文件其次读取/usr/lib/firewalld/services/中的文件为了方便管理和修改建议将文件复制到/etc/firewalld/services/目录下。
cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services添加自定义服务添加8080端口
# 随便复制一个配置文件充当模板
cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services/tcp8080.xml
# 编辑新配置文件修改后内容如下图所示
vim /etc/firewalld/services/tcp8080.xml# 将新添加的服务文件添加到 public 区域配置文件中
vim /etc/firewalld/zones/public.xml# 末尾追加一行
service nametcp8080/firewall-cmd --reload # 重新加载防火墙验证可以通过8080访问服务器上的web服务
三、麒麟安全增强设置
1. 管理员分权机制管理员权限拒绝滥用
存在的问题
超级管理员权限具有所有权限【权限不受限】系统容易发生错误【当超级管理员误删除关键文件】病毒木马容易入侵【提权后可以肆意攻击存在安全隐患】
管理员分权的优势
将超级管理员的权限拆分三个管理员相互合作、互相制约【三权分立】避免误操作引起的系统错误避免权限过大引起的安全隐患
2. 典型实施机制进程和数据安全隔离
存在的问题
进程可以随意访问数据数据安全性、机密性差
进程和数据安全隔离的优势
对进程可以划分不同类型域对文件数据可以划分不同的类型域数据隔离
3. 多级安全机密性机制等级划分、安全机密
存在的问题
无等级划分、访问数据限制性较低低级别进程可以访问部分数据数据安全性、机密性差
等级划分、安全机密的优势
禁止上读下写保证数据机密性
4. Kysed机制提出基于标记的软件执行控制机制
未认证非法外来、被篡改程序拒绝执行外来内核模块拒绝加载非法来源程序拒绝安装保护文件拒绝篡改保护内核模块拒绝卸载未授权应用拒绝联网保护进程拒绝被杀死
5. 支持国密算法支持软硬国密算法
存在的问题
不支持、不合规
支持软硬算法的优势
符合国家密码主管部门要求
6. 用户UID唯一性用户拒绝重复
存在的问题
用户删除之后重复使用用户信息容易泄露
用户拒绝重复的优势
用户UID唯一且不可重复保证用户信息机密性
7. 安全中心病毒防护、账户安全、网络保护、应用执行控制、极限扫描功能
存在的问题
功能分散、难以整合命令操作系统为主用户体验感差、交互差
安全中心的优势
图形化操作操作简便交互友好功能集中统一配置和管理
8. 安全管理工具对系统安全模式、系统安全状态、执行控制功能、管理员分权、内核防卸载功能、文件保护功能等安全功能管理
存在的问题
命令操作门槛高不易操作用户体验不直观交互体验差
安全管理工具的优势
统一管理操作简便交互友好
9. 文件保密箱数据隔离、授权共享、透明加解密
存在的问题
数据被其它用户可见、可操作、可复制、数据存储不安全其它用户难以共享数据配置复杂数据明文存储机密性差容易被窃取硬盘被窃取后所有数据全部泄露
文件保险箱的优势
数据安全隔离、数据可授权共享数据加解密保证数据机密性硬盘被窃取后加密数据无法查看依然保证数据机密性图形化操作操作简便交互友好
10. 日志管理工具日志展示、日志过滤、日志检索、日志导出
存在的问题
日志过多管理难日志查看不便搜索不便
日志管理根据的优势
便于日志查看、管理便于搜索定位便于导出
四、访问控制模型
**DAC**自主访问控制是Linux下默认的接入控制机制通过对资源读、写、执行操作保证系统安全。
**MAC**安全接入控制机制默认情况下MAC不允许任何访问用户可以自定义策略规则指定运行什么从而可以避免很多攻击。
MAC强制访问控制有三种实现方式Apparmor、SELinux、Kysec
Apparmor内核模块的一个安全框架是Ubuntu的强制访问默认选择SELinux美国国家安全局NSA对于强制访问控制的实现是RHEL的强制访问默认选择KySec是基于kysec安全标记对执行程序、脚本文件、共享库、内核模块进行保护的一种安全机制是麒麟操作系统的强制访问默认选择
KYSEC的两种安全模式
强制模式Normal出现违规操作时阻止该操作的运行并审计记录该操作警告模式Warning出现违规操作时弹出麒麟安全授权认证框进行授权桌面操作系统才有软模式Softmode出现违规操作时只会审计记录该操作不会阻止该操作的运行
五、麒麟安全增强Kysec
Tips在安装麒麟操作系统时默认不会安装【麒麟安全增强工具】也就无法使用kysec 后期如果需要使用麒麟安装增加工具不同的命令需要安装不同的软件包以下安装包推荐使用Kylin自带的网络源进行安装
# 查看当前kysec安全状态的命令[getstatus]
kysec-utils-3.4.1-01.se.26.ky10.x86_64# 修改kysec安全状态的命令[kysec]
security-switch-1.3.1-1.se.04.ky10.x86_64# 查看kysec安全标记的命令[kysec]在安装kysec-utils会关联安装
kysec-utils-3.4.1-01.se.26.ky10.x86_64查看当前kysec的安全状态
getstatuskysec安全标记类型安全状态exec control执行控制on/off/warningnet control网络控制on/off/warningfile protect文件保护on/off/warningkmod protect内核模块保护on/off/warningthree protect三权分立on/off/warningprocess protect进程保护on/off/warning
KYSEC的开启与关闭需要重启系统生效
security-switch --set default # 开启KYSEC
security-switch --set none # 关闭KYSEC
security-switch --set strict # 启用三权分立设置KYSEC的模式为softmode还是normal
setstatus softmode/normal修改相应功能安全状态将网络控制模式临时关闭
setstatus kysec -f netctl -c off -t-f netctl指定安全模块下的子功能-c off设置子功能的状态on为开启off为关闭-t临时生效
1. 查看kysec安全标记
文件身份标记用于对执行文件的用户进行限制
secadm文件属于安全管理员只能由安全管理员执行audadm文件属于审计管理员只能由升级管理员执行none无身份标记所有用户都可执行
文件保护标记用于对文件进行保护和检测
verify执行前检查文件是否发生变化如果发生变化禁止执行readonly文件只读对文件的写、移动、重命名和属性修改操作都禁止none无文件保护标记
执行控制标记用于对文件的是否可执行进行控制
unknown未知文件标记该标记不可执行original系统原始文件标记该标记可执行verified第三方可执行文件标记该标记可执行kysoft可信安全脚本标记该标记可执行trusted可信文件标记拥有该标记的程序对文件仅修改时文件标记不变该表可执行
查看安全标记
kysec_get exectl -f xxx # 查看xxx文件的执行控制标记
kysec_get fpro -f /usr/bin/ls # 查看/usr/bin/ls的文件保护标记2. 可执行文件的可执行控制
[Setp1]: 首先查看kysec的安全状态可以看到当前执行控制模式为on
getstatus[Setp2]: 查找本地的cat命令将cat命令拷贝到/tmp目录下
whereis cat
cp /usr/bin/cat /tmp
ll /tmp[Setp3]: 尝试使用tmp目录下的cat命令查看文件内容可以看到该命令无法被执行
/tmp/cat /etc/selinux/config[Setp4]: 临时关闭执行控制模式重新使用该命令查看文件内容此时可以看到文件内容
setstatus kysec -f exectl -c off -t
/tmp/cat /etc/selinux/config[Setp4]: 重新开启执行控制模式状态然后查看/tmp/cat文件的执行控制标记
setstatus kysec -f exectl -c on -t
kysec_get exectl -f /tmp/cat[Setp5]: 修改/tmp/cat文件的执行控制标记为kysoft然后使用/tmp/cat查看任意文件内容
kysec_set exectl -v kysoft -f /tmp/cat-v kysoft标记值此处设置为kysoft-f /tmp/cat文件或目录路径, 设置文件或目录下文件的标记
kysec_get exectl -f /tmp/cat
/tmp/cat /etc/selinux/config[Setp6]: 同时如果修改文件内容后改文件的执行控制标记会变更为unkonow
kysec_get exectl -f /tmp/cat
echo /tmp/cat # 修改文件内容
kysec_get exectl -f /tmp/cat3. 可执行文件的可执行控制
[Setp1]: 首先查看kysec的安全状态可以看到当前执行控制模式为on
getstatus[Setp2]: 新建一个脚本赋予该脚本执行权限
touch demo.sh
chmod x demo.sh # 赋予该脚本执行权限此处给所属者添加执行权限
vim demo.sh# 写入下列内容
#!/bin/bash
echo Hello![Setp3]: 测试执行脚本提示【解释器错误权限不够】
[Setp4]: 修改执行控制标记为kysoft并尝试重新执行脚本文件
kysec_set exectl -v kysoft -f demo.sh
kysec_get exectl -f demo.sh4. 内核模块的可执行控制
[Setp1]: 首先将内核文件拷贝至当前目录
cp /lib/modules/4.19.90-89.11.v2401.ky10.x86_64/kernel/net/netfilter/nf_conntrack_ftp.ko.xz .[Setp2]: 将模块载入到内核中此时会提示资源不可用
insmod nf_conntrack_ftp.ko.xz[Setp3]: 修改执行控制标记为original并尝试重新载入模块此时不会报错
kysec_set exectl -v original -f nf_conntrack_ftp.ko.xz
kysec_get exectl -f nf_conntrack_ftp.ko.xz5. 文件保护受保护的文件不能被修改、重命名和删除
[Setp1]: 本地新建一个文件设置文件保护标记为只读
echo Hello demo.txt
kysec_set fpro -v readonly -f demo.txt[Setp2]: 测试发现可以正常读取该文件但是无法修改文件 [Setp3]: 修改文件保护标记为verify移动该文件到/tmp目录下可以发现无法读取该文件
kysec_set fpro -v verify -f demo.txt
mv demo.txt /tmp/六、三权分立
主要的设计思想是将传统意义上的超级管理员root的权利进行划分分为rootuid0、secadmuid600和auditadmuid700分别作为超级管理员的别名存在。通过SELinuxadmin3kysec技术实现基于角色的访问控制机制。三权系统除了使用传统的Linux用户身份鉴定机制外还可以使用双因子验证方式进行身份验证符合公安部的安全操作系统的相关标准。不同权限管理员之间实现权限隔离满足等保“权限最小化原则”提升系统抗风险能力。 [Step1]: 开启三权分立功能在启用三权分立时需要为三个用户设置密码
security-switch --set strict[Step2]: 在重启过后会出现两个新的用户 [Step3]: 使用auditadm用户审计管理员登录在对磁盘进行操作时会提示权限不够
[Step4]: 使用secadm用户安全管理员登录新建用户时会提示权限不够 [Step5]: 禁用三权分立
security-switch --set default七、关闭KYSEC
[Step1]: 编辑引导配置文件将与kysec有关的东西全部删掉
vim /etc/default/grub# 修改后内容如下图[Step2]: 先查看当前的硬盘编号然后重新安装引导配置文件到硬盘中
lsblk
grub2-install /dev/sda[Step3]: 重新生成引导配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg[Step4]: 重启服务器可以看到kysec已经被关闭