From 51d66631031c49b6fbc4e465b886f1531a2d5fb8 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 11 May 2026 21:40:18 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 11 21:40:18. --- .../20260511/20260511214002-Binary.backup | Bin 0 -> 302647 bytes .../20260511/20260511214002-Config.rsc | 4653 +++++++++++++++++ .../20260511/20260511214002-Diff-Config.rsc | 4 + 3 files changed, 4657 insertions(+) create mode 100644 MikroMaster/20260511/20260511214002-Binary.backup create mode 100644 MikroMaster/20260511/20260511214002-Config.rsc create mode 100644 MikroMaster/history/20260511/20260511214002-Diff-Config.rsc diff --git a/MikroMaster/20260511/20260511214002-Binary.backup b/MikroMaster/20260511/20260511214002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..82c570e2a64c4e312041c3768b39bbc519af2097 GIT binary patch literal 302647 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

jxh7{vcOi;K)?{G^KPd=z~u5ti$^31Eg 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

y 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 tHbE&`Spi34 z+vuo5tGCXdpYGH2hoosB%!@J=Yih^JMj(QXbXF@BUd4P;{}%Sg+dWk+6Ro%9r7jj5 zxRM5o^a3~(9sYKY0n}IwM8}yR97Zj>@I1(W4rhikuWSi0A%tHrUvj$~pmE}%rR7pZ zetk2DaW*ubia_13|1^R;xV<^sbKtytGNarP!aBFZ-9b14mD#5ItzlM4$21O;?Z;x? zcqmll(lGnq(Ox0;LD)(m;7RJ{w+H9a8oZu5*rhf|%FU?gGolb&76k*nXt=EM+Qx?I z*N_id%uwd7l9s-+~BxtK2zI|Vun}L4FiDWB_pf*uC`m3)w z0My)=VLFtC_}#`}Te|L$9J?^!JsHGHja+RSh%ClYpjDP;0EfKH$oATaYck*(cIn*VdBacNNWoA<1-2}aT72frp67r1NQ{e6hm4A^% zm?AwcAf%$m7H*1qkf-~6{o$ZHsxGV6RLB21|7ekO0^(e&q=_4vIR|DUCyQ{BKCa}} zafkCXTrv3@*#UyW4`ed)DA@7R1v2ps!E?el;hQTdcsGWLNG&Zfgm(t{g4RcT)bPN% z{)pR--M`SnH7B|4xP2BoNWkSCnZ^$hZ+?KgTl$B2=WWg`;Ds+wV07|^cf~nBp%1VauE)T!n%YDS@&*saLyEs2TsMOxaHg>zr?gb z_sk^_5ArK5{J@54V9J$4&?B2v<6eA|%VlJK=P{+~E4diIi#*7{)y#k9va`3IO+U7BR5HC`Aelrow6j#9p+y!20yUQ!i8$BMtGlx$N-~b@V^J{3(NMN{{YOe ziC=MMj$9K6pV?kaq@pe!iI!MUv=*sQfN_uFJ15YsaO$M%(6(Yl9E3kTK9eW%6@0D4 zv34bMVyLS)DxTSY4Rf9hF#6qo-gJ?_saTxy9U%0Ju!x@cwL%D==yKh^V6bf{X>AkH zcH|b>V z$uoT`>q0{`^Cu4`jLfjq7g~1{(5i3%7;h|799k~f^x>?03mLq~-7G8gX$Nij2Mr10 zcHQ@LcHO_dY6QiJe4)Zn&E8|3QShk<6x5tP%o=ByYG+F#oU6@m01k}V-j#s1e^!|M zj&kR&00ku~)cSVqrur+(8tHqWj) z;@(C0)s&!u6*iGYN&~+{Jy7k=^&GKgaw3ZsQZNsv4=X)pWZ)`h>$C{K{5tC}knh5H zHm}9Eq+i^CCU-cP7e%Qe-kTCCdJ-j(Gv;oF=}XA1a(H7cphf+7#rT}PKc=aVR@tf= zSXPUIA-|CfKx3l@^u{xC$DAj}INCf>w|+CM6vIi!bZji7J^^h#X41pD88<+NWGKsQ zn3}nF?5b_qyVPKq`Fj#628im$4M$1vqQ&JEa4OUbgW&&5EEpNy_pKu@x zp{9NyuCcRDqbRa-!ede;4E9(c#+t&nkP?5GTn>ZXAo=%JTSb_vePz0CP>7e3WQP#xb^^uwIw>yWUD@d*75_xWcQ zyjzn$w|?k#f^YZ-`A-V2D@l=DFIzH zKQT{3{}Dm;d}o~jqxShHX3QwpZ=D{E%B`;lVqyesI-_cz7wt>+)j6Kj)^_U}e|j}d zl-dYh9fbCzvC2**CKx4mCGGKte+u%myn|@mik`ge(|TsC5v?V;5E&%uXsN7~}NCD(xK@{hVAk!`Cqb<@3qbTx&| zM=aLoip$~frEXT{3!w8HAtBGO!urcnn)4CTOJnZ$ODaDAZfHi{GrP3FB9T&gnF|z? z8W_OLZnOrlXF{80jPclCYysnIaK+g{V3FZTcci1z0KEOJrIYd6`bC&Ex&}p7x{k^I zd0R<;Lmf4+W1r(Z-oflIhbLr55sKRhFhhE4qdO#wB+?5Ahuw5;xXs~bC%qM%;JcOb zFQPI}yU>x~*-C\"data\");\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n#\ + \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#\ + \n#root.mnuc.backuper\ + \n\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\ + \n#:local Script AM-GlobalConfig;\ + \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\");\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/tmp/\";\ + \n:global MkDir;\ + \n\ + \n:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n#\$MkDir \$localDir;\ + \n\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);" +add comment="Example add WU servers to AddrList" dont-require-permissions=no \ + name=WU-add-to-list owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_Script to add target web sites DNS IP addresses into address list\r\ + \n# Tested with Mikrotik 6.4x\r\ + \n# Syed Jahanzaib / aacable@hotmail.com\r\ + \n# List name\r\ + \n:local LISTNAME \"windowsupdateslist\"\r\ + \n# Web site names which will be added in address list\r\ + \n:local TARGET1 \"update.microsoft.com\"\r\ + \n:local TARGET2 \"download.windowsupdate.com\"\r\ + \n:local TARGET3 \"download.microsoft.com\"\r\ + \n:local TARGET4 \"windowsupdate.com\"\r\ + \n:local TARGET5 \"ntservicepack.microsoft.com\"\r\ + \n:local TARGET6 \"wustat.windows.com\"\r\ + \n:local TARGET7 \"stats.microsoft.com\"\r\ + \n:local TARGET8 \"mp.microsoft.com\"\r\ + \n:local TARGET9 \"ws.microsoft.com\"\r\ + \n:local TARGET10 \"sls.update.microsoft.com.akadns.net\"\r\ + \n:local TARGET11 \"vortex.data.microsoft.com\"\r\ + \n:local TARGET12 \"vortex-win.data.microsoft.com\"\r\ + \n:local TARGET13 \"fe2.update.microsoft.com.akadns.net\"\r\ + \n:local TARGET14 \"statsfe2.update.microsoft.com.akadns.net\"\r\ + \n \r\ + \n# 1st time runner, check if address list is not created previously and a\ + dd entries in it for 1st time usage\r\ + \n:if ( [/ip firewall address-list find where list=\$LISTNAME] = \"\") do=\ + {\r\ + \n:log warning \"No address list for \$TARGET1 found ! creating and adding\ + \_resolved entry for 1st time usage ... zaib\"\r\ + \n \r\ + \n:local FirstAddr [resolve \$TARGET1];\r\ + \n\r\ + \n/ip firewall address-list add address=\$FirstAddr list=\$LISTNAME commen\ + t=\$TARGET1;\r\ + \n} else={\r\ + \n:log warning \"Previous List for \$LISTNAME found ! moving forward and c\ + hecking if DNS entries can be added in it ...\"\r\ + \n}\r\ + \n \r\ + \n# Check DNS entries and collect matching names\r\ + \n:foreach i in=[/ip dns cache find name~\"(\$TARGET1|\$TARGET2|\$TARGET3|\ + \$TARGET4|\$TARGET5|\$TARGET6|\$TARGET7|\$TARGET8|\$TARGET9|\$TARGET10|\$T\ + ARGET11|\$TARGET12|\$TARGET13|\$TARGET14)\" && \$type ~ \"^(A|CNAME)\\\$\"\ + \_] do={\r\ + \n \r\ + \n# Get IP Address from the names and hold it in temporary buffer\r\ + \n:local Buffer [/ip dns cache get \$i data];\r\ + \ndelay delay-time=10ms\r\ + \n \r\ + \n# Check if entry is already not exists, then OK, otherwise ignore duplic\ + ation\r\ + \n:if ( [/ip firewall address-list find where address=\$Buffer] = \"\") do\ + ={\r\ + \n \r\ + \n# Fetch DNS names for the entries\r\ + \n:local sitednsname [/ip dns cache get \$i name] ;\r\ + \n \r\ + \n# Print name in LOG window\r\ + \n:log info (\"added entry: \$sitednsname \$Buffer\");\r\ + \n \r\ + \n# Add IP addresses and there names to the address list\r\ + \n/ip firewall address-list add address=\$Buffer list=\$LISTNAME comment=\ + \$sitednsname;\r\ + \n}\r\ + \n}" +add comment="Add Hosts DNS names to NoWG addres list" \ + dont-require-permissions=no name=Add2vdsina owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_Script to add target web sites DNS IP addresses into address list\r\ + \n# Tested with Mikrotik 6.4x\r\ + \n# \r\ + \n# List name\r\ + \n:local LISTNAME \"NoWG\"\r\ + \n#\r\ + \n# Web site names which will be added in address list\r\ + \n:local TARGET1 \"comp-lenta.ru\"\r\ + \n:local TARGET2 \"ok.ru\"\r\ + \n:local TARGET3 \"vk.com\"\r\ + \n#:local TARGET4 \"smtp.mail.me.com\"\r\ + \n#:local TARGET4 \"windowsupdate.com\"\r\ + \n#:local TARGET5 \"ntservicepack.microsoft.com\"\r\ + \n#:local TARGET6 \"wustat.windows.com\"\r\ + \n#:local TARGET7 \"stats.microsoft.com\"\r\ + \n#:local TARGET8 \"mp.microsoft.com\"\r\ + \n#:local TARGET9 \"ws.microsoft.com\"\r\ + \n#:local TARGET10 \"sls.update.microsoft.com.akadns.net\"\r\ + \n#:local TARGET11 \"vortex.data.microsoft.com\"\r\ + \n#:local TARGET12 \"vortex-win.data.microsoft.com\"\r\ + \n#:local TARGET13 \"fe2.update.microsoft.com.akadns.net\"\r\ + \n#:local TARGET14 \"statsfe2.update.microsoft.com.akadns.net\"\r\ + \n \r\ + \n# 1st time runner, check if address list is not created previously and a\ + dd entries in it for 1st time usage\r\ + \n:if ( [/ip firewall address-list find where list=\$LISTNAME] = \"\") do=\ + {\r\ + \n:log warning \"No address list for \$TARGET1 found ! creating and adding\ + \_resolved entry for 1st time usage ... zaib\"\r\ + \n\r\ + \n:local FirstAddr [resolve \$TARGET1];\r\ + \n\r\ + \n/ip firewall address-list add address=\$FirstAddr list=\$LISTNAME commen\ + t=\$TARGET1;\r\ + \n\r\ + \n} else={\r\ + \n:log warning \"Previous List for \$LISTNAME found ! moving forward and c\ + hecking if DNS entries can be added in it ...\"\r\ + \n}\r\ + \n\r\ + \n# Check DNS entries and collect matching names\r\ + \n:foreach i in=[/ip dns cache find name~\"(\$TARGET1|\$TARGET2|\$TARGET3|\ + \$TARGET4)\" && \$type ~ \"^(A|CNAME)\\\$\" ] do={\r\ + \n\r\ + \n:log info (\"start entry: \$c \$sitednsname \$Buffer\");\r\ + \n\r\ + \n# Get IP Address from the names and hold it in temporary buffer\r\ + \n:local Buffer [/ip dns cache get \$i data];\r\ + \ndelay delay-time=10ms\r\ + \n:log info (\"1: \$Buffer\"); \r\ + \n\r\ + \n# Check if entry is already not exists, then OK, otherwise ignore duplic\ + ation\r\ + \n:if ( [/ip firewall address-list find where address=\$Buffer] = \"\") do\ + ={\r\ + \n\r\ + \n:log info (\"2: \$Buffer\"); \r\ + \n \r\ + \n# Fetch DNS names for the entries\r\ + \n:local sitednsname [/ip dns cache get \$i name] ;\r\ + \n \r\ + \n# Print name in LOG window\r\ + \n:log info (\"added entry: \$i \$sitednsname \$Buffer\");\r\ + \n \r\ + \n# Add IP addresses and there names to the address list\r\ + \n/ip firewall address-list add address=\$Buffer list=\$LISTNAME comment=\ + \$sitednsname;\r\ + \n}\r\ + \n}" +add comment="Flush DNS Cache" dont-require-permissions=no name=\ + DNS_Flush_Cache owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\ + "/ip dns cache flush" +add comment="Certificates CloudFlare, Quad9 " dont-require-permissions=no \ + name=Update-Certificates owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \_CloudFlare\r\ + \n#/tool/fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobalR\ + ootCA.crt.pem;\r\ + \n#/certificate/import file-name=DigiCertGlobalRootCA.crt.pem passphrase=\ + \"\";\r\ + \n#/tool/ fetch mode=https url=https://cacerts.digicert.com/DigiCertGlobal\ + G2TLSRSASHA2562020CA1-1.crt.pem;\r\ + \n#/certificate/import file-name=DigiCertGlobalG2TLSRSASHA2562020CA1-1.crt\ + .pem passphrase=\"\";\r\ + \n# Quad9\r\ + \n#/tool/fetch mode=https url=\"https://cacerts.digicert.com/DigiCertGloba\ + lG3TLSECCSHA3842020CA1-1.crt.pem\"\r\ + \n#/certificate/import file-name=DigiCertGlobalG3TLSECCSHA3842020CA1-1.crt\ + .pem passphrase=\"\";\r\ + \n\r\ + \n:global GlobalScriptsUrl;\r\ + \n#google\r\ + \n:local CertName \"DigiCert-Global-Root-CA.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Global-Root-CA\" [ find where common-na\ + me=\"DigiCert Global Root CA\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Assured-ID-Root-CA.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Assured-ID-Root-CA\" [ find where commo\ + n-name=\"DigiCert Assured ID Root CA\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Assured-ID-Root-G2.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Assured-ID-Root-G2\" [ find where commo\ + n-name=\"DigiCert Assured ID Root G3\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Assured-ID-Root-G3.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Assured-ID-Root-G3\" [ find where commo\ + n-name=\"DigiCert Assured ID Root G3\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Global-G2-TLS-RSA-SHA256-2020-CA1.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Global-G2-TLS-RSA-SHA256-2020-CA1\" [ f\ + ind where common-name=\"DigiCert Global G2 TLS RSA SHA256 2020 CA1\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Global-G3-TLS-ECC-SHA384-2020-CA1.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Global-G3-TLS-ECC-SHA384-2020-CA1\" [ f\ + ind where common-name=\"DigiCert Global G3 TLS ECC SHA384 2020 CA1\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Global-Root-G2.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Global-Root-G2\" [ find where common-na\ + me=\"DigiCert Global Root G2\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Global-Root-G3.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Global-Root-G3\" [ find where common-na\ + me=\"DigiCert Global Root G3\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-TLS-ECC-P384-Root-G5.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-TLS-ECC-P384-Root-G5\" [ find where com\ + mon-name=\"DigiCert TLS ECC P384 Root G5\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-TLS-RSA4096-Root-G5.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-TLS-RSA4096-Root-G5\" [ find where comm\ + on-name=\"DigiCert TLS RSA4096 Root G5\" ];\r\ + \n\r\ + \n:set CertName \"DigiCert-Trusted-Root-G4.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"DigiCert-Trusted-Root-G4\" [ find where common-n\ + ame=\"DigiCert Trusted Root G4\" ];\r\ + \n\r\ + \n:set CertName \"GTS-Root-R4.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"GTS-Root-R4\" [ find where common-name=\"GTS Roo\ + t R4\" ];\r\ + \n\r\ + \n:set CertName \"Go-Daddy-Root-Certificate-Authority-G2.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"Go-Daddy-Root-Certificate-Authority-G2\" [ find \ + where common-name=\"Go Daddy Root Certificate Authority - G2\" ];\r\ + \n\r\ + \n:set CertName \"ISRG-Root-X1.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"ISRG-Root-X1\" [ find where common-name=\"ISRG R\ + oot X1\" ];\r\ + \n\r\ + \n:set CertName \"Root-YE.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"Root-YE\" [ find where common-name=\"Root YE\" ]\ + ;\r\ + \n\r\ + \n:set CertName \"Starfield-Root-Certificate-Authority-G2.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"Starfield-Root-Certificate-Authority-G2\" [ find\ + \_where common-name=\"Starfield Root Certificate Authority - G2\" ];\r\ + \n\r\ + \n:set CertName \"USERTrust-RSA-Certification-Authority.pem\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \"certs/Master/\" . \$C\ + ertName);\r\ + \n/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n/certificate/set name=\"USERTrust-RSA-Certification-Authority\" [ find w\ + here common-name=\"USERTrust RSA Certification Authority\" ];\r\ + \n\r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"GTS-Root-RX.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#internet\r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n#:set CertName \"ISRG-Root-X2.pem\";\r\ + \n#/tool/fetch mode=https url=(\$AmScriptsUrl . \"certs/\" . \$CertName);\ + \r\ + \n#/certificate/import file-name=\$CertName passphrase=\"\";\r\ + \n\r\ + \n\r\ + \n#/ip/dns/set allow-remote-requests=yes doh-max-concurrent-queries=100 do\ + h-max-server-connections=20 use-doh-server=https://security.cloudflare-dns\ + .com/dns-query verify-doh-cert=yes;\r\ + \n#/ip/dns/static remove [find where address=1.1.1.1];\r\ + \n#/ip/dns/static add address=1.1.1.1 name=security.cloudflare-dns.com com\ + ment=\"cloudflare-dns IPv4 1\";\r\ + \n#/ip/dns/ static remove [find where address=1.0.0.1];\r\ + \n#/ip/dns/static add address=1.0.0.1 name=security.cloudflare-dns.com com\ + ment=\"cloudflare-dns IPv4 2\"\r\ + \n#/ip dns static add address=2606:4700:4700::1111 name=security.cloudflar\ + e-dns.com type=AAAA\r\ + \n#/ip dns static add address=2606:4700:4700::1001 name=security.cloudflar\ + e-dns.com type=AAAA\r\ + \n#/ip/dns set servers=\"1.0.0.1, 8.8.4.4\";\r\ + \n#/ip/dns set servers=\"\";" +add dont-require-permissions=no name=script1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + tool/netwatch/add comment=\"doh-fallback, doh-url=https://security.cloudfl\ + are-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Clou\ + dFlare-doh IPv4 1\" host=1.1.1.1;\r\ + \n/tool/netwatch/add comment=\"doh, doh-url=https://security.cloudflare-dn\ + s.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=CloudFlare\ + -doh IPv4 2\" host=1.0.0.1;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.google/dns-query, doh-cert=DigiCert Global Root G2, notify, name=Goog\ + le-doh IPv4 1\" host=8.8.8.8;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.google/dns-query, doh-cert=DigiCert Global Root G2, notify, name=Goog\ + le-doh IPv4 2\" host=8.8.4.4;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.quad9.net/dns-query, doh-cert=DigiCert Global Root G3, notify, name=C\ + uad9-doh IPv4 1\" host=9.9.9.9;\r\ + \n/tool/netwatch/add comment=\"doh-fallback, dns-fallback, doh-url=https:/\ + /dns.quad9.net/dns-query, doh-cert=DigiCert Global Root G3, notify, name=C\ + uad9-doh IPv4 2\" host=149.112.112.112;\r\ + \n\r\ + \n/tool/netwatch/add comment=\"dns, notify, name=ns1.unet.ws\" host=91.192\ + .189.2;" +add dont-require-permissions=no name=script2 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \r\ + \n\r\ + \n:global InspectVar;\r\ + \n#:global RouterBoard;\r\ + \n#:do {:set RouterBoard [[ :parse \"/system/routerboard/get\" ]]} on-erro\ + r={}\r\ + \n#:global Resources;\r\ + \n#:do {:set Resources [[ :parse \"/system/resource/get\" ]]} on-error={}\ + \r\ + \n\r\ + \n#:global Updates;\r\ + \n#:do {:set Updates [[ :parse \"/system/package/update/get\" ]]} on-error\ + ={}\r\ + \n\r\ + \n#:global PkgUpdStatus \"undefined\";\r\ + \n#:local Update [/system/package/update/get];\r\ + \n#:retry command={:set PkgUpdStatus (\$Update->\"status\")} delay=200ms m\ + ax=5 on-error={};\r\ + \n\r\ + \n#:log warning [\$InspectVar \$RouterBoard];\r\ + \n#:put [\$InspectVar \$RouterBoard];\r\ + \n\r\ + \n#:retry command={/system/package/update check-for-updates without-paging\ + \_as-value} delay=300ms max=5 on-error={};\r\ + \n\r\ + \n#:global arrDeviceInfo ({});\r\ + \n#:local arrDeviceInfo ({\"section\":{\"key\":\"\"; \"value\":\"\";};});\ + \r\ + \n#:set (\$arrDeviceInfo->\"RouterBoard\") [[ :parse \"/system/routerboard\ + /get\" ]];\r\ + \n#:retry command={:set (\$arrDeviceInfo->\"Updates\") [[ :parse \"/system\ + /package/update/get\" ]]} delay=500ms max=5 on-error={:log error (\"Error\ + \")};\r\ + \n# [:toarray {\"section\"={\"key\"=\"\"; \"value\"=\"\";} }];\r\ + \n# [:toarray \"\"];\r\ + \n:local arrDeviceInfo ({});\r\ + \n\r\ + \n:set (\$arrDeviceInfo->\"devUpdates\") {\"channel\"; \"stable\";};\r\ + \n#:do {:set (arrDeviceInfo->\"Updates\") [[ :parse \"/system/package/upda\ + te/get\" ]]} on-error={:log error (\$error)}\r\ + \n\$InspectVar \$arrDeviceInfo;\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe true;\r\ + \n:global RunOnce (a);\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs false;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n\r\ + \n :local UrlSuffix \$Identity;\r\ + \n :local UrlDir \"certs/\";\r\ + \n :local CertUrl (\$GlobalScriptsUrl . \$UrlDir . \$UrlSuffix .\"/\"); \ + \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n\r\ + \n :if (!(((\$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=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n /tool/fetch (\$CertUrl . \$CertFileName) dst-path=\$CertFileName\ + \_as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n /certificate/set name=\"Root-YE\" [ find where common-name=\"Roo\ + t YE\" ];\r\ + \n :delay 1s;\r\ + \n };\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\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 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\"; \"mod/AM-\ + Certs-By-Ident\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\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/633/2f6d4158\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:35:03 05.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\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="download, import and update firewall address-lists" \ + dont-require-permissions=no name=AM-FwAddrLists owner=AM-FwAddrLists \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-FwAddrLists\r\ + \n# Script comment: download, import and update firewall address-lists\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# https://ros.vados.ru/doc/fw-addr-lists.md\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ListsDirName (\"fw-addr-lists.d/\" . [ /system identity get nam\ + e ] . \"/\");\r\ + \n :local ListsUrl (\$GlobalScriptsUrl . \$ListsDirName);\r\ + \n :local ListsIndex \"index.lst\";\r\ + \n :local AddrListsTimeOut 1d;\r\ + \n :local CheckCerts false;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global FetchHugeFiles;\r\ + \n :global HumanReadableNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global NetMask4;\r\ + \n :global NetMask6;\r\ + \n :global ScriptLock;\r\ + \n \r\ + \n :local FindDelim do={\r\ + \n :local ValidChars \"0123456789.:/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi\ + jklmnopqrstuvwxyz-\";\r\ + \n :for I from=0 to=[ :len \$1 ] do={\r\ + \n :if ([ :typeof [ :find \$ValidChars [ :pick (\$1 . \" \") \$I ] ] \ + ] != \"num\") do={\r\ + \n :return \$I;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local GetBranch do={\r\ + \n :global EitherOr;\r\ + \n :return [ :pick [ :convert transform=md5 to=hex [ :pick \$1 0 [ \$Ei\ + therOr [ :find \$1 \"/\" ] [ :len \$1 ] ] ] ] 0 2 ];\r\ + \n }\r\ + \n \r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local ListComment (\"managed by \" . \$ScriptName);\r\ + \n :local Url (\$ListsUrl . \$ListsIndex);\r\ + \n :local tmpIndex false;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :set tmpIndex [ :tolf [ \$FetchHugeFiles \$ScriptName \$Url \$Chec\ + kCerts ] ];\r\ + \n :if (\$tmpIndex = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list \ + index, \" . \$I . \". try from: \" . \$Url);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list inde\ + x from: \" . \$Url);\r\ + \n :set tmpIndex \"\";\r\ + \n }\r\ + \n\r\ + \n :foreach List in=[ :deserialize \$tmpIndex delimiter=\"\\n\" from=dsv \ + options=dsv.plain ] do={\r\ + \n# :set List (\$List->0);\r\ + \n :local ListName;\r\ + \n :local Delim [ \$FindDelim \$List ];\r\ + \n :if (\$Delim = 0) do={ :set List \"\"; };\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$List);\r\ + \n :if ([ :len \$List ] = 0) do={\r\ + \n :log error (\$ScriptName . \" Failed parsing address-list index en\ + try: \" . \$List);\r\ + \n } else={\r\ + \n :set ListName [ :pick \$List 0 \$Delim ];\r\ + \n }\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$ListName . \" - Ok.\");\r\ + \n :local ListUrl (\$ListsUrl . \$ListName);\r\ + \n :local CntAdd 0;\r\ + \n :local CntRenew 0;\r\ + \n :local CntRemove 0;\r\ + \n :local IPv4Addresses ({});\r\ + \n :local IPv6Addresses ({});\r\ + \n :local Failure false;\r\ + \n :local Data false;\r\ + \n :local TimeOut \$AddrListTimeOut;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data [ :tolf [ \$FetchHugeFiles \$ScriptName \$ListUrl \$Ch\ + eckCerts ] ];\r\ + \n :if (\$Data = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\ + \" . \$ListName . \"', \" . \$I . \". try from: \" . \$ListUrl);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data \"\";\r\ + \n :set Failure true;\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\" . \ + \$ListName . \"' from: \" . \$ListUrl);\r\ + \n } else={\r\ + \n :log warning (\$ScriptName . \" Downloaded \" . [ \$HumanReadableN\ + um [ :len \$Data ] 1024 ] . \"B for list '\" . \$ListName . \"' from: \" .\ + \_\$ListUrl);\r\ + \n }\r\ + \n\r\ + \n :foreach Line in=[ :deserialize \$Data delimiter=\"\\n\" from=dsv op\ + tions=dsv.plain ] do={\r\ + \n :set Line (\$Line->0);\r\ + \n :local Address;\r\ + \n :if ([ :pick \$Line 0 1 ] = \"{\" && [ :pick \$Line ([ :len \$Line\ + \_] - 1) ] = \"}\") do={\r\ + \n :do {\r\ + \n :set Address [ :tostr ([ :deserialize from=json \$Line ]->\"ci\ + dr\") ];\r\ + \n } on-error={ }\r\ + \n } else={\r\ + \n :set Address ([ :pick \$Line 0 [ \$FindDelim \$Line ] ] . (\$L\ + ist->\"cidr\"));\r\ + \n }\r\ + \n :do {\r\ + \n :local Branch;\r\ + \n :if (\$Address ~ \"^[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\\ + .[0-9]{1,3}(/[0-9]{1,2})\?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 32;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n :set Address [ :tostr (([ :toip \$Net ] & [ \$NetMask4 \$CID\ + R ]) . [ \$IfThenElse (\$CIDR < 32) (\"/\" . \$CIDR) ]) ];\r\ + \n }\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[0-9a-zA-Z]*:[0-9a-zA-Z:\\\\.]+(/[0-9]{1,3})\ + \?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 128;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip6 [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n }\r\ + \n :set Address (([ :toip6 \$Net ] & [ \$NetMask6 \$CIDR ]) . \"/\ + \" . \$CIDR);\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[\\\\.a-zA-Z0-9-]+\\\\.[a-zA-Z]{2,}\\\$\") d\ + o={\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n \r\ + \n\r\ + \n :foreach Entry in=[ /ip/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ip/firewall/address-list/get \$Entry address ];\ + \r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv4 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ip/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv4 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ip/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach Entry in=[ /ipv6/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ipv6/firewall/address-list/get \$Entry address ]\ + ;\r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv6 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ipv6/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv6 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ipv6/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv4Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv4 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ip/firewall/address-list/add list=\$ListName comment=\$ListCo\ + mment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv4 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv6Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv6 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ipv6/firewall/address-list/add list=\$ListName comment=\$List\ + Comment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv6 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :log info (\$ScriptName . \" list: \" . \$ListName . \\\r\ + \n \" (\" . [ \$HumanReadableNum (\$CntAdd + \$CntRenew) 1000 ] . \ + \")\" . \\\r\ + \n \" -- added: \" . [ \$HumanReadableNum \$CntAdd 1000 ] . \\\r\ + \n \" - renewed: \" . [ \$HumanReadableNum \$CntRenew 1000 ] . \\\r\ + \n \" - removed: \" . [ \$HumanReadableNum \$CntRemove 1000 ]);\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$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 \"kasparov.ru\"\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 \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"FuckRKN\";\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 :resolve \$aItem;\r\ + \n } on-error={\r\ + \n :log error \"dns resolve failure [ ip - 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=\$n\ + ewAddress comment=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list: \$newAddress\ + \";\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 :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 /ip firewall address-list add list=\$ListRKN address\ + =[/ip dns cache all get \$aRecord data] comment=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list: \$newAddr\ + ess\";\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:20: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 5s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name=dnsForwarders owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-dnsForwarders\r\ + \n# Script comment: DNS Forwarders and DOH Servers | by @xmrdenb43\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# \r\ + \n# tested on hap ac lite tc/hap ax3, RoS 7.18.2+\r\ + \n\r\ + \n\r\ + \n/ip/dns/set allow-remote-requests=yes doh-max-concurrent-queries=100 doh\ + -max-server-connections=20 use-doh-server=https://security.cloudflare-dns.\ + com/dns-query verify-doh-cert=no;\r\ + \n\r\ + \n/ip dns static\r\ + \n:do {\r\ + \nadd address=8.8.8.8 comment=\"DNS Google\" name=dns.google type=A\r\ + \nadd address=8.8.4.4 comment=\"DNS Google\" name=dns.google type=A\r\ + \nadd address=9.9.9.9 comment=\"DNS Quad9\" name=dns.quad9.net type=A\r\ + \nadd address=149.112.112.112 comment=\"DNS Quad9\" name=dns.quad9.net typ\ + e=A\r\ + \nadd address=195.133.25.16 comment=\"DNS Comss\" name=dns.comss.one type=\ + A\r\ + \n\r\ + \n/ip dns forwarders\r\ + \nadd doh-servers=https://cloudflare-dns.com/dns-query name=\"CloudFlare D\ + oH\"\r\ + \nadd doh-servers=https://secure.cloudflare-dns.com/dns-query name=\"Cloud\ + Flare Secure DoH\"\r\ + \nadd disabled=yes doh-servers=https://dns.quad9.net/dns-query name=\"Quad\ + 9 Default\" verify-doh-cert=no\r\ + \nadd doh-servers=https://dns.google/dns-query name=\"Google DoH\"\r\ + \nadd dns-servers=dns.comss.one doh-servers=https://dns.comss.one/mikrotik\ + \_name=\"Comss DoH\" verify-doh-cert=no\r\ + \nadd doh-servers=https://cloudflare-dns.com/dns-query,https://dns.google/\ + dns-query name=\"CF & Google DoH\"\r\ + \nadd dns-servers=1.0.0.1,8.8.4.4,1.1.1.1,8.8.8.8,77.88.8.1,77.88.8.8 name\ + =\"CF & G & Ya IPv4\" verify-doh-cert=no\r\ + \n} on-error={ }\r\ + \n\r\ + \n" +add dont-require-permissions=no name=AM-ADguardHome-container owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-ADguardHome-container\r\ + \n# Script comment: ADguardHome-container to container | by @xdenb43\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# \r\ + \n# tested on hap ac lite tc/hap ax3, RoS 7.18.2+\r\ + \n# tested on hap ax3/RoS 7.17.2+\r\ + \n\r\ + \n# enable containers, follow https://help.mikrotik.com/docs/spaces/ROS/pa\ + ges/84901929/Container\r\ + \n#/system/device-mode/update container=yes\r\ + \n\r\ + \n# MAIN PART STARTS HERE\r\ + \n/interface veth\r\ + \nadd address=192.168.254.5/24 gateway=192.168.254.1 name=ADGUARD-HOME\r\ + \n\r\ + \n/interface bridge\r\ + \nadd name=Bridge-Docker port-cost-mode=short\r\ + \n/interface bridge port\r\ + \nadd bridge=Bridge-Docker interface=ADGUARD-HOME\r\ + \n/ip address\r\ + \nadd address=192.168.254.1/24 interface=Bridge-Docker network=192.168.254\ + .0\r\ + \n\r\ + \n/ip firewall nat\r\ + \nadd action=masquerade chain=srcnat comment=AdGuardHome src-address=192.1\ + 68.254.5\r\ + \n\r\ + \n# USB flash drive, FS ext4\r\ + \n/container config\r\ + \nset ram-high=200.0MiB registry-url=https://registry-1.docker.io tmpdir=/\ + usb1/docker/pull\r\ + \n\r\ + \n/container mounts\r\ + \nadd dst=/opt/adguardhome/conf name=adguard_home_conf src=/usb1/docker_co\ + nfigs/adguard_home\r\ + \n\r\ + \n/container\r\ + \nadd cmd=\"-c /opt/adguardhome/conf/AdGuardHome.yaml -h 0.0.0.0 -w /opt/a\ + dguardhome/work\" entrypoint=/opt/adguardhome/AdGuardHome interface=ADGUAR\ + D-HOME logging=yes mounts=\\\r\ + \n adguard_home_conf root-dir=/usb1/docker/adguard_home workdir=/opt/ad\ + guardhome/work remote-image=adguard/adguardhome:latest\r\ + \n\r\ + \n/container/start [find where interface=ADGUARD-HOME]\r\ + \n\r\ + \n# ADH available on http://192.168.254.5:300 , configure before use\r\ + \n# Choose one of the options below\r\ + \n# uncomment lines before copying to terminal\r\ + \n\r\ + \n# OPTION 1\r\ + \n# Just set AGH ip as DNS server.\r\ + \n# /!\\ DNS FWD will work.\r\ + \n# /!\\ No device-related stats will be gathered (all dns requests are co\ + ming from mikrotik)\r\ + \n#/ip dns\r\ + \n#set allow-remote-requests=yes servers=192.168.254.5\r\ + \n#/ip firewall nat\r\ + \n#add action=redirect chain=dstnat comment=\"Incoming DNS redirect\" dst-\ + address-type=!local dst-port=53 in-interface-list=LAN protocol=udp\r\ + \n#add action=redirect chain=dstnat comment=\"Incoming DNS redirect\" dst-\ + address-type=!local dst-port=53 in-interface-list=LAN protocol=tcp\r\ + \n\r\ + \n\r\ + \n# OPTION 2\r\ + \n# Forward all DNS requests to ADH\r\ + \n# /!\\ DNS FWD will NOT work\r\ + \n# /!\\ WILL SHOW stats for every LAN device\r\ + \n#/ip firewall nat\r\ + \n#add action=dst-nat chain=dstnat comment=\"local AdGuard udp - NO NAT L\ + oopback / local addresses only!\" dst-port=53 in-interface-list=LAN protoc\ + ol=udp src-address=\\\r\ + \n# 192.168.88.0/24 to-addresses=192.168.254.5 to-ports=53\r\ + \n#add action=dst-nat chain=dstnat comment=\"local AdGuard tcp\" dst-port=\ + 53 in-interface-list=LAN protocol=tcp src-address=192.168.88.0/24 to-addre\ + sses=192.168.254.5 to-ports=53\r\ + \n# cat adguardhome_container.rsc\r\ + \n# adguard home to container | by @xdenb43\r\ + \n# tested on hap ax3/RoS 7.17.2+\r\ + \n\r\ + \n# enable containers, follow https://help.mikrotik.com/docs/spaces/ROS/pa\ + ges/84901929/Container\r\ + \n/system/device-mode/update container=yes\r\ + \n\r\ + \n# MAIN PART STARTS HERE\r\ + \n/interface veth\r\ + \nadd address=192.168.254.5/24 gateway=192.168.254.1 name=ADGUARD-HOME\r\ + \n\r\ + \n/interface bridge\r\ + \nadd name=Bridge-Docker port-cost-mode=short\r\ + \n/interface bridge port\r\ + \nadd bridge=Bridge-Docker interface=ADGUARD-HOME\r\ + \n/ip address\r\ + \nadd address=192.168.254.1/24 interface=Bridge-Docker network=192.168.254\ + .0\r\ + \n\r\ + \n/ip firewall nat\r\ + \nadd action=masquerade chain=srcnat comment=AdGuardHome src-address=192.1\ + 68.254.5\r\ + \n\r\ + \n# USB flash drive, FS ext4\r\ + \n/container config\r\ + \nset ram-high=200.0MiB registry-url=https://registry-1.docker.io tmpdir=/\ + usb1/docker/pull\r\ + \n\r\ + \n/container mounts\r\ + \nadd dst=/opt/adguardhome/conf name=adguard_home_conf src=/usb1/docker_co\ + nfigs/adguard_home\r\ + \n\r\ + \n/container\r\ + \nadd cmd=\"-c /opt/adguardhome/conf/AdGuardHome.yaml -h 0.0.0.0 -w /opt/a\ + dguardhome/work\" entrypoint=/opt/adguardhome/AdGuardHome interface=ADGUAR\ + D-HOME logging=yes mounts=\\\r\ + \n adguard_home_conf root-dir=/usb1/docker/adguard_home workdir=/opt/ad\ + guardhome/work remote-image=adguard/adguardhome:latest\r\ + \n\r\ + \n/container/start [find where interface=ADGUARD-HOME]\r\ + \n\r\ + \n# ADH available on http://192.168.254.5:300 , configure before use\r\ + \n# Choose one of the options below\r\ + \n# uncomment lines before copying to terminal\r\ + \n\r\ + \n# OPTION 1\r\ + \n# Just set AGH ip as DNS server.\r\ + \n# /!\\ DNS FWD will work.\r\ + \n# /!\\ No device-related stats will be gathered (all dns requests are co\ + ming from mikrotik)\r\ + \n#/ip dns\r\ + \n#set allow-remote-requests=yes servers=192.168.254.5\r\ + \n#/ip firewall nat\r\ + \n#add action=redirect chain=dstnat comment=\"Incoming DNS redirect\" dst-\ + address-type=!local dst-port=53 in-interface-list=LAN protocol=udp\r\ + \n#add action=redirect chain=dstnat comment=\"Incoming DNS redirect\" dst-\ + address-type=!local dst-port=53 in-interface-list=LAN protocol=tcp\r\ + \n\r\ + \n\r\ + \n# OPTION 2\r\ + \n# Forward all DNS requests to ADH\r\ + \n# /!\\ DNS FWD will NOT work\r\ + \n# /!\\ WILL SHOW stats for every LAN device\r\ + \n#/ip firewall nat\r\ + \n#add action=dst-nat chain=dstnat comment=\"local AdGuard udp - NO NAT L\ + oopback / local addresses only!\" dst-port=53 in-interface-list=LAN protoc\ + ol=udp src-address=\\\r\ + \n# 192.168.88.0/24 to-addresses=192.168.254.5 to-ports=53\r\ + \n#add action=dst-nat chain=dstnat comment=\"local AdGuard tcp\" dst-port=\ + 53 in-interface-list=LAN protocol=tcp src-address=192.168.88.0/24 to-addre\ + sses=192.168.254.5 to-ports=53" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/interface bridge +add admin-mac=48:8F:5A:8E:1A:BC auto-mac=no mlag-peer-port="ether1 - Unet" \ + name=Bridge-LAN port-cost-mode=short +/interface wireless +# same mac-address as ether1 - Unet +set [ find default-name=wlan1 ] ampdu-priorities=0,1,2,3,4,5,6,7 band=\ + 2ghz-b/g/n basic-rates-a/g=\ + 6Mbps,9Mbps,12Mbps,18Mbps,24Mbps,36Mbps,48Mbps,54Mbps basic-rates-b=\ + 1Mbps,2Mbps,5.5Mbps,11Mbps channel-width=20/40mhz-XX country=belarus \ + disabled=no frequency=auto hw-protection-mode=rts-cts mode=ap-bridge \ + rate-set=configured skip-dfs-channels=10min-cac ssid=vados \ + wds-default-bridge=Bridge-LAN wds-mode=dynamic-mesh wireless-protocol=\ + 802.11 wmm-support=enabled wps-mode=disabled +set [ find default-name=wlan2 ] ampdu-priorities=0,1,2,3,4,5,6,7 band=\ + 5ghz-a/n/ac basic-rates-a/g=\ + 6Mbps,9Mbps,12Mbps,18Mbps,24Mbps,36Mbps,48Mbps,54Mbps channel-width=\ + 20/40/80mhz-XXXX country=belarus disabled=no frequency=auto \ + hw-protection-mode=rts-cts mode=ap-bridge rate-set=configured \ + skip-dfs-channels=10min-cac ssid=vados5g wds-default-bridge=Bridge-LAN \ + wds-mode=dynamic-mesh wireless-protocol=802.11 wmm-support=enabled \ + wps-mode=disabled +/interface wireless nstreme +# same mac-address as ether1 - Unet +set wlan1 enable-nstreme=yes +set wlan2 enable-nstreme=yes +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=gn master-configuration=\ + cfg-2ghz name-format=prefix-identity name-prefix=2ghz +add action=create-dynamic-enabled hw-supported-modes=ac master-configuration=\ + cfg-5ghz-ac name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled hw-supported-modes=an master-configuration=\ + cfg-5ghz-an name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,containe\ + r,userman,wiliot,openflow,tr069,dot1x,dns,www,api,reverse-proxy,logging" +/interface bridge port +add bridge=Bridge-LAN disabled=yes interface="ether1 - Unet" +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether5 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/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 +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface ovpn-server server +add auth=sha1,md5 mac-address=FE:82:A5:78:8E:84 name=ovpn-server1 +/interface wifi configuration +add channel=2G-AX datapath=xs-DataPath disabled=no mode=ap name=2G-AX \ + security=sec2g security.ft=yes .ft-over-ds=yes ssid=vados +add channel=2G-N datapath=xs-DataPath disabled=no mode=ap name=2G-N security=\ + sec2g security.ft=yes .ft-over-ds=yes ssid=vados +add channel=5G-AC datapath=xs-DataPath disabled=no mode=ap name=5G-AC \ + security=sec5G security.authentication-types="" .ft=yes .ft-over-ds=yes \ + ssid=vados +add channel=2G-G datapath=xs-DataPath disabled=no mode=ap name=2G-G security=\ + sec2g security.authentication-types="" .ft=yes .ft-over-ds=yes ssid=vados +/interface wifi datapath +add bridge=Bridge-LAN disabled=no interface-list=all name=xs-DataPath +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=ether2 interfaces=wlan1,wlan2 \ + lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +add address=10.8.0.2 interface=*F network=10.8.0.2 +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=clientid,clientid_duid interface=\ + "ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.4.4,8.8.8.8 +/ip dns static +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.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=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=91.192.189.2 comment=Unet-DNS disabled=yes name=ns1.unet.ws type=\ + A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +add address=91.192.189.2 comment=Unet-DNS disabled=yes name=ns1.unet.ws 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=10.30.30.100-255 list=KIDS +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 +add address=157.240.247.174 list=Instagram +add address=46.53.178.107 list=Instagram +add address=179.60.195.174 list=Instagram +add address=157.240.205.174 list=Instagram +add address=31.13.24.0/21 list=Instagram +add address=31.13.64.0/18 list=Instagram +add address=45.64.40.0/22 list=Instagram +add address=66.220.144.0/20 list=Instagram +add address=69.63.176.0/20 list=Instagram +add address=69.171.224.0/19 list=Instagram +add address=74.119.76.0/22 list=Instagram +add address=103.4.96.0/22 list=Instagram +add address=129.134.0.0/16 list=Instagram +add address=157.240.0.0/16 list=Instagram +add address=173.252.64.0/18 list=Instagram +add address=179.60.192.0/22 list=Instagram +add address=185.60.216.0/22 list=Instagram +add address=204.15.20.0/22 list=Instagram +add address=157.240.200.63 list=Instagram +add address=185.60.219.63 list=Instagram +add address=129.134.31.12 list=Instagram +add address=66.81.203.132 list=Instagram +add address=185.89.218.12 list=Instagram +add address=31.13.66.63 list=Instagram +add address=84.15.65.162 list=Instagram +add address=68.66.224.28 list=Instagram +add address=157.240.253.63 list=Instagram +add address=83.174.11.224 list=Instagram +add address=157.240.9.52 list=Instagram +add address=157.240.252.174 list=Instagram +add address=157.240.195.63 list=Instagram +add address=31.13.71.52 list=Instagram +add address=57.144.110.192 list=Instagram +add address=157.240.252.17 list=Instagram +add address=84.15.66.97 list=Instagram +add address=217.168.6.33 list=Instagram +add address=31.13.83.52 list=Instagram +add address=157.240.241.63 list=Instagram +add address=129.134.30.12 list=Instagram +add address=185.89.219.12 list=Instagram +add address=157.240.252.10 list=Instagram +add address=157.240.201.63 list=Instagram +add address=66.81.203.197 list=Instagram +add address=179.60.195.52 list=Instagram +add address=66.81.203.7 list=Instagram +add address=216.40.34.41 list=Instagram +add address=157.240.202.63 list=Instagram +add address=157.240.229.63 list=Instagram +add address=157.240.252.63 list=Instagram +add address=31.13.72.53 list=Instagram +add address=124.108.16.224 list=Instagram +add address=157.240.205.63 list=Instagram +add address=92.46.37.96 list=Instagram +add address=157.240.247.63 list=Instagram +add address=157.240.234.63 list=Instagram +add address=157.240.235.63 list=Instagram +add address=87.245.208.97 list=Instagram +add address=216.58.192.0/19 list=Instagram +add address=209.85.128.0/17 list=Instagram +add address=198.105.240.0/20 list=Instagram +add address=173.194.0.0/16 list=Instagram +add address=172.217.0.0/16 list=Instagram +add address=142.250.0.0/15 list=Instagram +add address=108.177.0.0/17 list=Instagram +add address=87.245.197.140 list=Instagram +add address=74.125.0.0/16 list=Instagram +add address=64.233.160.0/19 list=Instagram +add address=157.240.0.1 list=Instagram +add address=157.240.238.63 list=Instagram +add address=157.240.238.174 list=Instagram +add address=157.240.0.63 list=Instagram +add address=157.240.224.63 list=Instagram +add address=157.240.224.174 list=Instagram +add address=157.240.251.36 list=Instagram +add address=157.240.253.12 list=Instagram +add address=157.240.253.35 list=Instagram +add address=157.240.238.13 list=Instagram +add address=157.240.238.56 list=Instagram +add address=157.240.238.175 list=Instagram +add address=57.144.112.141 list=Instagram +add address=157.240.251.60 list=Instagram +add address=157.240.251.128 list=Instagram +add address=157.240.238.5 list=Instagram +add address=157.240.253.13 list=Instagram +add address=157.240.253.5 list=Instagram +add address=157.240.238.2 list=Instagram +add address=157.240.238.37 list=Instagram +add address=157.240.251.5 list=Instagram +add address=157.240.251.34 list=Instagram +add address=57.144.112.1 list=Instagram +add address=157.240.238.54 list=Instagram +add address=129.134.26.123 list=Instagram +add address=157.240.252.3 list=Instagram +add address=31.13.84.4 list=Instagram +add address=157.240.224.12 list=Instagram +add address=157.240.238.4 list=Instagram +add address=157.240.0.13 list=Instagram +add address=3.33.139.32 list=Instagram +add address=157.240.0.35 list=Instagram +add address=157.240.238.14 list=Instagram +add address=157.240.238.60 list=Instagram +add address=57.144.112.145 list=Instagram +add address=157.240.251.35 list=Instagram +add address=151.101.84.159 list=Twitter +add address=pbs.twimg.com list=Twitter +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test +add address=geoip.co list=NoVdsina +add address=x.com list=Twitter +add address=facebook.com list=facebook +add address=fbcd.net list=facebook +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=82.202.162.184 comment=comp-lenta.ru list=NoWG +add address=smtp.mail.me.com.akadns.net. comment=smtp.mail.me.com list=NoWG +add address=17.57.155.37 comment=smtp.mail.me.com.akadns.net list=NoWG +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=Trusted-VPN +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!!!" disabled=yes 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=Trusted-VPN +add address=vdsina.ru comment=VDSina-vpn list=Trusted-VPN +add address=ns.vados.ru comment=VDSina-vpn list=Trusted-VPN +add address=vdsina.com comment=VDSina-vpn list=Trusted-VPN +add address=cp.vdsina.ru comment=VDSina-vpn list=Trusted-VPN +add address=ns1.vdsina.ru comment=VDSina-vpn list=Trusted-VPN +add address=ghcr.io comment=GitHub list=Trusted-VPN +add address=github.com comment=GitHub list=Trusted-VPN +add address=149.154.164.13 comment=telegra.ph list=FuckRKN +add address=109.70.26.37 comment=grani.ru list=FuckRKN +add address=194.85.61.76 comment=grani.ru list=FuckRKN +add address=104.16.4.81 comment=xhamster.com list=FuckRKN +add address=104.16.3.81 comment=xhamster.com list=FuckRKN +add address=188.114.96.1 comment=lostfilm.tv list=FuckRKN +add address=188.114.97.1 comment=lostfilm.tv list=FuckRKN +add address=172.67.182.196 comment=rutracker.org list=FuckRKN +add address=104.21.32.39 comment=rutracker.org list=FuckRKN +add address=104.247.81.99 comment=lurkmore.to list=FuckRKN +add address=8.47.69.6 comment=dou.ua list=FuckRKN +add address=8.6.112.6 comment=dou.ua list=FuckRKN +add address=66.254.114.79 comment=youporn.com list=FuckRKN +add address=185.110.92.41 comment=pornolab.net list=FuckRKN +add address=185.110.92.40 comment=pornolab.net list=FuckRKN +add address=172.67.172.95 comment=crimerussia.com list=FuckRKN +add address=104.21.71.238 comment=crimerussia.com list=FuckRKN +add address=149.154.167.99 comment=telegram.org list=FuckRKN +add address=149.154.166.110 comment=api.telegram.org list=FuckRKN +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address=!10.30.30.0/24 src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address=!10.30.30.0/24 \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address=!10.30.30.0/24 src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" disabled=yes dst-port=123 \ + in-interface-list=LAN protocol=udp src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment="Test sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test new-routing-mark=To-VPN \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=FuckRKN new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=Instagram dst-address-list=\ + Instagram new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=Twitter dst-address-list=\ + Twitter new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=YouTube dst-address-list=\ + YouTube new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=facebook dst-address-list=\ + facebook new-routing-mark=To-VPN 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=!Trusted-VPN log-prefix=\ + VPN-all new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG passthrough=no protocol=tcp routing-mark=To-VPN \ + tcp-flags=syn tcp-mss=1381-65535 +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + in-interface=WG log-prefix=Mark-VPN-FT new-connection-mark=\ + VPN_No_FastTrack passthrough=no +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=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="masquerade Default" ipsec-policy=\ + out,none out-interface="ether1 - Unet" +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + log-prefix=WG-nat out-interface=WG +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + in-interface="ether1 - Unet" log-prefix=2Amster protocol=tcp \ + routing-mark=!To-VPN to-addresses=10.30.30.33 to-ports=443 +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="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp routing-mark=\ + !To-VPN to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=vk.com \ + content=vk.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=ok.ru content=\ + ok.ru +add action=add-dst-to-address-list address-list=Instagram \ + address-list-timeout=none-dynamic chain=prerouting comment=Instagram \ + content=instagram.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting comment=Twitter content=twimg.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting content=x.com +add action=add-dst-to-address-list address-list=Twitter address-list-timeout=\ + none-dynamic chain=prerouting content=twitter.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting comment=YouTube content=youtube.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googleapis.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=ggpht.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=youtu.be +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=ytimg.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googlevideo.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=gstatic.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=googleusercontent.com +add action=add-dst-to-address-list address-list=YouTube address-list-timeout=\ + none-dynamic chain=prerouting content=nhacmp3youtube.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=me.com \ + content=me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=icloud.com \ + content=icloud.com +add action=add-dst-to-address-list address-list=facebook \ + address-list-timeout=none-dynamic chain=prerouting comment=facebook \ + content=fbcd.net +add action=add-dst-to-address-list address-list=facebook \ + address-list-timeout=none-dynamic chain=prerouting content=facebook.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=comp-lenta.ru \ + content=comp-lenta.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + smtp.mail.me.com content=smtp.mail.me.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gov.ru \ + content=gov.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + r78.fssp.gov.ru content=r78.fssp.gov.ru +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=api.db-ip.com \ + content=api.db-ip.com +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + api.telegram.org content=api.telegram.org +/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 hotspot user profile +set [ find default=yes ] address-pool=dhcp +/ip hotspot walled-garden +add server=*1 +add server=*1 +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +/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 port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add interface=WG type=external +add interface=wlan2 type=internal +/ipv6 address +add address=fdcc:ad94:bacf:61a4::cafe:2/128 advertise=no interface=*F +/snmp community +set [ find default=yes ] addresses=10.30.30.0/24 read-access=no security=\ + private +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system note +set show-at-login=no +/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 channel=development +/system scheduler +add comment="Scheduler for Update Certificates CloudFlare Quad9" disabled=yes \ + interval=1w name="Update Certificates CloudFlare Quad9" on-event=\ + "/system/script { run Update-Certificates; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2025-11-28 start-time=05:45:40 +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" interval=20m name=AM-RKN-dnsLookup \ + on-event="/system/script { run AM-RKN-dnsLookup; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/tool sniffer +set filter-interface=Bridge-LAN filter-src-ip-address=10.30.30.50/32 +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260511/20260511214002-Diff-Config.rsc b/MikroMaster/history/20260511/20260511214002-Diff-Config.rsc new file mode 100644 index 0000000..1e99fcc --- /dev/null +++ b/MikroMaster/history/20260511/20260511214002-Diff-Config.rsc @@ -0,0 +1,4 @@ +4306d4305 +< add address=8.47.69.6 comment=dou.ua list=FuckRKN +4307a4307 +> add address=8.47.69.6 comment=dou.ua list=FuckRKN -- 2.52.0