百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Linux防火墙——Firewalld原理与实战操作

sinye56 2024-11-21 20:48 1 浏览 0 评论

一、防火墙概述

Firewalld是一种提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具,它自身并不具备防火墙的功能,而是iptables一样需要通过内核的netfilter来实现,也就是说firewalld和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了。

  • 从逻辑上可分为:主机防火墙网络防火墙
  • 从物理上可分为:硬件防火墙软件防火墙

防火墙主要通过NetfilterTCP Wrappers两个机制来管理的。

  • Netfilter:数据包过滤机制
  • TCP Wrappers:程序管理机制

关于数据包过滤机制(Netfilter)有两个软件:firewalldiptables

在看本篇firewalld文章之前,最好先了解一下iptables,可以看我之前的博文:

【温馨提示】在RHEL7系列中,默认使用firewalld作为防火墙。在RHEL7版本已经默认没有iptables服务了,当然iptables 命令还是可以用的。

二、Firewalld原理架构

1)Firewalld区域管理

通过将网络划分成不同的区域,制定出不同区域之间的访问控制策略来控制不同程序区域间传送的数据流。

【例如】互联网是不可信任的区域,而内部网络是高度信任的区域。网络安全模型可以在安装,
初次启动和首次建立网络连接时选择初始化。该模型描述了主机所连接的整个网络环境的可信级别,并定义了新连接的处理方式。

2)Firewalld域

网络区名称

默认配置

trusted(信任)

可接受所有的网络连接

home(家庭)

用于家庭网络,仅接受ssh,mdns,gp-client,samba-client,dhcpv6-client连接

internal( 内部)

用于内部网络,仅接受ssh,mdns,gp-client,samba-client,dhcpv6-client连接

work(工作)

用于工作区,仅接受sshjpp-client,dhcpv6-client服务连接

public(工作)

用于工作区,仅接受ssh,ipp-client,dhcpv6-client服务连接,在公共区域内使用,仅接受ssh或dhcpv6-client服务连接,是firewalld的默认区域

external( 外部)

出去的ipv4网络连接通过此区域为伪装或转发,仅接受ssh服务的连接

dmz(非军事区)

仅接受ssh服务的连接

block(限制)

拒绝所有网络的连接

drop (丢弃)

任何接收的网络数据包都被丢弃,没有任何回复

【温馨提示】firewalld的默认区域是public

3) Firewalld配置文件

firewalld默认提供了九个zone配置文件:block.xmldmz.xmldrop.xmlexternal.xmlhome.xmlinternal.xmlpublic.xmltrusted.xmlwork.xml,都保存在/usr/lib/firewalld/zones/目录下。

三 、Firewalld 和 Iptables 的异同

1)相同点

firewalld与 iptables 都是 linux 中防火墙的管理程序,但其实其角色主要为对于防火墙策略的管理,真正的防火墙执行者是位于内核中的netfilter。

2)不同点

  • iptables 仅能通过命令行进行配置;而 firewalld 提供了图形接口,类似windows防火墙的操作方式;
  • iptables 每一个单独更改意味着清除所有旧的规则,并从 /etc/sysconfig/iptables 中读取所有新的规;则;而 firewalld 在有规则变动后,可以仅仅运行规则中的不同之处,即在 firewalld 运行时间内,改变设置时可以不丢失现行链接;
  • iptables 的配置文件在 /etc/sysconfig/iptables 中;而 firewalld 的配置文件在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种 XML 文件中;
  • iptables 没有守护进程,并不能算是真正意义上的服务;而 firewalld 有守护进程;
  • iptables 通过控制端口来控制服务,而 firewalld 则是通过控制协议来控制端口;
  • 【firewalld】默认是拒绝;而【iptables】默认是允许。

【温馨提示】

service说明: 在 /usr/lib/firewalld/services/ 目录中,还保存了另外一类配置文件,每个文件对应一项具体的网络服务,如 ssh 服务等。这个目录下的服务配置默认是放通的,不受firewalld-cmd 规则控制,除非把这个目录下的服务配置文件删掉,就恢复了默认了(默认拒绝),当然也可以添加一些服务配置文件。

验证默认拒绝规则

