【包过滤防火墙——firewalld动态防火墙】的简单使用

文章目录

    • firewald与iptables区别
    • firewalld九个区域
    • firewalld配置方法
    • firewalld参数和命令
    • firewalld两种模式
    • firewalld使用
    • 实验

firewalld不要与iptables混用

firewald与iptables区别

  1. iptables 主要是基于接口,来设置规则,从而判断网络的安全性。firewalld 是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全,与硬件防火墙的设置相类似。
  2. iptables 防火墙类型为静态防火墙。firewalld 防火墙类型为动态防火墙。
  3. 使用 iptables 每一个单独更改意味着清除所有旧有的规则从 /etc/sysconfig/iptables 里读取所有新的规则。使用 firewalld 却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此 firewalld 可以在运行时间内,改变设置而不丢失现行连接
  4. iptables 在 /etc/sysconfig/iptables 中储存配置。firewalld 将配置储存在 /etc/firewalld/ (优先加载) 和 /usr/lib/ firewalld/ ( 默认的配置文件) 中的各种 XML 文件里。

firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone)。然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口和服务列表

firewalld九个区域

  • trusted(信任区域):允许所有的数据包。
  • public(公共区域):拒绝流入的流量,除非与流出的流量相关;而如果是与ssh或dhcpv6-client服务相关 流量,则允许通过
  • external(外部区域):拒绝流入的流量,除非与流出的流量相关;而如果与ssh服务相关流量,则运行通过
  • home(家庭区域):拒绝流入的流量,除非与流出的流量相关;如果是与ssh、mdns、amba-client或dhcpv6-client服务相关 流量,则允许通过
  • internal(内部区域):默认值时与homel区域相同。
  • work(工作区域):拒绝流入的流量,除非与流出的流量相关;而如果是与 ssh、dhcpv6-client服务相关 流量,则允许通过
  • dmz(隔离区域也称为非军事区域):允许与ssh 预定义服务匹配的传入流量,其余均拒绝。
  • block(限制区域):拒绝所有传入流量。
  • drop(丢弃区域):丢弃所有传入流量,并且不产生包含ICMP的错误响应。

firewalld配置方法

使用 firewall-cmd 命令行工具
使用 firewall-config 图形工具
编写 /etc/firewalld/ 中的配置文件

firewalld参数和命令

参数 作用
–get-default-zone 查询默认区域
–set-default-zone=区域名称 设置默认区域,使其永久生效
–get-zones 显示可用区域
–get-active-zones 显示当前区域与网卡的名称
–add-source=ip 将源自此的ip或子网的流量导向指定的区域
–remove-source=ip 不再将源自此的ip或子网的流量导向指定的区域
–add-interface=网卡 名称 将源自此的网卡的流量导向指定的区域
–change-interface=网卡名称 将某个网卡与区域进行关联
–list-all 显示当前区域的网卡配置参数、资源、端口及服务信息
–list-all-zones 显示所有区域的网卡配置参数、资源、端口及服务信息
–add-service=服务名称 设置默认区域允许该服务的流量
–add-port=端口/协议 设置默认区域允许该端口的流量
–remove-service=服务名称 不再设置默认区域允许该服务的流量
–remove-port=端口/协议 不再设置默认区域允许该端口的流量
–reload 让永久生效的配置规则 立即生效,并覆盖当前的配置规则
–panic-on 开启应急模式
–panic-off 关闭应急模式
–query-masquerade 检查是否允许伪装IP
–add-masquerade 允许防火墙伪装IP
–remove-masquerade 禁止防火墙伪装IP

firewalld两种模式

运行时模式 Runtime

  • 配置后立即生效,重启后失效

永久生效模式 permanent

  • 当前不生效,重启后生效

firewalld使用

  • 查看当前使用的区域
firewall-cmd --get-default-zone

【包过滤防火墙——firewalld动态防火墙】的简单使用_第1张图片

  • 查看指定网卡所在的区域
firewall-cmd --get-zone-of-interface=ens33

【包过滤防火墙——firewalld动态防火墙】的简单使用_第2张图片

  • 修改当前网卡所在的区域,并永久生效
firewall-cmd --permanent --zone=external --change-interface=ens33

【包过滤防火墙——firewalld动态防火墙】的简单使用_第3张图片

重启服务器,查看网卡所在区域

firewall-cmd --get-zone-of-interface=ens33

【包过滤防火墙——firewalld动态防火墙】的简单使用_第4张图片

  • 显示当前区域的网卡配置参数、资源、端口及服务信息
firewall-cmd --list-all

当前处于public区域

【包过滤防火墙——firewalld动态防火墙】的简单使用_第5张图片

