From 1fcfcd76ccf54ec2c2c4623cffa92133a4f08702 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 8 Jun 2026 05:40:42 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 08 05:40:42. --- .../20260608/20260608054002-Binary.backup | Bin 0 -> 256676 bytes .../20260608/20260608054002-Config.rsc | 3413 +++++++++++++++++ .../20260608/20260608054002-Diff-Config.rsc | 51 + 3 files changed, 3464 insertions(+) create mode 100644 MikroMaster/20260608/20260608054002-Binary.backup create mode 100644 MikroMaster/20260608/20260608054002-Config.rsc create mode 100644 MikroMaster/history/20260608/20260608054002-Diff-Config.rsc diff --git a/MikroMaster/20260608/20260608054002-Binary.backup b/MikroMaster/20260608/20260608054002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..0fd061d9a3ccc03d1a6a8f92048fc19e4ee6e903 GIT binary patch literal 256676 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 z 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 vVIUu#@t~izU9TDSNrMqOFvRm}{cuuSJ+mK-7< z1=O93Y#1y8-v4@q7Ws$eqQfeVZuNkNWyn&r`#9)?g2z8KHe)0UF~ltorYhBxP;NN6 ziV)M&R=yo@S#5;?27X-b)P6w7!;!`}y*j%3V&nF%sC2*92?KJ0oYdLNZO+lZ7eb*_ zwQ8KEfr|m>NYE^iJqlYa6JW}SvlPZInj|gJ%CanduErg%Ynb^*yXh?Vcsa_LCQFlp zc2y31Fa=7y6MdnyDN5`hrJ$Fl{DQv|8U?b^8bGd~<4s^dCrobUvTs+Cg z!fZd{a|up=Js!k|$#NOXlK)Kl-E$?~HkRGotg+x2uMRx*QV`vM{O*$tNN5wS0}11C z0obXvOzIaBMu$lE4>|S~hX>~hXUO2J2RTG}E`yhDJd(drEZysF#wYvJ4dUs6 zZ+&H84||HEewd3TBc!OZu1hIM~F`H6nv;K8SA2@Nl=y6O3J?^(asMJHZ67;xO@}Sq!XKB)_Nr$ zi?m`fLD2svTv}u-P$vk}!(FQU#&)F`quGr~bGq-6=z#|Ll#)um)6{%W>b?nQZ@%{k z@so55O9&-B1SE>~O2V?Xt;Q!Y zUM;J4IDV^0=~w#fzJCM5eA;CP72cn0s-jm2+7rb|6nd`2fMYH|okRY}2LRKX6rwfa zkp1_Y8QWTk7ALm!9)j6Ork!H&RX$0Iv&4*Da*X5|p<~)?!KQFfr^mCu^3^T%$DUf> zb)l;jzcRqvd=s_%9vvdE3S~OKg>gTrZB>X`WR{8%ae3t8&r>m8jN?9Do}zod(c9Af zw>={GM$TT>7ql$rS(F=4>aE z8*fxfA2>@tIZ(oAYI%jb6vq`B4(z$6n_ZF)6 zQI=Ie#rn^rH`Ddo<|D|&GhRAad{tlJ<6%1Oy#{P#7PqNig^nMt)uhNoj-%@HSNl7> z`I$PDuF-;qJRE?sw@-C}tp0|upMt^*YM@cg2~uBjlNK?KXFeMas3Ku?Ui^u0{!!C) zb*8w}cXAb46Gacq<}KREZEz#-VVl4HxCn8RvhGTb11$9RE2+_fcFtlIy?x)@2{c!1 zC=7n2@Gs~Ms&B-b`f<`sDKy+2x&i_%RCe})2k+R+Jh8X@u>U`8q$mB-yn#HNQl)a; zexF3j-1+hpwe0nwVrUpyG$6qmT4}}&$t@*9TL0%{0TgeIy!WTig$++ZwuVIvJoX*! z_PDMK1H<#n#|(^N_M2>b!-o*%$#Ohfxzfb1?+Q1W)UAw`bC==rBlbp05TVY?sz(X} z@UFqbdl>zgvKVht5Ws8(9VMspmGs5kIcv@_}!0O#tI@4yZ1dPci=ev z!MtRw;}8_I+qHGKox;Mm1twx>n}wGm4m^y__@LwQD+`Q5;BI*oU08-VU2dQMP;4qL z)&iDUvXH6P@`v9lG9BB>S%J%gyv%%RsbcDU$$_&I#97-X7JlcRqd%ML*bE~7ccC5h zRe0GHY{O_Ll(Q6s)B#wnImLlJI|53jX=y!|!%ny5k$)h9=M1@?)jiqJ3inQ)V8_?~ z>d6uRl>@w*8&L8-vFKx|SPdo*2txAumy2N$^lT-zV7DWYDLzJQ#>b8<6z&Z)CU1*a z^Uy=R`4*fZhK4slMl?=O)~?%gG;Rbhwb;Qs^gq7+B*!Tv-FiB>V!=yl#pH_E+Qi6M(s=%cw%f1d} zqT%K?r9kSkjYc!&yj#l(Z#CvfpNkQjOF)M&kXQf_gy3$L*S=E0C!*=a1MG1*9=V-M z)Zdh-)ZXWD2Vz*l%iKwI)#Q)ytUDf$>Z8w18N6YNH4kKVjgzyOciP<0k1`-=OEUMq zU;;IFxMlH#bO08%tEzBt&0B(c^jhx8GOno`GGabQ55p5&OPhR)I9X;GRGYS%st>DX z#IT<-D~~vR8^&Ih3k5{m%_TZToaNZdFkCFO>yn!!UxhV_6;(q3Hfe!zk`B4aIAt_2}Mw=&!@3D-ECMKL$S*Et>!u_Fg zQhBD$L@vYJi1W^1D9zthFH8NLZc&z zMBg}sL13_t?8Cl9t=z-{_%Uw^Ri+lSyjD1Yv425Zyv8X{o9KjMNXRM;g>+Ed;0(SybWp6_2Ipc-wf6%0f%GG$ zVi{K}TqO{`BYLgLAtUNb&BMj{ljEMm^7TlJp5PW0Ddr*&@H326pSU z8k1f_&U`S{B!*H6w`p@WX|GG=yjk(+fEG6wu^ccxYvsca(F7qMS@Km zz78;O*$1l0RhxG*0DKUup}@I5)|T+Js)kjhA~u@2KVpOD?YK)$vWAf{5+?(p%`^+f z+Hn}DoTh)DlC4FYX#$4#;v-(wfW*bJNr5!e`zC&8gK8aJdf9IB^Pj71XzW(guoWn# z>8CdImpl%uFXw!S!2wOFm~0z`axB_2Oi!&VJaB-Hx?H}Ny*j8~iT6EMg;{k=ko9Ee ze~O%TkUPQNz9;7t?1P1$BfP$qH%^{y{^wv>Xc9L~hY_z)(Hs`!#iw4DU)5uQ>8lNR zKmV1*?bthUxmJ`tn>j`V90cvB;yXq}Zy?40aWCsF-tut1YO zFcz1Rzg|tOjUrHRD9=|LL2kq;@*FYGvsNbA>XE?VTjM2ZWu-Q(3F?9m)@CUiBy|cgmm; z<)R3UpdLtqRur&hnR!8vU(kZ!NxKo1s2K!=#;(QkU%~fTnuN$6VLLV!)`kO zW{JuY_2~8tisq482MEfmfP_>-@#x`eL>I3bbl*O}m6-H6NTXxQk9as#o<*_e5htTx zqFU$W1-MhM9PR&67!J3suR#>GH`Gm_3Xw1UA-BHbZ;xP@%=tQ4r@#;?&6_S?1k zSZpD?B54lISq+#O@_gG9)OLZh$me{%i~AMC;c6EpS-8?hi@-LRT}tIkPupQb;gzdv zuKX+qjmnGE%Roqaxtq&c9UsA&D2+uPg^5