# 这里用到nc工具去监听端口
# 安装nc
yum install -y nc
# 监听端口
nc -l 8888
# 查询端口
ss -tnlp|grep :8888


用另外一台机器telnet端口 telnet 192.168.182.149 8888

四、Firewalld实战操作

只有firewalld服务启动了,才能使用相关工具: firewall-config(图形界面), firewall-cmd,这里主要介绍命令行方式的。

1)Firewalld有规则两种状态

  • 运行时(runtime):修改规则马上生效,但是临时生效
  • 持久配置(permanent: 修改后需要重载才会生效
firewall-cmd --permanent [RULE]
firewall-cmd --reload

【温馨提示】一旦使用了--permanent会将配置写入到/etc/firewalld/{services,zones}/*.xml对应的文件中,配置完成后一定要reload,否则只能待防火墙重启后这些配置才能生效。

2)Firewalld配置文件

/etc/firewalld/{services,zones}/*.xml    优先级最高,permanent模式生效的策略会放到这里
/lib/firewalld/{services,zones}/*.xml   优先级要低些,是一些默认配置,可以当做模板使用

以下options是可以组合使用的,具体见man firewall-cmd或者firewall-cmd --help,里面有详细的说明,此处只列出一些常用的option。

firewall-cmd

       --permanent           --配置写入到配置文件,否则临时马上生效

    --reload              --重载配置文件,永久生效

    --zone=               --指定区域

       --get-default-zones    --获取默认区域

       --set-default-zone=    --设置默认区域

    --get-zones                   --获取所有可用的区域

    --get-active-zones            --获取当前激活(活跃)的区域

    --add-source=                 --添加地址,可以是主机或网段,遵循当前区域的target

    --remove-source              --移除地址,可以是主机或网段,遵循当前区域的target

    --add-service=               --添加服务,遵循当前区域的target

    --remove-service=           --移除服务,遵循当前区域的target

    --list-services               --显示指定区域内允许访问的所有服务

    --add-port=                   --添加端口,遵循当前区域的target

    --remove-port=                --移除端口,遵循当前区域的target

    --list-ports 显示指定区域内允许访问的所有端口号

    --add-interface= --zone=                --添加网卡到指定区域

    --change-interface= --new-zone-name         --改变网卡到指定区域

    --list-all                              --列出激活使用的区域的配置

    --list-all-zones                       --列出所有区域的配置

    --get-zone-of-interface=                 --获取指定接口所在的区域

    --list-icmp-blocks                     --显示指定区域内拒绝访问的所有ICMP类型

    --add-icmp-block=                          --为指定区域设置拒绝访问的某项ICMP类型

    --remove-icmp-block=                       --移除指定区域内拒绝访问某项的ICMP类型

       #常用的ICMP类型有:
           #echo-request:类型0,icmp请求报文
           #echo-reply:类型8,icmp响应回复报文

    --list-protocols           --列出在指定区域中允许通过的协议

      --add-protocol=           --在指定区域中添加允许通过的协议

      --remove-protocol=        --移除在指定区域中的某项协议

    --get-target             --获取区域中的默认target

      --set-target=              --设置区域的target

3)增删改查操作

1、【查】看一个区域的配置信息

(py3) [root@jumpserver-168-182-149 nginx]# firewall-cmd --list-all
public (active)                            # 活动的区域
  target: default                          # 默认启动的区域
  icmp-block-inversion: no                 # ICMP协议类型黑白名单开关(yes/no)
  interfaces: ens33                        # 关联的网卡接口
  sources: 192.168.182.147                 # 来源,可以是IP地址,也可以是mac地址
  services: dhcpv6-client ssh              # 列出允许通过这个防火墙的服务
  ports: 2181/tcp 8888/tcp 80/tcp          # 列出允许通过这个防火墙的目标端口。(即 需要对外开放的端口)
  protocols:                               # 协议值可以是一个协议 ID 数字,或者一个协议名
  masquerade: no                           # 表示这个区域是否允许 IP 伪装。如果允许,它将允许 IP 转发,它可以让你的计算机作为一个路由器
  forward-ports:                           # 列出转发的端口
  source-ports:                            # 允许的来源端口
  icmp-blocks:                             # 可添加ICMP类型,当icmp-block-inversion为no时,这些ICMP类型被拒绝;当icmp-block-inversion为yes时,这些ICMP类型被允许
  rich rules:                              # 富规则,即更细致、更详细的防火墙规则策略,它的优先级在所有的防火墙策略中也是最高的
    rule family="ipv4" source address="192.168.250.0/24" accept

常用的查看命令

# 查询默认区域配置信息
firewall-cmd --list-all
# 查看区域配置信息
firewall-cmd --list-all --zone=work
# 查询所有端口
firewall-cmd --list-ports
# 查询指定端口
firewall-cmd --zone=public --query-port=22/tcp
# 查询放通IP段
firewall-cmd --list-sources
# 查看默认区域
firewall-cmd --get-default-zone
# 查看所有可以使用的区域
firewall-cmd --get-zones
# 查看活跃的区域
firewall-cmd --get-active-zones
# 查看网卡绑定在了哪个区域
firewall-cmd --get-zone-of-interface=[IFACE]
# 查看所有服务
firewall-cmd --get-services

2、【增】加规则

1、语法格式(端口):

firewall-cmd --zone=作用域 --add-port=端口数字/通讯协议 --永久生效

【示例】

firewall-cmd --zone=public --add-port=2181/tcp --permanent        ##打开2181端口,开放当前端口,他会用TCP协议,需要重新加载/重启才永久生效
firewall-cmd --reload
##打开2888端口,使用默认zone,他会用UDP协议,立马生效,只是临时的,重启服务/重启机器将失效
firewall-cmd --add-port=2888/udp
# 查看
firewall-cmd --list-ports 


2、语法格式(源IP):

firewall-cmd --zone=作用域 --add-source=端口数字/通讯协议 --永久生效

【示例】

# 放通ip地址
firewall-cmd --add-source=192.168.182.0/24 --zone=public
# 查看
firewall-cmd --list-sources

# 放通某个ip/ip段的某个端口
firewall-cmd --zone=public --add-source=192.168.182.147 --permanent
firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --reload

3、【删】除规则

1、语法格式(端口):

firewall-cmd --zone=作用域 --remove-port=端口数字/通讯协议

【示例】

firewall-cmd --zone=public --remove-port=2181/tcp


2、语法格式(源IP):

firewall-cmd --zone=作用域 --remove-source=端口数字/通讯协议

【示例】

firewall-cmd --zone=public --remove-source=192.168.182.0/24

4、【改】正规则

1、修改当前的默认区为work

firewall-cmd --set-default-zone=work
# 查看
firewall-cmd --get-default-zone=work

五、直接规则

Direct Options

  --direct                  --指定将要使用直接规则

  --get-all-chains              --获取所有的链

  --get-chains {ipv4|ipv6|eb} <table>      --获取表中的链

  --add-chain {ipv4|ipv6|eb} <table> <chain>      --添加链到表中(自定义的)

  --remove-chain {ipv4|ipv6|eb} <table> <chain> --移除表中的某条链

  --query-chain {ipv4|ipv6|eb} <table> <chain>    --返回链是否已被添加到表

  --get-all-rules                --获取所有的策略规则

  --get-rules {ipv4|ipv6|eb} <table> <chain>         --获取指定表中指定链中的规则

  --add-rule {ipv4|ipv6|eb} <table> <chain> <priority> <arg>...        --在指定表中的指定链添加规则

  --remove-rule {ipv4|ipv6|eb} <table> <chain> <priority> <arg>...   --优先从指定表中的指定链删除规则条目

  --remove-rules {ipv4|ipv6|eb} <table> <chain>         --从表中删除规则条目

  --query-rule {ipv4|ipv6|eb} <table> <chain> <priority> <arg>...     --返回是否优先的规则已被添加到链表中

  --passthrough {ipv4|ipv6|eb} <arg>...    --直接传递iptables的命令

  --get-all-passthroughs              --获取所有直接传递的规则

  --get-passthroughs {ipv4|ipv6|eb} <arg>...          --获取跟踪直通规则

  --add-passthrough {ipv4|ipv6|eb} <arg>...          --添加一个直接规则

  --remove-passthrough {ipv4|ipv6|eb} <arg>...     --移除一个直接规则

  --query-passthrough {ipv4|ipv6|eb} <arg>...       --查询直接规则是否添加

【温馨提示】除非将直接规则显式插入到由 fircwa1ld管理的区域, 否则将首先解析直接规则, 然后才会解析任何fircwalld规则,即直接规则优先于firewalld规则。直接规则主要用于使服务和应用程序能够增加规则。传递的参数 与 iptables, ip6tables 以及 ebtables 一致。

1)增加规则

添加直接【链/规则】格式:

firewall-cmd --direct --add-chain { ipv4 | ipv6 | eb } <table> [自定义链表名] <args>

firewall-cmd --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>

【温馨提示】priority值越小,优先级越高

【示例】

# 所有来自192.168.182.0/24网络IP,单个IP每分钟最高连接并发是1,超过并发的连接都丢弃# 添加链
firewall-cmd --direct --permanent --add-chain ipv4 raw blacklist01firewall-cmd --reload# 查看链表firewall-cmd --direct --get-all-chains# 没reload就得加上--permanent,如果没加--permanent就不用了firewall-cmd --direct --permanent --get-all-chains# 添加规则,使用自动定义链PREROUTING,使用自定义处理动作到新链blacklist01,0代表优先级,越小优先级越高
firewall-cmd --direct --permanent --add-rule ipv4 raw PREROUTING 0 -s 192.168.182.149 -j blacklist01firewall-cmd --direct --permanent --add-rule ipv4 raw blacklist01 0 -j DROP=》等同于下面一句# 使用系统链PEROUTING, 使用系统DROP处理动作firewall-cmd --direct --permanent --add-rule ipv4 raw PREROUTING 0 -s 192.168.182.149 -j DROPfirewall-cmd --reload# 单个IP每分钟最高连接并发是1,然后记入日志到文件/var/log/messages,使用自定义链,系统处理动作LOGfirewall-cmd --direct --permanent --add-rule ipv4 raw blacklist01 0 -m limit --limit 1/min -j LOG --log-prefix "blacklisted"firewall-cmd --reload# 查看规则,跟查看链一样,如果加了--permanent,没reload就得加上--permanet才能查看到firewall-cmd --direct --permanent --get-all-rules

【温馨提示】这里-j就是iptables里面的处理动作(ACCEPT,DROP,REJECT,SNAT,MASQUERADE,DNAT,REDIRECT,LOG);当然也可以接自定义的动作,例如上例所示。

2)删除规则

添加删除【链/规则】格式:

firewall-cmd --direct --remove-chain { ipv4 | ipv6 | eb } <table> [自定义链表名] <args>

firewall-cmd --direct --remove-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>

【示例】

firewall-cmd --direct --permanent --remove-chain ipv4 raw blacklist01

firewall-cmd --direct --permanent --add-rule ipv4 raw PREROUTING 0 -s 192.168.182.149 -j blacklist01
firewall-cmd --direct --permanent --add-rule ipv4 raw blacklist01 0 -j DROP
firewall-cmd --reload

firewall-cmd --direct --permanent --remove-rule ipv4 raw PREROUTING 0 -s 192.168.182.149 -j DROP
firewall-cmd --reload

六、Firewalld防火墙富规则

富规则一般为了精确控制,用得比较多,所以这里将重点讲解

1)富规则常用的options

firewall-cmd

  --list-rich-rules                       --列出富规则

  --add-rich-rule=<rule>                --使用富规则语言添加富规则

  --remove-rich-rule=<rule>            --移除富规则

  --query-rich-rule=<rule>               --查询某条富规则是否存在

  --list-rich-rules                      --列出指定区域中的所有富规则

  --list-all 和 --list-all-zones         --也能列出存在的富规则

2)富规则language语法

规则的几乎每个单一元素都能够以option=value形式来采用附加参数,参考firewalld.richlanguage

rule

  [source]

  [destination]

  service|port|protocol|icmp-block|masquerade|forward-port

  [log]

  [audit]

  [accept|reject|drop]

格式:

rule [family="ipv4|ipv6"]

source address="address[/mask]" [invert="True"]

destination address="address[/mask]" invert="True"

service name="service name"

port port="port value" protocol="tcp|udp"

protocol value="protocol value"

forward-port port="port value" protocol="tcp|udp" to-port="port value

" to-addr="address"

log [prefix="prefix text"] [level="log level"] [limit value="rate/duration"]

accept | reject [type="reject type"] | drop

3)一些常用配置规则

1、规则排序

一旦向某个区域(一般是指防火墙)中添加了多个规则, 规则的排序便会在很大程度上影响防火墙的行为。对于所有区域, 区域内规则的基本排序是相同的。

  • 为该区域设置的任何端口转发和伪装规则。
  • 为该区域设置的任何记录规则。
  • 为该区域设置的任何允许规则。
  • 为该区域设置的任何拒绝规则。

2、测试和调试

为了便于测试和调试 几乎所有规则都可以与超时一起添加到运行时配置。

当包含超时的规则到防火墙时,计时器便针对该规则开始倒计时。

一旦规则的计时器达到零秒,便从运行时配置中删除该规则。

通过在启用规则的firewall-cmd的结尾添加--timeout=<timeinseconds>即可向运行时规则中添加超时。

3、使用富规则进行日志记录

调试或监控防火墙时,记录已接受或已拒绝的连接很有用。

firewalld可以通过两种方法来实现此目的记录到syslog, 或者将消息发送到由auditd管理的内核audit子系统。

使用富规则记录到syslog的基本语法为:

log [prefix="<PREFIX TEXT>" [level=<LOGLEVEL>] [limit value="<RATE/DURATION>"]

其中:

<LOGLEVEL> 可以是emerg 、 alert 、 crit 、 error 、 warning 、 notice 、 info或debug之一。

<RATE/DURATION>" 可以是s(表示秒)、m(表示分钟)、h(表示小时)或d(表示天)之一。

例如:limit value=3/m会将日志消息限制为每分钟最多三条。

limit value = 3/m 这里是有BUG 的,常常时间控制会不精准。

4、批量加端口

# 用这样的形式
port port=4000-5234 

firewall-cmd --permanent --zone=vnc --add-rich-rule='rule family=ipv4 source address=192.168.182.0/24 port port=7900-7905 protocol=tcp accept'

用于记录到审计子系统的基本语法为:

audit [limit value="<RATE/DURATION>"]

【温馨提示】速率限制的配置方式与syslog记录相同。

使用富规则进行记录的某些示例:

# 1.接受从work区域到SSH的新连接, 以notice级别且每分钟最多三条消息的方式将新连接记录 到syslog。

firewall-cmd --permanent --zone=work --add-rich-rule='rule service name="ssh" log prefix="ssh" level="notice" limit va1ue="3/m" accept

# 2.在接下来五分钟内, 将拒绝从默认区域中子网2001:db8::/64到DNS的新IPv6连接,

# 并且拒绝的连接将记录到audit系统,且每小时最多一条消息。

firewall-crud --add-rich-rule='rule family=ipv6 source address="2001:db8::/64" service name=" dns" audit limit va1ue="1/h" reject'--timeout=300

5、示例

firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.0.11/32 reject'

firewall-cmd --permanent --zone=public --add-rich-rule='rule service name=ftp limit value=1/m accept'

firewall-cmd --permanent --zone=public --add-rich-rule='rule protocol value=esp drop'

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.17.10.0/24 service name=ssh reject'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.0.0/24 port port=7900-7905 protocol=tcp accept'

针对ssh 链接记录至日志中,每分钟3次

firewall-cmd --permanent --zone=work --add-rich-rule='rule service name=ssh log prefix="ssh " level=notice limit value="3/m" accept'

用于调试,规则在300秒后失效,防止规则设定错误导致网络连接断开

firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.0.11/32 service name=ssh reject' --timeout=300

添加富规则,只允许172.25.0.10/32访问,并且记录日志,日志级别为notice,日志前缀为"NEW HTTP ",限制每秒最多3个并发 ,要求持久化生效

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.0.10/32 service name=http log level=notice prefix="NEW HTTP " limit value="3/s" accept'
firewall-cmd --reload

七、firewalld的NAT和端口转发

1)网络地址转换(NAT)

firewalld支持两种类型的网络地址转换(NAT) 伪装和端口转发。可以在基本级别使用常规

frewall-cmd规则来同时配置这两者,更高级的转发配置可以使用富规则来完成。

这两种形式的NAT会在发送包之前修改包的某些方面如源或目标。

2)伪装(伪装只能和ipv4一起用,ipv6不行)

伪装是一种形式的网络地址转换(NAT)

3)配置伪装

要使用常规的firewall-cmd命令为区域配置伪装,使用下列语法:

firewall-cmd --permanent --zone=<ZONE> --add-masquerade

这将伪装满足以下条件的任何包从该区域的源(接口及子网)中定义的客户端发送到防火墙且未寻址到防火墙自身的包,即该区域源的数据包的目标IP不是防火墙自身的IP,都将映射成防火墙的IP。

要在更大程度上控制要进行伪装的客户端,还可以使用富规则。

firewall-cmd --permanent --zone=<ZONE> --add-rich-rule='rule family=ipv4 source address=192.168.0.0/24 masquerade' 

4)端口转发

另一种形式的NAT是端口转发。

通过端口转发指向单个端口的流量将转发到相同计算机上的不同端口或者转发到不同计算机上的端口。

此机制通常用于将某个服务器隐藏在另一个计算机后面,或者用于在备用端口上提供对服务的访问权限。

常见配置是将端口从防火墙计算机转发到已在防火墙后面伪装的计算机,即这种通过目标端口转发的方式需要开启伪装(masquerade)

使用常规fircwall-cmd命令配置端口转发,可以使用firewalld提供的端口转发语法:

firewall-cmd --permanent --zone=<ZONE> --add-forward-port=port=<PORTNUMBER>:proto=<PROTOCOL>[:toport=<PORTNUMBER>][:toaddr=<IPADDR>]

toport=和toaddr 两部分均可选,但需要至少指定这两者之一 。

# 例如, 对于来自public区域的客户端,以下命令会将防火墙上通过端口22/TCP传入的连接转发到IP地址为192.168.182.147的计算机上的端口22/TCP;待验证

firewall-cmd --permanent --zone=public --add-forward-port=port=22:proto=tcp:toport=22:toaddr=192.168.182.147

要在更大程度上控制端口转发规则,可以将以下语法与富规则配合使用来实现端口转发,这也是我们推荐使用的方式

forward-port port=<PORTNUM> protocol=tcp|udp [to-port=<PORTNUM>] [to-addr=<ADDRESS>]

以下示例使用富规则将来自work区域中192.168.182.0/24且传入到端口80/TCP的流星转发到防火墙计算机自身上面的和端口8080/TCP:

firewall-cmd --permanent --zone=work --add-rich-rule='rule family=ipv4 source address=192.168.182.0/24 forward-port port=80 protocol=tcp to-port=8080'

其实这里是指传统的目标地址映射,实现外网访问内网资源

firewall-cmd --zone=external --add-masquerade
firewall-cmd --permanent --zone=public --add-forward-port=port=513:proto=tcp:toport=132:toaddr=192.168.182.149
firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.182.0/24 forward-port port=80 protocol=tcp to-port=8080'

八、firewalld自定义区域和服务

1) 自定义的区域

参照/lib/firewalld/zones/public.xml文件,在/lib/firewalld/zones/下面新建你需要的区域名以.xml结尾,内容格式参照public.xmltrusted.xml等文件即可。

# Internal.xml

<?xml version="1.0" encoding="utf-8"?>

<zone>

  <short>Internal</short>

  <description>For use on internal networks. You mostly trust the other computers on the networks

to not harm your computer. Only selected incoming connections are accepted.</description>

  <service name="ssh"/>

  <service name="mdns"/>

  <service name="samba-client"/>

  <service name="dhcpv6-client"/>

</zone>

2)自定义服务

自定义服务可以让防火墙配置更为简便,能够直接使用服务名来进行策略配置

参照/usr/lib/firewalld/services/ssh.xml,在/usr/lib/firewalld/services/下面新建你需要的服务名以.xml结尾,内容格式参照ssh.xmlsamba.xml文件中的内容即可。

#samba.xml

<?xml version="1.0" encoding="utf-8"?>

<service>

  <short>Samba</short>

  <description>This option allows you to access and participate in Windows file and printer sharin

g networks. You need the samba package installed for this option to be useful.</description>

  <port protocol="udp" port="137"/>

  <port protocol="udp" port="138"/>

  <port protocol="tcp" port="139"/>

  <port protocol="tcp" port="445"/>

  <module name="nf_conntrack_netbios_ns"/>

</service>

九、Firewalld应急命令(一键断网)

# 关闭应急模式
firewall-cmd --panic-off
# 开启应急模式阻断所有网络连接
firewall-cmd --panic-on
# 查看应急模式的状态
firewall-cmd --query-panic

相关推荐

linux安装FTP

1、在nkftp目录下安装ftp,进入到nkftp里面[root@localhostbin]#cd/data/nkftp执行安装命令:[root@localhostnkftp]#rpm-i...

LINUX下搭建FTP服务器

FTP服务器介绍FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(App...

Linux下如何进行FTP设置

目录:一、Redhat/CentOS安装vsftp软件二、Ubuntu/Debian安装vsftp软件一、Redhat/CentOS安装vsftp软件1.更新yum源yumupdate-y2.安...

推荐使用集串口 SSH远程登录和FTP传输三合一工具MobaXterm

来源:百问网作者:韦东山本文字数:1216,阅读时长:4分钟在以前的资料里,串口和SSH远程登使用SecureCRT,window与ubuntu数据传输使用filezilla,窗口切换来切换去,麻烦也...

如何搭建FTP服务器(Linux系统)

上次说了Windows操作系统下搭建的FTP服务器,那有朋友问我,说买的XX轻量应用服务器都是属于Linux的操作系统,我该如何为搭建FTP服务器呢?...

Linux 命令 ncftp(文件传输)——想玩转linux就请一直看下去

我是IT悟道,点击右上方“关注”,每天分享IT、科技、数码方面的干货。Linuxncftp命令...

如何用 ftp 实现一键上传

简介ftp是Internet标准文件传输协议的用户界面,它允许用户与远程网络站点之间传输文件...

Linux安装ftp

1安装vsftpd组件安装完后,有/etc/vsftpd/vsftpd.conf文件,是vsftp的配置文件。[root@bogon~]#yum-yinstallvsftpd2添加一个...

一天一点点:linux - ftp命令

linuxftp命令设置文件系统相关功能。FTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身。语法ftp[-dignv][主机名称或IP地址]参数:-d详细显示指令执...

Centos 7 搭建FTP

目录安装软件以及启动服务添加防火墙规则关闭selinuxftp配置常用常用参数详解特殊参数配置文件没有的参数也可以添加到配置中1.安装软件以及启动服务yuminstall-yvsftpdsys...

【Linux】Linux中ftp命令,没有你想的那么简单

本文介绍了Linux中FTP命令的基本用法,包括连接与登录远程服务器,以及解析了FTP协议中五个最常用的操作命令的使用和解析过程。同时,提供了一个包含常用FTP操作命令的表格,供读者参考。通过熟练掌握...

linux 命令行操作ftp

以下是linuxftp命令参数的详解。FTP>!从ftp子系统退出到外壳?FTP>?显示ftp命令说明??和help相同?格式:?[command]说明:[com...

多学习才能多赚钱之:linux如何使用ftp

linux如何使用ftp步骤1:建立FTP连接想要连接FTP服务器,在命令上中先输入ftp然后空格跟上FTP服务器的域名'domain.com'或者IP地址例如:ftpdom...

linux常用网络操作方法:ftp命令使用方法

常用网络操作方法Linux提供了一组强有力的网络命令来为用户服务,这些工具能够帮助用户登录到远程计算机上、传输文件和执行远程命令等。本节介绍下列几个常用的有关网络操作的命令:ftp传输文件tel...

Linux 5.15有望合并Memory Folios方案 内核构建速度可提升7%

甲骨文公司的长期内核开发人员MatthewWilcox已经研究了“内存对开区”概念相当长的一段时间,这可以改善Linux的内存管理,使其具有更大的效率。例如,使用内存对开的基准测试表明,内核的构建速...

取消回复欢迎 发表评论: