内网端口映射+dnslog
2024-09-01 13:15:03
以前的DNSLOG部署在公网上也即自己的服务器上,产品依赖个人的环境不是很好。于是做了修改。
框架
细节
1)A域名的域名服务器指向B域名
- ns0.B.com
- ns1.B.com
2)B域名的两个ns0 与 ns1 作A记录到公网的IP上
3)公网通过VIP的方式将公网IP的53端口流量映射到内网服务器的任意端口(最好在一千端口以上,因为绑定1000以下端口需要root权限)
4)重要
内网服务器监听绑定本地前,先用ifconfig查看下,是否有映射的外网IP(我的通过VIP是有的)。dnslog程序直接绑定到VIP上,这样返回DNS请求报文时,是通过VIP也就是原本的IP的。即使UDP的方式也是支持进出的
当一个机器向DNS服务器(公网)请求域名解析时,收到的报文是来自另外的IP(内网其他出口IP),正常的网络是不会过滤的。
但是阿里云和TX云好像会把这种请求/返回地址不一致的DNS返回包拦截掉。可能是处于安全考虑,DDOS/DNS劫持之类。
虽然过程中想了一堆UDP伪造IP的方法、网络是不是不通啥的,但最后找到了这个网卡,顺利返回数据包解决问题。
5)最后将B域名的A记录解析到内网服务器上,那么可以通过B域名访问搭建在内网服务器上的WEB。
链接
自己写实现dns
https://www.cnblogs.com/Chorder/p/9087386.html
四叶草的用dnslib的模块(四叶草的功能没怎么实现,某些代码不符合pep8格式看着难受)
https://github.com/BugScanTeam/DNSLog
最新文章
- 浅析/dev/shm
- WIn7系统下 打开.exe程序出现已停止工作关闭程序之解决办法
- C#:文件、文件夹特别操作
- LoadRunner界面分析(一)
- How Tomcat Works(三)
- cdoj 93 King's Sanctuary 傻逼几何题
- ASP.NET问题处理---targetFramwork=‘4.0’错误
- js输入框只能输入数字和小数点
- BZOJ 1002 [FJOI2007]轮状病毒
- FCKeditor 插件开发 示例
- kafkaspout以及kafkabolt的最简实例
- 《Linux命令行与shell脚本编程大全》第十四章 处理用户输入
- TypeError: Error #1034: 强制转换类型失败:无法将 mx.controls::DataGrid@9a7c0a1 转换为 spark.core.IViewport。
- Gradle笔记——依赖管理基础
- 你想知道的3D Touch开发全在这里了
- python基础一之while循环随机猜数字
- DB2常用函数详解(一):字符串函数
- sv命令空间 packge
- Linux性能优化 第七章 性能工具:网络
- 各种遍历输出(经典版)----java基础总结