作者小头像 Lv.1
0 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据
个人勋章
TA还没获得勋章~
成长雷达
0
0
0
0
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据

达成规则

发布时间 2019/09/30 09:58:26 最后回复 NariDD 2020/07/23 12:18:33 版块 EC-IoT
22150 25 1
他的回复:
问题:TTU与主站侧之间的加密TCP连接应该也是由安全代理来建立的吧,证书是用于做加密接入认证的。所以如果设备与主站之间IP可达,但TCP无法建立:1、如果主站侧完全没有收到TCP交互报文,需要排查安全代理配置文件的地址/端口是否有问题;2、如果主站侧能抓到TCP报文,需要进一步检查证书是否有问题。请问下这个理解有没有问题?答复:关于证书的问题,这里不多做讨论了,目前的信息安全还是沿用前期配电自动化的那一套方案,对这部分不太清楚的,可以去找一下之前配电自动化信息安全防护方案的相关资料。主要讨论一下通信上的事情,也就是这个TCP链接的事情。TTU与主站的两条TCP链接,确实是由安全代理来负责建立的,可以在终端侧通过tcpdump命令进行抓包,捕捉整个tcp握手、建链的过程,使用wireshark进行下一步的问题分析排查。可能会有一下几种情况:日志中,出现 Master Connected,代表tcp握手ok,socket也建立成功,后续开始进行报文交互,这是正常情况。日志中,出现Master Connected,然后立即出现 Readdate DisConected,也就是链接建立后,又出现了断开的情况,可以通过报文抓取进行分析,基本上会捕捉到如下的TCP握手过程:1)ttu发起SYN,2)主站侧回复SYN,ACK,3)ttu回复ACK,4)主站侧发出FIN或者RST切断链接。也就是说ttu与主站建立的tcp链接,是被主站主动断开的。目前已经排查过的断开原因比如:1)主站未建档,ttu建立连接后,主站未进行后续认证过程,超时断链。2)TTU侧安全代理配置文件中,主站端口配置错误,TTU与隔离握手成功后,隔离检查转发表,不知道该外网端口如何映射到内网去,随即断开此链接。在这里需要说明的是,大部分现场,TTU的TCP建链是与隔离建链的,而不是直接连接的主站侧的安全接入服务。日志中出现Master Connect False,主站侧链接不上,这种情况出现时可能会比较头疼,明明网络是通的,可以ping通主站给的ip地址,就是连接不上。通过抓取网络报文,可以发现,这种情况下,TCP的握手是无法成功的。
发布时间 2019/09/30 09:58:26 最后回复 NariDD 2020/07/23 12:18:33 版块 EC-IoT
22150 25 1
发布时间 2019/09/30 09:58:26 最后回复 NariDD 2020/07/23 12:18:33 版块 EC-IoT
22150 25 1
他的回复:
三.日志查看V1.1.9版本日志为永远显示,V2.0.3支持通过Debug开关开启和关闭。为方便现场分析问题,安全代理目前阶段提供了详细的日志内容,常规查看日志可以通过如下命令journalctl -f | grep proxy 实现日志内容实时刷新journalctl -r | grep proxy 实现日志历史内容查看,从当前时刻倒序打印典型的日志文件及说明如下: [INFO] M Master Recv len =11                                                         [INFO] M Master Recv  EB 00 05 EB 00 C0 58 00 00 18 D7                               [INFO] M Master Application Type=0x58   M表示管理通道,Master表示安全代理与主站之间的交互,Recv表示安全代理接收,日志打印报文内容的前35个字节,上述三条表示:安全代理收到主站发来的11个字节,内容为EB 00 05 EB 00 C0 58 00 00 18 D7,应用类型为0x58。PS:M Master表示proxy与管理主站的交互;B Master表示proxy与业务主站的交互;M Agent表示proxy与AC Agent的交互;B App表示proxy与104APP的交互,send为proxy发出,recv为proxy接收。 [INFO]M Master send len =71                                                         [INFO] M Master send  EB 00 41 EB 00 C0 59 00 3C 54 32 30 31 32 33 34 35 36 30 30 31 32 30 31 38 30 33 33 30 30 30 30 31 30 32            M表示管理通道,Master表示安全代理与主站之间的交互,send表示安全代理发送,日志打印报文内容的前35个字节,上述两条表示:安全代理发送到主站71个字节,数据前35个字节为:EB 00 41 EB 00 C0 59 00 3C 54 32 30 31 32 33 34 35 36 30 30 31 32 30 31 38 30 33 33 30 30 30 30 31 30 32。 [INFO] M agent Recv len =191[INFO] M agent Recv  F0 AA 55 0F 01 01 11 02 00 00 00 00 00 00 00 00 00 00 00 AB 01 02 4D 02 01 01 02 00 A2 3C 72 70 63 2D 72M表示管理通道,agent表示安全代理与acagent之间的交互,Recv表示安全代理接收acgent发出的数据,日志打印报文内容的前35个字节,上述两条表示:安全代理接收到acagent发出的191个字节,数据前35个字节为:F0 AA 55 0F 01 01 11 02 00 00 00 00 00 00 00 00 00 00 00 AB 01 02 4D 02 01 01 02 00 A2 3C 72 70 63 2D 72 [INFO] M agent send len =354[INFO] M agent send  F0 AA 55 0F 01 01 12 01 00 00 00 00 00 00 00 00 00 00 01 4E 01 01 4F 01 01 01 02 01 45 3C 72 70 63 20 78M表示管理通道,agent表示安全代理与acagent之间的交互,send表示安全代理发送给acgent的数据,日志打印报文内容的前35个字节,上述两条表示:安全代理发送到acagent 354个字节,数据前35个字节为:F0 AA 55 0F 01 01 12 01 00 00 00 00 00 00 00 00 00 00 01 4E 01 01 4F 01 01 01 02 01 45 3C 72 70 63 20 78 [INFO] B Master_Connect false   [INFO] B Master_Connect OK[INFO] B master ReadData DisConnectedB Master_Connect false表示业务通道无法连接作为服务端的主站,无法建立socket,B Master_Connect OK表示业务通道与主站的socket连接已建立,B master ReadData DisConnected表示socket检测到错误,已断开。 [INFO] M Master Application_Type_1F(9103)表示管理通道出现错误码为9103的错误,在此内容前后,会有加密芯片返回的相关错误代码及报文关键内容的分析,可用于现场排查错误。其他类型错误也按此类似方式实现。
发布时间 2019/09/30 09:58:26 最后回复 NariDD 2020/07/23 12:18:33 版块 EC-IoT
22150 25 1
他的回复:
二.配置文件目前Proxy的发布版本为V1.1.9和V2.0.3。Proxy功能前向兼容,后续将通过增加配置文件的配置项实现功能扩充。V1.1.9版本业务通道支持104/101协议,容器内104/101APP作为服务端。V2.0.3版本扩充了业务通道对于MQTT协议的支持。安全代理配置文件名称为security_proxy_config,文件路径为:/mnt/internal_storage/security_proxy_config。V1.1.9版本的配置文件内容共16行。所有的V_Value的值都可以修改,配置文件其他部分不要改动。1-5行是描述信息。6-7行用来配置业务主站的socket信息。Line6:为业务主站的IP地址,其中V_Value的值需要配置为业务主站的IP地址。Line7:为业务主站的监听端口号,其中V_Value的值需要配置为业务主站的监听端口号。8-9行用来配置基础APP所在容器的socket信息。Line8:为基础APP所在容器的IP地址,其中V_Value的值需要配置为基础APP所在容器的IP地址。Line9:为容器内基础APP的监听端口号,其中V_Value的值需要配置为容器内基础APP的监听端口号。10-11行用来配置业务主站的socket信息。在实际使用中,业务通道与管理通道通常使用同一个接入点,因此管理通道与业务通道的主站IP地址通常一致,但端口号不同,也可根据实际情况配置不同的前置机IP地址。安全代理作为客户端主动发起连接,因此这部分配置务必仔细配置,否则在主站侧无法监测到终端发起的连接。Line10:为管理主站的IP地址,其中V_Value的值需要配置为管理主站的IP地址。Line11:为管理主站的监听端口号,其中V_Value的值需要配置为管理主站的监听端口号。12行:为终端ID,认证过程中的必备项,应按智能配变终端规范要求,为每一台终端配置符合规范的且唯一的终端ID。V_Value的值需要配置为终端ID。13行:认证过程超时时间,单位:秒。一次认证过程从主站前置机发送随机数开始计时,至终端回复密钥版本号结束。计时开始之后,如认证过程中发生异常,终端需要等待超时时间结束后才能再次响应主站的认证请求。(为确保系统可以从认证失败异常中恢复出来,建议主站在认证过程中,某步骤发生认证失败,回退至第一步,重新开始认证流程,同时主站重新认证的间隔时间需要大于终端此处配置的认证过程超时时间)。14行:AC建链超时时间,单位:秒。此项配置为管理通道独有配置,提供给AC Agent使用。AC Agent发起建链后,安全代理的管理通道与主站前置进行socket连接,成功后进入认证流程,此项配置为socket连接无法完成的超时时间配置,同时此项配置的1/2,为socket Connect()最长等待时间。15行:Debug日志是否开启配置。V_Value值为1时,开启日志记录功能。故障排查时可配置为1,其余情况建议配置为0。  Proxy V1.1.9版本仅支持使用文本编辑方式修改配置文件,修改完毕后,务必保存后退出。建议通过cat security_proxy_config命令查询确认配置文件修改正确。V2.0.3新增通过命令行方式修改配置文件。Proxy的可执行程序路径为:/ usr/local/bin/security_proxy_bin。修改或查询配置文件时,在执行安全代理程序时增加后缀即可实现,例如/usr/local/bin/security_proxy_bin –h即可打印帮助信息(-h即为增加的后缀)。命令行方式仅支持配置文件修改,对于V2.0.3及后续新增的配置项,需要替换配置文件或手动增加配置项后才能通过命令行方式进行修改。现场在运行的终端,如果不涉及业务通道切换为MQTT,不涉及AC通道流程优化等新增功能,可不对配置文件进行修改。配置文件中的终端ID原设计为导出终端证书请求文件时命名使用,终端ID每台设备唯一,因此在配置文件中引入终端ID配置项会给现场批量升级配置文件带来困扰,建议将终端ID存放于CustomDisk区,CustomDisk在Host系统中对应文件夹为/mnt/custom,在LXC容器中对应文件夹为/etc/custom,终端ID统一命名为TID,即/mnt/custom/TID(/etc/custom/TID),Proxy后续版本将以TID中的终端ID为准。配置文件修改后,需重新加载proxy程序才可生效,最简单的方式即重启终端。