bE2Q$nLr}n{&*D{2dG!e}$E`DGgd3 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260608/20260608054002-Config.rsc b/MikroMaster/20260608/20260608054002-Config.rsc new file mode 100644 index 0000000..e7845bd --- /dev/null +++ b/MikroMaster/20260608/20260608054002-Config.rsc @@ -0,0 +1,3413 @@ +# 2026-06-08 05:40:02 by RouterOS 7.23.1 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add name=Bridge-LAN port-cost-mode=short ra-guard=yes +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" loop-protect=off name=\ + "ether1 - Unet" rx-flow-control=auto tx-flow-control=auto +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface wireless +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add disabled=yes listen-port=55982 mtu=1420 name=WG +/interface list +add name=LAN +add exclude=LAN name=WAN +add exclude=LAN include=WAN name=Internet +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +add disabled=yes dns-servers=127.0.0.1 name=*.vados.ru verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/672/7cf8bc7a\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 14:35:04 06.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +set accept-router-advertisements-on=LAN allow-fast-path=no disable-ipv6=yes \ + disable-link-local-address=yes forward=no max-neighbor-entries=8192 \ + multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add check-gateway=arp default-route-tables=main interface="ether1 - Unet" \ + name=client1 use-broadcast=never use-peer-dns=no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=127.0.0.1 +/ip dns adlist +add ssl-verify=no url=https://ros.vados.ru/dns/vados.ru.local +add ssl-verify=no url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=127.0.0.1 comment="Local DNS server for vados.ru" regexp=\ + *.vados.ru type=A +add address=10.30.30.81 comment=NS.vados.ru.local disabled=yes name=\ + ns.vados.ru.local type=A +add comment="DNS ns.vados.ru.local" disabled=yes match-subdomain=yes name=\ + vados.ru ns=ns.vados.ru.local type=NS +add address=10.30.30.33 comment=AMSTER disabled=yes name=amster.vados.ru \ + type=A +add address=10.30.30.33 disabled=yes name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 disabled=yes name=amster-nuc type=A +add address=10.30.30.33 disabled=yes name=amster type=A +add address=10.30.30.33 disabled=yes name=amster-reg type=A +add address=10.30.30.33 disabled=yes name=mng.vados.ru type=A +add address=10.30.30.33 disabled=yes name=mgr.vados.ru type=A +add address=10.30.30.33 disabled=yes name=prt.vados.ru type=A +add address=10.30.30.33 disabled=yes name=reg.vados.ru type=A +add address=10.30.30.33 disabled=yes match-subdomain=yes name=\ + mikrots.vados.ru type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +/ip firewall filter +add action=accept chain=input comment="udp Accept input DNS queries" \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address=\ + 10.30.30.0/24 +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + dst-port=53 in-interface=Bridge-LAN protocol=tcp src-address=\ + 10.30.30.0/24 +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp src-address=!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="ether1 - Unet" 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 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" dst-port=\ + 53 protocol=udp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ + to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" dst-port=\ + 53 protocol=tcp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ + to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 nd +set [ find default=yes ] disabled=yes +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260608/20260608054002-Diff-Config.rsc b/MikroMaster/history/20260608/20260608054002-Diff-Config.rsc new file mode 100644 index 0000000..3f5137a --- /dev/null +++ b/MikroMaster/history/20260608/20260608054002-Diff-Config.rsc @@ -0,0 +1,51 @@ +58c58 +< add disabled=yes dns-servers=127.0.0.1 name=*.vados.ru verify-doh-cert=no +--- +> add dns-servers=10.30.30.81 name=reg.vados.ru verify-doh-cert=no +2505c2505 +< doh-max-server-connections=20 servers=127.0.0.1 +--- +> doh-max-server-connections=20 servers=8.8.4.4,8.8.8.8 +2507,2508c2507 +< add ssl-verify=no url=https://ros.vados.ru/dns/vados.ru.local +< add ssl-verify=no url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +--- +> add url=https://ros.vados.ru/dns/vados.ru.local +2519,2521c2518,2519 +< add address=10.30.30.33 comment=AMSTER disabled=yes name=amster.vados.ru \ +< type=A +< add address=10.30.30.33 disabled=yes name=ros.vados.ru 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 +2523,2531c2521,2528 +< add address=10.30.30.33 disabled=yes name=amster-nuc type=A +< add address=10.30.30.33 disabled=yes name=amster type=A +< add address=10.30.30.33 disabled=yes name=amster-reg type=A +< add address=10.30.30.33 disabled=yes name=mng.vados.ru type=A +< add address=10.30.30.33 disabled=yes name=mgr.vados.ru type=A +< add address=10.30.30.33 disabled=yes name=prt.vados.ru type=A +< add address=10.30.30.33 disabled=yes name=reg.vados.ru type=A +< add address=10.30.30.33 disabled=yes match-subdomain=yes name=\ +< mikrots.vados.ru 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 +3089,3091d3085 +< add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ +< dst-port=53 in-interface=Bridge-LAN protocol=tcp src-address=\ +< 10.30.30.0/24 +3183,3185d3176 +< add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" dst-port=\ +< 53 protocol=udp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ +< to-ports=53 +3187a3179,3181 +> to-ports=53 +> add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" dst-port=\ +> 53 protocol=udp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ -- 2.52.0