firewalld 与 iptables的配置

Firewalld 概述


  1. 动态防火墙后台程序 firewalld 提供了一个 动态管理的防火墙, 用以支持网络 “zones” , 以分配对一个网络及其相关链接和界面一定程度的信任。它具备对 IP v4 和 IP v6 防火墙设置的支持。它支持以太网桥, 并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。

  2. 系统提供了图像化的配置工具 firewall-config、system-config-firewall, 提供命令行客户端 firewall-cmd, 用于配置 firewalld 永久性或非永久性运行时间的改变: 它依次用 iptables 工具与执行数据包筛选的内核中的 Netfilter 通信。

3.firewalld 和 iptables service 之间最本质的不同是:

• iptables service 在 /etc/sysconfig/iptables 中储存配置, 而 firewalld 将配置储存在 / usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种 XML 文件里.
• 使用 iptables service 每一个单独更改意味着清除所有旧有的规则和从 / etc/sysconfig/iptables 里读取所有新的规则, 然而使用 firewalld 却不会再创建任何新的规则; 仅仅运行规则中的不同之处。因此, firewalld 可以在运行时间内, 改变设置而不丢失现行连接。
基于用户对网络中设备和交通所给与的信任程度, 防火墙可以用来将网络分割成不同的区域 NetworkManager 通知 firewalld 一个接口归属某个区域, 新加入的接口被分配到默认区域。
这里写图片描述
网络区名称 默认配置
trusted(信任) 可接受所有的网络连接
home(家庭) 用于家庭网络, 仅接受 ssh、mdns、ipp-client、samba-client、或 dhcpv6-client 服务连接
internal(内部) 用于内部网络, 仅接受 ssh、mdns、ipp-client、samba-client、dhcpv6-client 服务连接
work(工作) 用于工作区, 仅接受 ssh、ipp-client 或 dhcpv6-client 服务连接
public(公共) 在公共区域内使用, 仅接受 ssh 或 dhcpv6-client 服务连接, 为 firewalld 的默认区域
external(外部) 出去的 ipv4 网络连接通过此区域伪装和转发, 仅接受 ssh 服务连接
dmz(非军事区) 仅接受 ssh 服务接连
block(限制) 拒绝所有网络连接
drop(丢弃) 任何接收的网络数据包都被丢弃, 没有任何回复
这里写图片描述

管理防火墙

firewalld的启动
[root@client Desktop]# yum install firewalld firewalld-config -y
[root@client Desktop]# firewalld-config & firewalld 的图形化管理 

启动和禁止防火墙

systemctl start firewalld
systemctl enable firewalld
systemctl stop firewalld
systemctl disable firewalld

使用命令行接口配置防火墙

查看 firewalld 的状态

[root@client Desktop]# firewall-cmd --state
running

查看默认网络区域

[root@client Desktop]# firewall-cmd --get-default-zone 
public    ##公共

查看所有可用区域

[root@client Desktop]# firewall-cmd --get-zones
ROL block dmz drop external home internal public trusted work

列出指定域(public)的所有设置

[root@client Desktop]# firewall-cmd --zone=public --list-all 
public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client ssh
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules:

列出指定域(block)的所有设置

[root@client Desktop]# firewall-cmd --zone=block --list-all 
block
  interfaces: 
  sources: 
  services: 
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules:

列出所有区域的设置

[root@client Desktop]# firewall-cmd --list-all-zones

设置默认区域

[root@client Desktop]# firewall-cmd --set-default-zone=trusted 
success
[root@client Desktop]# firewall-cmd --get-default-zone 
trusted
[root@client Desktop]# firewall-cmd --get-active-zones 
ROL
  sources: 172.25.0.252/32
trusted      ##网络区为信任
  interfaces: eth0

设置网络地址到指定的区域

firewall-cmd -permanent --add-source=172.25.254.36 --zone=trusted
firewall-cmd -permanent --add-source=172.25.254.36/24 --zone=trusted 
–permanent 参数表示永久生效设置 
如果没有指定–zone 参数, 那么会加入默认区域 
172.25.254.36(IP 指定)、172.25.254.36/24(网络位相同即可)

删除指定区域中的网络地址

firewall-cmd -permanent --remove-source=172.25.254.36 --zone=trusted

查看指定级别的接口

[root@client Desktop]# firewall-cmd --list-interfaces 
eth0

查看指定接口的 Zone 信息

[root@client Desktop]# firewall-cmd --get-zone-of-interface=eth0
trusted

添加网络接口

[root@client Desktop]# firewall-cmd --add-interface=eth1 --zone=public 
success
[root@client Desktop]# firewall-cmd --get-zone-of-interface=eth1
public

改变某接口至某信任等级,譬如改变 eth0 至 public

[root@client Desktop]# firewall-cmd --change-interface=eth0 --zone=public 
success
[root@client Desktop]# firewall-cmd --get-zone-of-interface=eth0
public
[root@client Desktop]# firewall-cmd --get-zone-of-interface=eth1
public

删除指定接口 eth1

[root@client Desktop]# firewall-cmd --remove-interface=eth1 --zone=trusted 
success
[root@client Desktop]# firewall-cmd --get-zone-of-interface=eth1
no zone
添加、改变、删除网络接口: 
firewall-cmd –permanent –zone=internal –add-interface=eth0 
firewall-cmd –permanent –zone=internal –change-interface=eth0 
firewall-cmd –permanent –zone=internal –remove-interface=eth0 
添加、删除服务: 
firewall-cmd –permanent –zone=public –add-service=smtp 
firewall-cmd –permanent –zone=public –remove-service=smtp 
列出、添加、删除端口: 
firewall-cmd –zone=public –list-ports 
firewall-cmd –permanent –zone=public –add-port=8080/tcp 
firewall-cmd –permanent –zone=public –remove-port=8080/tcp 
重载防火墙: 
firewall-cmd –reload 
(注意: 这并不会中断已经建立的连接, 如果打算中断, 可以使用 –complete-reload 选项)firewalld 的规则被保存在 / etc/firewalld 目录下的文件中, 你也可以直接编辑这些文件达到配置防火墙的目的。/usr/lib/firewalld 目录下的内容是不可以被编辑的, 但可以用做默认模板。

添加、删除服务

添加

[root@client ~]# firewall-cmd --zone=public -add-service=http 
success
[root@client ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0 eth1
  sources: 
  services: dhcpv6-client http ssh
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules:

删除

[root@client ~]# firewall-cmd --remove-service=http
success
[root@client ~]# firewall-cmd --reload   ##不完全刷新
success
[root@client ~]# firewall-cmd --list-all
[root@client ~]# firewall-cmd --list-all
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值