现在防火墙处于开启的状态

只能允许ssh,dhcpv6-client服务的流量通过

假如说开启了80端口,要想访问是访问不了的

  • 给public区域添加http服务
firewall-cmd --zone=public --add-service=http

这个时候开启http80端口是可以访问的,但是上面的配置在重启后配置 会失效

要想 永久生效必须加上--permanent参数

firewall-cmd --permanent  --zone=public --add-service=http
  • public区域移除http服务

当前立即生效,如果想永久生效需要加--permanent参数

firewall-cmd --zone=public --remove-service=http
  • 在配置规则比较多情况下,让永久生效的配置立即生效,可以使用--reload立即生效
firewall-cmd --reload
  • 添加80端口规则
firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --reload

【包过滤防火墙——firewalld动态防火墙】的简单使用_第6张图片

【包过滤防火墙——firewalld动态防火墙】的简单使用_第7张图片

  • 修改ssh服务默认端口

修改ssh默认端口之前需要禁用selinux

vim /etc/selinux/config

vim /etc/ssh/sshd_config

【包过滤防火墙——firewalld动态防火墙】的简单使用_第8张图片

重启sshd服务

systemctl restart sshd.service

ssh服务默认是22端口,要想连接,需要设置防火墙规则运行2222端口通过

设置规则

 firewall-cmd --zone=public --permanent --add-port=2222/tcp
 firewall-cmd --reload

【包过滤防火墙——firewalld动态防火墙】的简单使用_第9张图片

连接2222端口

【包过滤防火墙——firewalld动态防火墙】的简单使用_第10张图片

  • 端口转发
vim /etc/ssh/sshd_config

修改ssh连接端口为8888

systemctl restart sshd.service

设置规则

firewall-cmd --permanent --zone=public --add-forward-port=port=2222:proto=tcp:toport=8888:toaddr=127.0.0.1
  • --add-forward-port 端口转发
  • port 从哪个端口来
  • proto 哪个协议
  • toport到目的地的哪个端口
  • toaddr到目的地的哪个地址
firewall-cmd --reload

添加好端口转发规则后,是连不上的,从2222端口转发到8888端口,我们只开放了2222端口,并没有开放8888端口,需要再加一条规则

firewall-cmd --permanent --zone=public --add-port=8888/tcp
firewall-cmd --reload

发现还是连接不上,最后发现不能 用127.0.0.1这个地址

firewall-cmd --permanent --zone=public --add-forward-port=port=2222:proto=tcp:toport=8888:toaddr=192.168.80.131

firewall-cmd  --reload

【包过滤防火墙——firewalld动态防火墙】的简单使用_第11张图片

再次连接就成功了

【包过滤防火墙——firewalld动态防火墙】的简单使用_第12张图片

  • 移除端口转发
firewall-cmd --permanent --zone=public --remove-forward-port=port=2222:proto=tcp:toport=8888:toaddr=127.0.0.1

firewall-cmd --reload

实验

【包过滤防火墙——firewalld动态防火墙】的简单使用_第13张图片

给Centos添加 一块网卡,划分到LAN区段

【包过滤防火墙——firewalld动态防火墙】的简单使用_第14张图片

手动配置 静态IP

然后ip a,查看新添加的网卡名称为ens36

cd /etc/sysconfig/network-scripts

cp ifcfg-ens33 ifcfg-ens36

vim ifcfg-ens36

修改如下:

重启网卡

systemctl restart network.service

查看IP

然后再开启一台win7,,网卡划分到同一LAN区段

手动配置IP地址

【包过滤防火墙——firewalld动态防火墙】的简单使用_第15张图片

启动80端口

【包过滤防火墙——firewalld动态防火墙】的简单使用_第16张图片

【包过滤防火墙——firewalld动态防火墙】的简单使用_第17张图片

查看两台是否互通

【包过滤防火墙——firewalld动态防火墙】的简单使用_第18张图片

这个时候Centos就能够访问Win7的网站了

curl 10.1.1.2

首先要让Win11能够访问到Centos8080端口

firewall-cmd --permanent --zone=public --add-port=8080/tcp

端口转发,让8080端口,能访问到10.1.1.280端口

firewall-cmd --permanent --zone=public --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=10.1.1.2

立即生效防火墙配置

firewall-cmd --reload

允许防火墙伪装IP

firewall-cmd --permanent --add-masquerade
 firewall-cmd --reload

【包过滤防火墙——firewalld动态防火墙】的简单使用_第19张图片

你可能感兴趣的:(#,Linux,网络,服务器,防火墙,网络安全,web安全)