我正在尝试在我的局域网中演示碘。我有一台碘客户端机器、一台具有主机名的碘服务器机器t1.haxor.com
和一台本地运行的 DNS 服务器。
我想模拟一个企业环境,其中只允许向企业 DNS 服务器发送 DNS 请求。因此,客户端计算机只允许通过端口 53 向本地 DNS 服务器发送数据包。我不想为公共域名付费,所以我想设置本地 DNS 服务器以将 DNS 请求查询转发*.haxor.com
到 iodine 服务器。
简单地说,我希望碘服务器成为*.haxor.com
我的局域网中的名称服务器。
我尝试haxor.com
根据碘 github 自述文件.然而我失败了。
$TTL 10
@ IN SOA ns.haxor.com. admin.haxor.com. (
1 ;serial number
10 ;time to refresh
10 ;time to retry
604800 ;time to expire
10 ) ;minimum TTL
IN NS ns.haxor.com.
;address to name mapping
t1.haxor.com. IN NS ns.haxor.com.
ns.haxor.com. IN A IP-ADDRESS-OF-IODINE-SERVER
配置named.conf.local
:
zone "haxor.com" {
type master;
file "/etc/bind/zones/db.haxor.com";
};
如何配置 bind9 以向*.haxor.com
iodine 服务器发送 DNS 请求?
答案1
问题
我确信问题在于named.conf.local
,在 中,我将区域的类型设置haxor.com
为master
。我假设 master 应该是该区域的权威机构,这就是它没有转发请求的原因。如果我错了,请纠正我。
我的解决方案:
我在DNS服务器上安装了bind9:
apt install bind9
我还根据以下设置了日志记录和转发本教程。不过,我认为这一步是没有必要的。
然后,我去/etc/bind/named.conf.local
添加了以下内容:
zone "haxor.com." {
type forward;
forward only;
forwarders { YOUR-IODINE-SERVER-IP-ADDRESS-HERE port 53; };
};
确保更改YOUR-IODINE-SERVER-IP-ADDRESS-HERE
为正确的 IP 地址。此配置会将该区域的所有 DNS 请求转发haxor.com
到您的 iodine 服务器。
然后,在服务器上启动碘:
iodined -f 10.0.0.1 t1.haxor.com -P password
此命令假定您的机器不在 10.0.0.0 网络中。如果在,您必须指定其他 IP 范围中的 IP 地址。请注意,这10.0.0.1
不是碘服务器的当前 IP 地址,而是 DNS 隧道的任意所需 IP 地址。
并在客户端上启动碘:
iodine -f -r IP-ADDRESS-OF-YOUR-LOCAL-DNS-SERVER t1.haxor.com -P password
确保更改IP-ADDRESS-OF-YOUR-LOCAL-DNS-SERVER
为您配置转发的 DNS 服务器的 IP 地址。
就这样!然后你应该有一个正常工作的 DNS 隧道。你可以在客户端机器上运行以下命令来验证它:
ping 10.0.0.1
ping 应该会成功。