资讯动态

USG6600防火墙日志配置实战:从会话日志到NAT日志全链路详解

发布时间:2026/9/16 19:33:50 来源:尧图企业网站定制
1. 为什么要折腾全流量日志一次溯源排查引发的思考先讲个真实经历。去年有个客户找到我说内网有台服务器对外发起了大量异常连接疑似被植入挖矿程序。我登录防火墙一看USG6600上策略正常、会话表里也查不到异常因为那台服务器走的NAT出网源地址被转换成了公网地址在会话表里根本对不上号。更麻烦的是设备上没开任何日志输出连最基本的NAT日志都没有最后只能靠抓包慢慢蹲折腾了整整一个下午才定位到问题源头。那次之后我就养成了一个习惯凡是经手USG6600的项目第一件事就是把日志方案捋清楚。说实话防火墙不配日志就像家里装了监控却不接硬盘——设备本身有这功能但你完全看不到它在干什么。尤其是USG6600这种定位在企业核心边界的中高端设备全流量日志的价值远不止出事之后能查这么简单它在日常运维、容量规划、安全审计、攻击溯源里都是刚需。这篇文章我把USG6600从流量监控到NAT日志的完整配置链路给你捋一遍包含我在多个项目里踩过的坑、验证过的方法以及日志服务器端的配套配置我会用Rocky Linux 9做演示顺手解决日志转发的问题。不管你是刚接手公司防火墙的IT运维还是准备做等保测评的网络工程师照着这篇文章操作基本能把USG6600的日志体系跑通。2. USG6600日志体系拆解会话日志、NAT日志与流量日志的关系很多人在配置日志的时候容易混淆几个概念会话日志Session Log、NAT日志NAT Log和流量日志Traffic Log这三者在USG6600上是既有联系又有区别的东西。不把底层逻辑搞清楚配置的时候就会漏项排查的时候就会抓瞎。2.1 三种日志类型的内在逻辑USG6600运行的是华为VRP操作系统它的日志体系建立在会话这个概念之上。简单理解会话就是一次完整的网络连接比如内网一台电脑访问公网的一个网站从TCP三次握手开始到四次挥手结束这中间的所有报文都属于同一个会话。USG6600在转发报文的同时会对每个会话做状态检测和策略匹配而日志功能就是在这些关键节点上拍照记录。会话日志记录会话的建立、拆除和活跃状态。它包含源IP、目的IP、源端口、目的端口、协议号、字节数、报文数等基础五元组加统计信息。会话日志是所有流量分析的基础你想知道谁在什么时间访问了哪个目标、用了多少流量靠的就是它。NAT日志记录地址转换关系。会话在经过NAT策略时源地址或目的地址会被改写NAT日志就是把转换前的地址端口和转换后的地址端口对应关系记录下来。这就是我开头说的那个场景的救命稻草——有了NAT日志公网侧的攻击源可以反查到具体是哪台内网机器。流量日志这个叫法其实有点模糊。在USG6600上它通常指基于接口的流量统计Interface-based Traffic Statistics比如某个接口的入方向/出方向字节速率。它更偏向于量的维度用来做带宽监控和容量规划。2.2 日志产生时机与性能开销搞清楚日志何时产生比配置本身更重要因为它直接关系到你是否需要额外购买日志硬盘或者单独的日志服务器。日志类型产生时机默认状态性能开销会话日志会话建立时、会话老化时关闭低仅产生一条记录NAT日志NAT转换发生时、会话老化时关闭低与会话日志同步产生接口流量统计每5分钟周期性上报关闭极低关于性能开销我实测过USG6600在开启会话日志和NAT日志后在中小型企业场景并发会话数在5万以内下CPU占用率提升基本在3%以内内存占用增加也很有限。真正吃性能的是把它们通过SYSLOG实时发送到远程服务器时产生的网络IO。如果日志量大且服务器响应慢SYSLOG的发送队列会堆积极端情况下可能影响设备控制平面的处理速度。注意华为防火墙的SYSLOG发送机制是UDP 514它本身是尽力而为的传输不保证送达。所以日志服务器要选在同一二层网络内跨公网传输丢包基本不可避免。2.3 日志字段里藏着哪些关键信息USG6600发出来的SYSLOG日志格式大致是这样的190Oct 9 14:23:45 2024 USG6600 %%01SESSION/5/SESSION_POLICY_DENY(l): [2024-10-09 14:23:45] POLICY NAME: default; SRG IP: 192.168.1.100; DST IP: 203.0.113.5; SRC PORT: 52341; DST PORT: 443; PROTOCOL: 6( TCP ); ACTION: PERMIT; DIRECTION: Inbound; ...这里有几个关键字段需要关注SRG IP / DST IP源目IP做溯源的第一要素SRC PORT / DST PORT源目端口判断应用类型用ACTIONPERMIT表示放行DENY表示阻断。如果担心内网有违规访问优先看ACTION为DENY的日志SRG IPNAT转换后如果这条日志是NAT会话日志SRG IP会显示转换后的公网地址同时会附带一个字段记录转换前的私网地址3. 配置前的准备工作时间同步、存储估算与Rocky 9日志服务器搭建很多人拿到设备就直接敲命令开日志结果日志服务器一跑起来全是乱码、时间对不上、日志秒级丢失然后就开始怀疑设备有问题。其实八成问题出在准备工作没做扎实。3.1 时间同步是日志的灵魂日志的价值在于可追溯而追溯的第一步就是时间准确。如果防火墙和日志服务器的时间不一致排查安全事件时会对不上号轻则浪费时间重则影响判断。USG6600配置NTP很简单# 进入系统视图 system-view # 配置NTP服务器以集团内网NTP服务器为例 ntp-service unicast-server 10.10.10.10 # 查看时间同步状态 display ntp-service status这里有个细节NTP服务器最好选内网自建的而不是直接指向公网NTP。因为防火墙本身可能就是NAT网关如果它跑在边界上部分公网NTP服务器比如某些地区的NTP池对高频率请求有限制反而会同步失败。内网搭一个NTP服务器或者直接用核心交换机做NTP中继稳定得多。3.2 日志存储容量估算全流量日志开启后日志量可能会超出你的想象。以一台做了NAT的中型公司为例假设并发会话数在1万左右每天新增会话数大约在50万到200万之间取决于业务活跃度。每条SYSLOG日志大约300-500字节算下来一天的日志量大概是150MB到1GB。如果只是本地存或日志服务器磁盘空间够大比如1TB这个量级不算什么。但如果公司有合规要求比如等保要求日志留存至少6个月你就得认真算一下日均日志量 500MB × 180天 90GB建议预留120GB以上并且做日志轮转防止磁盘写满导致服务挂掉。3.3 用Rocky Linux 9搭建日志接收服务器日志服务器端我推荐用Rocky Linux 9它是CentOS停止维护后最稳定的替代品之一配置方式和CentOS基本一致网上资料也多。这块我会把关键步骤完整走一遍因为标题里说的日志转发和日志保存光在防火墙上配置是不够的接收端必须能收、能存、能转。第一步安装rsyslogRocky 9默认自带rsyslog确认一下就行rpm -qa | grep rsyslog systemctl status rsyslog第二步修改rsyslog配置开启UDP接收vim /etc/rsyslog.conf找到并取消注释或者直接添加以下两行module(loadimudp) input(typeimudp port514)这里有个常见的坑如果你希望服务器同时也能接收TCP日志有些场景需要可靠传输还需要开启module(loadimtcp) input(typeimtcp port514)第三步配置日志模板和存储路径默认情况下rsyslog会把所有日志写到/var/log/messages但那样会把防火墙日志和系统日志混在一起后期排查非常痛苦。建议单独建一个目录按设备IP分文件存储$template FirewallLog,/data/firewall/%FROMHOST-IP%/firewall-%$YEAR%-%$MONTH%-%$DAY%.log if ($fromhost-ip startswith 192.168.) then ?FirewallLog stop这段配置的意思是来自内网192.168.0.0/16网段的SYSLOG按来源IP分目录、按日期分文件存储。这是我实践下来最好用的方式查某一天某个设备的日志直接进目录就找到了。第四步SELinux和防火墙放行Rocky 9默认开着SELinux和firewalld这两个不处理掉UDP 514端口大概率收不到数据# 放行firewalld firewall-cmd --permanent --add-port514/udp firewall-cmd --permanent --add-port514/tcp firewall-cmd --reload # 临时关闭SELinux生产环境建议用audit2allow做策略这里图省事用setenforce 0 setenforce 0第五步重启rsyslog并验证systemctl restart rsyslog ss -ulnp | grep 514看到514端口在监听说明rsyslog已经准备好了。这时候在防火墙上指日志过来就行下面详细说。4. 流量监控日志配置实战USG6600上的会话日志与接口流量统计准备工作做完终于到了在USG6600上敲命令的环节。我会按照先开全局能力、再配置具体日志项、最后验证的顺序来。4.1 开启SYSLOG日志发送功能USG6600默认把所有日志都记在本机信息中心info-center里但不会主动发给远程服务器。所以第一步是配置日志主机system-view info-center enable info-center loghost 192.168.10.50 info-center loghost 192.168.10.50 facility local7说明一下info-center enable开启信息中心总开关info-center loghost指定日志服务器IPfacility local7指定syslog facility值目的是让服务器端可以根据facility区分日志来源。如果你有多台设备都发到同一台服务器建议每台设备用不同的facility比如USG6600用local7、核心交换机用local5这样在上游日志平台做过滤的时候就非常方便。4.2 开启会话日志会话日志在USG6600上是基于安全策略的动作来触发的。你需要决定是所有会话都记录还是只记录允许通过的会话还是说连阻断的也记录实际项目里我通常建议全部记录因为阻断日志在安全分析中价值极高——攻击扫描的行为往往表现为大量被Deny的会话。system-view firewall log session enable这条命令是全局开启会话日志的总开关。但光开这个还不够还需要在具体安全策略上确认日志开关是打开的。以一条常见的NAT出网策略为例security-policy rule name policy_trust_to_untrust source-zone trust destination-zone untrust source-address 192.168.0.0 24 action permit logging enable注意这里的logging enable它和前面的firewall log session enable是全局开关局部开关的关系必须同时满足才会产生日志。如果你只在全局开了会话日志但策略上没有开logging那条策略的流量依然不会记录。4.3 开启接口流量统计接口流量统计是另一个维度它不记录谁访问了谁而是记录接口上跑了多少流量。USG6600的接口流量统计是通过流量整形Traffic Policy或直接使用接口统计命令来实现的最简单的做法system-view interface GigabitEthernet1/0/0 traffic-statistic enable开启后可以通过以下命令查看display interface GigabitEthernet1/0/0查看输出里Input rate、Output rate字段。不过这里要提醒你一下接口流量统计默认不主动上报到日志服务器它只是显示在设备本地。如果你想让它周期性地把统计结果推送到日志服务器需要配合SNMP来做。如果你只需要事后查一下某段时间这个接口跑了多少流量本地统计就够了。4.4 验证会话日志是否正常产生配置完后不要急着等直接用一条命令验证display firewall log session如果没有输出说明还没有新的会话产生或日志没触发。最简单的方法是从内网随便ping一个公网地址或者访问一个网站然后再看。正常情况下ping产生的ICMP会话、HTTP访问产生的TCP会话都应该有日志。如果这一步发现日志没有产生优先检查两件事第一策略上是否加了logging enable第二全局开关firewall log session enable是否真的生效可以在系统视图下再敲一次看有没有报错。5. NAT日志配置详解源地址转换全流程跟踪NAT日志是标题里的重点也是很多人在USG6600上最容易配不明白的地方。原因在于USG6600的NAT日志分了好几种场景不同场景下的配置入口还不一样。5.1 NAT日志的类型差异USG6600的NAT日志主要分三类源NATSource NAT日志内网访问外网时源地址从私网IP转换为公网IP。这是最常见的一种。目的NATDestination NAT日志外网访问内网服务器时目的地址从公网IP转换为私网IP。常用于端口映射场景。NAT会话日志和会话日志绑定记录了完整的NAT前后五元组关系。大多数人的需求集中在源NAT日志上也就是要搞清楚某个公网IP的访问行为到底对应哪台内网机器。5.2 开启NAT日志的完整配置以最常见的源NAT场景为例假设内网192.168.1.0/24访问外网通过地址池202.102.33.10-202.102.33.20做NAT转换第一步创建NAT地址池system-view nat address-group 1 mode pat section 0 202.102.33.10 202.102.33.20第二步配置NAT策略nat-policy rule name nat_trust_to_untrust source-zone trust destination-zone untrust source-address 192.168.1.0 24 action source-nat address-group 1第三步开启NAT日志这一步是关键。USG6600上开启NAT日志有两条命令需要注意nat log enable以及全局会话日志中的NAT关联开关firewall log session enable nat log session-type all其中nat log session-type有三个可选值session-start会话建立时就记录NAT日志session-end会话结束时记录all建立和结束都记录我建议用all因为会话建立时记录了转换关系会话结束时记录了流量统计发送/接收字节数这两者结合才能完整还原一次通信的全貌。5.3 一个容易忽略的问题目的NAT日志如果你在外网映射了一台内网服务器比如Web服务器那你还需要单独开启目的NAT日志。在USG6600上这和源NAT的配置入口有点不一样nat-policy rule name nat_untrust_to_server source-zone untrust destination-zone dmz destination-address 202.102.33.21 32 action destination-nat static-address 192.168.1.10目的NAT的日志会自动跟随会话日志记录不需要额外开。但有一个前提对应的安全策略上必须开启logging enable。5.4 验证NAT日志的关键点配完之后从内网发起一次外网访问然后在防火墙上看display nat session all或者直接看日志输出display firewall log nat日志里会出现类似这样的一段NAT LOG: SRC: 192.168.1.100:52341 -- DST: 203.0.113.88:443 POST NAT SRC: 202.102.33.15:50321 -- DST: 203.0.113.88:443这里就能清楚看到转换前后的对应关系。192.168.1.100:52341转换成了202.102.33.15:50321这样任何一个公网侧的连接都能反查到内网的真实来源。6. 日志服务器端配置与调试工具Rocky 9转发配置和SecureCRT会话保存技巧防火墙端的日志源配置好了接收端也监听端口了但这只完成了80%。剩下20%的工作是把收到日志变成能用日志以及解决调试过程中的工具问题。6.1 Rocky 9端的日志转发配置如果你有多台防火墙或交换机希望把收到的日志统一转发到上级日志平台比如SIEMrsyslog的转发功能就能派上用场。在rsyslog配置里添加*.* 192.168.20.100:514这条配置表示把所有日志通过TCP转发到192.168.20.100的514端口。是TCP转发单个是UDP转发。实际场景里我不建议无条件转发所有日志最好做一层过滤。比如只转发USG6600发来的日志if ($fromhost-ip 192.168.10.1) then { *.* 192.168.20.100:514 stop }6.2 SecureCRT配置日志保存调试时的重要习惯在调试USG6600的时候我习惯用SecureCRT连接设备并且每次操作都开启SecureCRT的日志保存功能。这不是一个可选优化而是必须养成的习惯——因为配置过程中经常需要对照大量输出信息一旦会话窗口关闭信息就没了。SecureCRT的配置路径打开SecureCRT连接USG6600之前点击Options-Session Options左侧找到Log File在Log file name里填上保存路径比如C:\logs\USG6600_%Y%M%D_%H%M.log勾选Start logging upon connect连接时自动开始记录保存配置这样每次连接设备所有命令和输出都会自动保存到本地文件。排查问题的时候翻日志文件比翻终端历史记录靠谱得多。6.3 端到端验证的完整方法配置全链路完成后怎么确定日志从USG6600生成 - 发送到Rocky 9 - 写入文件这个过程是通的我的验证顺序是第一步在防火墙上手动制造一条流量从内网机器访问一个外网地址确保有新的会话产生。第二步在USG6600上确认日志已生成display firewall log session | include 192.168.1.100能看到对应IP的会话日志说明日志生成没问题。第三步在Rocky 9上检查是否收到tail -f /data/firewall/192.168.10.1/firewall-2024-10-09.log如果能看到内容说明SYSLOG网络链路通了。第四步检查时间戳是否一致对比防火墙日志记录的时间和服务器收到的时间偏差超过1秒就要检查NTP配置。7. 常见问题排查与经验总结配置过程中多多少少会遇到一些奇怪的问题我把这些年积累的几个高频问题整理一下你大概率会遇到其中一两个。7.1 日志发送延迟与丢包USG6600在日志量大时会按优先级发送日志低优先级日志比如Debug级可能被延迟。如果发现日志发送有延迟可以调整日志发送的级别限制info-center source SESSION channel 2 log level warninglog level后面跟的是日志级别从低到高分别是debug、information、warning、error。生产环境不建议开debug信息量太大且影响性能warning级别通常就够用了。7.2 日志服务器收不到数据优先检查三层可达性然后是防火墙策略。在USG6600上从trust区域访问untrust区域的日志服务器需要在安全策略上放行security-policy rule name policy_to_logserver source-zone trust destination-zone untrust destination-address 192.168.10.50 32 service udp 514 action permit这个细节很多人会漏掉因为USG6600默认的local域流量管理问题日志报文如果被安全策略拦截你看到的表象就是服务器收不到。7.3 日志时间不对最常见的原因是NTP没配好但也可能是时区问题。USG6600默认使用UTC8北京时间如果你发现日志时间比本地时间晚了8小时检查一下display clock display timezone如果时区不对执行clock timezone BJ add 08:00:007.4 日志文件过大导致读取困难如果你没做日志轮转一个文件可能会涨到几个GB。rsyslog自带的轮转机制配一下vim /etc/logrotate.d/firewall /data/firewall/*/*.log { daily rotate 30 compress missingok notifempty sharedscripts }这样每天切割一次保存30天压缩存储。7.5 一个Easy-to-miss的坑VLAN与接口日志的关联如果你在配置接口流量统计后发现某些VLAN的流量统计不出来别急着怀疑配置先看接口是否加入了正确的VLAN。USG6600的逻辑接口VLANIF和物理接口在流量统计上是分开的VLANIF上的统计命令要在VLANIF接口下配置而不是物理接口下。8. 写在最后的运维习惯建议日志配置完成后别忘了定期检查日志系统的健康状态。我在实际运维中会每周做一次简单巡检看三件事一是日志文件大小是否异常增长可能是有突发流量或攻击二是时间同步是否偏移NTP故障有时是静默的三是防火墙到日志服务器的连通性有时候某个交换机重启会导致链路中断。这三项检查加起来不超过十分钟但能避免很多事后补救的麻烦。另外日志服务器的磁盘空间一定要纳入监控。我曾经见过一台日志服务器因为磁盘满了停止写入结果防火墙的日志队列积压导致设备性能下降最后整个上午的数据都没记下来。这种教训一次就够了。USG6600的日志体系其实不复杂关键是要把产生-传输-存储-使用这条链路想清楚然后按部就班地配置和验证。希望这篇文章能帮你少走一些弯路。如果在配置过程中遇到具体问题欢迎留言交流我看到会尽量回复。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价