From 2d6c39d48029f97c3580ddf8c00f35adc8b05bd8 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 15 Jun 2026 20:00:53 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 15 20:00:53. --- .../20260615/20260615200002-Binary.backup | Bin 0 -> 273386 bytes .../20260615/20260615200002-Config.rsc | 3670 +++++++++++++++++ .../20260615/20260615200002-Diff-Config.rsc | 91 + 3 files changed, 3761 insertions(+) create mode 100644 MikroMaster/20260615/20260615200002-Binary.backup create mode 100644 MikroMaster/20260615/20260615200002-Config.rsc create mode 100644 MikroMaster/history/20260615/20260615200002-Diff-Config.rsc diff --git a/MikroMaster/20260615/20260615200002-Binary.backup b/MikroMaster/20260615/20260615200002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..912258cecc40e3569bd5a584b82f011f7f508b0d GIT binary patch literal 273386 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

oj626D;s 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 z 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I>_?e1~O^~qarAn-*lBp2yH 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

R20$ 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

S=AX-eS+p|Bt?VK&8LXq* zoMq{V2tN*X=xh=p%v4@9&nDA;T#^^vMK^OT6cxkG4pRVYuQ1u~wV9#OE~2rER}jH} zBg;c>{~)y|(g_A88FuiX=p{m1qQ7~BWf$Etb!M*BUdU6=@a==-wrLD7xebN?v=({D?P<7k3lX2%RD>Yq5hDhethMKP)8})TS9@6 z|7$DobQo7&5K+{UZrq%9Ks3=Djo*ottl%4=OXNoJx7UhWa1g36&^z|9ycQzwOxT1> z3)80WhMZP$iQzu?p7)#{`%H#{i2DEO1$hb7nL2QQ1c~5KOJ&u)xlI~K#I*SRG^=wE zXR*qPy`Q#%e&>uobR1gP`ks68o3&m;gPe5ko=Nb4DSs?F^wkseD9eR-`d5tH+DP8)H>Zya;P_-I=&R9OV>|D-?1IHyvadnAqh5lL%{(n z%fDsTP7NzuJ=7!YSVT`3r3`aC?nsTzx~Ur?9o!4u~hB7RFNWEwT< zdn6()uRzpkU`+6Sz~bI@11*_xFCbfw9$D&>GcZ>CG2$Q>-fe_(gH^C@vM6X}fFIk6 z`{AogYFphMk}v8=hqwN6caUJZ$8?qIDmBpc5WRWdATrO>zx%wu0*Xb;*v*SUM;H#`tUj zfAj$VKLEfxOp#6f42I&(RQPw@`yl!1p*0H&baHF+;Mi zHVIFbEKa(V7@X4+t3b*{{a;0m(-MG%p2LAF0L+9ZfdC;=4zV1F;TeB6LQY2eqG^NgWCxlpgJH1BP*i#F4Q>8KQf$Yp^L)g%TAsS);H> zafyfqHO*tfUc~t74?FfV=bqq0fWj&3xL_FPpD#WN=pN-re-z54J{6W^UUy&?a%K~TGgQZ9WPmxPY#mmVQP z9NkYe5NK6GFeJ~#vD2Zi*|)Lhyz>D$?E>G@YLs>qauy{EO|w-bBR0)gytOFr=@-4> zT3nEUTo`REg1u9kCw~F)Z_Gn`B!{;v8i&w?Qw!O%J+QIa&iq4(^%vOF7uzJf92&~9 zl13kP05#jqCr31CyT(s6INsOUzi%DrbRI?B=+J<9gLB{yQnl1l=R$`szdT|kEj{{) z-n4Qk)#`{#h7aH`LQRPt3x5n#%uUqiS&$ROKb<>y_MQ@1OkC0*PquardG)0&fuDG6 zKd!>Fxc_x|AL#>{E8@EjERjJc9d`^Mv`_FF38*HRNSI=ph)!cl-~La`p{{HKA-Dc9 zaTcj9maZkoD2Rsm>q?1>enoG ze)O94#@FZRcqEuZ|}5<3U2t*FX%_&a^M% zP}1;428W0)J#tD^4mn?qsg!giY5(+3@kC0^X&ZeL@Q87;U_0pZg|tW`ctEn_jxw^# z*VNn-t^3B`&}>Tl`KyHgs0y|L9RI7M+-3bs@eBC-zlh7ZDE=9>rEUe|a2Cb+O;OEb zeI*M{YB*5LUvR^Jy6B{J#@0RV3NF3z3FY+nqp})#?rT`PDlTEaDVptW8hHNVFpNt@ z4RJMF@=Dv@%q@FUqbsj*DF$!Rl_u;NMOSt<0S}K%eA* z0qH6)Zrjm2noh^pII_tVsMstv3J%k?9%_ThiM*;}!27zSY8y$F%2WPtXAupL%yGk= z;%9!d>KZ)o4y)U^7li6$9n-Z5f9j6eu)98C?p)f0XIWsu>5R3o!!sr&S*JJHpL~n% z+-%PpmB&YTAS(W?ahHQ%d$Z~O^VmT|CM9>3$_B7pGs3lVXBp+=RR%R%h5WNimih#v z`v`z7s!XrA`id7$%h`F(OpAA>@U{z*BMe<(^U^KOl(QX}H!zj~5I#2}h8-+s$WNEH z6SsIM2_JBUT2!jM%AIE6D&ANd*f9L!u|{#0rew`dP8TuBH=+y27dBbF6by^-IM2ns`NOmh4tN9irh`rF_PXdC>!rryYMD^W$-~?TX z5MxxWTpUoP07MUzqU*xr4a};#3dwUtH<)Fi?L0+xcdcVB@OVZ9goyPk# zlR)9X*c2&T&p%w9LXjGayk7hGuB9oG=|^FqU6P!($4(qf9Hzu!U1peM6Q(MR(rD(i zp8(ejF<)kw0+oyLHn7B2i(?ve_O=0EJuo&jIv}Uc3^o?f%S*F~nQ~`NdVGx&k%!`v zx7eXMFuPeVQ%>$wqe%%|QU0Ew$m%0+v8IHGm@s%40$pHrg^af;h#+V)%My|IPWdeCOp^l=672$RQ-j0ymSmYxmoT4gQH=iRqA_V* zb3e+QI$x1*4xdNkbF%*k2W@WOx}mymCL739#U`0G=Y>kFRySkY~UR#f77kOA?26N8Ixc1$je0t$5;TnFcuI2 z;@_(F3B%T0p;7CZ2P9HH3P6clb}%L%@arJdM<4cg#bXV$*MaoXf#RLqfg83HN$yoV zbHco-wKS$|L8lvh0uR&wT8SpLtoL+4lM(k{a$svcluKxp8!BHDor^mhFv`PpjjGcL zoZBAh?_uX>!ru{OtxyY$c2nu;7OZJ~2AAg@e8sPJDY%2QF>QcGjd7A93yG~=uxd2i z_5?pOJMf-Kg5twAz)T7&W37BeCn5c@z;jqYd_t330DWgh|1}B_RN6dxs|!Q(5vb+* z1Jq_?QG@|8tV>94bZm4+<>TW_5KqACma&-rDP|e`^00kg;UH(u3ac{arUGtA8Pu_mwd^A|o{F*eUFzKI%0?Oi}~Js5!rTbQ(o^LVFKSnbz*I{jofO$}!v0tmf!taS(!u&0s(n^U zS~#)ssF0LpCOLJ=P}J58>!I4R^8OQ$ChADyp~z$)gA`sfkOrYem}4>&R}{Q70%wO- z>>`Z>_~Hi}-EyF0!2hadp)bvjZ*4~yp978}=?!5v4-fP+6K00PiVS|MmuT9MjmhYY zunAdzD@Me@vHCcv6*=~g)TFD6J@|=wYb`zy47=0BZ zJxHhY8chs`g`6<@oBSzuPXPu7QCb_K-U#QC-aGPB7rK%N|4Z)_>!PEQM??Q6jQRk~ zB<(=Jqcuq#|K7q=cw*qk_2ps*&m<-mySG*$1HXJ2A?A;gIXc>gNA zy>nU;ZltqH5nGOs`(SBl=Zq;$@t_<)QgdZ0w#HoM_t-kY&&6lwGYkI?X^T01D@M7} z7mZ;bETXP=?|h;ecZ(H}7ATSt7(z)!4E53{asQ_<{>Wga1Y} zq3)k1>zFZ@+`%8P~ds|p2V2ORY2?wFf-LKNYnktP7`qC zI9gKSXc`@tX6-p#HMj(G`zW5x29gLpjmN66C(HP&Pj zu z`t^9i+iV{D1~oTrM;7AyH9IwpI%wfcEzMmh0|k(x>5=5OZPGQ7Dg8oV&REVeGx@u} z#CW4^VyXZH$O_g*+i_+7#E?)$i6EbLv&T>`(w6MS(Dw`azuFAa`65d5qD>*b@@Ydl zIEt&_`T0H_x`Qg5*OhPa`OPl9&0*(GC|&Z%CG@e=ePp_^nzxCC(!Yxu4xM(wSQkMU zH$z~U=8?FRjR*Yw2CJTfuIObt_mYfAPNyWMGKg^l739%AJyE@l!i! z>+702!1E0Jim_n`7Qpxtq{Wt#xCIR4?GV9MdY%$mMfqkcph(HY_7orsCw`Z-iaQ(g zbo$ai9J`yR#2}(aN+W9Pen$Pq(?;B0y2S|T*p)gAv5^HixZMwXh9C7L+kKQW456>rAxw-+2~HW_Jh{8a&uoHd@V+~@&gx=U~Kjl7T(}K?kxRJ zv7(Y8F*DH}b%3xJT32mAJ2r$ANFszRi^YLH>fS7;#oG)C0AIJzjOk3=bV~;K&lu8h zsh1EH?~2SJ3si0%Mhx#IY82z+P?BK)IZSKh)Zz`pFgWkQgndyW#%}&Qp=<^E3ap$Q z3mBGwe{Sa3h~h^NO`A>*ZUJe(o0FKbkc^m07D&J&D~};B0mduo3qzNGeMdns%R!z7 z6vnK-1L6t#gjMm##UO2rE`Aai#9{kR@nQ$|g_$#s5W;IvB>ezVpE#A=PW+n+u( z^HvA$U+Qb#z)8D(#DY5^D2JrL45D6)uX*fR(fIF-Yz)(wyF-9@r#rrkWrg@IU5^q~ zHF(m*dfxv+Aw}EA4QoZ7Cm*2XxhXLKyMb#qzs8SBDHYWe^nuN)rx(dMlXgN}*XV4l z`A|FZF$BGMI$4OoKeT`9*qhtNyE@RyJ@y#7o?TO7DpIq}wN!L(xHT(^7vQ_8J}$4k zdySe6%NCxnRiL8I<`M;&PGtg^k;BHo_&U`JW8V-RsI(Kb8C&~;Jp=#2CG%Aa_@SC( zs-+)pU9nlev3tk9*bdqWbZJsty-fr5pH>0ABFj+(acSRgLYw|+x52g%%*|>o z(U=Ko6=LB^?2ewKy?tP5LgQQ5EnR4hXHgFOECQXyTNNV$5BF9^mv+*b%heJj{(jvM zy$s0t8XAQW?nb1fcvbwZf9}nmRo#!RVq4<~ZCh`?`bb;w@v-}HuiqxLjj%t6xZf8D z`-N4jvp#VoYa_!uCYB@o_TUGB!KiLWL&$WGw5z1I;S+g?RDNlp9d_7U8veQz$Ga8UnsSN2K^YoZaDm2sQarwv_TOWcWKGfCuy2oei@XUt$gyd)8?WhEb>y< zE;Dy?VFP`-R)r6~p-EB@OHM!sv=B$r*a^$(r&2_WVJVp+CxGz=P@NsCL4!yoBQ=J7yw|k<4(45dwRtk#xUZLiNK2AN(Qg|7w_X{CtL5Ts$3IK&I`ALTk1sY%&r;z z{y0JVGocfC!TD9ZZfcZ-9`~(rJK!dI>$CKv*(T$_GQ9^uKE7B>6gOA8-(AEq4B-eI z_{klpOQ~GYUw&(##@!RB zs%gs8k(d|ZLKhPyfR1V*)^uvP_Sy4THTe7aSb490 z44)R5M{v(2poYRRksCl6s{re0WO$>FjD$2@hG%Xs;o@2cl~gr=Kr1#pol5ay7#}pc z9xm4omi~n~Y#Wvx;c#zQAkGG~FB%)!I5z^;+52avH9=FIZH30q1OSC|GLJ5;<(!9j zNoZZsPt{5_FAu6NufWipUil4j25sGk*zerHT2D!a>ckMcc-$FtUdh044Dfn0C9`i? zgGLQV2pL|_7xV`%GP}8_Q80ONGqDpzuQ~AW3azb!`L?J8JgjnZR>JX9So0|uM`Nff zF#BCH0d5M%2lI||PVe_0i8{kN&MIGXm3fD{b^o+??U5BEjjDm zu_bv+1szVxzUPe(pT?jzeIG=qHHhN+3J?z9X&oaYIc}1N#!!>vbA~6H6KQZ!FrQ@C#^n77p%R{1Kx$CejkzY*t}YoV^$|sckDA63 zFS97j>tP#xv-O2b0wc!PdZmp@+2YSvh4qF|B#zVkC4ePXwiiYPeCJXECbF+cyt|C= zupncY_J?`;trvxqf}xYI@^HyN&MEq?1r zr5zysIiW&bsF|Uz7if&oJo@-~TL++wdtm}s{`?PgzXfuX=T?|Wyq|Boubm7v>5UcS z%h|Q($TtC<`-DXDQ(~V8@XL9nw!0Wa0j+s1QVS`aFW-r%KQwREfIZ3m41nH4v_eTN z*o=?}ui4B2o^YL;-6`XpmSYn%hoTCt$UgYFEBmf!l@}hr7Jtj~=YHF(t4LC1A|GEp zy_Jrlb`lawr^oO4Maa8fM>_D7AXV~T^rHk$GkeTMKSM>xH`>eyWU8t~|5PssDnA_9 zdYF1Zyhm;mstF+gM8NNMfSIXk1|@Yi@$oa}RPJ@V+V=1+eo~1x5k?!0UQ~jrRu_#+ zJ79UkAP)q2l5u;!O^nL9tsJ3VtxRmH)p`YP<0I=QYZeTw_KmrCooxh7f(}3{l7-w! zZp0z6beeX<;vIY@7(OIj1OGy0#r}4V+l}dzv9s5yBN?!J07g^91ZLMyvzi-VLEzJ} z=nX0>nT;b4M!rVE%$Be}+3oh_#ueOx5+5{+CW*zU3N7?;%Z+rHOlZ(Fd>ak;D8^I3 zUo`XioSq_)S)WSj1S)DMU_BHzH`2%X_4`LE;`BsBZx14g^0!8$`WH4`UFg4WbnH3M zNq=7!+?M)9%NUZ7^{r6zq=aR1OKmhi#H)3gC3s`p3!91p9nV$&pOeJX+S_2yL(e4S zeB`-^r$zoooMHq}0~GUk1~wKZY8Gv{LLxUC;X$rvDQ?h`$UnfvR=WJSny;lUB8?0k zXV{tUULpc;3(>iqN7smK2PYbzQlxmvhs@k9Og^ps!dnlrx!DOJ-CI1nQ>~BSUC^L^ z5J^wu*=!~Ws}fw>T+#T7SabRZX|_zK%teE?T)!u+S|FiP89gQsoJ88R>h2pk4KMY7 zbT6flxiLbHjusoE>H3E=`%p8Ckx?D!xNvDt@>ZN`efrCMrcXi-sI%ZORHTw1h~$3s zk}s+N7|@Ej8L2}RzezG3N(J%I+AvF*|ECK`viJ8*QPN*rfV4PI=K+@=<+UMKmt zCO!ot546+lvgd8s>%C;LW!xaepmb8gjiu-(;X9b6ZBek)(Yg?DWRLU176qjj%lU=i z$3@m+wuQGRYH*{yM zHZbtF?&X!(ta6!}`Pp%JZv;Wmh7MyS@6q7mNnJc?77xDt1K)*ALQ&f$QF6?4UByRHAh7&jUtLFu z>813tU;j>0dIWH+;$KFHJ90dVlz8@=WKcy~zQ61SHi^W-FqK&>LiSjo#2gD@FUZ~K zt79IKbvzq(H{#dSSzaf$le`D}BWUx&yTS77<$_4stvzm5UFTn%Ba_-;+n;^Cm|1_# zcz6CbFqHuB2g?=37M7uTHkUzD3!zap*y0!rf3BmF6LwSHzbsz^r&e)%=z&Dq-A`Fd ztWeF2wF&G069=qSuM8eRge2xC%iAYiI3X}#8~V{8EK|i8+F@{n8wOjOQ3EOn522=T zppm8V+t9L0*7`5tMSpdw63?A71-#tNK6jP10BQjs&}GJxENL>7#ctF zmDsDmzX@Za&nULuoPBg1{8EW}LDC{H7w_!r_Gz`o2p4 zdWIYn<9OzH&wA~D1-0#{#WkK_93b4rc@Kzwp?Xz^}>5@B0uVus(eWbP&K^>RZ zetaw(vPUuB76B+SOt*Tflt#5%Lo6dml+oz-tkjsAY%noRh|5g{q)x?~+9N2Dz^!Sh zd}I#80TpcY1Mh!Yk?{jwZY)_;8*Hcb&s<>D%TKkfNM5*Eb$!aMbS)LbJ*`<6PZcRb zQZs6z(*;T}KNYYiBzR8j+JqXb3CcgGkQ-w#0w=&RHNiO4!T8FqDtdiE{t6W_8DUY* zV}E7c2^l9332;SzH2CCXn5SYrwNKH%y{OsAeP${AK0%pfkxQwA=XW*~Ip?*3`0rLo z@Z|w@60ziq8*-=i_*0t1)pG*}%&kY3uZHAWYNa(<3;p_A<%*9-48|Y3?B)f#~vW#)b zw&Ob}Za5;+f5fe0i$ICmbpcmxipLCR;Qxz*H=SR$eiYVQ1q*8>NS6aI3+kBm8Ovbd zlVcd;@H)yJ`gaiC@8%6+jHbxvjGCN*!K#|A5*8I{0uqSGV8Je@hUl9!w( zPIJ}P*9fi^L-_SaPdb=pPeW|pN_g`eGk6p)r`M9B-hnycUZWts!dW@U&b9A&>WB`m zvbZwSt}zl=3`a$wzR=+o);2{=JJca0MJienk}ccUv?%xLejw3kq*Ml2?Kc-W*UO7OhwsmHhcblKMggdrY=1%LS^Gfw-uqcJ8Ae5tt#U+VT&$yyJI`-)m)5;O7FSo%J7(=R9R z_eJ}l%Uv>)3f968+>iAQlj_wXl-Ir0&PO1>{)}Y z$pz+g7S5}@Rf|Nn*U+FbY>2-mqvco9xG0!w8?{xtd^BZvBO?Qhy575n; z%ll@FA((Vkyn)H88030f0kkKtKq~m9kdqXRE#Mo≦?IDUZ$>_pz*dYlGX6;Gg9% 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�m~m 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\"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/692/cf80d9c2\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 05:40:03 15.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" +add dont-require-permissions=no name=IPv6-Settings owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + #############Script Settings##################\ + \n\ + \n:local \"IF-TUN\" \"6to4-tun\"\ + \n:local \"IF-LOC\" \"Bridge-LAN\"\ + \n:local \"POOL-6TO4\" \"poolV6-local\"\ + \n:local \"force-update\" false\ + \n############ use then static ip #######################\ + \n:local \"lease-address\" [/ip address get [find interface=\$\"IF-LOC\"] \ + address]\ + \n#:local \"interface\" \"ext\"\ + \n:local bound 0\ + \n\ + \n###############################################\ + \n\ + \n:local 6to4prefix do={\ + \n :global dec2hex\ + \n :local ipv4 \$1\ + \n :local ipv6 \"2002:\"\ + \n :for i from=0 to=2 step=1 do={ \ + \n :if ( \$i = 2) do={\ + \n :set ipv6 (\$ipv6.\":\")\ + \n }\ + \n :local fp [:find \$ipv4 \".\"]\ + \n :if ( \$fp > 0 ) do={\ + \n :set ipv6 (\$ipv6.[\$dec2hex [:pick \$ipv4 0 \$fp]])\ + \n :set ipv4 [:pick \$ipv4 (\$fp + 1 ) [:len \$ipv4]]\ + \n }\ + \n }\ + \n :return (\$ipv6.[\$dec2hex \$ipv4])\ + \n}\ + \n:local \"str_replace\" do={\ + \n :local \"str-pos\" [:find \$1 \$2]\ + \n :local \"str-len\" [:len \$2]\ + \n :local str \"\"\ + \n :local rest \$1\ + \n :while (\$\"str-pos\" >= 0) do={\ + \n :local t [:pick \$rest 0 \$\"str-pos\"]\ + \n :if ( \$4 > 0 ) do={\ + \n :for i from=1 to=(\$4 - [:len \$t]) step=1 do={\ + \n :set str (\$str.\$5)\ + \n }\ + \n }\ + \n :set str (\$str.\$t.\$3)\ + \n :set rest [:pick \$rest (\$\"str-pos\"+\$\"str-len\") [:len \$re\ + st]]\ + \n :set \"str-pos\" [:find \$rest \$2]\ + \n }\ + \n :return (\$str.\$rest)\ + \n}\ + \n\ + \n:if (\$bound=1) do={\ + \n :local t [:find \$\"lease-address\" \"/\"]\ + \n\ + \n :if ( \$t >= 0 ) do={\ + \n :set \"lease-address\" [:pick \$\"lease-address\" 0 \$t]\ + \n }\ + \n\ + \n :if ( [/interface 6to4 print count-only where name=\$\"IF-TUN\"] = 0\ + ) do={\ + \n /interface 6to4 add !keepalive local-address=\$\"lease-address\"\ + \_mtu=1280 name=\$\"IF-TUN\" remote-address=10.30.30.0\ + \n :set \"force-update\" true\ + \n }\ + \n\ + \n :local \"IPv4-TUN\" [/interface 6to4 get [find name=\$\"IF-TUN\"] lo\ + cal-address];\ + \n\ + \n :if ( \$\"lease-address\" != \$\"IPv4-TUN\" || \$\"force-update\" = \ + true) do={\ + \n /interface 6to4 set [find name=\$\"IF-TUN\"] local-address=\$\"l\ + ease-address\"\ + \n /ipv6 address remove [find interface=\$\"IF-TUN\"]\ + \n /ipv6 address remove [find interface=\$\"IF-LOC\"]\ + \n /ipv6 route remove [find gateway ~ \$\"IF-TUN\" and dst-address=\ + \"::/0\"]\ + \n :local \"pool-prefix\" [\$6to4prefix \$\"lease-address\"]\ + \n :if ( [/ipv6 pool print count-only where name=\$\"POOL-6TO4\"] =\ + \_0) do={ \ + \n /ipv6 pool add name=\$\"POOL-6TO4\" prefix=(\$\"pool-prefix\ + \".\":1::/64\") prefix-length=64\ + \n } else={\ + \n /ipv6 pool set [/ipv6 pool find where name=\$\"POOL-6TO4\"] \ + prefix=(\$\"pool-prefix\".\":1::/64\")\ + \n }\ + \n /ipv6 address add address=(\$\"pool-prefix\".\"::\".[\$MAC2EUI64\ + \_[/interface get [find name=\$\"interface\"] mac-address]].\"/3\") interf\ + ace=\$\"IF-TUN\" advertise=no\ + \n /ipv6 address add eui-64=yes from-pool=\$\"POOL-6TO4\" interface\ + =\$\"IF-LOC\" advertise=yes\ + \n /ipv6 route add dst-address=::/0 gateway=(\"::10.30.30.81%\".\$\ + \"IF-TUN\")\ + \n :local t [/ipv6 address get [find interface=\$\"IF-LOC\"] addres\ + s]\ + \n :set t [:pick \$t 0 [:find \$t \"/\"]]\ + \n :if ( [/ipv6 dhcp-server option print count-only where name=DNS]\ + \_= 0) do={\ + \n /ipv6 dhcp-server option add code=23 name=DNS value=(\"0x\".\ + [\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n } else={\ + \n /ipv6 dhcp-server option set [/ipv6 dhcp-server option find \ + where name=DNS] value=(\"0x\".[\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n }\ + \n :if ( [/ipv6 dhcp-server print count-only where interface=\$\"IF\ + -LOC\"] = 0) do={\ + \n /ipv6 dhcp-server add address-pool=\$\"POOL-6TO4\" dhcp-opti\ + on=DNS interface=\$\"IF-LOC\" lease-time=1d name=\$\"IF-LOC\"\ + \n }\ + \n :if ( [ipv6 nd print count-only where interface=\$\"IF-LOC\"] = \ + 0) do={\ + \n /ipv6 nd add advertise-dns=no interface=\$\"IF-LOC\" other-c\ + onfiguration=yes\ + \n }\ + \n }\ + \n}" +add dont-require-permissions=no name=IPv6-GlobalFunc owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global MAC2EUI64 do={\ + \n :local EUI64 \"\"\ + \n :local MAC \$1\ + \n :local HEX2DEC \"0123456789ABCDEF\"\ + \n :for i from=0 to=5 step=1 do={\ + \n :if ( \$i = 0 ) do={\ + \n :set EUI64 [:pick \$MAC 0]\ + \n :set EUI64 (\$EUI64.[:tostr [:pick \$\"HEX2DEC\" ([:find \$\ + \"HEX2DEC\" [:pick \$MAC 1]] ^ 2)]])\ + \n }\ + \n :if ( \$i = 1 || \$i = 3) do={\ + \n :set EUI64 (\$EUI64.\":\")\ + \n }\ + \n :if ( \$i = 2 ) do={\ + \n :set EUI64 (\$EUI64.\"FF:FE\")\ + \n }\ + \n :if ( [:find \$MAC \":\"] = 2 ) do={\ + \n :set MAC [:pick \$MAC 3 [:len \$MAC]]\ + \n :set EUI64 (\$EUI64.[:pick \$MAC 0 2])\ + \n }\ + \n }\ + \n :return (\$EUI64)\ + \n}\ + \n\ + \n:global dec2hex do={\ + \n :local hex \"\"\ + \n :local dec [:tonum \$1]\ + \n :for i from=0 to=4 step=4 do={\ + \n :set hex ([:pick \"0123456789ABCDEF\" ((\$dec>>\$i)&0xf) (((\$de\ + c>>\$i)&0xf)+1)].\$hex)\ + \n }\ + \n :return ([:tostr \$hex])\ + \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" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 +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 +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set disable-ipv6=yes disable-link-local-address=yes forward=no \ + max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=all internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=Internet +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=WG list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 109.107.177.79 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=10s public-key=\ + "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-broadcast=never 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.8.8,8.8.4.4 +/ip dns static +add comment="Local DNS server for vados.ru" disabled=yes ns=10.30.30.81 \ + regexp=*.vados.ru type=NS +add comment="*.vados.ru Regexp" disabled=yes forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" disabled=yes forward-to=\ + 10.30.30.81 regexp="\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=\ + FWD +add address=10.30.30.81 comment=NS.vados.ru.local disabled=yes name=\ + ns.vados.ru.local type=A +add comment="DNS ns.vados.ru.local" disabled=yes match-subdomain=yes name=\ + vados.ru ns=ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +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 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 disabled=yes 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=wg.vados.ru comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" disabled=yes 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=amster 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=10.30.30.30 comment=miller disabled=yes list=NoWG +add address=10.30.30.33 comment="Direct connet to DNS servers" list=\ + Direct-DNS +add address=wg.vados.ru list=VPN-Server +/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="ether1 - Unet" 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="ether1 - Unet" 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 \ + in-interface="ether1 - Unet" 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="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-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=accept chain=input disabled=yes dst-port=29185 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=input disabled=yes dst-port=29185 in-interface=\ + "ether1 - Unet" protocol=udp +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + dst-port=53 in-interface=Bridge-LAN protocol=tcp src-address=\ + 10.30.30.0/24 +add action=accept chain=input comment="udp Accept input DNS queries" \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address=\ + 10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" dst-address-list=\ + VPN-Server out-interface="ether1 - Unet" protocol=udp src-port=13231 +add action=accept chain=output dst-address-list=VPN-Server dst-port=29185 \ + out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +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 in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=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 +add action=accept chain=input protocol=icmp src-address-list=VDSina +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related in-interface-list=\ + Internet +add action=drop chain=input in-interface=!Bridge-LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VPN-Server 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" \ + dst-address=!10.30.30.0/24 dst-address-list=!NoVdsina new-routing-mark=\ + To-VPN routing-mark=!main src-address=10.30.30.0/24 src-address-list=\ + !NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack routing-mark=To-VPN +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" 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="udp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=udp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=tcp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=dst-nat chain=dstnat disabled=yes dst-port=44333 in-interface=\ + "ether1 - Unet" protocol=udp src-address=!10.30.30.0/24 to-addresses=\ + 10.30.30.33 to-ports=44333 +add action=masquerade chain=srcnat comment="Default NAT" dst-address=\ + !10.30.30.0/24 out-interface="ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps 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" disabled=yes \ + 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 disabled=yes 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" 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 comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=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 src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG routing-mark=To-VPN src-address-list=!NoWG +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=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=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=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 check-gateway=none disabled=no 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 disabled=yes interface=*F rapid-commit=no request=\ + info use-interface-duid=yes validate-server-duid=no +/ipv6 dhcp-server option sets +add name=domain-search-set options=domain-search-list +add name="=\"Client ID\"" options=HostName +/ipv6 firewall address-list +add address=::/128 comment="defconf: unspecified address" list=bad_ipv6 +add address=::1/128 comment="defconf: lo" list=bad_ipv6 +add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6 +add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6 +add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6 +add address=100::/64 comment="defconf: discard only " list=bad_ipv6 +add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6 +add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6 +add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6 +/ipv6 firewall filter +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 ICMPv6" protocol=\ + icmpv6 +add action=accept chain=input comment="defconf: accept UDP traceroute" \ + dst-port=33434-33534 protocol=udp +add action=accept chain=input comment=\ + "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\ + udp src-address=fe80::/10 +add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \ + protocol=udp +add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=input comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=input comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +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 packets with bad src ipv6" src-address-list=bad_ipv6 +add action=drop chain=forward comment=\ + "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6 +add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \ + hop-limit=equal:1 protocol=icmpv6 +add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\ + icmpv6 +add action=accept chain=forward comment="defconf: accept HIP" protocol=139 +add action=accept chain=forward comment="defconf: accept IKE" dst-port=\ + 500,4500 protocol=udp +add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\ + ipsec-ah +add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\ + ipsec-esp +add action=accept chain=forward comment=\ + "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +add action=drop chain=forward comment=\ + "defconf: drop everything else not coming from LAN" in-interface-list=\ + !LAN +/ipv6 nd +set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes pref64=::/64 +/ipv6 nd prefix +add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +/ipv6 nd prefix default +set dhcp6-pd-preferred=yes +/ipv6 nd proxy +add disabled=yes interface=lo +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/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 check-certificate=yes-without-crl +/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 certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get 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="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns 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-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get 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/20260615/20260615200002-Diff-Config.rsc b/MikroMaster/history/20260615/20260615200002-Diff-Config.rsc new file mode 100644 index 0000000..8694297 --- /dev/null +++ b/MikroMaster/history/20260615/20260615200002-Diff-Config.rsc @@ -0,0 +1,91 @@ +2576d2575 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2579d2577 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2582d2579 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2585d2581 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +2589,2590c2585 +< # ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +< set disable-ipv6=yes disable-link-local-address=yes forward=no \ +--- +> set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ +2618,2620c2613,2614 +< default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ +< interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=\ +< no use-peer-ntp=no +--- +> dhcp-options=clientid,clientid_duid interface="ether1 - Unet" name=\ +> client1 use-peer-dns=no use-peer-ntp=no +3325c3319 +< add action=accept chain=input protocol=icmp src-address-list=VDSina +--- +> add action=accept chain=input disabled=yes protocol=icmp +3327,3329c3321,3322 +< add action=accept chain=input connection-state=related in-interface-list=\ +< Internet +< add action=drop chain=input in-interface=!Bridge-LAN +--- +> add action=accept chain=input connection-state=related +> add action=drop chain=input disabled=yes in-interface-list=!LAN +3523,3581d3515 +< /ipv6 firewall address-list +< add address=::/128 comment="defconf: unspecified address" list=bad_ipv6 +< add address=::1/128 comment="defconf: lo" list=bad_ipv6 +< add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6 +< add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6 +< add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6 +< add address=100::/64 comment="defconf: discard only " list=bad_ipv6 +< add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6 +< add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6 +< add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6 +< /ipv6 firewall filter +< 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 ICMPv6" protocol=\ +< icmpv6 +< add action=accept chain=input comment="defconf: accept UDP traceroute" \ +< dst-port=33434-33534 protocol=udp +< add action=accept chain=input comment=\ +< "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\ +< udp src-address=fe80::/10 +< add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \ +< protocol=udp +< add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\ +< ipsec-ah +< add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\ +< ipsec-esp +< add action=accept chain=input comment=\ +< "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +< add action=drop chain=input comment=\ +< "defconf: drop everything else not coming from LAN" in-interface-list=\ +< !LAN +< 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 packets with bad src ipv6" src-address-list=bad_ipv6 +< add action=drop chain=forward comment=\ +< "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6 +< add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \ +< hop-limit=equal:1 protocol=icmpv6 +< add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\ +< icmpv6 +< add action=accept chain=forward comment="defconf: accept HIP" protocol=139 +< add action=accept chain=forward comment="defconf: accept IKE" dst-port=\ +< 500,4500 protocol=udp +< add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\ +< ipsec-ah +< add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\ +< ipsec-esp +< add action=accept chain=forward comment=\ +< "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec +< add action=drop chain=forward comment=\ +< "defconf: drop everything else not coming from LAN" in-interface-list=\ +< !LAN -- 2.52.0