我目前有我的思科ASA 5505防火墙configuration为从外部接口转发端口80到我的dmz接口上的主机。 我还需要允许我的内部接口上的客户端通过在其浏览器中input公共ip / dnslogging来访问dmz中的主机。 按照这里的说明,我可以做到这一点 ,导致以下configuration:
static (dmz,outside) tcp interface www 192.168.1.5 www netmask 255.255.255.255 static (dmz,inside) tcp 74.125.45.100 www 192.168.1.5 www netmask 255.255.255.255
(其中74.125.45.100
是我的公网IP, 192.168.1.5
是dmz主机的IP)
这个工作很好,除了我的networking有一个dynamic的公共IP,并且这个configuration因此会在我的公共IP改变时立即中断。 有没有办法做到我想用dynamicIP?
注意:添加内部DNSlogging不会解决我的问题,因为我有多个dmz主机映射到公共IP上的不同端口。
我想知道为什么内部接口后面的客户端必须input公共IP,他们使用DMZ主机的私有IP是不是更容易。 那么你可以做一个正常的NAT。
静态(dmz,内部)tcp(内部IP范围)www 192.168.1.5 www netmask 255.255.255.255
据我所知,问题在于,当客户端发出DNS请求时,来自Internet的DNS服务器将他当前的ASA外部IP地址返回给他。 之后,客户端尝试连接到该IP,因此一个数据包被发送到外部接口,并且必须返回到DMZ接口。
思科防火墙有一个问题,默认情况下,他们从来没有给出一个包,他们从中获得的同一个接口。思科解决了自7.2版本以后的cli命令:
ASA(config)# same-security-traffic permit intra-interface
所以据我了解,你通过添加第二个静态NAT绕开execealy该行为。 在我看来,如果你删除第二个NAT条目,并启用相同的安全stream量选项,它应该工作。
但是我强烈build议你买一个公共IP 🙂
我认为你唯一的答案是否定的。
ACL或NAT语句无法解释变化的IP地址,这是不可能的。
实际上,您可以使其与内部DNS更改一起工作。
比方说,你有几个服务:
static (dmz,outside) tcp interface www 192.168.1.5 www netmask 255.255.255.255 static (dmz,outside) tcp interface smtp 192.168.1.6 www netmask 255.255.255.255 static (dmz,outside) tcp interface ftp 192.168.1.9 www netmask 255.255.255.255
假设您有example.org
指向使用dynamicDNS提供商的您不断变化的公共IP地址。
你可以运行一个名字服务器,指向example.org
,例如192.168.1.254,然后使用下面的命令:
static (dmz,inside) tcp 192.168.1.254 www 192.168.1.5 www netmask 255.255.255.255 static (dmz,inside) tcp 192.168.1.254 smtp 192.168.1.6 www netmask 255.255.255.255 static (dmz,inside) tcp 192.168.1.254 ftp 192.168.1.9 www netmask 255.255.255.255
然后你把你的客户指向你的内部名字服务器,然后就可以了。
需要注意的是,对于添加的每个新服务,您都必须为内部networking设置静态,为外部接口设置静态,并在内部和外部允许ACL。 但是,当您的公共IP更改时,您的stream量仍将继续stream向您想要的位置。