作者归档:James Swineson

RouterOS自动删除动态生成的VPN Server端口

RouterOS即使手工添加了VPN server的用户binding interface,也有可能出现连接被切断导致的原来的端口还没掉线,新的VPN连接已经进来了的情况,这时候系统里面就会多出一个动态的VPN server端口,一些针对端口的设定就有可能失效。这个脚本配合定时器自动删除动态生成的VPN server binding端口。

/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在多个上游情况下正确设置返回包的默认路由

应用场景:

一:RouterOS接了多个上游,都是静态IP并且有NAT(masquerade)配置。默认情况下,如果在非默认路由的上游IP上开了端口转发到内网,内网设备返回包的时候会直接从默认路由出去,从而要么被路由器的reverse path filter丢掉,要么在出口处被masquerade从而导致对面收到的包源IP错误而丢包。下面简述一个方法,让返回包从正确的出口返回。

二:用VRF接了管理网,想从VRF访问本机的WinBox或者SSH。数据包是能从VRF网络正确到达本机的;但是从本机返回包时,默认只会查main路由表。你当然可以简单地把VRF网的路由或静态或动态leak进main,但是这样就失去了隔离管理网的功能。因此,我们可以用类似的方法来实现通过VRF访问本机。 继续阅读

RouterOS定时自动更新到最新版本

注意:

  • RouterOS的更新过程并不靠谱,请自行斟酌;我只建议在long-term通道上使用自动更新
  • 请预先设定好更新通道,脚本不会修改这一设置
/system script
add dont-require-permissions=no name=os-upgrade owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
    "/system package update\r\
    \ncheck-for-updates once\r\
    \n:delay 1s;\r\
    \n:if ( [get status] = \"New version is available\") do={ install }"
/system scheduler
add interval=1d name=auto-upgrade on-event="/system script run update" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=jan/1/2019 start-time=04:00:00

 

Proxmox Mail Gateway使用ZeroTier One网络同步

有的时候你需要在多地部署PMG应用,但是它们不一定都有公网IP,这样就会不满足PMG Cluster节点间必须双向可访问的要求。另外,虽然PMG号称自己“使用了高级的VPN技术”,其实用的是SSH+Rsync同步,在特殊的网络环境下面容易出现问题。在这种情况下,我们可以用ZeroTier One(或者其它类似的SD-WAN解决方案)来绕过这一限制。但是Proxmox系列软件的网络配置都比较难用,操作的时候必须小心。

用root账号登录Proxmox Mail Gateway服务器。首先安装ZeroTier One并加入网络:

curl -s https://install.zerotier.com | bash
zerotier-cli join aaabbbcccddd

在控制器上确认设备加入并分配IP。

修改hosts,让本机主机名解析到ZeroTier网卡的IP上。然后正常加入cluster:

pmgcm join your-master-ip

如果有节点的hosts文件不对,导致master那边拿到了错误的节点IP,那么节点会卡在syncing状态或者处于error状态(提示“error 401: Permission denied – invalid PMG ticket”)。这时候我们需要手动修改一下节点IP:在每个节点上打开/etc/pmg/cluster.conf,修改节点IP,然后重启。