Advertisement
rs232

wizard v0.1 - FreshTomato

Aug 24th, 2022 (edited)
983
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 10.46 KB | Source Code | 0 0
  1. #!/bin/sh -x
  2. # FreshTomato Wizard script v0.2 - rs232 08/22
  3.  
  4. ### functions
  5. radio() {
  6. [ $1 -eq 0 ] && x=0 || x=1
  7. nvram show | grep -Eo '^wl.*_radio=' | while read var; do $(nvram set $var${x}); done
  8. }
  9.  
  10. trackers() {
  11. [ $1 -eq 0 ] && x=0 || x=1
  12. nvram set nf_ftp=${x}
  13. nvram set nf_h323=${x}
  14. nvram set nf_pptp=${x}
  15. nvram set nf_rtsp=${x}
  16. nvram set nf_sip=${x}
  17. }
  18.  
  19. layer() {
  20. [ $1 -eq 0 ] && x=0 || x=1
  21. nvram set nf_l7in=${x}
  22.  
  23. nvram set force_igmpv2=${x}
  24. }
  25.  
  26. usb() {
  27. [ $1 -eq 0 ] && {
  28.  [ $(nvram get usb_enable | wc -l) -eq 1 ] && nvram set usb_enable=0
  29.  } || {
  30.  [ $(nvram get usb_enable | wc -l) -eq 0 ] && nvram set usb_enable=1
  31. }
  32. }
  33.  
  34. dns() {
  35. [ $1 -eq 0 ] && x=0 || x=1
  36. nvram set ddnsx_save=${x}
  37. }
  38.  
  39. ctf() {
  40. [ $1 -eq 0 ] && x=1 || x=0
  41. nvram set ctf_disable=${x}
  42. }
  43.  
  44. loopback() {
  45. [ $1 -eq 0 ] && x=2 || x=0
  46. nvram set nf_loopback=${x}
  47. }
  48.  
  49. ipsecPass() {
  50. [ $1 -eq 0 ] && {
  51. [ $(nvram get ipsec_pass | wc -l) -eq 1 ]&& nvram set ipsec_pass=0
  52. } || {
  53. [ $(nvram get ipsec_pass | wc -l) -eq 0 ]&& nvram set ipsec_pass=1
  54. }
  55. }
  56.  
  57. wan() {
  58. [ $1 -eq 0 ] && {
  59. nvram set mwan_num=1
  60. nvram set vlan1ports="0 1 2 3 4 5*"
  61. nvram set vlan2ports=
  62. nvram set vlan3ports=
  63. nvram set vlan4ports=
  64. nvram set vlan5ports=
  65. nvram set vlan6ports=
  66. nvram set vlan7ports=
  67. nvram set vlan8ports=
  68. nvram set wan_iface=
  69. nvram set wan_ifnameX=vlan0
  70. nvram set wan_ifnames=vlan0
  71. nvram set wan2_ifnameX=
  72. nvram set wan3_ifnameX=
  73. nvram set wan4_ifnameX=
  74. nvram set wan_proto=disabled
  75. nvram set vlan1hwname=
  76. nvram set vlan2hwname=
  77. nvram set vlan3hwname=
  78. nvram set vlan4hwname=
  79. }
  80. [ $1 -eq 1 ] && {
  81. nvram set mwan_num=1
  82. nvram set vlan1ports="1 2 3 4 5*"
  83. nvram set vlan2ports=
  84. nvram set vlan3ports=
  85. nvram set vlan4ports=
  86. nvram set vlan5ports=0
  87. nvram set vlan6ports=
  88. nvram set vlan7ports=
  89. nvram set vlan8ports=
  90. nvram set wan_ifnameX=vlan5
  91. nvram set wan_iface=vlan5
  92. nvram set wan_ifnames=vlan5
  93. nvram set wan_dns_auto=1
  94. nvram set wan2_ifnameX=
  95. nvram set wan2_iface=
  96. nvram set wan3_ifnameX=
  97. nvram set wan3_iface=
  98. nvram set wan4_ifnameX=
  99. nvram set wan4_iface=
  100. nvram set wan_proto=dhcp
  101. nvram set vlan1hwname=et0
  102. nvram set vlan2hwname=
  103. nvram set vlan3hwname=
  104. nvram set vlan4hwname=
  105. }
  106. [ $1 -eq 2 ] && {
  107. nvram set mwan_num=2
  108. nvram set vlan1ports="2 3 4 5*"
  109. nvram set vlan2ports=
  110. nvram set vlan3ports=
  111. nvram set vlan4ports=
  112. nvram set vlan5ports=0
  113. nvram set vlan6ports=1
  114. nvram set vlan7ports=
  115. nvram set vlan8ports=
  116. nvram set wan_ifnameX=vlan5
  117. nvram set wan_iface=vlan5
  118. nvram set wan_dns_auto=1
  119. nvram set wan2_ifnameX=vlan6
  120. nvram set wan2_iface=vlan6
  121. nvram set wan2_dns_auto=1
  122. nvram set wan3_ifnameX=
  123. nvram set wan3_iface=
  124. nvram set wan4_ifnameX=
  125. nvram set wan4_iface=
  126. nvram set wan_ifnames="vlan5 vlan6"
  127. nvram set wan_proto=dhcp
  128. nvram set wan2_proto=dhcp
  129. nvram set vlan1hwname=et0
  130. nvram set vlan2hwname=et0
  131. nvram set vlan3hwname=
  132. nvram set vlan4hwname=
  133. }
  134. [ $1 -eq 3 ] && {
  135. nvram set mwan_num=3
  136. nvram set vlan1ports="3 4 5*"
  137. nvram set vlan2ports=
  138. nvram set vlan3ports=
  139. nvram set vlan4ports=
  140. nvram set vlan5ports=0
  141. nvram set vlan6ports=1
  142. nvram set vlan7ports=2
  143. nvram set vlan8ports=
  144. nvram set wan_ifnameX=vlan5
  145. nvram set wan_iface=vlan5
  146. nvram set wan_dns_auto=1
  147. nvram set wan2_ifnameX=vlan6
  148. nvram set wan2_iface=vlan6
  149. nvram set wan2_dns_auto=1
  150. nvram set wan3_ifnameX=vlan7
  151. nvram set wan3_iface=vlan7
  152. nvram set wan3_dns_auto=1
  153. nvram set wan4_ifnameX=
  154. nvram set wan4_iface=
  155. nvram set wan_ifnames="vlan5 vlan6 vlan7"
  156. nvram set wan_proto=dhcp
  157. nvram set wan2_proto=dhcp
  158. nvram set wan3_proto=dhcp
  159. nvram set vlan1hwname=et0
  160. nvram set vlan2hwname=et0
  161. nvram set vlan3hwname=et0
  162. nvram set vlan4hwname=
  163. }
  164. [ $1 -eq 4 ] && {
  165. nvram set mwan_num=4
  166. nvram set vlan1ports="4 5*"
  167. nvram set vlan2ports=
  168. nvram set vlan3ports=
  169. nvram set vlan4ports=
  170. nvram set vlan5ports=0
  171. nvram set vlan6ports=1
  172. nvram set vlan7ports=2
  173. nvram set vlan8ports=3
  174. nvram set wan_ifnameX=vlan5
  175. nvram set wan_iface=vlan5
  176. nvram set wan_dns_auto=1
  177. nvram set wan2_ifnameX=vlan6
  178. nvram set wan2_iface=vlan6
  179. nvram set wan2_dns_auto=1
  180. nvram set wan3_ifnameX=vlan7
  181. nvram set wan3_iface=vlan7
  182. nvram set wan3_dns_auto=1
  183. nvram set wan4_ifnameX=vlan8
  184. nvram set wan4_iface=vlan8
  185. nvram set wan4_dns_auto=1
  186. nvram set wan_ifnames="vlan5 vlan6 vlan7 vlan8"
  187. nvram set wan_proto=dhcp
  188. nvram set wan2_proto=dhcp
  189. nvram set wan3_proto=dhcp
  190. nvram set wan4_proto=dhcp
  191. nvram set vlan1hwname=et0
  192. nvram set vlan2hwname=et0
  193. nvram set vlan3hwname=et0
  194. nvram set vlan4hwname=et0
  195. }
  196. nvram set vlan0ports=5
  197. nvram set manual_boot_nv=1
  198. }
  199.  
  200. save() {
  201. nvram commit
  202. }
  203.  
  204. restart() {
  205. reboot
  206. }
  207.  
  208. ### profiles
  209.  
  210. # help
  211. [ -z $1 ] && {
  212. echo "
  213. #### Wizard usage ###
  214.  
  215. wizard.sh profile
  216.  
  217. #####################
  218. Available profiles:
  219.  
  220. 0 = switch only
  221.    IP=192.168.1.199/br0
  222.  
  223. 1 = 1x WAN + WiFi + Guest WiFi
  224.    WAN - single WAN default settings
  225.  
  226. 2 = 2x WAN + WiFi + Guest WiFi
  227.    WAN + Port1
  228.  
  229. 3 = 3x WAN + WiFi + Guest WiFi
  230.    WAN + Port1 + Port2
  231.  
  232. 4 = 4x WAN + WiFi + Guest WiFi
  233.    WAN + Port1 + Port2 + Port 3
  234.    
  235. 5 = switch + Admin Wifi
  236.    IP=192.168.254.1/br1 + DHCP_Server/br1
  237.  
  238. #####################
  239. "
  240. exit
  241. }
  242.  
  243.  
  244. # Switch only
  245. [ $1 -eq 0 ] && {
  246. nvram set nvram set lan_ifnames=vlan1
  247. nvram set lan_proto=static 
  248. nvram set lan_ipaddr=192.168.1.199
  249. nvram set lan_netmask=255.255.255.0
  250. nvram set lan_gateway=192.168.1.1
  251. nvram set wan_dns=192.168.1.1
  252. nvram set wan_dns_auto=0
  253. nvram set wan_hwaddr=
  254. radio 0
  255. trackers 0
  256. layer 0
  257. usb 0
  258. dns 0
  259. ctf 1
  260. loopback 0
  261. ipsecPass 0
  262. wan 0
  263. wan_iface=
  264. wan_ifname=
  265. wan_ifnameX=
  266. wan_ifnames=
  267. save
  268. restart
  269. }
  270.  
  271.  
  272.  
  273.  
  274. # WAN x1 + WiFi + Guest WLAN
  275. [ $1 -eq 1 ] && {
  276. nvram show | grep -Eo '^wl.*_radio=' | while read var; do $(nvram set $var"1"); done
  277. nvram set lan_ifnames="vlan1 eth1"
  278. nvram set lan_proto=dhcp
  279. nvram set lan_ipaddr=192.168.1.1
  280. nvram set lan_netmask=255.255.255.0
  281. nvram set dhcpd_startip=192.168.1.100
  282. nvram set dhcpd_endip=192.168.1.127
  283. nvram set dhcp_lease=1440
  284. nvram set dhcp_num=28
  285. nvram set wl0_ssid=FreshTomato24
  286. nvram set wl0_security_mode=wpa2_personal
  287. nvram set wl0_wpa_psk=password
  288. nvram set wl0.1_ssid=FreshTomatoGuest24
  289. nvram set wl0.1_security_mode=wpa2_personal
  290. nvram set wl0.1_wpa_psk=password
  291. oiu=$(echo $(nvram get wl0_hwaddr | cut -c -9))
  292. uaa=$(echo $(c=0; until [ $c -eq "3" ];do printf ":%02X" $(( $RANDOM % 256 ));let c=c+1;done|sed s/://))
  293. nvram set wl0.1_hwaddr=$(echo $oiu$uaa)
  294. radio 1
  295. trackers 1
  296. layer 1
  297. usb 1
  298. dns 1
  299. ctf 0
  300. loopback 1
  301. ipsecPass 1
  302. wan 1
  303. save
  304. restart
  305. }
  306.  
  307.  
  308.  
  309.  
  310. # MultiWAN x2 + WiFi + Guest WLAN
  311. [ $1 -eq 2 ] && {
  312. nvram show | grep -Eo '^wl.*_radio=' | while read var; do $(nvram set $var"1"); done
  313. nvram set lan_ifnames=vlan1 eth1
  314. nvram set lan_proto=dhcp
  315. nvram set lan_ipaddr=192.168.1.1
  316. nvram set lan_netmask=255.255.255.0
  317. nvram set dhcpd_startip=192.168.1.100
  318. nvram set dhcpd_endip=192.168.1.127
  319. nvram set dhcp_lease=1440
  320. nvram set dhcp_num=28
  321. nvram set lan1_proto=dhcp
  322. nvram set lan1_ipaddr=192.168.2.1
  323. nvram set lan1_netmask=255.255.255.0
  324. nvram set wl0_ssid=FreshTomato24
  325. nvram set wl0_security_mode=wpa2_personal
  326. nvram set wl0.1_ssid=FreshTomatoGuest24
  327. nvram set wl0.1_security_mode=wpa2_personal
  328. nvram set wl0.1_wpa_psk=password
  329. oiu=$(echo $(nvram get wl0_hwaddr | cut -c -9))
  330. uaa=$(echo $(c=0; until [ $c -eq "3" ];do printf ":%02X" $(( $RANDOM % 256 ));let c=c+1;done|sed s/://))
  331. nvram set wl0.1_hwaddr=$(echo $oiu$uaa)
  332. radio 1
  333. trackers 1
  334. layer 1
  335. usb 1
  336. dns 1
  337. ctf 0
  338. loopback 1
  339. ipsecPass 1
  340. wan 2
  341. save
  342. restart
  343. }
  344.  
  345. # MultiWAN x3 + WiFi + Guest WLAN
  346. [ $1 -eq 3 ] && {
  347. nvram show | grep -Eo '^wl.*_radio=' | while read var; do $(nvram set $var"1"); done
  348. nvram set lan_ifnames=vlan1 eth1
  349. nvram set lan_proto=dhcp
  350. nvram set lan_ipaddr=192.168.1.1
  351. nvram set lan_netmask=255.255.255.0
  352. nvram set dhcpd_startip=192.168.1.100
  353. nvram set dhcpd_endip=192.168.1.127
  354. nvram set dhcp_lease=1440
  355. nvram set dhcp_num=28
  356. nvram set lan1_proto=dhcp
  357. nvram set lan1_ipaddr=192.168.2.1
  358. nvram set lan1_netmask=255.255.255.0
  359. nvram set lan2_proto=dhcp
  360. nvram set lan2_ipaddr=192.168.3.1
  361. nvram set lan2_netmask=255.255.255.0
  362. nvram set wl0_ssid=FreshTomato24
  363. nvram set wl0_security_mode=wpa2_personal
  364. nvram set wl0.1_ssid=FreshTomatoGuest24
  365. nvram set wl0.1_security_mode=wpa2_personal
  366. nvram set wl0.1_wpa_psk=password
  367. oiu=$(echo $(nvram get wl0_hwaddr | cut -c -9))
  368. uaa=$(echo $(c=0; until [ $c -eq "3" ];do printf ":%02X" $(( $RANDOM % 256 ));let c=c+1;done|sed s/://))
  369. nvram set wl0.1_hwaddr=$(echo $oiu$uaa)
  370. radio 1
  371. trackers 1
  372. layer 1
  373. usb 1
  374. dns 1
  375. ctf 0
  376. loopback 1
  377. ipsecPass 1
  378. wan 3
  379. save
  380. restart
  381. }
  382.  
  383. # MultiWAN x4 + WiFi + Guest WLAN
  384. [ $1 -eq 4 ] && {
  385. nvram show | grep -Eo '^wl.*_radio=' | while read var; do $(nvram set $var"1"); done
  386. nvram set lan_ifnames=vlan1 eth1
  387. nvram set lan_ipaddr=192.168.1.1
  388. nvram set lan_netmask=255.255.255.0
  389. nvram set dhcpd_startip=192.168.1.100
  390. nvram set dhcpd_endip=192.168.1.127
  391. nvram set dhcp_lease=1440
  392. nvram set dhcp_num=28
  393. nvram set lan1_proto=dhcp
  394. nvram set lan1_ipaddr=192.168.2.1
  395. nvram set lan1_netmask=255.255.255.0
  396. nvram set lan2_proto=dhcp
  397. nvram set lan2_ipaddr=192.168.3.1
  398. nvram set lan2_netmask=255.255.255.0
  399. nvram set lan3_proto=dhcp
  400. nvram set lan3_ipaddr=192.168.4.1
  401. nvram set lan3_netmask=255.255.255.0
  402. nvram set wl0_ssid=FreshTomato24
  403. nvram set wl0_security_mode=wpa2_personal
  404. nvram set wl0.1_ssid=FreshTomatoGuest24
  405. nvram set wl0.1_security_mode=wpa2_personal
  406. nvram set wl0.1_wpa_psk=password
  407. oiu=$(echo $(nvram get wl0_hwaddr | cut -c -9))
  408. uaa=$(echo $(c=0; until [ $c -eq "3" ];do printf ":%02X" $(( $RANDOM % 256 ));let c=c+1;done|sed s/://))
  409. nvram set wl0.1_hwaddr=$(echo $oiu$uaa)
  410. radio 1
  411. trackers 1
  412. layer 1
  413. usb 1
  414. dns 1
  415. ctf 0
  416. loopback 1
  417. ipsecPass 1
  418. wan 4
  419. save
  420. restart
  421. }
  422.  
  423.  
  424.  
  425. # Switch + admin WiFi
  426. [ $1 -eq 5 ] && {
  427. nvram set lan_ifnames=vlan1 eth1
  428. nvram set nvram set lan_ifnames=vlan1
  429. nvram set lan_proto=static 
  430. nvram set lan_ipaddr=192.168.1.199
  431. nvram set lan_netmask=255.255.255.0
  432. nvram set lan_gateway=192.168.1.1
  433. nvram set lan1_proto=dhcp
  434. nvram set lan1_ipaddr=192.168.254.1
  435. nvram set lan1_netmask=255.255.255.0
  436. nvram set dhcpd1_startip=192.168.254.100
  437. nvram set dhcpd1_endip=192.168.254.127
  438. nvram set dhcp1_lease=1440
  439. nvram set dhcp1_num=28
  440. nvram set wl0.1_ssid=FreshTomatoGuest24
  441. nvram set wl0.1_security_mode=wpa2_personal
  442. nvram set wl0.1_wpa_psk=admin
  443. oiu=$(echo $(nvram get wl0_hwaddr | cut -c -9))
  444. uaa=$(echo $(c=0; until [ $c -eq "3" ];do printf ":%02X" $(( $RANDOM % 256 ));let c=c+1;done|sed s/://))
  445. nvram set wl0.1_hwaddr=$(echo $oiu$uaa)
  446. radio 1
  447. trackers 0
  448. layer 0
  449. usb 0
  450. dns 0
  451. ctf 1
  452. loopback 0
  453. ipsecPass 0
  454. wan 0
  455. save
  456. restart
  457. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement