网页重定向导致防火墙NAT失效问题
某地政府部门A与部门B之间需要建立连接,部门A需要访问部门B的某网站,在部门A与部门B之间使用防火墙进行隔离并使用目的NAT功能。
如图,防火墙左边为部门A,右边为部门B,防火墙由于没有规划互联地址,使用终端网段内一地址作为接口地址,并用此地址作为目的NAT使用。终端访问151接口地址,经过NAT转换后,转为访问部门B服务器。
防火墙配置完成后,测试PING正常,远程桌面正常,但是WEB访问不通。检查防火墙配置未发现问题,在 部门B网络内访问WEB服务正常。将终端的网关由254改为151后,WEB访问正常,但显示网页的IP地址是B部门服务器的真实地址。
在终端上进行抓包,发现服务器返回的报文内,有重定向的信息,告诉终端访问网页的实际地址。
结果终端不再访问防火墙接口地址,而是直接访问真实地址。核心交换机上并没有此条路由,所以不会通,而将网关指定在防火墙上则不需要路由了,可以访问。此问题无法从网络层面进行解决,只能交给WEB维护人员修改。并不是所有网站都有此种情况,具体何种网站会使用到此技术,本人并不十分了解。大家可以试试,在网页里直接访问www.baidu.com,实际弹出的却是https的页面。
上述问题,由于防火墙的配置并没有十分严格的做安全策略控制访问,反而帮助了问题的排查定位,否则即使将网关设置为防火墙的接口地址也是不会通的。在实际中,我们还是希望将防火墙的安全策略进行严格配置,只放行需要通过的流量,但为了排错需要,可以临时使用全放行的策略进行排查,在排查完成后一定要关闭此策略。
最后关于抓包,其实并不是非要把TCP/IP这样的理论书看的多深入才能去看,只要敢于去看,多查查资料,都是可以看出一些东西的。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
docker 资源限制以及应用的总结
一、Docker(linux container)所依赖的底层技术(隔离技术) 1 Namespace 用来做容器的隔离,有了namespace,在docker container里头看来,就是一个完整的linux的世界。在host看来,container里的进程,就是一个普通的host进程,namespace提供这种pid的映射和隔离效果,host承载着container,就好比一个世外桃源。 namespace包括:pid namespace、netnamespace、ipc namespace、mnt namespace、uts namespace、user namespace 例如我们运行一个容器 查看容器的进程号 可以看到该容器的pid是3894,在宿主的/proc目录下存在3894进程的目录 通过kill可以结束该容器 查看/proc/[pid]/ns文件 从3.8版本的内核开始,用户就可以在/proc/[pid]/ns文件下看到指向不同namespace号的文件,效果如下所示,形如[4026531839]者即为namespace号。 我们运行一个容器并获取容器的p...
- 下一篇
SQL调优如何生成海量测试数据
场景,如果出现慢SQL,需要DBA加索引优化,怎么知道加的索引是有效的呢?这需要一遍遍的试验和调整,总不能直接拿线上的数据库测试吧,一般方法是在测试环境建立测试表,然后从线上的从库拷贝一些数据进测试环境,接着再进行加索引和explain 但有时候,导出的数据量少,执行计划看不出效果,导出数据量多,又会冲刷线上机器的buffer pool和影响IO,如果有个工具能够直接生成数据就好了,生成跟线上一样的100万,或者1000万就好了 以前sysbench压力测试,有一个生成数据的功能,生成100万数据是这样的 sysbench--test=oltp--mysql-table-engine=myisam--oltp-table-size=1000000\ --mysql-socket=/tmp/mysql.sock--mysql-user=test--mysql-host=localhost\ --mysql-password=testprepare 但它生成表结构是固定的,进行压力测试的SQL语句也是固定的,无法调试线上的SQL语句 CREATETABLE`sbtest`( `id`int...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS关闭SELinux安全模块
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS6,7,8上安装Nginx,支持https2.0的开启