简介:这份PDF面向网络运维与安全从业者,聚焦天融信防火墙的命令行配置与日常运维操作,适合刚接触该品牌设备、需要快速上手或查阅命令的工程师。资源为单文件PDF,压缩包约8KB,内容以命令语法与配置示例为主,便于随身查阅和打印。已有1596人学习下载,说明其在同类资料中具备一定参考价值。文档覆盖区域权限设置、网口IP配置与启停、交换与路由模式切换、自定义服务与主机对象定义、VLAN接口配置、ADSL拨号、DHCP服务部署、地址转换策略以及访问控制策略等典型场景,并给出web服务器外网访问、源地址转换等完整配置片段。读者可借此梳理天融信防火墙的命令体系,对照实际设备完成策略下发与排错,适合作为配置手册或实验参考使用。
1. 天融信防火墙命令速查:从 Helpmode 到 NAT 策略的一条龙拆解
手里拿到一台天融信防火墙,Web 界面点得进去但策略死活不生效,或者串口 console 连上了却不知道从哪条命令下手——这种场景我遇到过太多次。这份《天融信防火墙命令.pdf》就是冲着这个痛点来的:它把 TopOS 体系下最常用的命令行操作按功能模块整理成了一份速查手册,覆盖接口配置、区域定义、地址对象、服务对象、NAT 策略、DHCP 服务、ADSL 拨号、访问控制这些日常运维绕不开的环节。适合谁?一是刚接手天融信设备、需要快速上手命令行的网络运维;二是习惯用脚本批量下发策略、不想每次开 Web 界面点半天的老手;三是做等保整改时需要核对防火墙配置项、想有个命令对照表的工程师。它不教你防火墙原理,但能让你在 console 或 SSH 里把该配的东西配出来。
2. 接口、区域与对象定义:命令行的地基怎么打
2.1 接口配置:IP、开关与交换/路由模式切换
天融信防火墙的接口操作集中在network interface这个命令族下。给物理口配 IP 是最基础的一步,格式是network interface <接口名> ip add <地址> mask <掩码> label <标签>。这里的 label 参数很多人第一次见会愣一下,它其实是给接口打一个逻辑标签,后续在策略里引用时可以用标签代替具体接口名,方便批量管理。
# 给 eth16 口配置 IP 地址,label 0 表示默认标签 network interface eth16 ip add 192.168.4.12 mask 255.255.255.0 label 0 # 禁用 eth16 口(相当于 shutdown) network interface eth16 shutdown # 重新启用 eth16 口 network interface eth16 no shutdown # 将 eth16 切换为交换模式 network interface eth16 switchport # 切回路由模式 network interface eth16 no switchport逻辑说明:shutdown和no shutdown是一对开关,前者断口后者恢复,和 Cisco 系的习惯一致。switchport和no switchport控制接口工作在二层交换还是三层路由模式——这个选择直接影响你后面能不能在接口上配 IP、能不能做 NAT。参数方面,mask 用点分十进制写法,label 是整数,一般从 0 开始编。
VLAN 接口的配置稍微不同,需要先创建 VLAN 子接口再配 IP:
# 创建 VLAN 1 接口并配置 IP network interface vlan.0001 ip add 192.168.1.1 mask 255.255.255.0 label 0注意 VLAN 接口编号用四位数字,vlan.0001对应 VLAN 1。这个命名规则在批量脚本里要特别注意,别写成vlan.1,设备不认。
2.2 区域定义:access on/off 的权限逻辑
区域(area)是天融信防火墙策略模型的核心概念。每个接口必须绑定到一个区域,策略的匹配也是基于区域来的。定义区域的命令是define area add name <区域名> attribute <接口名> access <on|off>。
# 定义区域 E1,绑定 eth1 接口,允许访问 define area add name E1 attribute eth1 access on # 定义区域 area_eth0,绑定 eth0 接口,禁止访问 define area add name area_eth0 attribute eth0 access off这里的access on和access off容易搞混。on 表示该区域允许被访问(权限开放),off 表示禁止。实际配策略时,如果区域 access 是 off,后面写再多 firewall policy 也不会生效——这是新手最常翻车的地方之一。我一般建议先把所有业务区域的 access 设为 on,确认策略生效后再按需收紧。
2.3 地址对象与服务对象:host、subnet、range、service
天融信把地址对象分得很细:单个主机用define host,子网用define host subnet或define subnet,地址范围用define range。服务对象则用define service定义,需要指定协议号和端口号。
# 定义单个主机对象 define host add name WEB_server ipaddr 192.168.4.100 # 定义子网对象 define subnet add name subnet_100 ipaddr 100.1.1.0 mask 255.255.255.0 # 定义地址范围(NAT 地址池用) define range add name nat-pool ip1 100.1.1.1 ip2 100.1.1.2 # 定义自定义服务:TCP 协议(协议码 6),端口 8080 define service add name Web_port protocol 6 port 8080协议码这里要记一下:TCP 是 6,UDP 是 17,ICMP 是 1。写 service 的时候 protocol 后面跟的是数字不是字符串,写成protocol tcp设备会报错。端口号可以写单个端口,也可以写范围(具体语法看版本,常见做法是用port 8080-8090这种格式)。
对象定义完之后,策略里就可以直接用名字引用了,不用每次写 IP。这个习惯在管理几十条策略的时候能省大量时间,也减少写错 IP 的概率。
3. NAT 策略与访问控制:源 NAT、目的 NAT 怎么配不出错
3.1 源地址转换(SNAT):内网出外网的标准写法
源 NAT 解决的是内网主机访问外网时源地址转换的问题。天融信的 NAT 策略命令是nat policy add,通过srcarea、dstarea、orig_src、trans_src这几个参数组合来控制转换行为。
# 定义内网区域和外网区域 define area add name area_eth1 access on attribute eth1 define area add name area_eth0 access off attribute eth0 # 定义内网子网对象 define subnet add name subnet_100 ipaddr 100.1.1.0 mask 255.255.255.0 # 定义 NAT 转换后的固定 IP define host add name nat-ip ipaddr 200.1.1.1 mask 255.255.255.255 # 定义 NAT 地址池 define range add name nat-pool ip1 200.1.1.1 ip2 200.1.1.2 # 源 NAT 规则:内网子网转换为固定 IP nat policy add dstarea area_eth0 orig_src subnet_100 trans_src nat-ip enable yes # 源 NAT 规则:内网子网从地址池动态选择转换 IP nat policy add dstarea area_eth0 orig_src subnet_100 trans_src nat-pool enable yes逻辑说明:dstarea指定目的区域(通常是外网口所在区域),orig_src是转换前的源地址对象,trans_src是转换后的地址。enable yes表示策略立即生效。固定 IP 和地址池的区别在于:固定 IP 适合需要对外呈现单一地址的场景(比如某些需要 IP 白名单的对端),地址池适合多用户共享少量公网 IP 的场景,设备会自动分配。
参数上要注意mask在 host 定义里写255.255.255.255表示单个主机,别写成255.255.255.0,否则会被当成一个子网处理。
3.2 目的地址转换(DNAT):外网访问内部服务器的映射
目的 NAT 是把外网访问某个公网 IP 的流量转发到内部真实服务器上。天融信的做法是通过orig_dst和trans_dst来指定转换前后的目的地址。
# 定义外网区域 define area add name E1 access on attribute eth1 # 定义 WEB 服务器真实地址 define host add name WEB_server ipaddr 192.168.4.100 # 定义对外映射地址 define host add name MAP_IP ipaddr 200.1.1.100 # 定义服务端口 define service add name Web_port protocol 6 port 8080 # 目的 NAT 规则:外网访问 MAP_IP:8080 转发到 WEB_server:8080 nat policy add srcarea E1 orig_dst MAP_IP orig_service Web_port trans_dst WEB_server trans_service Web_port逻辑说明:srcarea是发起访问的区域(外网),orig_dst是对外呈现的地址,trans_dst是内部真实服务器地址。orig_service和trans_service可以不同,比如外部访问 80 端口映射到内部 8080,这种端口重定向在 NAT 规则里直接改 trans_service 就行。
一个常见坑:如果orig_service写了具体端口,但trans_service没写,设备可能不会自动继承,导致转换后端口丢失。我一般习惯两边都显式写上,哪怕端口一样。
3.3 访问控制策略:firewall policy 的匹配顺序
NAT 配完了不代表能通,还得有访问控制策略放行。天融信的访问控制命令是firewall policy add,核心参数是action、srcarea、dstarea,还可以细化到源地址和目的地址。
# 允许 area_eth12 访问 area_eth11 firewall policy add action accept srcarea area_eth12 dstarea area_eth11 # 允许任意源地址访问 area_eth11 firewall policy add action accept src any dstarea area_eth11匹配顺序是从上往下,匹配到第一条就执行动作,不再继续往下查。所以策略的顺序很关键:具体的放行规则要写在宽泛规则前面,否则宽泛规则先匹配上了,后面的细粒度规则就形同虚设。这个逻辑和 iptables 的链式匹配是一样的。
action除了 accept 还有 deny,默认策略一般是 deny all,所以最后最好补一条firewall policy add action deny src any dst any兜底。不过有些版本默认就有隐式拒绝,具体看设备行为,配之前用show firewall policy确认一下当前策略列表比较稳妥。
4. DHCP 服务与 ADSL 拨号:两个高频场景的完整配置链
4.1 DHCP 服务器:地址池、MAC 绑定与启动
防火墙兼做 DHCP 服务器是很常见的需求,尤其是中小网络没有独立 DHCP 设备的场景。天融信的 DHCP 配置分三步:配接口 IP、定义区域并开放 DHCP 服务、配地址池并启动。
# 第一步:给 eth1 口配 IP network interface eth1 ip add 10.10.10.1 mask 255.255.255.0 # 第二步:定义区域,绑定 eth1,允许访问 define area add name area_eth1 access on attribute eth1 # 第三步:在区域上开放 DHCP 服务 pf service add name dhcp area area_eth1 addressname any # 第四步:配置 DHCP 地址池 network dhcp server add_subnet subnet 10.10.10.0 submask 255.255.255.0 gateway 10.10.10.1 # 第五步(可选):给指定 MAC 绑定固定 IP network dhcp server add_host name bind macaddr 00:50:04:c3:b0:31 ipaddr 10.10.10.100 # 第六步:在 eth1 口启动 DHCP 服务 network dhcp server start on eth1 # 查看已分配的 IP network dhcp show binded逻辑说明:pf service add这一步容易被漏掉。它控制的是哪些服务可以在哪个区域上被访问,DHCP 作为一种服务也需要显式开放。add_subnet定义地址池范围,gateway参数指定下发给客户端的网关地址,一般就是接口本身的 IP。add_host做 MAC-IP 绑定,适合打印机、服务器这类需要固定 IP 的设备。
参数上注意submask和接口的mask要一致,不一致会导致地址池范围计算错误。start on eth1指定在哪个物理口上监听 DHCP 请求,如果设备有多个内网口,每个口都要单独启动。
4.2 ADSL 拨号:从参数设置到状态查看
ADSL 拨号场景在分支节点很常见,天融信的命令行配置链路比较清晰:
# 设置 ADSL 拨号参数 network adsl set dev eth0 username adsl1234 passwd 123456 attribute adsl # 定义外网区域,绑定 ADSL 属性 define area add name adsl-a attribute adsl access on # 配置源 NAT:内网区域出 ADSL 时转换源地址 nat policy add srcarea area_eth1 dstarea adsl-a trans_src adsl # 启动拨号 network adsl start # 查看拨号状态 network adsl show statusnetwork adsl show status的输出包含 STATE、RX_BYTES、TX_BYTES、RX_PKTS、TX_PKTS、ELAPS 这些字段。STATE 显示PHASE_RUNNING表示拨号成功,如果显示其他状态(比如PHASE_DISCONNECT),优先检查用户名密码和物理链路。RX/TX 字节数和包数可以用来判断链路是否有实际流量,ELAPS 是连接持续时长。
这里有个细节:attribute adsl在定义区域时引用的是 ADSL 的属性名,不是接口名。这个属性名是在network adsl set里通过attribute参数指定的,两边要对应上,否则区域绑定会失败。
5. 避坑与排查:命令配完了不通,先查这五个地方
5.1 区域 access off 导致策略不生效
现象:firewall policy 写了 accept,NAT 规则也配了,但流量就是不通。原因:区域定义时 access 设成了 off,该区域的所有流量在入口就被丢弃了,后面的策略根本没机会匹配。解决:用show area或类似命令确认目标区域的 access 状态,改成 on 再测。这个坑我踩过不止一次,后来养成习惯——配完区域先确认 access 状态再往下走。
5.2 服务对象协议码写错
现象:define service add name xxx protocol tcp port 8080报错或策略不匹配。原因:protocol 参数要求的是数字协议码,不是协议名字符串。TCP 要写 6,UDP 要写 17。解决:把protocol tcp改成protocol 6。如果记不住协议码,配之前在文档里查一下,或者先用show service看看已有服务对象的格式。
5.3 NAT 策略的 srcarea/dstarea 方向搞反
现象:内网出外网的 SNAT 配了但没生效,或者外网访问内部服务器的 DNAT 不通。原因:srcarea 和 dstarea 的方向搞反了。SNAT 的场景,srcarea 应该是内网区域,dstarea 是外网区域;DNAT 的场景,srcarea 是外网区域,dstarea 通常不写或写 any。解决:画一个简单的流量方向图,确认发起方在哪个区域、目的方在哪个区域,再对应填参数。
5.4 DHCP 服务未在区域上开放
现象:DHCP 地址池配了、服务也 start 了,但客户端拿不到 IP。原因:pf service add name dhcp area xxx addressname any这一步漏了,区域没有开放 DHCP 服务权限。解决:补上这条命令,然后确认network dhcp show binded有没有分配记录。如果还是没有,检查客户端和防火墙之间的二层链路是否通。
5.5 策略顺序导致宽泛规则覆盖细粒度规则
现象:明明写了一条精确的 deny 规则,但流量还是被放行了。原因:在这条 deny 规则之前有一条更宽泛的 accept 规则先匹配上了。天融信的 firewall policy 是从上往下匹配,匹配到就停。解决:用show firewall policy查看当前策略顺序,把精确规则移到宽泛规则前面。如果设备支持策略插入位置参数,直接在指定位置插入;不支持的话就得删了重建。
6. 批量下发与配置备份:把命令手册用出脚本化的效率
单台设备手敲命令还能接受,但如果你管着十几台天融信防火墙,每台都要配类似的策略,一条条敲就是跟自己过不去。我的做法是把这份命令手册里的常用操作抽成模板脚本,通过 SSH 批量下发。
#!/bin/bash # 批量下发区域和 NAT 策略的模板脚本 # 用法:将设备 IP 列表写入 devices.txt,每行一个 while read -r ip; do echo "=== 正在配置 $ip ===" ssh admin@$ip << 'EOF' define area add name LAN access on attribute eth1 define area add name WAN access on attribute eth0 define subnet add name lan_subnet ipaddr 192.168.1.0 mask 255.255.255.0 define host add name nat_ip ipaddr 200.1.1.1 mask 255.255.255.255 nat policy add dstarea WAN orig_src lan_subnet trans_src nat_ip enable yes firewall policy add action accept srcarea LAN dstarea WAN EOF echo "=== $ip 配置完成 ===" done < devices.txt这个脚本的核心思路是把命令手册里的固定模式提取出来,用 here-document 一次性喂给设备。参数说明:devices.txt里每行一个设备管理 IP,admin替换成实际的管理账号。注意不同版本的 TopOS 对命令的响应可能有差异,建议先在测试设备上跑一遍确认没有报错,再推到生产环境。
配置备份同样可以脚本化。天融信一般支持show running-config或类似命令导出当前配置,我习惯在每次变更前先备份一份:
# 备份单台设备配置 ssh admin@192.168.4.12 "show running-config" > backup_192.168.4.12_$(date +%Y%m%d).conf这个习惯救过我一次——有回批量下发策略时把一条区域定义写错了,导致整个内网区域 access 变成 off,所有流量中断。幸好变更前备份了配置,回滚只花了三分钟。从那以后我每次批量操作前都强制走一遍备份流程,不管变更多小。
验证配置是否生效,除了看show系列命令的输出,最直接的办法还是从客户端实际测。内网机器 ping 外网地址、外网机器 telnet 映射端口,这两步过了基本就没问题。如果 ping 通但端口不通,回头查 firewall policy 和服务对象定义;如果 ping 都不通,先查 NAT 和区域 access 状态。这个排查顺序能帮你快速缩小范围,不用在几十条命令里瞎找。
希望帮到你。
本文还有配套的精品资源,点击获取