From c61f13ba35b1f90c59d6c90e8f5159c930871816 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 25 May 2026 14:20:42 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 25 14:20:42. --- .../20260525/20260525142002-Binary.backup | Bin 0 -> 256122 bytes .../20260525/20260525142002-Config.rsc | 3453 +++++++++++++++++ .../20260525/20260525142002-Diff-Config.rsc | 8 + 3 files changed, 3461 insertions(+) create mode 100644 MikroMaster/20260525/20260525142002-Binary.backup create mode 100644 MikroMaster/20260525/20260525142002-Config.rsc create mode 100644 MikroMaster/history/20260525/20260525142002-Diff-Config.rsc diff --git a/MikroMaster/20260525/20260525142002-Binary.backup b/MikroMaster/20260525/20260525142002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..0d2d26ad7dbee576f058aa5e865c27d9434fc300 GIT binary patch literal 256122 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

ZpdY2uu#@?TZ0_#z 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

  • KCV1Z@ou|dKtr9G!y3;pHvw1yW<^T z7j_Kvdaz&EA4E53D-_ZT_71CL1`Lq?*r<1`rB-ey?DD$O+tpQ*uPD`VG7|Db8{ z_b|eOL7s!f=sz5UptrHWq9z`Q7xqBSFG!4Xa5v)~Y>alj+oT=Hs~bU^70}j#^^M1= zwJ!7;4~FSMA)ys>SXanO9O@Q9=%&nuJalhq0?=cZ;;Az6fud<-uRLzGVX|wELp<cQvkp->JDtv=%ysy1SZ~CYc6&wMj0?(5Nqi=54-BFy8k+dZPWbsbQtf zlGI%}JY1y2!puZPk411<1{8n+(pY>t^?ZTp_D`)#v5w>r^xDS1aoq1`_@f)kp`qk? zS?Lhq-BreY$bU-D`hPKi%;r@WeLYdKElh$WYPUqp=(s1gvJPigl%BuJ4tM8Aw&kZ%#W&vR%(m!wss>%c7Jy#wqvl4^Z?ryi zvkl`@Jtv{*A{i)rN9DNt^(}D(;aWiXS8yix_mPm#Jj0XVM;hcQ7qE<>zVuv;tlU3HK9w zX|BH7K$JYdd+is)($H6a8-UwjnTkEmS(37Zp%Qy1dM+J;LTlLl5k;6IfrMsW2k)ic z1iJH}YqAIC#NJ}OqKO2<P$0|n67%pRCBE%A^(a@GmP>g?_i z)EzK9de2PVPkQC#c}x&cH0vI1V;US}(5l(`X-ZRyOgUE;eLrTfWd#)k}B0sd7 zQudU7Xj6Yo^Qsw#lg8W4JY)a6>hCQV%=B--dTeiFGM(D=sj!J^&REa+H!SJ|sXh3v zg@tU$UF$!X2wfP^{TCMqrxiT$7UYN!=m+9oUi_5Bb zJ|3}pVCD793-la!?YuLxAnB2$u6RNpPssmnxJownZOOrY*jN>M3-&Ykok(tUdXG_~ z&XzFLWpN6x>7Afz)d8e&1Y>2?vI|ew z8ZI55NGOl@JE|I_Fa?(*ELlEknt&I=y4_+q&i=YeTe2_Wg3}5_j)*+i@7%$Xztj4d z%x_*I$GM62*7W>>u|DfM@E03ct z@qBssEdxv+OF?gC+F}>9E(wXh@bQ-lZ@-0sQ(oOY1LpjCAz%1nX}mD@`}^b=gsfGA!JKFLj)wI+r-g+^~<@YX#h6+RjlFo_pEYre2)O98zQFj zT(6$uVNOcqFrWOr8!=%c%QM3!KcJe8MxF1Wxuc`Yl6%eT%B$2^nGczOG~hgLaQIT) zJP~Q5p|I}6g2Of|;SUnuLWK_=fzE9yX*x(==VAf)@+4G$DKY?@rE@BD?3(v15L)nN zJb_h|J^KfgazwX&qdED15wT%&$jty73<~~)f3NS8a6qO18o;H{#`4MSci3)+Z+kN? z64dMwraCHmfvCIQPY$W~ZU4%isyV(K4m^C&@ZVqoMR{Y~*_?7?ANO7W!fnjnshdu| z@2+Alh6oFXSB?cfDdDP-_<{LIMwc6TcDwbxM&E^L6Sv$)&fnqS(Fk4-xmFF{%$>T= ztEvQMIyF8VKBazY`72AL<#AhjV+X5WV<0C(_f?Z=TgLyMco5!v_lehwKhGqzl}JOA z#~G48#I7|TTCTS|qI~Vt9AFrLt1N`~HW;+uKM(rJ;~t5BQ+DX%q1M2q*8!|*zuqVO zV0*fFIgNAl2nfmNp!f<$T>np^nCcFtgS-sTTYO7!Lf6rNNPin4W-~}}>%9o7cHRA) z0~@KdeC`31l6f}xig&cSD190s102D2%ZGB}GRUsg>3>)`_8|hLEGe9b`y~Bl!W$jW zQz$kC<^{PpC!?5^_(?%@70cnm@^2NCnIwkcToOTcZ{t_%zWK9 zb_jLLwr18ONnlcuqn?~E21Jky>c&3Ur`Tm8h?L=K*(6}YX$ER8s$xCTeI}XY6S3@I zo~!wURwM(Ns#*NTJ=}m^wl({Xn{Oz4bF#ODK2u8Wxy6Gmz>=wClK`w;tB<*OP%sb9 zmxD}(F(UufT_yQ<{V`voB7pc01F?&zylM&5eK;jl7vNNCRixYaav-)0eyDByn7i$? zx?c^{IW0zEa}Dq$+CsV}d;BD7l!Oo*sZj*njzZyXNZHdEeTf*qFM~%>lx$n+_~&V# zZx*~pd@eyTPctyU7#AxyMJHJu=i|BD*x1I$Em*IU%-4JJS?c2@Kopfq?lbNwj6Jzl ztxmgM?d^YHUn*9rvmi4xo`0>jM68vUVn?*;0b9D%*QYX?CIc~2k>UOUWYH#iZ_gu) zFBY<7%ZnTmh83N=h>ETjQf7fGNI~{gQckh<#lXs{pqcHR7YTn)?5k9Gt+pu8u?mb? z!#T7WS@Szl>MpnX!Z}m8O?8tbddO?}ZgO!OB|BMmB!+{_?`Hu$gArgk#Jvyw%(vCx zy0%9xVcX!w^Bg)LKe*#xY-Bnva}=sUGE^|(6~c!G0;X(4-7sJ5c;l|uDhWncYz8e0 z$dPHREm}H5_R-L&x7mgS9lV-rS1!w)Xs_gBTpM7AW)B={f=Y3mJZ6=$h`}W0HdL4}17*hhuqAP9^InN1!=~Ss1uR1G)Hx{1QdX){fl%7Wj_`gs+e&D|gd(yoEr@7-Y3IuCwgjcoXy69Z>X$bTu)n)&jaG>R$!a+W7 zrMLOG-jF84;;h)ls6smLsd06gD4Fq)(L0-kk$T=cPjBsAJof+Z-5%9J8<4ztQ7n{< zzXiD9z>C1E+rhe9sU9-?$Q-RE1%~K4CzT3DxVP|=wqKB8yqd?D>SYw@`B_wNv$gdtthI{NC_Q%1F^Gd<+_#}KY9;P&UEq2ua*m3U~ zdxfXjH+TUKPPEg^OyVc13}+TC0PI&mS?X?;eylVzfJ47NWXogbQ&s*h^OAMJqeqkg zSu-oTP~O&1EAN(IzF~#y6NA_`wS+XCCJ5XvS1zbIMsE>_HfX4M^1q&UYZ6n#N_cqD z9*#kaN>{HAFWgK9u1WD2yNgLEW(O2R?K%gTFR%0)2Ok~?ALYcBb!+C>+;!&-(S$v! zvq>KjBHLgm~bm>V!Vu&EOxeT_uXOU-g9hk0>IK#>H z1pO~z;Ef&bjCXnnNFz%=CuRdHf8c$sT9=xH8m(&<SJJytL_;)P@JIu z2H0Kd#2=)i_F_LwA7>{YMm+du2(eWJmhK_ZH40lJL%}c#LulEIyX1<>FUI|h$f?U; zSpPG~%1cQtLX36C6irONQNOB=&>^q2yN<_xJVu&V^4QT{7-*fbqL!vBT+C+(u4eX1 zD2WEZaEIS}!f`Pr2E_RYpC$g!_M!8mprw{RnZ^(^C}Rw+;F>a$0Lpi)@z$DLpc#pW z3;tSwjlE!&D!J_QLEW(*%dJjq>7?WY3eyBia4I!q_loLTK}61~03wlvlFHsJ4Wd4c8d%g%aJnURyfEiSV_V_F;ck;*AkvBtoEmZUY&@eeP9vxqKkhyBw zV@x1kt9D9^S>MD9W!y}&Q}`xt_SkT80kWlFg!Boz15hK0dZ$U`@4ZJsOeRhgCGw}! zI%PrQp^Or*9agE;m}C>atPNWGrm{@(vKK6l#W2AS3P4Kk&LDqcjBJL&hj#s!(^@nRE>D0<28PiDl*n+Hy0LeLbf?n(%^3v2 zI#e;HzQIU|tm{h#xSO5P(c`5?f!lznmK2G|J>__N1>6JbHjvIJY3@{iQ;gFC3grS5 z`D<4mgPMpy=`hzRaAQqXcvmjdSSi8=GVvx6Ia%XitaDSkGYPywz{OT5-Rpa@72tye z!UvJ*n+M@?=kU?{$9bSCb{dcYI)z4^{MQEVNHSoHGJJ0l-${e=RZ?@2^djHi7z%!C zRFOI!R)+2-=aQpp%Q?OV?S2ESf8zoa^wa_xUSp;>H8?NA9n7Hy#|u^id!g0I`#-oe zy0}#r;$G@j)u~@u-v|JO3-PsYZz1*nC=>K3PH{Ww?1EgsD0cI@hQF-*Y{7SYV?)hC z`N3PawW2!5XH_%^)5u=&9g#vy3tI*C;Yv@m8Jz4V7;=zD*IJZO7_ zAHg0mpa75cflM~d>pBtFZvr_@?@QH&izx+IrLPRm!){VP;rQu_)iB}~4$s4j;M?d7 zsIzfEuN#?#y zvy5V%Y==d)0jFX`U?X-R3?#)WMQx=@?(p>}g?i`S7CVVCSvenjIz?{47}kzCRM+aQofZ$h>y&?=j=XA;;eAansx}Ex;q=QQSGFO=m{!nr(Y4z zcgC{q_`bOb_sm&nYBIu@WAnYS$+H6;{Hhh6p}oNkS*oK(JXUA}C8)^6t_N8VVsUgj zpnXpCp{pB|x=C}hc%~!Stc!V4fP=a`CfoEciSLlbTUNRIg67 zey0FEVJ&i~%DS(s?t`@~+ShUZaf0#7MAA6%lEmB1CyC6s=b-ehtUow`^?=8cdHqUD z<8@39@d$W)*z{e#Djni6AK3_bi8X4hM{j$O2~y~nIGTjKn;y4O3iL&8MWduC&xLv+ zv{z8CMFXdmjM-c%l{FQ)(prXe4x7cX-w=Xh3S(3OX>~#!Sh)YMoU(^>nJU~z%1sqy zpZP$fC_a_eXG^}1M_G9R!N1s!Hk=5H+rTgjbeggDXsi$sMZj#i*=W=}DrKnBVnTj- z7f}TeHj~hC%HRc;&;jpghny9d+3DjV%3>S;g~s?rO6=5nLC~;2jbCz&x}&zXTA!U; zoNF-bQlAL$;N@wW;0vir27FAsuZPZ%)VJ8c&JbMbOPI??YTrt$eZ|zq0Q>R$jIOPC z(#~K?YZ)>5r)Jxnwx9-^LbNr{pvNCOd5h&h%8+th<42>DwcWrWFPYRGq$@Uz)%_wF z@cDx;@|U>@h`&KJ&CE$$0{ryKiG84y@O+VTZ=4Y=P`)SYp$9xmpw@i8O3CSwwnkC~ z+|jAUItfycg`wt6dV@1HysB`n%gmf=f5QGL-j0YiUQN5EU>8*N!viz3|M&gnWt81( zl0M&Z1-piLtqw0&D{k5Ur_aLUDam^EQye$I4u$~j78>;%qb)9^GgHF6_b?Rj`y|g5 ztH%xrI`x^*$j_&f#rMGOBVF8zHLpB357Ljt08{${czVKh3E6k}p((x;1WPbgBi!)s zg54802cAq_{HZ;T8uk)!|_)z?*ONZ}7q?P7#FsT<_{ z>K3eGAE)K3qme3Cqy9lb38&aQ0rZHjW?`0N7PysuR!MJA6F6VY6N1iLa7wbrgjrZB zWz-hy|JL@zk{qUtvuDB@hL$og73EARHrlmiXFiQxriTr2)ff9}vg<6Sjq z0?!_$ib*Fm`WR~c(=6!r$mHjkd0l3K(b0P04=whc#F9*<^vbIs%!rny84Q`mZFY3g zB`*6|(JVFgC+_lHG?S|2Du6dujP+(m*=4?%$G8)lyY08zJ{N|ju45$stH>=j0g}Ji zb-fyO#HV)wQXM$ua};JX;-BNGv*s|uTi8^;TVZ65D1(01}* zoyaIc#*FirrvSu}J%oBnk4Q6jvE{YlJ-@X6T3UY}1sn2yloYJLxY;6B`Q2rO1OQ6HN2ml=y9ZlMBVbqX~nB!DpD2ho_JpiJ6!Wm4FPid^PMOR?)PFu$v} z9x?ox-)e81RmN5PwVh!T!(rLh}0Tw_&d;X~1l};8Q5cpA;U@3X@hv^*x* z3AZWDh^7Syj4sdk(WgD=_(x2qZVoelIdE{HLE%ioIpkW$(dcB#|Dive>yDeJ@U@88@w)9E@btq{WYD;O#=v{kl6o-_>ap>#lLMlVvWF}@HF~dzmO2Fm>-$a)x(od zG7bvR3}O4@W7`-_DB9My~0n8&0r}ByWRfJhICa4+j%Jzyx(n=CQ$4e*WJP4_1Jb# zbC|W+TotV7is4@q(L}3sSOO1x>*$b$z|yQ~v!0#6B}A9`{EQ3ILzgZvta5q-M}UA! z9r!|1?-~Q2yYafPeZ+xqS5+&;Kh^2E1llgpFzioNLG}%^G7l)(_=mA@&K(dvF$nJs zxLyE}!pA82?z>aenemxB!VX0cJXDtHOU^Qg54LsP>PlX07Y3C&>Q+4^wzSa{%v49s zTiRy#rGgh{Kgl04!LO%2uo_4(1J3T7T#tzLoFtrnrv1h}2VGSaS}CbqyF>TJ`PXTg z6Lbs%R*c^S_-ZIUIDUv@9LmKY6`S6Z2X2c)MdKmNajq)s5;Lh(V8raqh~82fi~t~URnNR`bA}BilPRfImcu{lYMqE?gc9I z@b+pB;mAW-b*~Cko73;P9l0V>@%B671nJ{K(QbIa-328YXxg5!pj1zXY$#z)=cG78 zLX!(9o21W84;m)G+|7!O5b%8xQWPTH^pgP*A`XtPH9Fd)947Z{IdjY7on|L`B8M-47b z^Vg$O0H(BD{*5q5cR?ovZ4lY~;-seef@)NW&6?F`Kp zohZTA0Ffuqku(^#VPA(>Ig;~pE+G;F07_4xvmLfT>cSB7h6xfns=&UDLt@Hl8dcm3XIyYI7OQQ%C< zTbviu>80Dn1`a|nQg=MvzFo@&r&J8EaVt`p(sWtC#a*!6HIw%Kzcu2Oqa-JZ71WpY z5cFGP_xuc!3Jv^hDwprRv)9?4C)FvP2I3lRpM^XjyGoStm@ic7hZ6Hjd4v^cE>7VK z<>!=%z0U2PI{lE(nU2{lEjb_W_vkaYJsteTvYl){+cRloXfW`@adGYG_Zv zMDv9FzWR8mP~(3bw1(ZmtEtx`M(nXiOP**w{pW?ZUgAnLg?ItzbxI1^CBM?uw|^BG z5klvwQ)>Vgp~UK68m)0wZm3N?BBPMszug9)1W*_L(msYWwW1I_a>U38_>Oye9Z$7~ zkRy{IZ#j*T){>f3S#ChbHrK5%5&3ya=Z3s<>!}4zXd!+hl$dXNex4tN_+D(eBeZ96 z;r&M}T9Sj)&=zA{uBcBA${Pd}M|g?B4d}{8zEYrdG#o&FGrJ=BeZntPZ~470M!cNu zepDdS;z6VA-NZHk6)&s;TXAJm91*OM(sxg&>^+9C{9|;349vkL>=C9Elp2jJ<95NW zWB!Dt;jGivMvg@q(pmd=U{y(&X}h1OX3>(RO{gkfak4h!CHe-N)I7)>`R3j;QB3Mu zqY{`GwZp#j*jta8=bx?^XSL83;K#;#I;?8^n^I5>q4v7{(5d6guV(UEiUmges)+S& z4i~rw3Y#Cfe4$B}yw@1mgotyw{-7faCMMV+H6|fsnv?J8?|Q@<^L{6ZMWz^5F>7v z$wIZ8w%2Oiu=xWjzKpJ{^V|OXG?%R1d`DA^DRZ1s&b$TeZT3n+fs-M0I= zl%jUw@NQ5}%Gp&Cw&#^(ZmjtnJFOtQEDN*;&#`|n3j$zWoAW+wh5aJJ0# zmi|;FHU>K^6S!|lpy08fP^#z?HV99`eG6{lC<$d0xsu!W8J}%=xeE|x(uAH!=2etM z6-EW8+4*~dWZgJnObWKXdWcQmh z7HU-xCDw?QzIMT}7f}p0iFG%R49J$TVkN`9N&se7jC<@h4V4Wa0D2h3H6gx()zO@v zfgWIB3(XmyH&I=m3B%)5jluclF+VBy7^WNq{`s>_u0`o@HfJ}o{p-24QO4@~mfgRV zhN%I|PdGGxXb?g8O#;piSKy;m=kkxo>t!Sr+5Q!6rs6We^?0Ylb~N~HNNfwrzdfe z=-z`k4pCN>8@HX_m#OC+6&1W@bCdm<@A98TeSBBSPOe_+0LE%HSz+nVPR+EuW^nB{ z!6Pf5&J85Pg)XOTP*Li@|L1bE#eOgXd(gmYAC4v#%Xt~bftsEXS zwPAYSjr;My=YJfi3Sim&vK)OM0Tn@>qriTS=fmN;#*`JxBz^O8&%^Md3wCE;YZI$! zURyaM`Ax!@RYO5;i@U?El?oV>Q#AK|+i&h|rW1(|0W$6C^3J$ z^dG5wNboI+?nuQ0Xe~bS;6&rk`-t%NQ3(PmT56~j;AlBfEzmUO zO1#Sq!AGkd<{oc~&SA0EhclL121li9Ks3ktEQKmg@&aj)V4#R%XsijY1MSsvBxgr$ z6guL(PN6#5e3nK<%`|d!aAEtjA9M$tk6Pn7dZVAQ#eMzEK$>%x(1f$1Gvtm5zjU;i zsDqJ_-SQTsO|!UqmJ(_I0iZ zplw&03xx3&sT`g89_*O)=3(jblv;dOV(Phlg@570E6!}?S|u=uz$76xut{(U%?Z?J z66OnFu1fZln`&GiJVM;IkR#4Zg?a?LK^q8w4&UX6@37NDKA}lDZ_L7w>Hl9cZ3PCjx3

    M_A;oIaH^u#}q#FZ7y$Mb5p%A?n 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%0A~?RbC3y9fzJOj_ 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260525/20260525142002-Config.rsc b/MikroMaster/20260525/20260525142002-Config.rsc new file mode 100644 index 0000000..4458cef --- /dev/null +++ b/MikroMaster/20260525/20260525142002-Config.rsc @@ -0,0 +1,3453 @@ +# 2026-05-25 14:20:03 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5260/20-Ceee/ac/DP(18dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1280 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/661/8d6d2114\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 25.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output dst-address-list=VPN-Server dst-port=29185 \ + out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=VPN_No_FastTrack src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260525/20260525142002-Diff-Config.rsc b/MikroMaster/history/20260525/20260525142002-Diff-Config.rsc new file mode 100644 index 0000000..7b15e56 --- /dev/null +++ b/MikroMaster/history/20260525/20260525142002-Diff-Config.rsc @@ -0,0 +1,8 @@ +356c356 +< \n:global CommitId \"main/661/8d6d2114\";\r\ +--- +> \n:global CommitId \"main/659/af48ca83\";\r\ +359c359 +< r: root, in 13:30:03 25.05.2026.\";\r\ +--- +> r: root, in 13:30:03 18.05.2026.\";\r\ -- 2.52.0