From 72ac8ce38e3313e503ac1188d10144ff8369dbff Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 21 May 2026 18:40:36 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 21 18:40:36. --- .../20260521/20260521184001-Binary.backup | Bin 0 -> 251960 bytes .../20260521/20260521184001-Config.rsc | 3445 +++++++++++++++++ .../20260521/20260521184001-Diff-Config.rsc | 6 + 3 files changed, 3451 insertions(+) create mode 100644 MikroMaster/20260521/20260521184001-Binary.backup create mode 100644 MikroMaster/20260521/20260521184001-Config.rsc create mode 100644 MikroMaster/history/20260521/20260521184001-Diff-Config.rsc diff --git a/MikroMaster/20260521/20260521184001-Binary.backup b/MikroMaster/20260521/20260521184001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..2e3bbf55fa43324f07a0d95f614146ca37a9fde9 GIT binary patch literal 251960 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%0A73=Qu*zg$ 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

%VQ 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%0DDh(td z;<|aA6hlsA;ZaMgl#+p~gUJwnOj|us4D5UZPYp>)u(#elNtX@hFoNAMPKyJ$Q6H5H4*tQH=SMPOw+d#9mWJpN$z7 z6YN*G1O@yy=oEw@U|jvLvVY301F+)ZbEsO}TQZVwq#*VtYK8{8`_@2S1f zA;#4cD+@q?T#}}U z9M?8l2Zv&FCoz|@9(YwTh^@+lb|us(vwVWLQNqvLcdaB zlpnL__j%T{R?AdlWJBt5y~BdHHeK_qiiGpxy5H!Juz_5I?M5W`%DlABO2`FDZL)&y!D^gTgfqcykWYv2ZO?1Dt6n~VL`9yO5?C26 zFT-r^qAQspnqLBn;1;cY)k{rKBxzc47_aUSE|TJmIx|vVH*)!0ZpHln)V+0({h5kX zzhVbea7y_K@V;r0?GeIKy&KcUc}9`QhHetuUex2Whz)_r@G%9f~oy z0W=E@l&)64!>wr6EshLKao0%ZNuvvQ2lJ&Hx?#!}Rw6_yNrA@SBeGdA8RqPmcai`q zagu>cqrg8=iY)2+N1&gCA*LL>AzJ_RD?R!4(1l#HB?)A$)zo+mE@ZiFfqN!{G{$0@ z0GcgKOx0R*_zjS-P#CJje{dfzp`2Y3%Z`Ku6DWNF)GTA>Ce%T zg3NDLXv$u|W?(4Y`A1{25fgoS8;^^>t1#QWyU1=RA}J*Av%%p#zJvc{G8@Xb?o#e$ zWN8k0A*m8^Ya-xI5W1Q8)dTji+z38>00^A?^5?JA-0`K~X6i)_nPsS`Q^C zgm4hjd`8sAZmMBFT*FIqqrl{MZm@;xBxx2w53vm!%FQO^>$Z`_>H0KoTHWUItu4yA zC>96}2WYz&0#MOJAf0|-4MslR-HKTU4zFV66_4`BE=xYlp;|cPD4c$G%v~YR`~_$M z5(?DNWL(lmDVwMA8Ar9R&=Zj%ixax+`?4!i=u;E$dOnqQUXP3;wyqpk${;&Z{kQ)y zDPoy-WsS?>5hs{;u^G}3C(1Y5Fc$0=DVn3(tb#A~m^FK8gOqQlJ zAw0khZ)e|v#Nd&$-`d8V zXG_vAcXyNPvZReRGRj(!fnEph)|I$Y>mcHjpChNQaOqFphENJX!aar(Zx1Sh>}xr6 zHx|dKM%B&!zYdgQzvsoNavz!|F4dryRUlx2b%N z?vzGvb)|(y=B<6X9yA)0HS1r#@jiPE33@AX?Iz$Yhn1(Kv9pmzrHD%j)6J$l@y!kK ztyA%5@d=dZF+d^LA=TVc<$bPVGLM`%2?9hUOvzUyGFCV&G%S4b+SMt^*1?=!IU3K0 zZQxT~=f$#z`LLOrxCpE={V5H7E0&JIMsxpKi}2?AXXs@lumEQp2w(emJ3Ab)^PwGN zv1x25iBlf|@>p{(BWx*6l6n`kgq{}ipFAQV5hG1Oz4m~etU?24b`uiWQ8aqNK_m7d z3Pysm&oE8WF1!ePKW$oNbz)LPsFaLe4-K3;h?g@D_bzpO$|=eHnRn-}>`NQ#-U}MT z7*xnbTt9s47b!pkQ7JeOc6zf6gcg`$88`MCxaY@0L)Mg4*l{9PU5}f_>=Dd(kyue` zWT?xXI+rjXJPpcsdpyrrte|z@Ut?#Fo{crGwgHRs_59Un4nBL&M-jNr^Uh{) zE; zO=4&XKbCYu$#N{A!EjZ!_Qxn^Um>&oj_d0Trq&T-qzsVU;FT8~-B`&-?Ue~VT~aM# zb~7d_?866jU)E$RQVa&L&NICfiQ_h~FwO^X^=cE-B2tK;N8KF)m`45o5R=)CpTJsR z^Xn+e7~rvp8xRU97N!K`xmDZz~+2x5WR5KXJahdIylWK@P` z^Y7`-C|tl>+`O-&%n+Ub^hJrzyJMwvf96LvONh>AUOozjVzJ#+(~tcXYek89M+F1} z!rt=epKOL(aU3dBY(T*09bYOqJ%;OHOB{ZoLaU>&a-lq87d(HuHnSJwF&tz3WX`hX zLv|Q0)hHkmo^ZOoKEpnjCrFkm@~WTEs!f! zASC}35|*s~b86VICJk+`8z-k|YTz(<R4Ml|O&`SLZh|(DY)gn4dk+*}s z-fkQc_yHuDpPmeFQ((sq;5N&gYBc9l_+|YZ!D!z@wUwiA-U}EvYxB~eCwTg1h^{+z zfs^_-Z*U{J{Sw!5)Tr8)uxEjf^!ai|P}7-*L>!y+fktKN|DBgcc=Xee;7)7@L+ObBfU=kPj0D z3L}J#m-)xhOA=aP8Z=g$yt;bkyc;12puymGuZBy9imhSdj-nhl7q>DS8vrhTKd)+?xOqu;|8f=mA62q zpRh+rc$Q$GUz`E@5!@t_`OHbUo^R8D?4qPGISdxF(bRFrud~p;;4FSR!EL6t4DN12 zRkURAM|t>AlV^prjHo}hVbMqbGj=9ik`%j|0dQngkrZC=t4AGM%?T|v4vG8*ly9&j z4nn7H#QKa?aaBMiD9+t--}q65j|=!5=4*`DqQf;4TTr8MfHZq&Rlf|JvM>g6dp18^smtdHQmNJUD&iH&tZ*_RL zhG(F@yJUCGOf+J{DCVSQZUoU9t!FUoypYh$n%T{$eMEYtOM93d`4Z|S*NRxqKErgXg0 zzpHWhu`>td+3F9%NE+YJV*rCj9L*u>#}(&}iZ|5d{<_f}urozlfEy$qBdWcqFIaJ* z<>A3}k=^mLs~KLynLG-rkDL*4E8%0c=f=t8V8M(Huh_xsv40$I2+vzbxuO%?jQwR& zu3r@z#LsL#f@l%MN2ZaP7J#9Zwvsb{2rxMhwSn^NSG*H((7<#W+;iFBt%jK{DK2%V$LB**-|`j_;+1HtQv7<2HkD22E~C4?`c1 zem)Co5G4Z0;a_&fVSq@wWhybc1wBx#-Sq^3|2E zR_M;FBp66PqymQ0wi>()yP0}mLQbIM6K6$h5Q$FkoXuKm3+5bej#&@M^z)8^E_*dj zOPRISCMnxdl-;Me^E0r4%#`$}JAPCU795dvulKc7DmNhu?3ZmU)y%-^ zcou|jZAbV(@iR3I61N(oeXfpZV3hj{e9BPdrfwo-SXBNY=3!53!;V zC{VtBmcN^#ZjVY&SV1QFGyVVUc-z3lu?(g;Nkdh=|I^M8PPH=>u^XCf$>ou*(qTH> z6zIl{d;EyZAhAEe)(1&wDrt%4T1> zG8p%*qGCZXGf+|D!xw?o*v~`*CRZ3bg&iwBzi?b}$y*5P)7e~h0E|yqZeU1iuLm`? zF7|kP+jY6w^U&!ETx@%>g0P@QOL60K`J~G#0Rw1H3my{0J`H z0%LY!ne(&E@mHC;IUUiydfY>hM+3E)mYeQ`K%+HP%O#Nh;g;+;=wUQnD(43{_A=2f z5!(%a!KO*t<%`8)_Az5gNOA_W4?8iJbJ!No_^80DS_P2D(DzV44kl=))h|C+gFN5Q z%=f0szI2t;@OWes1sB7l27Rdm)cPC1nzWQO0ZTMOO;5jHCaNnYk=~;pJ(Fwb-Baa{ zf2Djo0M*S1q8;s<7)-JTW9+wUQNQ+tb_p~E@$?K*D(In;pfH&lrW=x3_D@@8ml$Q& zB6*ICb?-R$VPSuLE^kCuo2XjRf{=ls^(`v(Yd3;--DC0?QiYX{Aj~el z_Si{WMG7KB@TL#lm)`70HH#b2k_fy1o25ZDlLj8_wWRL{pg8K%u>)AW#Y+pbM+Ue+ zU9eEr82E)x1HmJ0Ei$mJBA-LG+dG{(^#6iX*sd0p=~ZiQvxThdo>ms?-&+w^wdeWN zuscO6w&7<`gn-{UvazZpT&C9^LyC!Vg+dJ|)Nn-q$_T{m}Yx-CS_u zN`A*Bjouep_5Mzoa)8j&nXZ=GThZ~%hnr~fxB40FD5|d=eFWXCxPILJ$*h*qP6f-d zuj|wTg*lGL*%!TA#pIdc^Jy~qcx;-M7Q;`2Nf~Uk(eu?0h(vW3SY_ThcP_7HZBr3O z=r|QU8G9jn^q2EUdPs>tSVe6urRJT;tr-&1Xu70W9YhEZS$P>pW~nEt>#IJ>q!Y2Ut8 zN$+Dm&V51XE0DV>(n^o4PuNmTS)2jL0HEpd$_Md4-(vEOT2)+15HPE8j5s?_z6OP&VkO3Wg$O#Ggsa%B4%XeF$mR|6bTAwvRecgU&{3O zBcpqPlGLWA+Rz{MWsqI}+#OvK05O1wX+Q!6NhoGF3N4|-SNKPDRH%ndXKXIJVAh+z z=?=nYUBpKC%T9>|+D#hrkbv$cF@A7a=ISI_%8 zjdG#PN;SLW=3dd79#gx26Pjcp=&A_6Yhqc?vd8ZkRgq?ygGf{z@02mdS+cJq>4Nru zK#|L%>5eV9RY7E;_`D1xw$7`J<&BC`VQ4<}JSl-RBfh6X@HSMeg#; zIqd6J)|pw$aj~h1K|qlXLaSW|uQaYLtmW>IEVIGZR*C0Y1}n#}g2JHjNmJ058O%}n z_M1vTeJnSIVj^klEtc~CtgZDBp?Qt8p#1Z;)dZ_UbP6pwV~FCI)`jG-R>bNVQ-A}1 z>Hv8xgA)guvoHHf{6Hp`+YY6DNGtX0y zyaWrLXvkT#$cWA32p7Qpm02+w7)HJfvqdKOTy@*r!5cY)r?t!aJXva6rRJk)hz?Ame;VOmd$V8Vi6A_9>y-}^B@?A`aNdwe6t$O2p>KO~ghYP*c=P)@-%4MWE!w)Xp%<@1t zGg!sYKKI6=qBt8?J?t#+|FM*+&@Fap*cgy^kqq@eB*h^`@XJaLsm)2~Q<Hf-HQ`T!nVn1JM z6{)pQdEqViO(P+Kg&^i+vT1SnK4+xIb7`Ddz2&X3&v(RA(nCJtF?a6MHDrwsQ@ zgWB--K!!`{9fMv(O)tM|er4F*FgUFro$M$VxPIMip{>XO`G}o-MUlmxx=8dsVs>1O zA8h1o`I?_=OMZ<@6{&d2<(11F^dVFL4?HxvZRm>^w`!Hab*@C<#*9ge>sDtx_EIhb zK?lf{U-<_me+~>f4JCkms>{JwyEI$b9^)$Zq%%1yu}jZe-may=E17Dz#f2(AXcxHcZ9t z|JBoolo^{hahkF(WK-#H(Q->Ted2~K;pIKxh{R51lK)HkxD~cQEDtc7IlG^;=X;87 zGJECa@{T}5AuJ}q7H(TceZjOF0i&Bzdm8-=GE^RbG zy(syxj`O|MI_kE7v3SF1mF%qo7utS5_Kp(-J>C&bIIM%t5+p+Y=#V%FBH{YE^?8YA z`A(wUtn?u>WbHMTw=oaog;i#;0JHO31M4*zZg4Y+DFi-*>zr#8%C^f0UnQu>c6|8h z;#7WM2c*(&!TdM%Tw_TC1`2C)S)Ffx^i^I#Jx|{AWucgpv~?A!54*M9z630=*Y&wB zI`!xMuZZ-2cu8#7Ap&!eM{Stuc>$pI$-eM#GJ*%HwsiK$4VW#Wh^)FXri0@FX zjHg*JlP!d<-IfEbwjOvtwWigp?Jy|vp8-D>eExR+m*gE*tBQVb>%tx*8Ybf9&EEH{ z*VTew+EEHR7Id;fua3?+BGc9jPLz|?N?WGfZ0DDqhAE4_8f-ER_pCn)IIR`f&fU?Z z@4WZ<5zdw4^7RMs4Q@f~w$X*LD;LI<_WGFhve+_Zuw~5fTqpn^2V58C54zLKZU~H} z6p!Mr2!ah*B)!VOsCh{q+KJ>5y8n?afWRc+)@*E3+Euu6h5NwRF%{E+qY75icj}o7lJ8{{N>0jiTKxh=3ko3 zwnsgRkBkoO2d&+i&N1I5uE`n1jfGddgUK<$KAoYvt`DF|a<^QPSmS^`hatCh1TzkG zS$kH0i9)+^3yVj7^azs-9U^@6OT@xK>YE0F$@r|F-$Z3Qp5836Ph|2ggVe@CJOdX&*6rc9`56;Dl z}z$- z&!rEFv-jS!ugA!6LdQj;4K>53Easl%EGRpwvQ2S)yDEisx83CA zF@&fkhQRZ+&c?BOZm|K{Ob`q7_O|mULZs?&Z*}<#<+tDY!K?YgEAZnF z%9qCGO$j-gUE=RdIVOZ24HuYmm^6UTg>N~j*WRHOwL6HsaIs|(cZdUnzj{1OSkwGvwH z7U4y|K~$?^Y1H+1RQn~uy$;pyO#hU(U;fcrAA3klNg@~A;B{=oloqRlq;UT`pDz8=IlY!3urpV;GSe`R!)}m>1%@1W7DYwM`;h z1~ke3zDrRb5+;*gpA`-XK;O7;oA#FN5I9;d1A63Y8XpJYkM9D+&aU>O_OPRUyV4um)6##rEdz{jf08)(2DDEAT$~P07wD`5O z`K!+P-!i>d@1Fy*qn=ogAJNy3U_-N*vv`Cc!FI|nE@~gvgk{Dh78L3gntI6<_{ zGSOWHvJhsA!Qj)0#d(c!b3pI7(jarAR!}aOE9}@B-I(gJFngd#60;KYA0aoR1aPR6 z%8sAim(>f!u2indP)^?UHX*CtX<7|%X5fN-)6dB?@|ax1T(pkcYJI?1$F<{A!K|O1 zB*-^ZFOjYD5-nlMv^ChN>Gc}SrRq2*k{;Sqf)Ufg^DvqvK!s+#RXo~?{90{X_vVA6U;|YuF8j4Hw-b$R{_-JG z&`@wk2H>ma(15`N5&c0WJp0VAl(WurrE|PH6$+oxHbx0o7dNa22yBbGIfVH9$Hvg7 z2){LC(KM`^S(*H#V6TIAV>?Big@g<6+u0xToOLShpYCiYgT6O6>gJQFPp zbAW_%%eitb)#G({joOxbqLUK6MKNdUdWPhIQ;E=}5 zdX|%h^s|v9aj_~=7j>y7Ax{+8(;{YT0RR*bohn4gPr!j1b`&H|Tnx@zC&JbU>ZLqvjB#jj z?Z}`()ro^}^}cHoBO+`i!&x9WV&W6@uL7W`&so3j-G{R_mR8X4WPqyku7H=~uezv>|6ZVV58mhjA^S zKQG&G8owF>@AlThA;vXu6QELgW>^MNU;krHy=qO1rHO$RZY*UEUBAxov}XdGn1TW7 zSDFPO8z#H9OUDPggOSE-^BZPN+T8M4Bh}v>x-yv%r+6HOvwaAH&`4-=TVA4(ejA7@RcpsJYKsrKU13x`I-r`QidT$urer@kZ2OVT$z5_-eXI5$u#e^G=_~bMKc*JU-B^=)kkT(s7qv zEV$HzfXbS1v|$)bpB1H=@2$3NEb9d%jL|}*2OBwkV^(r?K(0$Vu5rPLJev7E3P>1H zFJIgC1=I7&um9DwuS5bzscV2^v_EBt6R1?|gxa>M7yr0XgPSH7Excz_3|@@_XFe)E z=k?Hz$l9ou_-9?DBb6w+?v6aftuh|ncqq!zSA#~U9&bfEL~$4)CBJmGc}4H4T7Ce#8mvx zSo!N1?+SC~;{|!0f$x7`ZY^LOetN2jR^ZP20Kbt^{y8|*FUqSfe9w({6i1%4lsm^w zep7^ahwCi66gMn?6AX_H5Rp(2H3UHFJXd@kQ^7Oewk247&nm$C1iHh5;3dX#00^`* zBUs~I78rTA8+N?@9UdzcMH*U{J)r4y%jE+i99)!vu8G&d4{Cnax}E|jc;pe(mD%ya-dH;9{(h`uM9@AydX3sMsdTEjJJ`Kd;gk6XL zJxsAG@fTw>B~~f+aMmJe&Wi&V=LBRF9fu_3HcC4OmnB!nu?u+MoCBhjh%lW&N6oUt z_tA-3rRa0UrIfhz|2$N{SPX!^mQ1`qtL>_3jrf+myAG&X76RCApH7jq{pch6op;EQEAB6F{nvWEHo z>vc-3%b1O8J95EUiw#UA*fsnAM5Yl=(oO2mDQYM442rbNf89}G26{r490jc$2(MWG zf}owWj+v%#v;HFZ@tFo%=)u8(Ek`>FFDN(xV#2_5KpOfr2Cj{C#AyLN&FhaE$O>Ub z_x)D?t=}uCgKVs^CT)Jh+npw9FE$rpj2_knR3U)Ne_lHSB5=|RI%)`87A!yh^rQd$ z^6rfU2<6iK6_1Hi@bX|EV)LE0$+{`v<5wD&??}Dgr8oLR<#2{oNu=!*wd!~$*Sy4{ zh(%-~#35VLlTzcK)0Jaf^lRXAG*D2tc>5zTx$mMD6xFNgo*(!B?|>gT%OI?zY28PF znS6Giz3>I9vqDLK)rxp{Joq~-@P5Z7!hGME@$=yXwdlDMGtsIW2LCaLOi(}$HX+*! z5k2|9ACbEe{iV@P5x1dw_)C#pNg9UDaSXnmBW6oOK{UXz2X7j7%3H9!J-&UdN?9v& z7oL=gx9)~27aNHzh8j4$%@P}I#6-Oc->9=EmQzG}z~Y+nA1RYjer0zkSm_5`TH@cI zVRDKaI6KM6-u!A?!IR)8*DuO`U#J_DIHpU?X>VND-x=Ehx!P>~H%p?2r;3)%gWUVJ zt~g1dFVE>$eIZejpO26RX!j>wt0|oIf!!dn$S!oeLI)$EI2Eu2kd!6aKRNnJr@qMdk-@c&;WWWN^uPC4_sw0Dj(KUt z*CEqwX4Srz5E3kJ^7u$p zBKr0Quv9mqLOQNjZpbNfM2V|*eo;4_n3MF*qtyHwMOGN#96|(R2y!q~YE-|??9ho? z8jU8GdaW%r6(ue51A&z(eg6}yQA;*0+03Slg8mT%wjppi%D(Nf+yK+VZx#_vxCgN)Gs@(Y`JL_z4j(cKe(#0DWY>2ZxQKYWXs6T7v$N1pWJgWt|%N9RBV1jpS3@IV7#-4WTOxWWlhNCQyD+N++zx> zZN_G(=1EV9roH%7zDUx#jd7v*MQkZ3FbYe!9f>;_V7|!&5-0JE8|FuqS0q#{!HFSJ z+jh`pRI|AYj#>;uTQyC0#`~=1*M)xkD2aSU3{#xj6WKf)$&Ke4mgx`4deYh_#UCq$nA!Cn|(xv*ITt9(ORP9Wno)pTqSCemVD&06`-6Yh0kF~qQ5=4QTIWguT?Re7Kq{(0j6Q`NmF}c| z@6L4K3Qr+G=rW^=W9;Lbpr4ORtWT$1!M&at@TV{KdGWG&MiSTvQ=a;WbMX(QkVK4- zGC#`4FSw?@OFdeJ0nwzw7`*3|1L=Rq>_CqnY4zXpHFZT`m`Jx6js_y0{6$8w?1=DZ zH{Io+Dye9OkJ!b>Y_f8dz$-CVLHnTk>py_cDz~r{P{fOi8q)~P5M{y_RmWbJB4PJ> zXKIa!)}rV_eiq>B+^M+G3G~~}N+VEhg%GUV%EUxI&xOJHYDTTwE!@*{BuwD4E09Dm z%}Dx`!A+M^_vrBhNi*C(3jLLB3V#)4YaOhNF#o^Z!6+eZTZ-`HCFz7nVz5Cd-w^Ni zXtd3UhY{WcO^MfQa}On5AQMI>p-m2L-?Y*X;-y^_yYDL^jC5U9!cj(grRKRn^&8tXdfLDVbGazvAIs)H;URFw*c>cw;pTeUb)} z#ssLibQiV-_^C_uSLUw=>v%A<5C0sbdq_&7Mm5&@$XoyxS@*sjpo{?#W*vpw+&E4h zm1q`&*ge1PF{vcX756n^IgboQKA*RIsOD|2rl4H@?_SM1hr<%k4xlAht^(=@cPv&Xc%OZy7(eKN1XO^1i1;P zw754TAetPL5G;Qz4(ke?Hlc&_NPg z9}f+sHmB(R&5k9Cw^3`-$IBMGm89YS0$R+zyR0u_gsGn6vT0 z^BLh;DSgnNe2ksdt32D`a>a2xFo{>P@76c*JBfbwMCjL5BZ5bzAwnfDpW2It`v0)> z@-YCL0>y3IK-(f9ZWN_;y%t3Vp|1i1@f|rShW4Yd?tr-t_8jXsj2dwH&(M%m&Sf!8 zZJwt|FiG&adrALxAwos8>Vif{Dc`+UadV>2*)Mw(;5&!mm=psFDX%4y?6|h$|F=)C zR@;9OOSrBTOMbayVnT}N57p1>-aP^lQ?5r=dSGaN84~5c^>38cy9YHmpF;k;>M|Aq zKvxqx*!)iGzT4Ue=4(g&)pGeo6yBw4bg}FC0k;$IB%w@rJtWrUdSw9Xmyqmwqr(`z zqN|Irsh)c@9c;w)fc0gkb-w>lMD=qf?oN~>65A;6LVqYvqJv8$?7-K&W+wcZbAWQy+sN*Wv%FHFa z@Cwxm%00|uxgjHQ|B*fmGbl@0OgbiUZ3Mt-dTvfL;>E9>6(=_4ZWcf;d|hM7{@A3#q9kvrn-`qWrpK2?1plfye{lIhQ&8|; zu?LZt9qKve98h0V;6PTqoO$5obFGU5*NLIt%_6pA)!(IS82Nk6+x7o;zEY4yh8MOv zvavp116i|#i`FB|* zXnhqa&oM*3hk`V@bgS01WYP>(4wfG>&6=Q(6Dr7vbOgmhB~?y0xs^i!Hm+X%D;lVh zoA8H78~Kt9VvN*U7x_sR7&M=!>VJ*h@O(Ect^-q@!F!A^a?{M@#uBO~0mw`{5fi?& zp0U-Lo4h$|mRf~U0*plPQ0s}dVnz6VRB`M+oyWs(8HT<^U7z}IN>rLI0yuDcS}*Ns z7+S?&?@n^aX6kS!V-Q$X8>)IY*SLc52PyEatJx?KEsOv;Weowvg>ogXi9mtrUjhyr za|@hEnuT_jn9LPgQvDy}(meUzj0)#x-(P}l1+Fn$Ko`gzXtbLK`foZadi zIwut@ARLtSA7Sc#G+;(z`OAkR!zY{&?fmiSo2$ z#}KN53NyM2pw4OXqpGztCs1DgKfMg>1z8dt>eE-=PGXUinOR5--GRLtWF+Gt?x}PT z%(un0GCuLf4?0pS($D~SjEM|s!)g?|zQHFQB98PV&2MIN#B>Bw&jmb9YCUXu%dVr< znZWBt`f@nB>rO5?nkFz|u%Oss)v)ugE1jm3kv#zWi5YC=ms}^EVzYfaWDkdfglfzR>tGdWVFZpj zH1+?7Ty+Sk;=?CTC1`rI*Nt~Q7HuAJDJ19{c z-uh@8YD4yNw`{F1q8|WPGXN@7pa;HgudG}zl3%z6caV>UW}koM*Lb}k3nqH}?B$(o z`CXM^e|wD%BmiKUi2$ECrEX1LSu*v9AZGt7bRZ9DUsU%!`S?6i6c1jWqZU++A{XXuePG{Fp~&^mj@C<&fi_j_@Q^AVv<>oaat zP3ksU5di-`0KizvOnz$EFpcxMuU>jE1q^ywI_|?o1XDG0-~$>y9pInQ&w%Mf5zHXY z;IW-*ah6$+22o62 z9P2;kcT0;Gjv8i_cNFH;nVpLU6z9+Er!9e^#@k)OU!CgxV?ro@H3QAYp=Nar?W;YZ z4JfI$?2VLcTZ^OSa3GJEZ~mdYQIXbMCNY4*R0fsLecr1{2y|E;Qi~%-<<+GU;iV&ZRa)CubrY$(&A1X0rZnlQp`%?owy4W0KF z85h5VD{a4E;>k8D4}Yum?=;NnL_-2nwvA2zjL(~B=$~!WYSCV!jdej8 zK5e9FLE9MCrBOVTE)%KeWE%!4y9PZJ20b|0h?$Xpc+IU2L0%34?xGh&1fKU^+`Ds4xM`jd%pp4Z$(?CY8_VmE|LB(*O1%e(HQdD7~yJ zks=>)?(ilZII-(&unn67$IeETv=}7!Cs6G&Pk(omt^teFH7SV2lYxZ3Ir*5UzVi6|G?oy zOI7|?Ht?Mj2Y_4c?E>7b?_f0+u@LZzxx6qqF)9wi(#eYCj2N~S7xRY|l$X5|d?`h2 zH++)B!S0K*;xuj6ONi>YnFWcz=4c!uOen8XncawB-sA5?o;jkJ&1(!@dp4EM134yx z!MN);Sx5&6{acXm)RL8?)^)w3jw|nwqjHi*?``0zOD{e{5&p$fJ35Ml2P6rzamr zMj{p^?#~i>7m}F80s8CMDTivy5)c67nsq}rRvXa}8Yf7_me~D)Mdk*z<=w1k=JJqRhlmVZWm~>0MQm{)m^h8^Wn@J@28-YNjCEo#M`c+z-Q3CmrycJ-? zH?qWMN%0Q!VFlT#-Z=!n!e>5~o4*|5G?Ha&4^rRE-{+0CBni*zeRm|M(3#IS-K>Sn z32c*sD`C3(QW(~hPnn0gaUyi3W{U~7bYU&k_|?Z zFLV|Q6z1#n#G;KjHj~seuK51K*PTcoTvNM=cd&yE>U~DDyX~R#PDiJG3HqPW?2y%q z8~^jTpydSBD0?P^M7SXnA7YE5>kA7a%+B7}WzI4|Qw4VP$#Wa7RVY|bg9EN-%EHc> zb8NizPcc+Aifzk5?d;d`279`cjN;1WF@XQqK8*x;Bsroy!ZcO~%DJf4{Fc}T1qcro zJfmArI@@z;Qvvts2Xt<{q?PYrA2_`LI0i&)zO z2V`llrj|mnDG^E}bmap#Z9EjwAh_;OqeWD*BDc$%_ML$dZnlDrFOg-;mv|J&Ou{q@ zVP5m`&w7D=8Pbq<>Ehj9)PA?aD-%IX!3#Q>q^*92x*HoeTd2V_G$aNodPu>cAdNB# z@S-V+k&TajX#YEKyQA-wQ^qMl?}4RAW8=c=XuCyd>%xL%pMgLkl0Z|nE@ykWrXhKp zKy=7(wk+z02%O0TAcd<%vZLs=L~{-ES$@E0A`sWO6{MSIH2q4h?oI|y;u-~ zECAZmj<>f5$=KY)HrbJf3GSctyjfil_djHFp0AGIkr08hR6b^)g+X7R1f zJO2H!2_2yS^zu>PDz_U@?by`nq`J0{WNGbNMl@T1(p)}BpCM51IOcI*4Irq;W+U&m z2Tk-PAYKpX{s4}B5XdXln>NHacM|{%l4qocr|2ymDOSkzMU22`pw&uCTR>4~WfY}M zn5)#aCUNgS%9b8kpy@5RSyExFxC`1)+Xt}H^QmlH=BQ?B z_4rX(x*#eRTmLtn;w+*GDSl@5Kkuuy2gTG`l^stB3#Ffv0s~Vt5(Mc-AzV<@%g~=H zLfpdLM9q;OWzSv~R!uv2+F)e`l?L$s_js9IY|+Wg85Ucq574#6j{iYQLuqMU4@z?e z=LL_(-0i)f>&oCTJF4`EVT^{D_7E9ge#jrRiyF(AiNFS5+uO$C@!yD?GK>)XPAmZb zzO6dFu2!*?1a^Kbv-XJXxR*m7b1MvN$($YtOe&m;L{yg8o~`PyUO{^49pNU3D(0+g z)pTH(Hno0zRo6tG_GQx*NeC<%kC~l8eQoaW7XkgWAuXPfM-=7~h&dS`{u; zMDB=MaF0vyYb=iAFG=3&ZaOgt{nJ9I#7b;w$E!!*DY00-R-fS)F445-SYYNDTZRn# zU_AOK2vge5{P!~vf(U`oURb>M~nDY^VV5`)2Hpz zMHlSv?$~~Q4O`Q7@FglFrcp$JH(ku546BSC_;2y;xj>bW9vg@++I$6tp0I^Q6l-)7C9!qvzW?5hN7)$vVf88zN zAt{Ou8a*2{63V7=vdy`Z`*?62K1Zs-`D5qd$11#y>GWZ8xJA}P6R-+sRhqE=sbd@a zo;6%k>3*Ui{82LaOm;&-3;?gELjmrYiwqSM30IkDQ+~Jl-!UHYtkTb4>k&B}LBVBa z7Y@K*a;)>!HAK&N96FluQ1ZG>Pd>&ZyH9!NKdr{fkS9$f?_CD|dLyk2xp zYR|+Tq+N8r`pH#p|GsoZdzaw$98Y>G5p zFaoX(fAhD^k5kC%_Ex>n(&vNDoT8W291~Wuy`edMtlwx+8AY7clFSg|^7!|!N+itN zviwNRkEE#2E$e7RE8En)x$xx?e}gaEwZmBJo-yPyis{hZsX^>#qHB#^YV(5z{2`@+ zO3p9)vVg1V_3svc^l>QR+HPlNpYB`#VE2hl4*#j{LJ^UrD3bjqy5XqpZl}m;>)fltjYb4NKndTO0hKKE4Hv1Gua}Z!^V> zrmdd5$dv;qjKjIoU>1{hB(pbaQQQ(lp&zDXO4t@hxvbX%X;+wh%RerB(LE#JLrh0z zL78F0AiTZ$1f*1=(^w<+qVaovOa=Ln0>|3>fdY|%*HE7>yL09$XhKMpURe{@XfvRD zg!n3HUkNHn0FshxH0J>(6}oaDbbo|Rc#GtKBY45)0TyLydUQxVLb;0Hc41;vz~N`~ zS2eQ$Gk&^gT3xR*H|ujgfa2+FAUC#XCh`;i(yePHOa?t=Ie568aiW zR&7Ll2|9ZObz<7UUH@xhb>^-qHMj2N-P?!n^FZ5wCKEuN#5^$3+vW4A0o6YZ{ z`k-1-{**idDX-vuztX>;(HL6dL2NWir?(|lvp*N+-1cM1`_}U zHf&Z8u^58Gge5HUN?H*CBbvU2C|!;xgS@{H{sh1VK`rEB%-$S;fREoBN>YoX0FJ%iamp1E?DvGW*?%cJ-yJO$wdn4hdks9B%IM zzq8qDlWKaE0+z_Ucs4Wh(|^N)-}0V_RNOc%iP@byK>+Z-u*|WjkcKHtBib&@uLy8_ z3%JaS{=LgeCD@v}Kti;3g;x=M8tfHDaz@g5O+pAVxRig}x}>=6om=&}Imuw`ph1#) zPU{|;7KCUFaQ+834#Zoo4qeB4;?KEb*mGPF{}$m7N9M{R&nR7nKA&Chp_Z2f0t05F zuu8VT7&klik19btfhr6J(h3YTwVr?9m`e`SOJuB&q*DYIMLHXRl2aE0$**fEW@4cP zXSmd4Vmf53z>C&oTzgWJUpa%J`EaxIZX!Ich+9ckowz?VEK#P1r zg?oY{V5@)eC2?yJ)K_`do8`}AzuIjbNS7PQ6*+6W((MT6eOKtBZrmaGrr%j8z_&!BlmE8 zUFxOyVBDtH9hbI%BjgL1g=2S_0=&p?WsvDl6u|Lnf%-KUQHjPE=Zh}!VnVN5t75Q> zW91<`e?W1m3H^FnCVV<*W*xi!gE<{P6Y~(Bye?5|QI7krX*kbLj!-PJ3zW;4^9f^( zPtp-ThMIIUvkWVry7FBOn~`U2RSNtF5oVf*aV@*zGGxC9rG1XitnwV&WOxW0R&_7p zWCDi>E2X^q^UxD8M?p7FR*y;KyA)?x@P%JuU4JcfzgwDs>vNvhfz1O?@ByTHt6k3% z;-+^6_+a%E7oeG6L+PHt+!2yeen=?V_F-Hi(KlsA)SeYk!kWycUp4CU+4jH$0&64u zB6>Q*@SSfhM+BW{6gyBe$gxZRfJ8gy47)?|RQR5()~Js@p)iU`jgAJ|^-Ri%?MI1K z_ui8+mp2J!nU6UeGfUb`I$e-9;2q;~GE!11G5X0OlJUR_k4)VofBUdXwAjeQ6vk9* zD+D!o7^0W+EDYPW62XgBq=27Wgccls{cT@b5bXrH!}(in0W9g>{fcC_H;N*xS7@$5 zYi~NytBuR)zewZD7Cxsbt6*L%5)C{mnRoA&Uq504|)xsDPZ z6mCikc(T*W0*Coc9C%j%18H{wm3NkdOCdRiHYNFw;5GRLg!b@==$PBaI&NG;OF`q~ zju6eHx-QajkCHYVEbG9ND?m&De+X)0nE+40k4-m$wC03cOn&3}e}~srP!2^py=;GX z1=Jo4!r$dY@O1F}Gr)`>7OlD1&T)e}Y~HC6`4$$4yoa2|AH2yap<#D#O$Zbbu^MMLdn<~)s-OvGYF)=~{fXv+eC-dGWH35!9={{xyAp(1HNnO`! zLmG{oCNcX2E%Z=DdN+laR9r$9Hd@{aEpi`Yc#xDK+Ovdnrc(>J;E|z*MarLC`}$U( zqER%U0AJZh{@-k2O-}A89v(MCf$i%9x(plv{8<@O8=eQ}8xWa5uVzHyna}A|A6Arm zb*1q}|HaeysHYJm1_v{8=sp96G)eDQuA<`bsD;F0l!RB>PA-d`#^F z9lyzH7%?|%Q(W~?AbYt6I&a1;d>Fz84(&-T9ZIYTUkvE_Ob*29CvqmFGG7v)Lu{|X z?Ib)~(aWbnC>44%_V%_u`Xy(Z!#U4c!b<(ODZVOZ#$e26h%6GZ2@7`wniK5Y+f{3l zrVOBjK8=o8cR{7HIHu`p?o5yu9CTdT(XAZa5GD4cf7wG&jrZ#o&RV1+r!SI|jv=az zi#qZ5vUQ7E22(l#O}FH{ML~BXAZyN3pFM~iC1T{wLsH3Z1gmFMS!?&rD+1yOj@;3F zIY4Xk+a|EqIgkpOW$p7c{@ebX>q5Gf1r3nHD}53N;d3a?Y8-X@v2MFe-Q7VdnDYM0 zJx0a<_lqKLGD`=><3HNZK*ts<`1 zs|iFTX2Ff?RPeg>Ze^JRf4SDMD|qȫnlyixfy@efW{(tuo7%zk4zupFQo5uyvM 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 B8%6*C literal 0 HcmV?d00001 diff --git a/MikroMaster/20260521/20260521184001-Config.rsc b/MikroMaster/20260521/20260521184001-Config.rsc new file mode 100644 index 0000000..6f17225 --- /dev/null +++ b/MikroMaster/20260521/20260521184001-Config.rsc @@ -0,0 +1,3445 @@ +# 2026-05-21 18:40:02 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: 5200/20-eCee/ac/P(21dBm), 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/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.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 +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + 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 disabled=yes 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=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +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="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +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="masquerade Default" \ + in-interface-list=LAN out-interface="ether1 - Unet" +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="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=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=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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG +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/20260521/20260521184001-Diff-Config.rsc b/MikroMaster/history/20260521/20260521184001-Diff-Config.rsc new file mode 100644 index 0000000..c3987a7 --- /dev/null +++ b/MikroMaster/history/20260521/20260521184001-Diff-Config.rsc @@ -0,0 +1,6 @@ +3225,3226c3225,3226 +< dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ +< 10.30.30.0/24 +--- +> disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ +> src-address=10.30.30.0/24 -- 2.52.0