From c97eab946b622f9da9e0140f57716455af913c42 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 20:40:14 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 02 20:40:14. --- .../20260602/20260602204002-Binary.backup | Bin 0 -> 260603 bytes .../20260602/20260602204002-Config.rsc | 3462 +++++++++++++++++ .../20260602/20260602204002-Diff-Config.rsc | 8 + 3 files changed, 3470 insertions(+) create mode 100644 MikroMaster/20260602/20260602204002-Binary.backup create mode 100644 MikroMaster/20260602/20260602204002-Config.rsc create mode 100644 MikroMaster/history/20260602/20260602204002-Diff-Config.rsc diff --git a/MikroMaster/20260602/20260602204002-Binary.backup b/MikroMaster/20260602/20260602204002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..6d5e2f66351871306dc5e3fae728d50671285dd8 GIT binary patch literal 260603 zcmV+aKLEh*sF8E~`2zqb6s+u3#H2Jf0jpC)X50S&000O80004Z`SAPzLr<6kGm1Mh z$-LB!uUvx8A?_m-x+L*VUTV}yqO1W%>DEoQC1qHNH8 zO4hn$#--o#B@VPfOCo|21mSi(u%$ujw=6|tPCy=}0-&5QTdoYY-_Wy1($Z_^0<-Tw zVU*V$K5&YPi0*Lm=%4=YUnzaSUW>1X+tD|5Zt;X^gO5ipu9T*A319Lp?f|Xy~ zaxuL*Ee&_K<=4bHevU`>Y4#JJ@X=p)g|7S^Qs4%LX<)k}t=HH$gQ`m*AH1tnpMx(R z@jnTB`Ei6gzOA+cZh(O8;Ts!bu)z)h6q8`MMuRzAUddKsj2Y*rLiueS*7Z8J7b0U= zIm!CNhagKvwuAdt{E)8*$Qngb=$t-qGi|ZQ+!$b{)d6i7>~XeI6#On^Rh9iYWNyf{ z07ju=|LJIgtjG>na$k}UxGGywt=+<$x7y9MP96^vpcps`+IExgJa({rGFyEHIQ^1l zY`;!5A_;nux9RznK09L_lI|awNg!r7gANg=+CCzl86(t_ zONt_e+T@QNkZhcC=X+;+4$ zd^^>?|7zcV)K2exw@dRLkA31}|4@U`m4z(Ay{hX73#$3T4s*ArE|q)`UswKL$s6?L z*dAy>M}Q2?ZZ|b|SUIBmSEqOwS=uZ*Do%g>=ZELkRu5m=qn=r7;s6NVMr4e|rY84z zsq)`>X720?^FQ@!!t6jr6LvHyxLP-OUOJ4cqJ92mVQ{1TsJ0hr-d4~SIg1_@PL4NP zPTOvkK5|vb#-|%*Mf4-6%4I|UI?;?Tk=16@AaarXEx^)n$gn;xNh~9+AlYhsYO*!V zsJQcs?*6C5@NP$Z;rnaB-?uAj^Jbaay?&7!Ai-?XBJY5|hhVuxFYA9lv;%MYnG>WR zMBMA!gvA)mXS@{6KSh#YTP9=)zvL={n9z~D*bdBXl$3) zG;qY;z|%kcg{t{5JkT9zVa8y&IuqklrNl3}W*A)ldl?-;B)>MvRKVs}XWJo6zy2iRfDSlMrf-K;P)GvA7xM>OBtyUv)Y@q9`N#oR z-fZ=68KIPx?${SPdm;XMN!LGMSiql5B}B7l=(cIR%kydJCa`_RRz|cr=e_@7rhD`k zwnTp1);o#21H_ng*&{gk1T81=QA4kWGa9*8yVc-oK`1NnReIf z(}$5eZu2nqgeO{XmY`Z+n+H1r*H?Sz&a-4cDYc*Gz=5Mlq*A-&8{Sft2F5uJ2>NE< zPK51ldy9cm*kAJ20Rb4?GUx9iX#X7cr8E#Gn$we;e@~;)04E zgpCN(;hH4)ce+et5hZQK1lFFi8nbwfx}!XciTqmjWbo&(-pQ}vq`GDj>j&5kdODw$ zt1l?d%-Q|1v?v=9J}P(fI8p4Y{pdYFLxo->Xi|4q9Uzt8IVrx zmZ=1<>K{T*%{C>Kt45`x9ma@2&%~woH(HsEsKxx+GW6zLM8!NVU!qMTD3EvO9Etc_ z^|*g|Zc$VBbR9J}<4oM5;dR)S(7ue7ktn}O=SySFnYo$UJxfMZ%%NKc(}r?G$uF`1 z`QRw3zmk^fMz$hmSB!mMOR@O!wUIHw4l=Biu?Dk7FE~I5w2_7fhouxjuq}}Q&pW+VrV7T=&$ zGhG3`_a?vXpTE>>mI~`3_TOaz7XJE!I#^G$>mP3uqB^i>TZtU2lDVWku74d*V=NI2 z6Oj_J0i~|wpkKoNwU8_#hRe;eOoxQEO(BLO13FKNtx5|)ENN}Qlac@beo>t9qx^Id zgt8gNWKz5^yZLg|P44`gjxw?Rsg7V^IP8nmqY>461gtbMoervlr>>b|lEGzZ>G__> zK0mqI&V1WR*6*=6%hcQnY8z+m%Q~n*s`wJ2rlV$K0Gb0f86~V8g&qN^V-y(o)TqNi zz{LKhlI+oxf>bt_*nx}(sxFKv3rZe@eZPJ+WJ)cPlG7o7hnq%RRLNE-3<%myYHX<1{U))JL>x zCuutaUEp@qKB^O|cysSm88h8BDk^$>x0pR2+r+MT#%ty;BGK<%FB9cNzJ(=dqP96i zRL)!dmbUDEcC8$|C0bKJs#!m`mdFJa(!#kIH{V-2omyDDwE3u8^&5r)(zx1KjGE7p zrLgUt^dQyc)&ZhCLGph@3}SWqtIr7Q{N`zowl;8tOcVPCINiGj<<5{0$18^kA2RUF ztI6|ZG|C9@i;&~HJ%Uz=s;py={Y~DT23FJFS$-$`Ajy7u0^W%xSyf~ z@M|2D1afcL%TbA7MwfqW43_r|@|v>SQuR(=nhjnL$fe^TouPiNmQQ!DPgl*#+?k1| z`g;49CxCbNOHH;?_5pN9>jbC(lVavL8eQDh4sUq5;!M(}rv*Jl|? zN|qtGQ(n~-Z9XL44jKG?=Z-mfjZ229G4uv3XE?Xy%MH|keBw|T1i8tCYJSjU1h#rY zDxY$bB6FKM3vn(>T`&YF)5Pzu<(=us*FRc(#GsE=7%ZQuGY{yz4`8Lg{pjR6otVJ( z*R%jGQTQc;;{)>L!fi`3dw+37F*@u*4v%l_)@#)9dek*D=*HQ|mwGS1^Lje%@?IJnpLAV21TmRTsOU$N-rQ)L44juQM~t6X zZK&0nUwkvriwuXGQj;bRZy)idCM=MF_!p&xRuMwNUBtGPop?C$cYIPduJ(^4LBCmm zEJ2Fsz(B6DvG-QaudJjq*{dQGKazOF`w0T zIhdlPQIGk+PxL1Rp+GFz4LRYWGGh9!^@QKKYqLu_@)cC8k&Frq4=(x5TG94C~9 zE+kW_|Dijgnr%=lWX~1Ttz?M_=Qa>99E*=4@cY-(*iaz5`!3dz1|nQ$so_`E9uq4$s46~P2(J_7+ezE6wdn)$gZ1dEfkSj zx1;B!{)7s8p9a)F03xowM59=MAy@#OKK}owwKQr|Zgd@uCcT~cl$X?iV`IkJkdKX9 z-hg8hDL)Vks^ya*h#QHOKnn)b8x&rh5{CX?SAsGSk`?93MA7MtwSG8k#SwgZ;c0Fl zQP5_IE>~x@8G@IF*5zQGvRGr7dm!JmmUX82OslaS)s3E!7_&vp2I#7FS=6U*+hzA+ zJq6*5WW$8U6h`<8a)NTdME)Kdmb&9vx#VqPy-hZf?Pm~BRSlXNz!I;(IKMe%`oG8M zC`#@~JR2_Ogf`%H%Eo|4_SJtMWYk5=DsnzXh^=-$<%)Z=17FJzKIe z!P*?yCBz5q)kkSjI4LQRT`jU_h?{LBm(}(Uv&vd)Z#FyczS0>AbNj#}XS+_e-&}(Q59LopNJIoBKZpW^LYF zK1*xsSbUN^cI(tE{J8m_KzF9kvU*~VpGa|Kgr2Q-^8d^P1(d*uuUJrr8 zA=bO`IY$y}W~K#NuDAUU56xJYHyyQ{{Jy$Hg|u z+uefy zf}qDU-m6-E_d*>#is0CD^pAMNUrO;<%X$?J0+cH1yHpsrTM%Z4+z|U@KnecG&C6@X zjOzS*fFNh`N$NP{mK!7@2gO7K!vwpDm>D=kke!NLKn-P-N5mYYFU1k0(_Z)o4s@{R z1r=g_rZ>#6#MbfA@%f}$}rz4vUKqI)oit)UOO}R1UBS!RnpLfM^}iA z69%#csoB-)u39}I;+1(eYjJhWvcf+d>UCgWqdkH@E0@(>{pVev zMkwhk)%g}C#Ol@C3wN>?PMeO8&ngfehDB¨t-4W0b$%(bgKgh!h*Kkctcji?Ouk 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
nnm+ivm2}QpVr5#TD4Kdw#+(9O~aybv4PI=6I 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

