Unit8—Linux中的火墙策略优化
Posted S4061222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unit8—Linux中的火墙策略优化相关的知识,希望对你有一定的参考价值。
目录
四、firewalld
firewalld 是基于文件的方式来对其管理的;文件在 /etc/firewalld/ 中
1. firewalld的开启
2. 关于firewalld的域
字符 | 含义 |
---|---|
trusted | 接收所有的网络连接 |
home | 用于家庭网络;允许接受 ssh |
work | 工作网络; ssh ipp-client dhcp-client |
public | 公共网络 ssh dhcp-client |
dmz | 军级网络 ssh |
block | 拒绝所有 |
drop | 丢弃;所有数据全部丢弃无任何回复 |
internal | 内部网络 ssh mdns ipp-client samba-client dhcp-client |
external | ipv4 网络地址伪装转发sshd |
/etc/firewalld ##火墙配置目录
/lib/firewalld ##火墙模块目录
3. firewalld 的管理命令(一)
firewall-cmd --state 查看火墙状态
firewall-cmd --get-active-zones 查看当前火墙中生效的域
firewall-cmd --get-default-zone 查看默认域
firewall-cmd --list-all 查看默认域中的火墙策略
firewall-cmd --list-all --zone=work 查看指定域的火墙策略
firewall-cmd --set-default-zone=trusted 设定默认域
firewall-cmd --get-services 查看所有可以设定的服务
firewall-cmd --permanent --remove-service=cockpit 移除服务
firewall-cmd --reload
实验环境:
修改默认测试页的内容为hello westos ,默认域为public
firewall-cmd --set-default-zone=trusted ,设定默认域为 trusted
相当于编辑/etc/firewalld/firewalld.conf文件中的内容
firewall-cmd --set-default-zone=public
#设定默认域为 public
firewall-cmd --set-default-zone=block
#设定默认域为 block
firewall-cmd --permanent --remove-service=ssh
#其实更改的是 /etc/firewalld/zones/ 中的文件内容
测试:
firewall-cmd --state #查看当前火墙状态
firewall-cmd --get-active-zones #查看当前活跃域
firewall-cmd --get-default-zone #查看当前默认域
firewall-cmd --get-zones #查看所有的域名称;此处的 libvirt 为虚拟机开启时的域,在真实主机中并不存在
firewall-cmd --get-services #所有可以设定的服务;
firewall-cmd --set-default-zone=public #设定默认域为 public
firewall-cmd --list-all --zone=dmz #查看指定域dmz的火墙策略
firewall-cmd --get-services #所有可以设定服务中没有westos服务;
添加westos服务:
(1)cp /usr/lib/firewalld/services/ssh.xml
/usr/lib/firewalld/services/westos.xml
(2)vim /usr/lib/firewalld/services/westos.xml
(3)firewall-cmd --permanent --add-service=westos
(4)firewall-cmd --reload
(5)firewall-cmd --list-all
火墙策略中移除westos服务
4. firewalld 的管理命令(二)
firewall-cmd --permanent --add-source=172.25.4.0/24 --zone=trusted
指定数据来源访问指定域
firewall-cmd --reload
firewall-cmd --permanent --remove-source=172.25.4.0/24 --zone=public
删除自定域中的数据来源
firewall-cmd --permanent --remove-interface=ens9 --zone=public
删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens9 --zone=block
添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens9 --zone=public
更改网络接口到指定域
firewall-cmd --permanent --add-source=172.25.4.0/24 --zone=trusted
#指定数据来源,访问指定域,表示172.25.4.0/24网段的主机,访问此主机(a)走trusted域,其他主机走默认域(public)
测试:
ens3网卡走public域,ens9网卡走trusted域
测试:
主机访问ens3网卡时失败,westosb访问ens9网卡成功
将ens9网卡从trusted域修改为public域
5. firewalld的高级规则
某一个用户的某一项权限的设置,就要用到高级规则,此处只允许70主机
firewall-cmd --direct --get-all-rules
##查看高级规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.70 -p tcp – dport 22 -j REJECT
##编写高级规则,其实编辑的是 direct 的文件
##在 filter 表的 INPUT 端设定规则为 1, -p表示的是用什么协议, --dport 22 表示端口号, -s 表示的是谁,!s 表示除了70主机, -j 表示执行什么动作,(direct:默认的规则中开启,使用direct可以作规则限制)
测试:
只有 200 主机在访问时端口为 22 的服务时被允许,其他主机访问端口为 22 的服务时被拒绝,但是其他端口的服务还是接受的
6. firewalld中的NAT
以上的设置都是对于一个网段之间的设置,那么不同网段之间要通信就需要以下的设置:
(一)4网段的b主机无法ping通254网段的真实主机
westosb主机ip:172.25.4.204,无法ping通172.25.254.70主机,
westosa主机只需要开启地址伪装功能,westosb主机就可以ping通172.25.254.70主机
测试:
(二)端口转发:
真实主机172.25.254.70主机链接172.25.254.104主机,无地址伪装
解决方法:
当访问此主机的22端口时候,转换到172.25.4.204主机的22端口(必须基于masquerade功能打开)
测试:
以上是关于Unit8—Linux中的火墙策略优化的主要内容,如果未能解决你的问题,请参考以下文章
Linux中netfilter火墙访问控制策略优化详解(上)—iptables
Linux中netfilter火墙访问控制策略优化详解(下)—firewalld