centos 7 中防火墙是一个非常的强大的功能了,但对于 centos 7 中在防火墙中进行了升级了,下面我们一起来详细的看看关于 centos 7 中防火墙使用方法。
FirewallD 提供了支援互联网/防火墙区域 (zone) 定义互联网连结以及介面安全等级的动态防火墙管理工具。它支援 IPv4, IPv6 防火墙设定以及乙太网桥接,并且拥有执行时配置和永久配置选项。它也支援允许服务或者应用程式直接新增防火墙规则的介面。 以前的 system-config-firewall/lokkit 防火墙模型是静态的,每次修改都要求防火墙完全重启。这个过程包括核心 netfilter 防火墙模组的解除安装和新配置所需模组的装载等。而模组的解除安装将会破坏状态防火墙和确立的连线。
相反,firewall daemon 动态管理防火墙,不需要重启整个防火墙便可应用更改。因而也就没有必要过载所有核心防火墙模组了。不过,要使用 firewall daemon 就要求防火墙的所有变更都要通过该守护程序来实现,以确保守护程序中的状态和核心里的防火墙是一致的。另外,firewall daemon 无法解析由 ip*tables 和 ebtables 命令列工具新增的防火墙规则。
守护程序通过 D-BUS 提供当前启用的防火墙设定资讯,也通过 D-BUS 接受使用 PolicyKit 认证方式做的更改。
“守护程序”
应用程式、守护程序和使用者可以通过 D-BUS 请求启用一个防火墙特性。特性可以是预定义的防火墙功能,如:服务、埠和协议的组合、埠/资料包转发、伪装、 ICMP 拦截或自定义规则等。该功能可以启用确定的一段时间也可以再次停用。
通过所谓的直接介面,其他的服务 (例如 libvirt ) 能够通过 iptables 变元 (arguments) 和引数 (parameters) 增加自己的规则。
amanda 、 ftp 、 samba 和 tftp 服务的 netfilter 防火墙助手也被 “守护程序” 解决了, 只要它们还作为预定义服务的一部分。附加助手的装载不作为当前介面的一部分。由于一些助手只有在由模组控制的所有连线都关闭后才可装载。因而,跟踪连线资讯很重要,需要列入考虑范围。
静态防火墙 (system-config-firewall/lokkit)
使用 system-config-firewall 和 lokkit 的静态防火墙模型实际上仍然可用并将继续提供,但却不能与 “守护程序” 同时使用。使用者或者管理员可以决定使用哪一种方案。
在站群软件安装,初次启动或者是首次联网时,将会出现一个选择器。通过它你可以选择要使用的防火墙方案。其他的站群解决方案将保持完整,可以通过更换模式启用。
firewall daemon 独立于 system-config-firewall,但二者不能同时使用。
使用 iptables 和 ip6tables 的静态防火墙规则
如果你想使用自己的 iptables 和 ip6tables 静态防火墙规则, 那么请安装 iptables-services 并且禁用 firewalld ,启用 iptables 和 ip6tables:
yum install iptables-services
systemctl mask firewalld.service
systemctl enable iptables.service
systemctl enable ip6tables.service
静态防火墙规则配置档案是 /etc/sysconfig/iptables 以及 /etc/sysconfig/ip6tables .
注: iptables 与 iptables-services 站群软件包不提供与服务配套使用的防火墙规则. 这些服务是用来保障相容性以及供想使用自己防火墙规则的人使用的. 你可以安装并使用 system-config-firewall 来建立上述服务需要的规则. 为了能使用 system-config-firewall, 你必须停止 firewalld.
为服务建立规则并停用 firewalld 后,就可以启用 iptables 与 ip6tables 服务了:
systemctl stop firewalld.service
systemctl start iptables.service
systemctl start ip6tables.service
什么是区域?
互联网区域定义了互联网连线的可信等级。这是一个一对多的关系,这意味著一次连线可以仅仅是一个区域的一部分,而一个区域可以用于很多连线。
预定义的服务
服务是埠和/或协议入口的组合。备选内容包括 netfilter 助手模组以及 IPv4 、 IPv6 地址。
埠和协议
定义了 tcp 或 udp 埠,埠可以是一个埠或者埠范围。
ICMP 阻塞
可以选择 Internet 控制报文协议的报文。这些报文可以是资讯请求亦可是对资讯请求或错误条件建立的响应。
伪装
私有互联网地址可以被对映到公开的 IP 地址。这是一次正规的地址转换。
埠转发
埠可以对映到另一个埠以及/或者其他 WordPress 主机。
哪个区域可用?
由 firewalld 提供的区域按照从不信任到信任的顺序排序。
丢弃
任何流入互联网的包都被丢弃,不作出任何响应。只允许流出的互联网连线。
阻塞
任何进入的互联网连线都被拒绝,并返回 IPv4 的 icmp-host-prohibited 报文或者 IPv6 的 icmp6-adm-prohibited 报文。只允许由该系统初始化的互联网连线。
公开
用以可以公开的部分。你认为互联网中其他的计算机不可信并且可能伤害你的计算机。只允许选中的连线接入。(You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.)
外部
用在路由器等启用伪装的外部互联网。你认为互联网中其他的计算机不可信并且可能伤害你的计算机。只允许选中的连线接入。
隔离区(dmz)
用以允许隔离区(dmz)中的电脑有限地被外界互联网访问。只接受被选中的连线。
工作
用在工作互联网。你信任互联网中的大多数计算机不会影响你的计算机。只接受被选中的连线。
家庭
用在家庭互联网。你信任互联网中的大多数计算机不会影响你的计算机。只接受被选中的连线。
内部
用在内部互联网。你信任互联网中的大多数计算机不会影响你的计算机。只接受被选中的连线。
受信任的
允许所有互联网连线。
我应该选用哪个区域?
例如,公共的 WIFI 连线应该主要为不受信任的,家庭的有线互联网应该是相当可信任的。根据与你使用的互联网最符合的区域进行选择。
如何配置或者增加区域?
你可以使用任何一种 firewalld 配置工具来配置或者增加区域,以及修改配置。工具有例如 firewall-config 这样的图形介面工具, firewall-cmd 这样的命令列工具,以及 D-BUS 介面。或者你也可以在配置档案目录中建立或者拷贝区域档案。 @PREFIX@/lib/firewalld/zones 被用于预设和备用配置,/etc/firewalld/zones 被用于使用者建立和自定义配置档案。
如何为互联网连线设定或者修改区域
区域设定以 ZONE= 选项 储存在互联网连线的 ifcfg 档案中。如果这个选项缺失或者为空,firewalld 将使用配置的预设区域。
如果这个连线受到 NetworkManager 控制,你也可以使用 nm-connection-editor 来修改区域。
由 NetworkManager 控制的互联网连线
防火墙不能够通过 NetworkManager 显示的名称来配置互联网连线,只能配置互联网介面。因此在互联网连线之前 NetworkManager 将配置档案所述连线对应的互联网介面告诉 firewalld 。如果在配置档案中没有配置区域,介面将配置到 firewalld 的预设区域。如果互联网连线使用了不止一个介面,所有的介面都会应用到 fiwewalld 。介面名称的改变也将由 NetworkManager 控制并应用到 firewalld 。
为了简化,自此,互联网连线将被用作与区域的关系。
如果一个介面断开了,NetworkManager 也将告诉 firewalld 从区域中删除该介面。
当 firewalld 由 systemd 或者 init 指令码启动或者重启后,firewalld 将通知 NetworkManager 把互联网连线增加到区域。
由指令码控制的互联网
对于由互联网指令码控制的连线有一条限制:没有守护程序通知 firewalld 将连线增加到区域。这项工作仅在 ifcfg-post 指令码进行。因此,此后对互联网连线的重新命名将不能被应用到 firewalld 。同样,在连线活动时重启 firewalld 将导致与其失去关联。现在有意修复此情况。最简单的是将全部未配置连线加入预设区域。
区域定义了本区域中防火墙的特性:
使用 firewalld
你可以通过图形介面工具 firewall-config 或者命令列客户端 firewall-cmd 启用或者关闭防火墙特性。
使用 firewall-cmd
命令列工具 firewall-cmd 支援全部防火墙特性。对于状态和查询模式,命令只返回状态,没有其他输出。
一般应用
获取 firewalld 状态
firewall-cmd –state
此举返回 firewalld 的状态,没有任何输出。可以使用以下方式获得状态输出:
firewall-cmd –state && echo “Running” || echo “Not running”
在 Fedora 19 中, 状态输出比此前直观:
# rpm -qf $( which firewall-cmd )
firewalld-0.3.3-2.fc19.noarch# firewall-cmd –state
not running
在不改变状态的条件下重新载入防火墙:
firewall-cmd –reload
如果你使用–complete-reload,状态资讯将会丢失。这个选项应当仅用于处理防火墙问题时,例如,状态资讯和防火墙规则都正常,但是不能建立任何连线的情况。
获取支援的区域列表
firewall-cmd –get-zones
这条命令输出用空格分隔的列表。
获取所有支援的服务
firewall-cmd –get-services
这条命令输出用空格分隔的列表。
获取所有支援的 ICMP 型别
firewall-cmd –get-icmptypes
这条命令输出用空格分隔的列表。
列出全部启用的区域的特性
firewall-cmd –list-all-zones
输出格式是:
interfaces:
services:
ports:
forward-ports:
icmp-blocks:
输出区域
firewall-cmd [–zone=
获取预设区域的互联网设定
firewall-cmd –get-default-zone
设定预设区域
firewall-cmd –set-default-zone=
流入预设区域中配置的介面的新访问请求将被置入新的预设区域。当前活动的连线将不受影响。
获取活动的区域
firewall-cmd –get-active-zones
这条命令将用以下格式输出每个区域所含介面:
根据介面获取区域
firewall-cmd –get-zone-of-interface=
这条命令将输出介面所属的区域名称。
将介面增加到区域
firewall-cmd [–zone=
如果介面不属于区域,介面将被增加到区域。如果区域被省略了,将使用预设区域。介面在重新载入后将重新应用。
修改介面所属区域
firewall-cmd [–zone=
这个选项与 –add-interface 选项相似,但是当介面已经存在于另一个区域的时候,该介面将被新增到新的区域。
从区域中删除一个介面
firewall-cmd [–zone=
查询区域中是否包含某介面
firewall-cmd [–zone=
返回介面是否存在于该区域。没有输出。
列举区域中启用的服务
firewall-cmd [ –zone=
启用应急模式阻断所有互联网连线,以防出现紧急状况
firewall-cmd –panic-on
禁用应急模式
firewall-cmd –panic-off
程式码如下
复制程式码
应急模式在 0.3.0 版本中发生了变化
在 0.3.0 之前的 FirewallD 版本中, panic 选项是 –enable-panic 与 –disable-panic.
查询应急模式
firewall-cmd –query-panic
此命令返回应急模式的状态,没有输出。可以使用以下方式获得状态输出:
firewall-cmd –query-panic && echo “On” || echo “Off”
处理执行时区域
执行时模式下对区域进行的修改不是永久有效的。重新载入或者重启后修改将失效。
启用区域中的一种服务
firewall-cmd [–zone=
此举启用区域中的一种服务。如果未指定区域,将使用预设区域。如果设定了超时时间,服务将只启用特定秒数。如果服务已经活跃,将不会有任何警告资讯。
例: 使区域中的 ipp-client 服务生效 60 秒:
firewall-cmd –zone=home –add-service=ipp-client –timeout=60
例: 启用预设区域中的 http 服务:
firewall-cmd –add-service=http
禁用区域中的某种服务
firewall-cmd [–zone=
此举禁用区域中的某种服务。如果未指定区域,将使用预设区域。
例: 禁止 home 区域中的 http 服务:
firewall-cmd –zone=home –remove-service=http
区域种的服务将被禁用。如果服务没有启用,将不会有任何警告资讯。
查询区域中是否启用了特定服务
firewall-cmd [–zone=
如果服务启用,将返回 1, 否则返回 0 。没有输出资讯。
启用区域埠和协议组合
firewall-cmd [–zone=
此举将启用埠和协议的组合。埠可以是一个单独的埠
禁用埠和协议组合
firewall-cmd [–zone=
firewall-cmd [–zone=
启用区域中的 IP 伪装功能
firewall-cmd [–zone=
此举启用区域的伪装功能。私有互联网的地址将被隐藏并对映到一个公有 IP 。这是地址转换的一种形式,常用于路由。由于核心的限制,伪装功能仅可用于 IPv4 。
禁用区域中的 IP 伪装
firewall-cmd [–zone=
查询区域的伪装状态
firewall-cmd [–zone=
如果启用,此命令将有返回值。没有输出资讯。
启用区域的 ICMP 阻塞功能
firewall-cmd [–zone=
此举将启用选中的 Internet 控制报文协议(ICMP)报文进行阻塞。 ICMP 报文可以是请求资讯或者建立的应答报文,以及错误应答。
禁止区域的 ICMP 阻塞功能
firewall-cmd [–zone=
查询区域的 ICMP 阻塞功能
firewall-cmd [–zone=
如果启用,此命令将有返回值。没有输出资讯。
例: 阻塞区域的响应应答报文:
firewall-cmd –zone=public –add-icmp-block=echo-reply
在区域中启用埠转发或对映
firewall-cmd [–zone=
埠可以对映到另一台 WordPress 主机的同一埠,也可以是同一 WordPress 主机或另一 WordPress 主机的不同埠。埠号可以是一个单独的埠
禁止区域的埠转发或者埠对映
firewall-cmd [–zone=
查询区域的埠转发或者埠对映
firewall-cmd [–zone=
如果启用,此命令将有返回值。没有输出资讯。
例: 将区域 home 的 ssh 转发到 127.0.0.2
firewall-cmd –zone=home –add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2
处理永久区域
永久选项不直接影响执行时的状态。这些选项仅在过载或者重启服务时可用。为了使用执行时和永久设定,需要分别设定两者。 选项 –permanent 需要是永久设定的第一个引数。
获取永久选项所支援的服务
firewall-cmd –permanent –get-services
获取永久选项所支援的 ICMP 型别列表
firewall-cmd –permanent –get-icmptypes
获取支援的永久区域
firewall-cmd –permanent –get-zones
启用区域中的服务
firewall-cmd –permanent [–zone=
此举将永久启用区域中的服务。如果未指定区域,将使用预设区域。
禁用区域中的一种服务
firewall-cmd –permanent [–zone=
查询区域中的服务是否启用
firewall-cmd –permanent [–zone=
如果服务启用,此命令将有返回值。此命令没有输出资讯。
例: 永久启用 home 区域中的 ipp-client 服务
firewall-cmd –permanent –zone=home –add-service=ipp-client
永久启用区域中的一个埠-协议组合
firewall-cmd –permanent [–zone=
firewall-cmd –permanent [–zone=
firewall-cmd –permanent [–zone=
例: 永久启用 home 区域中的 https (tcp 443) 埠
firewall-cmd –permanent –zone=home –add-port=443/tcp
永久启用区域中的伪装
firewall-cmd –permanent [–zone=
此举启用区域的伪装功能。私有互联网的地址将被隐藏并对映到一个公有 IP 。这是地址转换的一种形式,常用于路由。由于核心的限制,伪装功能仅可用于 IPv4 。
永久禁用区域中的伪装
firewall-cmd –permanent [–zone=
查询区域中的伪装的永久状态
firewall-cmd –permanent [–zone=
如果服务启用,此命令将有返回值。此命令没有输出资讯。
永久启用区域中的 ICMP 阻塞
firewall-cmd –permanent [–zone=
此举将启用选中的 Internet 控制报文协议(ICMP)报文进行阻塞。 ICMP 报文可以是请求资讯或者建立的应答报文或错误应答报文。
永久禁用区域中的 ICMP 阻塞
firewall-cmd –permanent [–zone=
查询区域中的 ICMP 永久状态
firewall-cmd –permanent [–zone=
如果服务启用,此命令将有返回值。此命令没有输出资讯。
例: 阻塞公共区域中的响应应答报文:
firewall-cmd –permanent –zone=public –add-icmp-block=echo-reply
在区域中永久启用埠转发或对映
firewall-cmd –permanent [–zone=
埠可以对映到另一台 WordPress 主机的同一埠,也可以是同一 WordPress 主机或另一 WordPress 主机的不同埠。埠号可以是一个单独的埠
永久禁止区域的埠转发或者埠对映
firewall-cmd –permanent [–zone=
查询区域的埠转发或者埠对映状态
firewall-cmd –permanent [–zone=
如果服务启用,此命令将有返回值。此命令没有输出资讯。
例: 将 home 区域的 ssh 服务转发到 127.0.0.2
firewall-cmd –permanent –zone=home –add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2
直接选项
直接选项主要用于使服务和应用程式能够增加规则。 规则不会被储存,在重新载入或者重启之后必须再次提交。传递的引数
选项–direct 需要是直接选项的第一个引数。
将命令传递给防火墙。引数
firewall-cmd –direct –passthrough { ipv4 | ipv6 | eb }
为表