b%Yb8OHT!9OcEZ3djRgJ$@ zVeLR5Mg<^S!^1<`oNR^`8bE-FJHEmzp*W1>?OA$8gFcYfZ9y?g&)E^d%Y?6yb`%0m zc|bK4T+7+`45=^E+5IAEi!lR!3egj1lk7LFc?~#|wB5`-O*X$u1LhyI{Eh@>?6}0) zncH^Qe^whzJ540)SY5lhw|`^*MEe+tX$B`f~%71R3DY5%Dz@ zPn}OsM7jyd0HxMwWwG&&4CcVgzcaoSfC*_~q{rqu@ny7&?1Bp)74b^~U##TH!NVbT zXSJ`JW-{f+@@FFF0EjbFy&kh)k)a9-+);!=k)e>0X71YE*LfDBo|Ijmz!eNBwJQK_q$#@5zqU@!@AC{>GpQeVqBS`8%M}lc6YUD)V4htvoFbz zLS>Od95FxGiL>Db7n$)4ZekoxNT15&9lL!jcnLXp45$B#Z%Qn{kJD5BPnPLe*G`QD z*KFi1=qtzB>a49oRMPoUKeZNXqBcWAKS+UAx9$z21(5)lKQYHeTho6;RzvSh{oNG+ zo4FEeX9Wx#?$aAkOh6WS5Fe?jAe!(j)PyLaySID}_rx1UwyU)s_OFp$tzE?Fuk)zM z#j2A!)8oK3XtoE62gVrRtrbKArYMi&RFXw}L->!}U)BEFiwN12Um_ z;c_DHWAc0zg7ajTtg=>govE8#>6VY=WhP_nW|GVrpVEJfl?|+n02_s<%}#VX6sNPAHJZx`T{~#pPjTj$aN_j(<+o%G*g5OV^3gL`08;% zU0gxZXlN8kZSEV3Q+F408VoUq7C|h-AtY%Clu~lk6UTTvNpa;5L);nxx>T_Vy z+3Kd^Y|wq6V**eTpNsuSvjpik!m{*sbC7G806&i~&@;J)JUEAy- z*nEQDbX%|5`xT>|WhWvaWIZaw7`J2N6cG@SmlF6o$mvXGek#!cV}?azQ?#ZF5V9BO<$YoLh`0N?DC=-m0%R{+pC+4Tq9k%&`OV*$~IX;mi+4(4Y1yp zVu_(>QokLtK*=ifI9z_=U_DjxT1Vg~HQ3=vFWVa(_TAmmGbef2y|tmuEQR8{NhS%A z8!rYQyUjD1PRifJ=ReZD@7hI2jmf#CYOmD6ezb*NOBUEed`C{jrnZZeX0q^1iDBo7 z`NssTN{V~kHy89&Bj$Hi^loRs2I<(z_u#MQ}b@G z1Ed!eYN>vP>uNWA#~fAYBEJ3+XhIyVG_QE?Zg5&}S?JGbhM_e6?STs( zco<){73Mk48Najv7}g~dOoPhC`FWe<>W=Zj4``atV#!MNxkT0`R?Tsz(TitN)S0qp ziPEzRKVMZl$0r==Xr|8Wa6-X9?oI+6Nm@?hJ~1H` zB&6$*S@lLCfv9+*pAa}Gbnn=UxO)ADVfr)(U)op~yo6|q0WB0sIPMp<7Bzb|AxY~E zS~RJDXvn1O;O)+x&?e7L8s{wWR_gneO-iEug0)3aQzXoy5l1=JHr5Q1a_f{Ms z8Wv>!t^Vqs{w)0md27A0Q4yh11U~mXQm?787y3o0A~_+!3tIfx$Yv`5$Oy?PcJEID z%}y3=Oo{`R;V=M$C?5DGdp|?sAHt~ZmUKbR!Y*j%{Wo{ChjDSIGde#|7#yvceo>7( zAN6R)WLA_|snO4_Z7b5A+?gYR3U5q5T1Fzv(dWQ}5Z@%u_w@#tVkyVWzU!JxqAo7( z(sG++od^)h9OTn zYGofy9<+ZfP5EY}!V|s%tpQx&yxwKJp8?wet`M-Kt`cARrm&BXHPrQX4FBm_pQyx6 zMVcs7LXcS>n3;)*c=%7 zB!y{4QysSzVUTd%2TWkM)w%u;L$e{5vW{tZpR6oJPo9x*qmr^Wsz`$&hsuA0kuf4Y zuiL@A*bFn{B9y7Ijq%%8j;XA%+Bu8___qA4wKumlHIkKGc>6><26%dbogA^C$wNaSkJyctjJM-RP>l-0=#dl8 zwgZ`t>ipz*w+PU9r*Hx`-23$JRt=)5^pZwVf79vdq+x=6#%;v5Cg~WCfOK6Hhp@b0wj`A3>>}Vr|a`om@0@w*tvNo3d%YDSp86~DSOr`HTK%Q)~72R zZg_JdG$rHiV>}1jX{=yUE)tC$h?v0$>af&Yr$)Q8IR37x_N&s2YuVnF=f$zc*c9Sp z;M#W*kB_qT>aUe-lR*fIAxfpsu z=|~1f0(c=VN@NqGh%hKuhW+-8I8kh4)A{F&TE7NgNCturz7&(mJ@ZYr#^Mz#6h>c~ z-N9(+BJe59JoC8 z`pGzDQIcYXPnb~yg5-06=$=vV`9!4AiWeZ^)6r_GX^DhmPyy^l)ZY6x~AX zb$BOgGh3p)R%xR2da{{N%B)PDjd7cjQK^fQrxxp4%=?NuXe~|yQ=Soa+f^tLvaS&p zG7?{%A33l+hAJaAT26?3-4I@JM(X7N>NlH~^j6klAy8iKiH|rBI0~~Ys`d&;KF%44 zJf=-(fRmJJN~Kq!0zhfPvT3y$!obhzYF@C9RD4S1GI250*1Awxmf8BKZFR8b$C5$I z<7Q1de$7rZm!vBpm^;e9#W)(m!kxU`uf`hh`c47|6J7nUXG)3HXR2~gaXcJ)Do#tV zvP&!ruXwd+C2eCi32;o+`t$X!B&x?slq=c_${s`W>X(65?lgVlmWVv{=tah0yZ{jt zG_NdU2D51z5wld&(%Qrs^h~!Gc-AhRINbO=V<}Y*hTS9LvAK3vQsaMIIsw+bD%fhP z9Vblmj53m1JID`9TGGu?70Tdf{L)$B+*e>BMicI=J&e=%E33xRj@{Pj zGIhk-kj`aEbw9Va=?VPWZ6WThr<*f|AghI;?$@A+{LuXU1QaFkLRrWIE>Q`nw-)1FJ3|@S3ZP=}DB6^UgD79^ zhKyuUpB(NL+HBw0DDk}W!C&2FR_7H8-A^kk7nks+1nRjUY&Q1JsMI5CZMj6bJo^7^bf{O5CNeBpiOq=S}Y_^ z2dHq#&OfgkzBW<)f6N6R2WG_R(Dz~cAQsW^wj1mJUmkRl>+=Buf;WP`f)8i_zlOC* zzZ^Dqmp(Qe(DcbD$n21=f6WLTB4SIJ=f}{Vz+FSO^LNp#UtwCs_mu-|Y8;j~ryhO+ z^o>X)Ah|B0#vfgI`z(B5@4+^@IlA7+*m z&!I6*54#iX70M`wnMZJ1FEk00?>4wK0r8x5w=MV0(0hUmKR{CLBcNi!3XwlYz@Aoi zE{5kkXMJdK|2(W0DB>Q-veY~r7igl9qI87!fHLM~lCzM3=v?EDOfDULlbHi~~i zoUt$Tt$bJ800#}Dtbl#W5v}aD%%*2@M_=+mt<}1{5tDZJ$E2Jee|E$BMd)cR2HW!( zwWNWUcR(#{}1-fN+(ydp_cac6M;vO&<{^z6Ts!SjQ{gl6@zn)kDKI z!eVy`S1$hf{6@M23(Tf8sA*xqSPUm-F7bp~>KRz&R>+m!6>GZQOCcaw8tB-C7u#Ay zj}{In$f%UPXM%njnUhM151~G~4;gsbAu&G|n|n)l6h zCFt(z2p+x0U?~EKQdkbFWZ=6=ne8z^TC8CsB5WsMA3jL27!9J2ZekzPFZWCu#2Fax zj|_eaMk9_M4e%mM&$|dV-3%PNWs7~h#Wh+-c^H3OX3{w<0;UO0Y&jn6Yvn9yv<6aO zobaMhDsLV&d393VCG}^Lr|#NflY;Zs6zyhw*@o64w&8T#8j#SxNlpZSd;kZoOmS3r z)xGNuZisUD31P#J?#Xl5Fp)TXmeazTf|1-u?FwybqNq}_8XSIVu=Li&H#<~G{ zfq^1ZuFMb?6->7a#P*T%azMCFNa)VF1{D*YVBEnze3lcf)a6LClZ1n$O|6H9cW5RH ze&L&EM-bLBEc`(AD%0u(>)lN#Ev4fPp#deZn9nZyTgl=L#Oc|p!w&@>C! z=0)1{jG8Nt(D59gz4>y(%3Zd65SBO3PIPtIV>mUiUy6WwC)=v8#=ya+?-5yc2YL>y zT+!?%Z?i6UV@a^y@}19g z|A9$ovI~Vo7GQN+fJI&;96a*s5){AXvZ7(^+78NaeNheSs_&t+sE?Sg0Dpt^AC)DQ zFt@UG8H$)&d#nJtW;K&e*K7ncFJRnj!zBa$bP+cwbgt|7gpjA}xY7Q#dMpz8egrv# z)AAbaue@krD8Nxn+%uI*AjoNffN2{p)y`tpnBTk7(3pV>S?xZrgEzueX@K-HeRrTi zJIV<7nEQ~wQ6X2I$yDv#=$U-|wj?K@jlK`h#Wv1R&BN2sQx`#OG|*q?NCj(KV;3?> zDCn1b#!)KXY0E$(zXMP+D|+K*mgtA?kcyG(hP#KY+)dQt#z+ukAz0Ni+aRciWOQhy z9l*~k)?$d2hBC7E@V1Cn5aOu-(-vb{kq1gts{ipDm7^G6guID)&BB-)g#*_`*+_%- z-oTVX4s`hqkpz>EHb~he(h9%_di31#E7q4nHEg)Su;-C==xH|>*c#I$GBpT@g`4L` ztmoLQXpX2YZNuvu{v!5||LCXag82d{QOjly{3T!hz2xgQ-`~0ej-bdkv<`ueTx`Nj z>Yoj@)~ne7$RQgn9j0qD0J4>HX*c^x zJ(j-X0H=db?wTD+!=i`hp%8))cx>L-Dmix={PtceR`H`RV`r4MHy8`OW?!LRly7Qq~_x}{r~ z6;q=_N7dxFp=Uk;#GyxP1=#YU2i0|)sY5%iMS@nOB>Ao@x)QK5B8bS&RShg*c zH|*eYbTlJ;wg_rxFN;s{rk7PMfG2RnlGmhUQLaHzW1%J24dRRk><2D>EwQjL?lHIR z@S})#o=R(HvA~%1p$_-pvPO_h{#Gv!Tx+zWsE4gJE#a8F`7x@=iN$4PT1qef z47Mcif2!7r8S{aqc4~PxY8^S`_FNQ7IlEh*;0eTzkcA78*LbnSl*4TW>a+P;6Nki( zTNV`;_C#m6eY(iG6)WkAUMO(7A_T8C^_`ZI>zvx1jWgSkMn;-%136VeR*aqJ#cM<= z8U%GS7Q1b_8p~;j8e%J=jaD4WXM_mW7L6dZp`WWT;EnhI)Ctki_hx zgt1cv<5o)Ny{8-7N8DHwzpg!5dbE#nqk-w{s~6$ARN}Y6B}V|nWPznh>Qh77B6B%h zT$!ye!ur+isc$vyj3|WS1WzOX_LJt4+aAw-Xq04*s}~F#Z2Fh>CzmOmaP!41n#`qo z$}n-E(JXXaD6D2SCDA~;>CVpZQL~M$`SkS z{tmon!j_E1WbT-CR}*E(kUp1NQy9k+@ipF+ek7VpbX6C>aA41MAvFNlD!^75%5V2q zA*7LSCiTUuHwlK<7gz91fCdI_hS0O9Y+X>4x~4mPLYBE|C~>kH9^2A2ZtCsXt>GhY zd8dPNXSP%1KW3c7iZ?}9CVB0?2(+Y3DVCYH33^x)H35GI-!aM*FWCa^!ncF1s$5REMUq!& z=Ev^PrR#rph39p&Oxq~vMsi;=Z1L|A8K@C}qf`LwhuWTd;QJPAzWVDt=EcT9041-Hug(pEHOawVtpTQ=SnFTke7 zV#uNRPe8^m|5dW!+;Z!^>`g&vZ3bn1E<@CP@z35{z+l8L8%E+6@kS$=ofIqEqI3{) z7$4hwoc=!d0XYXgN4N*2RuAN66L*PvZzzd#>{U!Se;*~ClL`(ODBHG&`6;lbhjhJ* z=#-tmxnZH;{@DercigB%2Or{x8}1WGETcO&VJHq7Ase34CZb=1$uNwM^wF_UoDK2P z{o?g6+RqdAFC3+Y0*5=Y|2!b|qHYOj@3?2#1(1Y>aeX-|N(ggDP>O2j zmt`P;OW;Y>zUHhbCmY;s-GFfg-a00&@i>;Ahob)XSQ=3hQ=+y?+D3G`fWTATY`z^s z`Io@RTz@kqMoxVAou;pRRnkbUFfm2vgm}s3(b%#NYU-pNk0q0QNyx5rfvUNg5MG)b zxO@Kxn%{{j%ton$YkG#as8(bZr5OO%s8z9k*X7oqIqoADE zyota#(yk2+F5s7A`WVVg%?r>BFICQFy%qm!UJ+2^Q2xPN6lrk)5LfwbfzVzdcVKN^ za}V~8xtW02;WopufnjK@wQmbBS4(X6&3-dOQ5236qX@Mi5% ztn(irPaiCaekwz0vQD!Y5L4NU9^-)sJdnp?;~F2hY7R}ZUt;j~Re7VmTR2{=*u7Dh z`bs*}(6qqVDoM$xFc6|avi_@YcuFs6P61)nXAdFm zI(G(_tZI1;@?%x~Bv$S=r%x7PfO}dK&m&{+tAfbw>dl}C!#)cprRePFyR*3J$&C=C zwPUt)WdVWL5G_tGXxmz1{SLaB-16iJ6-R9x|5mvob1@;R__MEQJo1deI_sUt4WZJK ze&ep1?%Z4<0po_!SkGc)%3UI96MZ3k1Y-BKf{|rM z>@*B1O7IWG-fvR>FFoKQws~aBg(|@EC>;vR9lW%QlaBq&;86Z*jTQcPj(N@;dK|ri zk}iAM%4WPZU>u`BMSb4Tgv}h&Ys?;8bdhS%fg?>CTlf9*Vq7;{NCH>%UWcr@&eeYe zIlPY?eFTI&>tr}}gp9h$qd~X;5JksnlJuW;xOxU0i?!sNv0`uV(1*iThgNcWP}RoJ zf-?D293H*E$Bv%w!0Zl$ihE7|m}A=cz=Kg3`9;d3nldt6lanCKQ4bS_vA)|~LMB96#kHM!JhaG)YO-+ zgAnmtJ2Fot)|&akM@UTgg0EUp_@~akLCO^_$%H+Jw16N=K;0y?!E*f7_ClcE(g?sO zC{iz$ig+oQSu?y53oe}sXZ|ob?i<2Q&n*lFO!8U7Jf#Neb?N^saC0T$B%xN-9gei~ zX6rAy0`I#>NsjeMdL8XQKar^tT@WV$7*m}C=U+iM!#=gAc!PeIL?_rJpS4oVg#!J6 zgeA)MQg%R_c+NXi&LA6!<;a$~n!%vZhe%p>y|blCBC-kt8jz~5aY~$V9Ym*(R=)Nl zAU(k!fSP?S_VjOWSh*9_d~uBt|V3PV!$IEzPGNb`uz&4|Nn z$fMuLE_t$!jc9vqxw!GpRfORybW^$JB|>XT7b30}*T-W$&F4B^;CAxw$r_@xS2h@& zTID7IT^5|k??eaG;})weR@?{lo4V_5IiMFb;%vfd-vy#HZ~bkpD7gwwACFRq`L>l zv#J{&DE_#TtINn M@U?UZpB\"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/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.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=Internet internet-interface-list=Internet \ + 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 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 disabled=yes \ + 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 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 disabled=yes interface=WG network=10.8.0.1 +/ip cloud +set ddns-enabled=yes +/ip cloud advanced +set use-local-address=yes +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=clientid,clientid_duid interface=\ + "ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +/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.4.4,8.8.8.8 verify-doh-cert=yes +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +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 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.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" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" disabled=yes name=dns.comss.one \ + 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=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +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=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 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=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 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=64.233.164.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=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" disabled=yes 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 out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +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=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +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 disabled=yes 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-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN 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="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes 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" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ + src-address=10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + dst-port=443 fragment=no in-interface="ether1 - Unet" protocol=tcp \ + src-address=!10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ + to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru 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=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN 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 forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/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-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 package update +set ip-version=ipv4 mode=http +/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 certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" name="Cuad9-DOH IPv4" 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="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260602/20260602204002-Diff-Config.rsc b/MikroMaster/history/20260602/20260602204002-Diff-Config.rsc new file mode 100644 index 0000000..572c27a --- /dev/null +++ b/MikroMaster/history/20260602/20260602204002-Diff-Config.rsc @@ -0,0 +1,8 @@ +2423c2423 +< set detect-interface-list=Internet internet-interface-list=Internet \ +--- +> set detect-interface-list=WAN internet-interface-list=Internet \ +2514c2514 +< doh-max-server-connections=20 servers=8.8.4.4,8.8.8.8 verify-doh-cert=yes +--- +> doh-max-server-connections=20 servers=8.8.4.4 verify-doh-cert=yes -- 2.52.0