RouterOS上就没有什么非常安全的配置,所以本文主要的目标是可用,增强安全性相关的操作都会被标为可选。
RouterOS 6.x的OpenVPN有很多限制:
- 支持的传输层:TCP
- 支持的Cipher: none BF-CBC AES-128-CBC AES-192-CBC AES-256-CBC
- 支持的Digest算法: none MD5 SHA1
- 支持的验证模式:必选用户名密码认证,可选客户端证书认证
- 即使在TAP模式下也不支持MPLS
RouterOS上就没有什么非常安全的配置,所以本文主要的目标是可用,增强安全性相关的操作都会被标为可选。
RouterOS 6.x的OpenVPN有很多限制:
众所周知,RouterOS的IP隧道(GRE、IPIP、EoIP以及它们的IPv6版本)里面都有一个IPSec Secret选项,两台RouterOS设备之间只要填写了相同的密钥,IPSec就会自动建立起来。姑且不说RouterOS默认的IPSec配置有多么的不安全,对于某些场景(比如运营商拦截了GRE但是你恰好又想要一个GRE),这个配置还是简单方便的。那么,如果隧道的对端不是RouterOS设备,这个快速设置还能不能用呢?答案当然是可以的。下面我们以Linux上的StrongSwan为例,实现一个GRE/IPSec隧道的配置。
RouterOS即使手工添加了VPN server的用户binding interface,也有可能出现连接被切断导致的原来的端口还没掉线,新的VPN连接已经进来了的情况,这时候系统里面就会多出一个动态的VPN server端口,一些针对端口的设定就有可能失效。这个脚本配合定时器自动删除动态生成的VPN server binding端口。
1 2 3 4 5 6 7 8 |
/system script add dont-require-permissions=no name=remove-dynamic-vpn-interfaces owner=admin policy=read,write source="/interface ovpn-server remove [ find\ \_where dynamic=yes ]\r\ \n/interface pptp-server remove [ find where dynamic=yes ]\r\ \n/interface l2tp-server remove [ find where dynamic=yes ]\r\ \n/interface sstp-server remove [ find where dynamic=yes ]" /system scheduler add interval=10s name=schedule1 on-event=remove-dynamic-vpn-interfaces policy=read,write start-date=jan/01/1970 start-time=00:00:00 |
应用场景:
一:RouterOS接了多个上游,都是静态IP并且有NAT(masquerade)配置。默认情况下,如果在非默认路由的上游IP上开了端口转发到内网,内网设备返回包的时候会直接从默认路由出去,从而要么被路由器的reverse path filter丢掉,要么在出口处被masquerade从而导致对面收到的包源IP错误而丢包。下面简述一个方法,让返回包从正确的出口返回。
二:用VRF接了管理网,想从VRF访问本机的WinBox或者SSH。数据包是能从VRF网络正确到达本机的;但是从本机返回包时,默认只会查main路由表。你当然可以简单地把VRF网的路由或静态或动态leak进main,但是这样就失去了隔离管理网的功能。因此,我们可以用类似的方法来实现通过VRF访问本机。 继续阅读
注意:
1 2 3 4 5 6 7 8 |
/system script add dont-require-permissions=no name=os-upgrade owner=admin policy=read,write,policy source=\ "/system package update\r\ \ncheck-for-updates once\r\ \n:delay 5s;\r\ \n:if ( [get status] = \"New version is available\") do={ install }" /system scheduler add interval=1d name=auto-upgrade on-event="/system script run os-upgrade" policy=read,write,policy start-date=jan/1/2019 start-time=04:00:00 |