From 1f1f3409a03f51efe24beaba06aaab2be460bf98 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 11 May 2026 20:40:18 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 11 20:40:18. --- .../20260511/20260511204001-Binary.backup | Bin 0 -> 302647 bytes .../20260511/20260511204001-Config.rsc | 4653 +++++++++++++++++ .../20260511/20260511204001-Diff-Config.rsc | 20 + 3 files changed, 4673 insertions(+) create mode 100644 MikroMaster/20260511/20260511204001-Binary.backup create mode 100644 MikroMaster/20260511/20260511204001-Config.rsc create mode 100644 MikroMaster/history/20260511/20260511204001-Diff-Config.rsc diff --git a/MikroMaster/20260511/20260511204001-Binary.backup b/MikroMaster/20260511/20260511204001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..5b74ea7ef6e0d821a6870732898530dc707daeaa GIT binary patch literal 302647 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≶7tt~qHOJhAo?k7Y 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 z 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

ySMn)2v_I|TWWK+|BNu4itxlJsUd`0CjJ8Q5( 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 z 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%0AEe7?@i~M->(p_ZqQ0$*Y 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\"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=194.85.61.76 comment=grani.ru list=FuckRKN +add address=109.70.26.37 comment=grani.ru list=FuckRKN +add address=104.16.3.81 comment=xhamster.com list=FuckRKN +add address=104.16.4.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.6.112.6 comment=dou.ua list=FuckRKN +add address=8.47.69.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/20260511204001-Diff-Config.rsc b/MikroMaster/history/20260511/20260511204001-Diff-Config.rsc new file mode 100644 index 0000000..4aa00a1 --- /dev/null +++ b/MikroMaster/history/20260511/20260511204001-Diff-Config.rsc @@ -0,0 +1,20 @@ +4299d4298 +< add address=104.16.3.81 comment=xhamster.com list=FuckRKN +4301c4300 +< add address=188.114.96.1 comment=lostfilm.tv list=FuckRKN +--- +> add address=104.16.3.81 comment=xhamster.com list=FuckRKN +4302a4302 +> add address=188.114.96.1 comment=lostfilm.tv list=FuckRKN +4306d4305 +< add address=8.6.112.6 comment=dou.ua list=FuckRKN +4307a4307 +> add address=8.6.112.6 comment=dou.ua list=FuckRKN +4309d4308 +< add address=185.110.92.41 comment=pornolab.net list=FuckRKN +4311c4310 +< add address=172.67.172.95 comment=crimerussia.com list=FuckRKN +--- +> add address=185.110.92.41 comment=pornolab.net list=FuckRKN +4312a4312 +> add address=172.67.172.95 comment=crimerussia.com list=FuckRKN -- 2.52.0