软件测试中环境迁移和数据监控——智能路由器技术
0.区分智能路由器与普通路由器
普通路由器功能:
- 支持PPPOE、动态IP、静态IP等宽带接入方式
- 支持TCP/IP、PPPOE、DHCP、ICMP、NAT等协议
- 内建DHCP服务器,同时进行静态地址分配
- 内建防火墙,支持IP地址、MAC地址、域名地址过滤,可灵活控制上网权限与时间
- 支持Upnp、静态路由
- 提供64/128位WEP加密,支持WPA、802.1X等高级加密及安全机制
- 支持远程Web管理,全中文配置界面
- 支持MAC地址修改与克隆
智能路由器独特功能:
由于智能路由器硬件之上搭载的是openwrt本质上是一个订制的linux系统,所以还可以安装一些应用程序,完成普通linux的一些应用扩展功能,例如:
- 安装python,并运行其脚本
- 搭建nginx的web服务器
- 搭建git的服务器
- 搭建ftp服务器
- 搭建科学上网的代理服务器
1.DNS劫持 ——网络环境迁移
功能:网关配置
- 可以在不修改构建的代码的前提下,灵活的进行 开发/测试/灰度/全网 不同阶段的网络环境的迁移变换
- 可以批量对N台机器进行统一的网络环境配置(DHCP)
使用场景
典型的互联网系统里面最基本的组成就是各种应用服务器及网络设备。通过有效的网络硬件架构和应用软件架构进行部署,来对外提供正常的服务。
一个典型的高性能web应用系统的架构结构组成:
-
负载均衡 Nginx 服务器
对下属集群机器分配权重进行负载均衡和灾难热备
-
多台 Web Server 服务器
对机器的增加或者减少来实现计算能力弹性伸缩
-
高速共享内存数据库 Redis Server
在服务器集群机器之间形成快速的内存数据共享
-
持久化数据库服务器 DB Server
数据库应用系统的隔离存储
实现方法:
前置条件有二:
-
在代码中不要使用具体的IP,而是统一使用域名来定义机器名称。
-
只需要修改机器的DNS解析,就可以设计出自己想要的网络集群组合了
修改方式有二:
-
本机修改
修改本机hosts,不使用额外的DNS服务器
-
网关修改
建立DNS服务器并进行解析设置
具体实现教程见:https://www.cnblogs.com/beer/p/4921066.html
2. 数据抓包——数据监控
功能:网关数据中转
- 对于一些没有好的抓包工具的平台,例如:移动设备,进行数据包分析。
由于openwrt是基于linux的,上面有比较良好的抓包应用程序 tcpdump,再配合 wireshark 的可视化工具,可以达到对所有通过此路由的数据进行监控的能力。
使用案例:实现远程机器通过可视化工具 wireshark 对所有经过路由器的数据进行监控
主要操作原理是:
-
将上网设备连接到路由器
-
在路由器上使用tcpdump对网卡进行数据抓包
截至此处已经达到了监控要求,但是不够直观,需要一些可视化的工具,比如wireshark
-
在同一网络内的Linux桌面系统上运行wireshark对路由器上的tcpdump数据进行导入
通过ssh远程执行tcpdump命令,将数据输入到desktop,然后作为wireshark的输入数据源
实现过程:在桌面系统终端里面执行下列命令:
ssh` `root@mitest ``"tcpdump -s 0 -U -n -w - -i br-lan not port 22"` `| wireshark -k -i -
然后输入相应的账号密码就可以监控了。
数据监控能读取哪些信息:
在前面的内容已经介绍如何抓包,显然已经在PC上看到了接入的手机上的相关访问信息:
-
非敏感信息
手机型号
操作系统
浏览器标识
访问页面内容和时间
-
敏感信息
如果是http协议,页面提交的表单内容也会明文被查看到
对于非敏感信息,其实有些时候也比较敏感,这是对隐私的一种侵犯,毕竟没有谁希望自己的一切网络行为习惯被别人窥探无遗。
例如,wireshark可以对某个设备的访问记录进行统计:
注意:https 协议传输的属于加密内容,即使路由器抓包了,也看不到明文
拓展: 公共WIFI警示
经过如下的方法阐述,应该能够引起一部分用户对公共WIFI的安全意识的重视吧。如果对方是路由器管理员,然后终端用户又将设备连接到路由器上了,那么:
-
DNS劫持
本来用户访问A网站,但是却被导向一个的B网站,那么用户的登录账号密码等信息都有可以被截取
-
通讯数据被监视
用户访问的网络地址都被获知(用户的习惯被掌控了)http请求的数据内容都会被明文截获
因此:未知WIFI尽量不要轻易连接,否则会有不可预知的风险。
此处多为基础学习,待硬件条件具备,进行实践并探索性功能,后续在更新…
参考文章:https://www.cnblogs.com/beer/p/4921066.html