开始: 众所周知我们设备常用的webui端口为443,我们在部署设备的时候,尤其是网关部署的时候,经常会开通远程维护(方便各位大侠远程技术支持,比通过远程工具连到本地电脑上方便多了),但是现在联通电信也开始盯上了443端口。如果我们修改了webui的管理端口,又会发现,从内网登陆设备的时候也需要使用https://ip:port的方式登陆。
所以,很多时候我们要考虑,如何给webui配置多个端口呢,或者说,网关部署的设备,从内网使用443端口,方便管理,从外网使用其他端口保证安全又避免被封。 发展: 为此,在偶然一次需要的情况下,遇到了一个400小哥哥,与其探讨了一下。如下图
额 好吧,反正手里有设备,不如测试一番。 高潮: 透过现象看本质,通过原理想方法。之前了解过,AD设备使用的就是linux自带的iptables然后进行了优化,想着ac转发模块估计内核都是一致的,其数据包处理思想应该是一致的,根据iptables的五个链,一个数据包进入设备以后,要先进入PREROUTING,在此时会进行DNAT处理,离开PREROUTING后会进行路由选择,如果目的地址为本机地址则会进入INPUT链,进入本机高层应用。如果目的地址指向了下一条则会进入FORWARD进行转发。。 从本机发出的数据包会经过OUTPUT,进入POSTROUTING,经过FORWARD转发的数据包也会进入POSTROUTING,在POSTROUTING中,会执行SNAT。而且数据包的处理只针对首包,后续的数据包会根据链接跟踪进行反向转换(优先级最高)。
大体流程就是上图。 那么说,如果原理可行的话,我通过dnat,把(源ip any 源端口any,协议tcp,目的ip 本机ip,目的端口 某一无人使用端口)转换为(源ip 不变,源端口 不变,协议tcp,目的ip不变(或者lan口地址,只要是本机地址就行),目的端口 443)的数据包,然后再路由抉择的时候数据包就可以通过INPUT进入高层应用。 经过测试,ac在如下配置的时候是可行的 这样只是转换了端口,把83转换为443,ps:ac还不错,目的ip可以直接选接口地址,这是知道我要这么搞,故意留的选项吗(手动滑稽)。 结尾: 实验证明 1数据包的处理方式应该还是原有linux内核的处理方式。 2这么配置以后,依旧需要开启远程维护 3从安全角度而言,长时间开启远程维护是非常不合理的,正常情况下,请不要长时间对外开放管理端口。 4我只是想借此引申出dnat 路由 snat 的顺序关系与处理方式,更多资料请自行查找iptables和ip route
最后 留一个题目一块研究一下 假设一个设备网关部署,eth0 10.0.0.1/24 eth2 202.0.0.1/24 配置路由 10.0.1.0 24 下一条 10.0.0.254 其中配置dnat 匹配策略 (源ip any ,源端口 any ,目的ip any,目的端口 81,协议tcp)转换为目的ip 10.0.1.1 目的端口 80。 又配置一snat,匹配策略(源ip any 源端口any 目的ip 202.0.0.1 目的端口 81协议tcp),转换源ip为10.0.0.1 请问,一个数据包 (源ip 132.0.0.1 源端口51234,目的ip 202.0.0.1 目的端口81 tcp),在匹配dnat以后,是否还会匹配snat呢
在最后建议一下,我们的webui能不能配置多个管理端口,一个管理端口多有不便。 |