rev |
line source |
pankso@33
|
1 #!/bin/sh
|
pankso@194
|
2 #
|
paul@317
|
3 # Gtkdialog box to manage network connections and servers.
|
pankso@292
|
4 # Please use tab to indent.
|
pankso@33
|
5 #
|
pankso@292
|
6 # (c) - SliTaz GNU/Linux 2009.
|
pankso@292
|
7 #
|
pascal@371
|
8 VERSION=20090812
|
pankso@33
|
9
|
pankso@33
|
10 # Check if user is root.
|
pankso@33
|
11 check_root()
|
pankso@33
|
12 {
|
pankso@33
|
13 if test $(id -u) != 0 ; then
|
pankso@33
|
14 echo -e "
|
pankso@194
|
15 You must be root to run `basename $0`. Please type 'su' and
|
pankso@33
|
16 root password to become super-user.\n"
|
pankso@33
|
17 exit 0
|
pankso@33
|
18 fi
|
pankso@33
|
19 }
|
pankso@33
|
20
|
pascal@371
|
21 #
|
pankso@297
|
22 # Functions called by the connection tab to list interfaces.
|
pascal@371
|
23 #
|
pascal@371
|
24 ############################################################
|
pascal@371
|
25
|
pankso@297
|
26 interface_status()
|
pankso@297
|
27 {
|
pankso@297
|
28 if ifconfig | grep -A 1 $i | grep -q inet; then
|
pankso@297
|
29 ip=`ifconfig | grep -A 1 $i | grep inet | awk '{ print $2 }' | cut -d ":" -f 2`
|
pankso@297
|
30 echo "connected ($ip)"
|
pankso@297
|
31 else
|
pankso@297
|
32 echo "-"
|
pankso@297
|
33 fi
|
pankso@297
|
34 }
|
pankso@297
|
35 # First column is for icon name.
|
pankso@297
|
36 detect_interfaces()
|
pankso@297
|
37 {
|
pankso@297
|
38 for i in `ls /sys/class/net`
|
pankso@297
|
39 do
|
pankso@297
|
40 case $i in
|
pankso@297
|
41 eth*)
|
pankso@297
|
42 echo "network-wired | $i | Ethernet | `interface_status`" ;;
|
pankso@297
|
43 wlan*|ath*|ra*)
|
pankso@297
|
44 echo "network-wireless | $i | Wireless | `interface_status`" ;;
|
pankso@297
|
45 lo)
|
pankso@297
|
46 echo "gtk-network | $i | Loopback | `interface_status`" ;;
|
pankso@297
|
47 *)
|
pankso@297
|
48 continue ;;
|
pankso@297
|
49 esac
|
pankso@297
|
50
|
pankso@297
|
51 done
|
pankso@297
|
52 }
|
pankso@297
|
53
|
pankso@297
|
54 # When users double click on a connection.
|
pankso@297
|
55 interfaces_List_actions()
|
pankso@297
|
56 {
|
pankso@297
|
57 echo "$INTERFACE_LIST"
|
pankso@297
|
58 }
|
pankso@297
|
59
|
paul@317
|
60 # Netbox can be called with args.
|
pankso@297
|
61 case "$1" in
|
pankso@297
|
62 detect_interfaces|interfaces_List_actions)
|
pankso@297
|
63 $1
|
pankso@297
|
64 exit 0 ;;
|
pankso@297
|
65 *)
|
pankso@297
|
66 continue ;;
|
pankso@297
|
67 esac
|
pankso@297
|
68
|
pascal@371
|
69 #
|
pankso@297
|
70 # GUI functions
|
pascal@371
|
71 #
|
pascal@371
|
72 ############################################################
|
pascal@371
|
73
|
pascal@372
|
74 xterm="xterm -fa MiscFixed -fs 11 -bg gray93 -fg black"
|
pascal@271
|
75 helpbutton()
|
pascal@271
|
76 {
|
pascal@271
|
77 local label;
|
pascal@271
|
78 label="<label>$3</label>"
|
pascal@271
|
79 [ -n "$3" ] || label=""
|
pascal@271
|
80 cat << EOT
|
pankso@292
|
81 <button>
|
pankso@292
|
82 <input file icon="help"></input>$label
|
pascal@375
|
83 <action>$xterm -geometry $2 -title "$1 help (q to quit)" -e "( echo ; $(which $1) --help 2>&1 ) | less"</action>
|
pankso@292
|
84 </button>
|
pascal@271
|
85 EOT
|
pascal@271
|
86 }
|
pascal@271
|
87
|
pascal@272
|
88 editbutton()
|
pascal@271
|
89 {
|
pascal@271
|
90 cat << EOT
|
pankso@292
|
91 <button>
|
pankso@292
|
92 <input file icon="accessories-text-editor"></input>
|
pankso@292
|
93 <action type="lauch">leafpad $1</action>
|
pankso@292
|
94 </button>
|
pascal@271
|
95 EOT
|
pascal@271
|
96 }
|
pascal@271
|
97
|
pascal@271
|
98 manbutton()
|
pascal@271
|
99 {
|
pascal@271
|
100 cat << EOT
|
pankso@292
|
101 <button>
|
pankso@292
|
102 <input file icon="browser"></input>
|
pankso@292
|
103 <label>man</label>
|
pascal@372
|
104 <action>$xterm -geometry 80x24 -title "$2 man (q to quit)" -e ". /etc/profile; man $1 $2"</action>
|
pankso@292
|
105 </button>
|
pascal@271
|
106 EOT
|
pascal@271
|
107 }
|
pascal@271
|
108
|
pascal@272
|
109 helpdaemon()
|
pascal@271
|
110 {
|
pascal@271
|
111 cat << EOT
|
pankso@292
|
112 <hbox>
|
pankso@292
|
113 <text use-markup="true">
|
pankso@292
|
114 <label>"<b>$3</b>"</label>
|
pankso@292
|
115 </text>
|
pankso@292
|
116 <entry editable="false">
|
pascal@272
|
117 EOT
|
pascal@272
|
118 eval tmp=\$$3
|
pascal@272
|
119 [ -n "$tmp" ] && cat << EOT
|
pankso@292
|
120 <default>$tmp</default>
|
pascal@272
|
121 EOT
|
pascal@272
|
122 cat << EOT
|
pankso@292
|
123 <variable>$4</variable>
|
pankso@292
|
124 </entry>
|
pascal@272
|
125 EOT
|
pascal@272
|
126 [ -n "$6" ] || cat << EOT
|
pascal@272
|
127 $(helpbutton $1 $2)
|
pascal@272
|
128 EOT
|
pascal@272
|
129 [ -n "$5" ] && cat << EOT
|
pascal@272
|
130 $(manbutton $5 $1)
|
pascal@272
|
131 EOT
|
pascal@272
|
132 cat << EOT
|
pascal@272
|
133 $(editbutton /etc/daemons.conf)
|
pankso@292
|
134 </hbox>
|
pascal@272
|
135 EOT
|
pascal@272
|
136 }
|
pascal@272
|
137
|
pascal@272
|
138 datafile()
|
pascal@272
|
139 {
|
pascal@272
|
140 cat << EOT
|
pankso@292
|
141 <hbox>
|
pankso@292
|
142 <text use-markup="true">
|
pankso@292
|
143 <label>"<b>$3</b>"</label>
|
pankso@292
|
144 </text>
|
pankso@292
|
145 <entry editable="false">
|
pascal@272
|
146 EOT
|
pascal@272
|
147 [ -n "$1" ] && cat << EOT
|
pankso@292
|
148 <default>$1</default>
|
pascal@272
|
149 EOT
|
pascal@272
|
150 cat << EOT
|
pankso@292
|
151 <variable>$2</variable>
|
pankso@292
|
152 </entry>
|
pascal@272
|
153 EOT
|
pascal@272
|
154 [ -n "$4" ] && cat << EOT
|
pascal@272
|
155 $(manbutton $4)
|
pascal@272
|
156 EOT
|
pascal@272
|
157 cat << EOT
|
pascal@272
|
158 $(editbutton \$$2)
|
pankso@292
|
159 </hbox>
|
pascal@272
|
160 EOT
|
pascal@272
|
161 }
|
pascal@272
|
162
|
pascal@272
|
163 configfile()
|
pascal@272
|
164 {
|
pankso@297
|
165 datafile "$1" $2 'Configuration:' "$3"
|
pascal@272
|
166 }
|
pascal@272
|
167
|
pascal@372
|
168 BROWSER=''
|
pascal@372
|
169 for i in firefox opera dillo midori netsurf links ; do
|
pascal@373
|
170 which $i > /dev/null && BROWSER="$i" && break
|
pascal@372
|
171 done
|
pascal@372
|
172 case "$BROWSER" in
|
pascal@372
|
173 links) BROWSER="links -g ";;
|
pascal@372
|
174 esac
|
pascal@372
|
175
|
pascal@272
|
176 webbutton()
|
pascal@272
|
177 {
|
pascal@372
|
178 [ -f "/var/lib/tazpkg/installed/$1/receipt" ] &&
|
pascal@372
|
179 [ -n "$BROWSER" ] && cat << EOT
|
pankso@292
|
180 <button>
|
pankso@292
|
181 <input file icon="browser"></input>
|
pankso@292
|
182 <label>web</label>
|
pascal@372
|
183 <action>. /var/lib/tazpkg/installed/$1/receipt ; $BROWSER \$WEB_SITE &</action>
|
pankso@292
|
184 </button>
|
pascal@271
|
185 EOT
|
pascal@271
|
186 }
|
pascal@271
|
187
|
pascal@372
|
188 wikibutton()
|
pascal@372
|
189 {
|
pascal@372
|
190 [ -n "$BROWSER" ] && cat <<EOT
|
pascal@372
|
191 <button>
|
pascal@372
|
192 <input file icon="browser"></input>
|
pascal@372
|
193 <label>Wiki</label>
|
pascal@372
|
194 <action>$BROWSER $1 &</action>
|
pascal@372
|
195 </button>
|
pascal@372
|
196 EOT
|
pascal@372
|
197 }
|
pascal@372
|
198
|
pascal@271
|
199 startstopdaemon()
|
pascal@271
|
200 {
|
pascal@272
|
201 local pkg
|
pascal@272
|
202 pkg=$1
|
pascal@272
|
203 [ -n "$2" ] && pkg=$2
|
pascal@272
|
204 webbutton $pkg
|
pascal@271
|
205 cat << EOT
|
pankso@292
|
206 <button>
|
pankso@292
|
207 <label>Start</label>
|
pankso@292
|
208 <input file icon="forward"></input>
|
pankso@292
|
209 <action>sed -i "s/RUN_DAEMONS=\\"\\(.*\\)$1 \?\\(.*\\)\\"/RUN_DAEMONS=\\"\1\2\\"/" /etc/rcS.conf</action>
|
pankso@292
|
210 <action>sed -i "s/RUN_DAEMONS=\\"\\(.*\\)\\"/RUN_DAEMONS=\\"$1 \1\\"/" /etc/rcS.conf</action>
|
pankso@292
|
211 <action>/etc/init.d/$1 start</action>
|
pankso@292
|
212 </button>
|
pankso@292
|
213 <button>
|
pankso@292
|
214 <label>Stop</label>
|
pankso@292
|
215 <input file icon="stop"></input>
|
pankso@292
|
216 <action>sed -i "s/RUN_DAEMONS=\\"\\(.*\\)$1 \?\\(.*\\)\\"/RUN_DAEMONS=\\"\1\2\\"/" /etc/rcS.conf</action>
|
pankso@292
|
217 <action>/etc/init.d/$1 stop</action>
|
pankso@292
|
218 </button>
|
pascal@271
|
219 EOT
|
pascal@271
|
220 }
|
pascal@271
|
221
|
pascal@272
|
222 installbox()
|
pascal@272
|
223 {
|
pascal@272
|
224 cat << EOT
|
pankso@292
|
225 <hbox>
|
pankso@292
|
226 <text wrap="true" use-markup="true">
|
paul@378
|
227 <label>"<i>The package <b>$1</b> is not yet installed.</i>"</label>
|
pankso@292
|
228 </text>
|
pankso@292
|
229 <button>
|
pankso@292
|
230 <input file icon="go-jump"></input>
|
pankso@292
|
231 <label>Install</label>
|
pascal@372
|
232 <action>$xterm -geometry 80x17 -title "$1 install" -e "yes y | tazpkg get-install $1 ; echo -e \"----\n\nENTER to continue...\" && read close"</action>
|
pankso@292
|
233 <action type="exit">restart</action>
|
pankso@292
|
234 </button>
|
pankso@292
|
235 </hbox>
|
pascal@272
|
236 EOT
|
pascal@272
|
237 }
|
pascal@272
|
238
|
pascal@177
|
239 set_ipup()
|
pascal@177
|
240 {
|
pascal@177
|
241 [ -f /etc/ppp/ip-up ] && return
|
pascal@177
|
242 cat > /etc/ppp/ip-up <<EOT
|
pascal@177
|
243 #!/bin/sh
|
pascal@177
|
244 exec $0 call ipup \$@
|
pascal@177
|
245 EOT
|
pascal@177
|
246 chmod +x /etc/ppp/ip-up
|
pascal@177
|
247 }
|
pascal@177
|
248
|
pascal@259
|
249 while true; do
|
pascal@259
|
250
|
pascal@225
|
251 # Detect WIFI_INTERFACE and update /etc/network.conf
|
pascal@224
|
252 . /etc/network.conf
|
pascal@256
|
253 if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
|
pascal@256
|
254 WIFI_INTERFACE=$(for i in /sys/class/net/*/wireless; do \
|
pascal@256
|
255 [ -d $i ] && echo $(basename $(dirname $i)) || echo wlan0; \
|
pascal@256
|
256 break; done)
|
pascal@224
|
257 [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf
|
pascal@224
|
258 fi
|
pascal@224
|
259
|
pascal@371
|
260 #
|
pascal@371
|
261 # Netbox internal calls
|
pascal@371
|
262 #
|
pascal@371
|
263 #########################################################
|
pascal@371
|
264
|
pascal@177
|
265 if [ "$1" = "call" ]; then
|
pascal@177
|
266 ppp="pppd local lock notty"
|
pascal@177
|
267 pppup=""
|
pascal@177
|
268 sub=$2
|
pascal@177
|
269 shift 2
|
pascal@177
|
270 case "$sub" in
|
pascal@177
|
271 sendsshkey)
|
pascal@177
|
272 check_root
|
pascal@372
|
273 ( dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key ;
|
pascal@372
|
274 cat /etc/ssh/ssh_host_rsa_key.pub ) 2> /dev/null | \
|
pascal@372
|
275 grep ^ssh | ssh $1 "mkdir .ssh 2> /dev/null ; \
|
pascal@372
|
276 while read key; do for i in authorized_keys authorized_keys2; do \
|
pascal@414
|
277 grep -qs '\$key' .ssh/\$i || echo '\$key' >> .ssh/\$i ; done ; done ; \
|
pascal@372
|
278 chmod 700 .ssh ; chmod 600 .ssh/authorized_keys*"
|
pascal@177
|
279 exit 0;;
|
pascal@271
|
280 # OpenSSH VPN:
|
pascal@271
|
281 # PermitTunnel=point-to-point (or yes, ethernet, no)
|
pascal@271
|
282 # Tunnel="4" => tun4
|
pascal@271
|
283 # Local Client:
|
pascal@271
|
284 # # ssh -f -w 0:1 $REMOTE true => local tun0 [, remote tun1]
|
pascal@271
|
285 # # ifconfig $TUN $IP1 $IP2 netmask 255.255.255.252
|
pascal@271
|
286 # # route add $REMOTE_NETWORK $IP2
|
pascal@271
|
287 # Remote Server:
|
pascal@271
|
288 # # ifconfig $TUN $IP2 $IP1 netmask 255.255.255.252
|
pascal@271
|
289 # # route add $LOCAL_NETWORK $IP1
|
pascal@177
|
290 vpnssh) check_root
|
pascal@177
|
291 set_ipup
|
pascal@177
|
292 ps ww | grep -q "$ppp $2:$3" && exit 1
|
pascal@177
|
293 pipe="/tmp/ssh$$"
|
pascal@177
|
294 mkfifo $pipe
|
pascal@177
|
295 [ -n "$4" ] && pppup="ipparam 'addroutes,$(echo $4 | sed 's/ /,/g')'"
|
pascal@177
|
296 cat $pipe | dbclient -i /etc/dropbear/dropbear_rsa_host_key \
|
pascal@177
|
297 $1 "$ppp" | $ppp $2:$3 $pppup > $pipe
|
pascal@177
|
298 rm -f $pipe
|
pascal@177
|
299 exit 0;;
|
pascal@177
|
300 killvpnssh)
|
pascal@177
|
301 check_root
|
pascal@177
|
302 kill $(ps x | grep dbclient | grep "$ppp" | awk '{ print $1 }')
|
pascal@177
|
303 exit 0;;
|
pascal@177
|
304 ipup)
|
pascal@177
|
305 # Arg Name Example
|
pascal@177
|
306 # $1 Interface name ppp0
|
pascal@177
|
307 # $2 The tty ttyS1
|
pascal@177
|
308 # $3 The link speed 38400
|
pascal@177
|
309 # $4 Local IP number 12.34.56.78
|
pascal@177
|
310 # $5 Peer IP number 12.34.56.99
|
pascal@177
|
311 # $6 Optional ``ipparam'' value foo
|
pascal@177
|
312 iface=$1
|
pascal@177
|
313 # skip tty if present
|
pascal@177
|
314 case "$2" in [0-9]*);; *) shift; esac
|
pascal@177
|
315 peer=$4
|
pascal@177
|
316 IFS=","; set -- $(eval echo $5); unset IFS
|
pascal@177
|
317 set -- $1
|
pascal@177
|
318 if [ "$1" = "addroutes" ]; then
|
pascal@177
|
319 while [ -n "$2" ]; do
|
pascal@177
|
320 eval $(ipcalc -n $2)
|
pascal@177
|
321 eval $(ipcalc -m $2)
|
pascal@177
|
322 route add -net $NETWORK netmask $NETMASK \
|
pascal@177
|
323 gw $peer $iface
|
pascal@177
|
324 shift
|
pascal@177
|
325 done
|
pascal@177
|
326 fi
|
pascal@177
|
327 exit 0;;
|
pascal@177
|
328 esac
|
pascal@177
|
329 echo "call $sub unsupported."
|
pascal@177
|
330 exit 1
|
pascal@177
|
331 fi
|
pascal@177
|
332
|
pascal@371
|
333 #
|
pascal@371
|
334 # Tab display engine
|
pascal@371
|
335 #
|
pascal@371
|
336 ######################################################
|
pascal@371
|
337
|
pascal@371
|
338 use_tab()
|
pascal@371
|
339 {
|
pascal@371
|
340 local tmp=''
|
pascal@371
|
341 case "$2" in
|
pascal@371
|
342 header|body)
|
pascal@371
|
343 $1 | while read exe name call; do
|
pascal@371
|
344 case "$exe" in
|
pascal@371
|
345 \#*) continue;;
|
pascal@383
|
346 /*) [ -e $exe ] || continue;;
|
pascal@383
|
347 *) which $exe > /dev/null || continue
|
pascal@371
|
348 esac
|
pascal@371
|
349 if [ "$2" == "header" ]; then
|
pascal@371
|
350 echo -n "$tmp$name"
|
pascal@371
|
351 tmp='|'
|
pascal@371
|
352 else
|
pascal@371
|
353 $call
|
pascal@371
|
354 fi
|
pascal@371
|
355 done
|
pascal@371
|
356 ;;
|
pascal@371
|
357 *)
|
pascal@371
|
358 tmp=$(use_tab $1 header)
|
pascal@371
|
359 echo "$tmp" | grep -q \| && cat <<EOT
|
pascal@371
|
360 <notebook labels="$tmp">
|
pascal@371
|
361 EOT
|
pascal@371
|
362 [ -n "$tmp" ] && cat <<EOT
|
pascal@371
|
363 $(use_tab $1 body)
|
pascal@371
|
364 EOT
|
pascal@371
|
365 echo "$tmp" | grep -q \| && cat <<EOT
|
pascal@371
|
366 </notebook>
|
pascal@371
|
367 EOT
|
pascal@371
|
368 ;;
|
pascal@371
|
369 esac
|
pascal@371
|
370 }
|
pascal@371
|
371
|
pascal@371
|
372 #
|
pascal@371
|
373 # Status wire interfaces
|
pascal@371
|
374 #
|
pascal@371
|
375 tab_status_iface()
|
pascal@371
|
376 {
|
pascal@375
|
377 local eth
|
pascal@375
|
378 eth="$( (cd /sys/class/net ; [ -d eth0 ] && ls -d eth* ) )"
|
pascal@375
|
379 which ethtool > /dev/null || eth=''
|
pascal@375
|
380 if [ -n "$eth" ]; then
|
pascal@375
|
381 cat <<EOT
|
pascal@375
|
382 <notebook labels="Ifconfig|$(echo $eth | sed 's/ /|/g')">
|
pascal@375
|
383 EOT
|
pascal@375
|
384 fi
|
pascal@371
|
385 cat <<EOT
|
pascal@371
|
386 <frame Ifconfig>
|
pascal@371
|
387 <text wrap="false" width-chars="58">
|
pascal@371
|
388 <input>ifconfig</input>
|
pankso@292
|
389 </text>
|
pascal@371
|
390 </frame>
|
pascal@371
|
391 EOT
|
pascal@375
|
392 if [ -n "$eth" ]; then
|
pascal@375
|
393 local i
|
pascal@375
|
394 for i in $eth ; do
|
pascal@375
|
395 cat <<EOT
|
pascal@375
|
396 <frame $i>
|
pascal@375
|
397 <text wrap="false" width-chars="58">
|
pascal@375
|
398 <input>ethtool $i</input>
|
pascal@375
|
399 </text>
|
pascal@375
|
400 </frame>
|
pascal@375
|
401 EOT
|
pascal@375
|
402 done
|
pascal@375
|
403 cat <<EOT
|
pascal@375
|
404 </notebook>
|
pascal@375
|
405 EOT
|
pascal@375
|
406 fi
|
pascal@371
|
407 }
|
pascal@371
|
408
|
pascal@371
|
409 #
|
pascal@371
|
410 # Status wifi interfaces
|
pascal@371
|
411 #
|
pascal@371
|
412 tab_status_wifi_iface()
|
pascal@371
|
413 {
|
pascal@371
|
414 cat <<EOT
|
pascal@371
|
415 <frame Iwconfig>
|
pascal@371
|
416 <text wrap="false" width-chars="58">
|
pascal@371
|
417 <input>iwconfig</input>
|
pascal@371
|
418 </text>
|
pascal@371
|
419 </frame>
|
pascal@371
|
420 EOT
|
pascal@371
|
421 }
|
pascal@371
|
422
|
pascal@371
|
423 #
|
pascal@371
|
424 # Status wifi network
|
pascal@371
|
425 #
|
pascal@371
|
426 tab_status_wifi_net()
|
pascal@371
|
427 {
|
pascal@371
|
428 cat <<EOT
|
pascal@371
|
429 <frame Wireless networks>
|
pascal@371
|
430 <text wrap="false" width-chars="58">
|
pascal@371
|
431 <input>iwlist scan</input>
|
pascal@371
|
432 </text>
|
pascal@371
|
433 </frame>
|
pascal@371
|
434 EOT
|
pascal@371
|
435 }
|
pascal@371
|
436
|
pascal@371
|
437 #
|
pascal@371
|
438 # Status routing
|
pascal@371
|
439 #
|
pascal@371
|
440 tab_status_route()
|
pascal@371
|
441 {
|
pascal@371
|
442 cat <<EOT
|
pascal@371
|
443 <frame Routing>
|
pascal@371
|
444 <frame Nameservers>
|
pascal@371
|
445 <text wrap="false" width-chars="58">
|
pascal@371
|
446 <input>cat /etc/resolv.conf</input>
|
pankso@292
|
447 </text>
|
pankso@292
|
448 </frame>
|
pascal@371
|
449 <frame Routing table>
|
pascal@371
|
450 <text wrap="false" width-chars="58">
|
pascal@371
|
451 <input>route</input>
|
pankso@292
|
452 </text>
|
pankso@292
|
453 </frame>
|
pascal@371
|
454 <frame Arp table>
|
pascal@371
|
455 <text wrap="false" width-chars="58">
|
pascal@371
|
456 <input>arp</input>
|
pascal@371
|
457 </text>
|
pascal@371
|
458 </frame>
|
pascal@371
|
459 </frame>
|
pascal@371
|
460 EOT
|
pascal@371
|
461 }
|
pankso@194
|
462
|
pankso@33
|
463 #
|
pascal@371
|
464 # Status servers
|
pascal@371
|
465 #
|
pascal@371
|
466 tab_status_servers()
|
pascal@371
|
467 {
|
pascal@372
|
468 local servers
|
pascal@372
|
469 servers="dropbear sshd inetd dhcpd dnsd named rsync httpd mbd vnc pppd knock"
|
pascal@371
|
470 cat <<EOT
|
pascal@371
|
471 <frame Servers>
|
pascal@371
|
472 <text wrap="false" width-chars="58">
|
pascal@372
|
473 <input>for i in $servers; do ps ww | grep \$i | grep -v grep | fold -s; done</input>
|
pascal@371
|
474 </text>
|
pascal@371
|
475 </frame>
|
pascal@371
|
476 EOT
|
pascal@371
|
477 }
|
pankso@33
|
478
|
pascal@371
|
479 data_status()
|
pascal@371
|
480 {
|
pascal@371
|
481 cat <<EOT
|
pascal@371
|
482 ifconfig Network\ interfaces tab_status_iface
|
pascal@371
|
483 iwconfig Wireless\ interfaces tab_status_wifi_iface
|
pascal@371
|
484 iwlist Wireless\ networks tab_status_wifi_net
|
pascal@371
|
485 route Routing tab_status_route
|
pascal@371
|
486 ps Servers tab_status_servers
|
pascal@371
|
487 EOT
|
pascal@371
|
488 }
|
pascal@371
|
489
|
pankso@33
|
490 #
|
pascal@371
|
491 # Status
|
pascal@371
|
492 #
|
pascal@371
|
493 tab_status()
|
pascal@371
|
494 {
|
pascal@371
|
495 use_tab data_status
|
pascal@371
|
496 }
|
pankso@194
|
497
|
pascal@371
|
498 #
|
pankso@297
|
499 # Interfaces list from detect_interfaces()
|
pascal@371
|
500 #
|
pascal@371
|
501 tab_connections()
|
pascal@371
|
502 {
|
pascal@371
|
503 cat <<EOT
|
pankso@297
|
504 <vbox>
|
pankso@297
|
505 <tree>
|
pankso@297
|
506 <width>520</width><height>120</height>
|
pankso@297
|
507 <variable>INTERFACE_LIST</variable>
|
pankso@297
|
508 <label>Interface|Type|Status</label>
|
pascal@371
|
509 <input icon_column="0">$0 detect_interfaces</input>
|
pankso@297
|
510 <action>refresh:INTERFACE_LIST</action>
|
pankso@297
|
511 </tree>
|
pascal@371
|
512 </vbox>
|
pascal@371
|
513 EOT
|
pascal@371
|
514 }
|
pankso@297
|
515
|
pascal@371
|
516 #
|
pankso@297
|
517 # DHCP
|
pascal@371
|
518 #
|
pascal@371
|
519 tab_udhcpc()
|
pascal@371
|
520 {
|
pascal@371
|
521 cat <<EOT
|
pankso@292
|
522 <frame Udhcpc (busybox)>
|
pankso@292
|
523 <text width-chars="58">
|
pascal@371
|
524 <label> "Ethernet (cable) default connection." </label>
|
pankso@292
|
525 </text>
|
pankso@292
|
526 <hbox>
|
pankso@292
|
527 <text use-markup="true">
|
pankso@292
|
528 <label>"<b>Interface:</b>"</label>
|
pankso@292
|
529 </text>
|
pankso@292
|
530 <entry>
|
pascal@371
|
531 <input>. /etc/network.conf; echo "\$INTERFACE"</input>
|
pankso@292
|
532 <variable>INTERFACE</variable>
|
pankso@292
|
533 </entry>
|
pankso@292
|
534 </hbox>
|
pankso@292
|
535 <hbox>
|
pankso@292
|
536 <text use-markup="true">
|
pankso@292
|
537 <label>"<b>Options: </b>"</label>
|
pankso@292
|
538 </text>
|
pankso@292
|
539 <entry>
|
pankso@292
|
540 <default>-b</default>
|
pankso@292
|
541 <variable>UDHCPC_OPTS</variable>
|
pankso@292
|
542 </entry>
|
pascal@372
|
543 $(helpbutton udhcpc 80x30)
|
pankso@292
|
544 </hbox>
|
pankso@292
|
545 <hbox>
|
pankso@292
|
546 <text use-markup="true">
|
pankso@292
|
547 <label>"<b>Script: </b>"</label>
|
pankso@292
|
548 </text>
|
pankso@292
|
549 <entry editable="false">
|
pankso@292
|
550 <default>/usr/share/udhcpc/default.script</default>
|
pankso@292
|
551 <variable>UDHCPC_SCRIPT</variable>
|
pankso@292
|
552 </entry>
|
pascal@377
|
553 $(editbutton \$UDHCPC_SCRIPT)
|
pankso@292
|
554 </hbox>
|
pankso@292
|
555 <hbox>
|
pankso@292
|
556 <button>
|
pankso@292
|
557 <label>Start</label>
|
pankso@292
|
558 <input file icon="forward"></input>
|
pascal@371
|
559 <action>sed -i s/`cat /etc/network.conf | grep ^INTERFACE=`/INTERFACE="\$INTERFACE"/ /etc/network.conf</action>
|
pascal@371
|
560 <action>sed -i s/DHCP="no"/DHCP="yes"/ /etc/network.conf</action>
|
pascal@371
|
561 <action>sed -i s/STATIC="yes"/STATIC="no"/ /etc/network.conf</action>
|
pascal@371
|
562 <action>udhcpc \$UDHCPC_OPTS -i \$INTERFACE -p /var/run/udhcpc.\$INTERFACE.pid</action>
|
pankso@297
|
563 <action>refresh:INTERFACE_LIST</action>
|
pankso@292
|
564 </button>
|
pankso@292
|
565 <button>
|
pankso@292
|
566 <label>Stop</label>
|
pankso@292
|
567 <input file icon="stop"></input>
|
pascal@371
|
568 <action>echo -n "Stopping interface : \$INTERFACE... "</action>
|
pascal@371
|
569 <action>ifconfig \$INTERFACE down</action>
|
pankso@292
|
570 <action>killall -q udhcpc; echo "done"</action>
|
pankso@297
|
571 <action>refresh:INTERFACE_LIST</action>
|
pankso@292
|
572 </button>
|
pankso@292
|
573 </hbox>
|
pascal@371
|
574 </frame>
|
pascal@371
|
575 EOT
|
pascal@371
|
576 }
|
pankso@194
|
577
|
pascal@371
|
578 #
|
pankso@292
|
579 # Static/fixed IP settings.
|
pascal@371
|
580 #
|
pascal@371
|
581 tab_fixed_ip()
|
pascal@371
|
582 {
|
pascal@371
|
583 cat <<EOT
|
pankso@292
|
584 <frame Ethernet fixed IP>
|
pankso@292
|
585 <hbox>
|
pankso@292
|
586 <text use-markup="true">
|
pankso@292
|
587 <label>"<b>Interface: </b>"</label>
|
pankso@292
|
588 </text>
|
pankso@292
|
589 <entry>
|
pascal@371
|
590 <input>. /etc/network.conf; echo "\$INTERFACE"</input>
|
pankso@292
|
591 <variable>INTERFACE</variable>
|
pankso@292
|
592 </entry>
|
pankso@292
|
593 </hbox>
|
pankso@292
|
594 <hbox>
|
pankso@292
|
595 <text use-markup="true">
|
pankso@292
|
596 <label>"<b>IP: </b>"</label>
|
pankso@292
|
597 </text>
|
pankso@292
|
598 <entry>
|
pascal@371
|
599 <input>. /etc/network.conf; echo "\$IP"</input>
|
pankso@292
|
600 <variable>IP</variable>
|
pankso@292
|
601 </entry>
|
pankso@292
|
602 </hbox>
|
pankso@292
|
603 <hbox>
|
pankso@292
|
604 <text use-markup="true">
|
pankso@292
|
605 <label>"<b>Netmask: </b>"</label>
|
pankso@292
|
606 </text>
|
pankso@292
|
607 <entry>
|
pascal@371
|
608 <input>. /etc/network.conf; echo "\$NETMASK"</input>
|
pankso@292
|
609 <variable>NETMASK</variable>
|
pankso@292
|
610 </entry>
|
pankso@292
|
611 </hbox>
|
pankso@292
|
612 <hbox>
|
pankso@292
|
613 <text use-markup="true">
|
pankso@292
|
614 <label>"<b>Gateway: </b>"</label>
|
pankso@292
|
615 </text>
|
pankso@292
|
616 <entry>
|
pascal@371
|
617 <input>. /etc/network.conf; echo "\$GATEWAY"</input>
|
pankso@292
|
618 <variable>GATEWAY</variable>
|
pankso@292
|
619 </entry>
|
pankso@292
|
620 </hbox>
|
pankso@292
|
621 <hbox>
|
pankso@292
|
622 <text use-markup="true">
|
pankso@292
|
623 <label>"<b>DNS server: </b>"</label>
|
pankso@292
|
624 </text>
|
pankso@292
|
625 <entry>
|
pascal@371
|
626 <input>. /etc/network.conf; echo "\$DNS_SERVER"</input>
|
pankso@292
|
627 <variable>DNS_SERVER</variable>
|
pankso@292
|
628 </entry>
|
pascal@371
|
629 </hbox>
|
pankso@292
|
630 <hbox>
|
pankso@292
|
631 <button>
|
pankso@292
|
632 <label>Start</label>
|
pankso@292
|
633 <input file icon="forward"></input>
|
pankso@292
|
634 <action>ifconfig lo down</action>
|
pascal@371
|
635 <action>ifconfig \$INTERFACE down</action>
|
pascal@371
|
636 <action>sed -i s/`cat /etc/network.conf | grep ^INTERFACE=`/INTERFACE="\$INTERFACE"/ /etc/network.conf</action>
|
pascal@371
|
637 <action>sed -i s/DHCP="yes"/DHCP="no"/ /etc/network.conf</action>
|
pascal@371
|
638 <action>sed -i s/WIFI="yes"/WIFI="no"/ /etc/network.conf</action>
|
pascal@371
|
639 <action>sed -i s/STATIC="no"/STATIC="yes"/ /etc/network.conf</action>
|
pascal@371
|
640 <action>sed -i s/`cat /etc/network.conf | grep ^IP=`/IP="\$IP"/ /etc/network.conf</action>
|
pascal@371
|
641 <action>sed -i s/`cat /etc/network.conf | grep ^NETMASK=`/NETMASK="\$NETMASK"/ /etc/network.conf</action>
|
pascal@371
|
642 <action>sed -i s/`cat /etc/network.conf | grep ^GATEWAY=`/GATEWAY="\$GATEWAY"/ /etc/network.conf</action>
|
pascal@371
|
643 <action>sed -i s/`cat /etc/network.conf | grep ^DNS_SERVER=`/DNS_SERVER="\$DNS_SERVER"/ /etc/network.conf</action>
|
pankso@292
|
644 <action>/etc/init.d/network.sh</action>
|
pankso@297
|
645 <action>refresh:INTERFACE_LIST</action>
|
pankso@292
|
646 </button>
|
pankso@292
|
647 <button>
|
pankso@292
|
648 <label>Stop</label>
|
pankso@292
|
649 <input file icon="stop"></input>
|
pascal@371
|
650 <action>ifconfig \$INTERFACE down</action>
|
pankso@297
|
651 <action>refresh:INTERFACE_LIST</action>
|
pankso@292
|
652 </button>
|
pankso@292
|
653 </hbox>
|
pascal@371
|
654 </frame>
|
pascal@371
|
655 EOT
|
pascal@371
|
656 }
|
pankso@292
|
657
|
pascal@371
|
658 #
|
pankso@292
|
659 # PPPoe settings.
|
pascal@371
|
660 #
|
pascal@371
|
661 tab_pppoe()
|
pascal@371
|
662 {
|
pascal@371
|
663 cat <<EOT
|
pankso@292
|
664 <frame PPPoE>
|
pankso@292
|
665 <hbox>
|
pankso@292
|
666 <text use-markup="true">
|
pankso@292
|
667 <label>"<b>Name: </b>"</label>
|
pankso@292
|
668 </text>
|
pankso@292
|
669 <entry>
|
pascal@371
|
670 <input>NAME=\$(grep -s ^name /etc/ppp/options); echo "\${NAME#* }"</input>
|
pankso@292
|
671 <variable>NAME</variable>
|
pankso@292
|
672 </entry>
|
pankso@292
|
673 </hbox>
|
pankso@292
|
674 <hbox>
|
pankso@292
|
675 <text use-markup="true">
|
pankso@292
|
676 <label>"<b>Username:</b>"</label>
|
pankso@292
|
677 </text>
|
pankso@292
|
678 <entry>
|
pankso@292
|
679 <variable>USER</variable>
|
pankso@292
|
680 </entry>
|
pankso@292
|
681 </hbox>
|
pankso@292
|
682 <hbox>
|
pankso@292
|
683 <text use-markup="true">
|
pankso@292
|
684 <label>"<b>Password:</b>"</label>
|
pankso@292
|
685 </text>
|
pankso@292
|
686 <entry>
|
pankso@292
|
687 <variable>PASS</variable>
|
pankso@292
|
688 </entry>
|
pankso@292
|
689 </hbox>
|
pankso@292
|
690 <hbox>
|
pascal@371
|
691 $(helpbutton pppd 80x30)
|
pascal@371
|
692 $(manbutton 8 pppd)
|
pascal@374
|
693 $(webbutton ppp)
|
pankso@292
|
694 <button>
|
pankso@292
|
695 <input file icon="accessories-text-editor"></input>
|
pankso@292
|
696 <label>Tune</label>
|
pascal@371
|
697 <action>[ -n "\$NAME" ] && sed -i "s/^name .*/name \$NAME/" /etc/ppp/options</action>
|
pankso@292
|
698 <action type="lauch">leafpad /etc/ppp/options</action>
|
pankso@292
|
699 </button>
|
pankso@292
|
700 <button>
|
pankso@292
|
701 <label>Start</label>
|
pankso@292
|
702 <input file icon="forward"></input>
|
pascal@371
|
703 <action>[ -n "\$USER" ] && grep -qs "^\"\$USER\"" /etc/ppp/pap-secrets
|
pascal@371
|
704 && echo "\"\$USER\" * \"\$PASS\"" >> /etc/ppp/pap-secrets</action>
|
pascal@371
|
705 <action>[ -n "\$USER" ] && grep -qs "^\"\$USER\"" /etc/ppp/chap-secrets
|
pascal@371
|
706 && echo "\"\$USER\" * \"\$PASS\"" >> /etc/ppp/chap-secrets</action>
|
pascal@371
|
707 <action>[ -n "\$NAME" ] && sed -i "s/^name .*/name \$NAME/" /etc/ppp/options</action>
|
pankso@292
|
708 <action>killall udhcpc</action>
|
pankso@292
|
709 <action>sed -i "s/DHCP=\"yes\"/DHCP=\"no\"/" /etc/network.conf</action>
|
pankso@292
|
710 <action>sed -i "s/PPPOE=\"no\"/PPPOE=\"yes\"/" /etc/network.conf</action>
|
pascal@371
|
711 <action>pppd \$INTERFACE &</action>
|
pankso@292
|
712 </button>
|
pankso@292
|
713 <button>
|
pankso@292
|
714 <label>Stop</label>
|
pankso@292
|
715 <input file icon="stop"></input>
|
pankso@292
|
716 <action>sed -i "s/PPPOE=\"yes\"/PPPOE=\"no\"/" /etc/network.conf</action>
|
pankso@292
|
717 <action>killall pppd</action>
|
pankso@292
|
718 </button>
|
pankso@292
|
719 </hbox>
|
pascal@371
|
720 </frame>
|
pascal@371
|
721 EOT
|
pascal@371
|
722 }
|
pankso@292
|
723
|
pascal@371
|
724 #
|
pankso@292
|
725 # PPP settings.
|
pascal@371
|
726 #
|
pascal@371
|
727 tab_ppp()
|
pascal@371
|
728 {
|
pascal@371
|
729 cat <<EOT
|
pankso@292
|
730 <frame PPP>
|
pankso@292
|
731 <hbox>
|
pankso@292
|
732 <text use-markup="true">
|
pankso@292
|
733 <label>"<b>Username: </b>"</label>
|
pankso@292
|
734 </text>
|
pankso@292
|
735 <entry>
|
pascal@371
|
736 <input>USER=\$(grep -s ^ACCOUNT= /etc/ppp/scripts/ppp-on | cut -f1); echo "\${USER#*=}"</input>
|
pankso@292
|
737 <variable>USER</variable>
|
pankso@292
|
738 </entry>
|
pankso@292
|
739 </hbox>
|
pankso@292
|
740 <hbox>
|
pankso@292
|
741 <text use-markup="true">
|
pankso@292
|
742 <label>"<b>Password: </b>"</label>
|
pankso@292
|
743 </text>
|
pankso@292
|
744 <entry>
|
pascal@371
|
745 <input>PASS=\$(grep -s ^PASSWORD= /etc/ppp/scripts/ppp-on | cut -f1); echo "\${PASS#*=}"</input>
|
pankso@292
|
746 <variable>PASS</variable>
|
pankso@292
|
747 </entry>
|
pankso@292
|
748 </hbox>
|
pankso@292
|
749 <hbox>
|
pankso@292
|
750 <text use-markup="true">
|
pankso@292
|
751 <label>"<b>Telephone:</b>"</label>
|
pankso@292
|
752 </text>
|
pankso@292
|
753 <entry>
|
pascal@371
|
754 <input>PHONE=\$(grep -s ^TELEPHONE= /etc/ppp/scripts/ppp-on | cut -f1); echo "\${PHONE#*=}"</input>
|
pankso@292
|
755 <variable>PHONE</variable>
|
pankso@292
|
756 </entry>
|
pankso@292
|
757 </hbox>
|
pankso@292
|
758 <hbox>
|
pascal@371
|
759 $(helpbutton pppd 80x30)
|
pascal@371
|
760 $(manbutton 8 pppd)
|
pascal@374
|
761 $(webbutton ppp)
|
pankso@292
|
762 <button>
|
pankso@292
|
763 <input file icon="accessories-text-editor"></input>
|
pankso@292
|
764 <label>Tune</label>
|
pascal@371
|
765 <action>[ -n "\$NAME" ] && sed -i "s/^ACCOUNT=.*/ACCOUNT=\$NAME/" /etc/ppp/scripts/ppp-on</action>
|
pascal@371
|
766 <action>[ -n "\$PASS" ] && sed -i "s/^PASSWORD=.*/PASSWORD=\$PASS/" /etc/ppp/scripts/ppp-on</action>
|
pascal@371
|
767 <action>[ -n "\$PHONE" ] && sed -i "s/^TELEPHONE=.*/TELEPHONE=\$PHONE/" /etc/ppp/scripts/ppp-on</action>
|
pankso@292
|
768 <action type="lauch">leafpad /etc/ppp/scripts/ppp-on</action>
|
pankso@292
|
769 </button>
|
pankso@292
|
770 <button>
|
pankso@292
|
771 <label>Start</label>
|
pankso@292
|
772 <input file icon="forward"></input>
|
pascal@371
|
773 <action>[ -n "\$USER" ] && grep -qs "^\"\$USER\"" /etc/ppp/pap-secrets
|
pascal@371
|
774 && echo "\"\$USER\" * \"\$PASS\"" >> /etc/ppp/pap-secrets</action>
|
pascal@371
|
775 <action>[ -n "\$USER" ] && grep -qs "^\"\$USER\"" /etc/ppp/chap-secrets
|
pascal@371
|
776 && echo "\"\$USER\" * \"\$PASS\"" >> /etc/ppp/chap-secrets</action>
|
pascal@371
|
777 <action>[ -n "\$NAME" ] && sed -i "s/^name .*/name \$NAME/" /etc/ppp/options</action>
|
pankso@292
|
778 <action>/etc/ppp/scripts/ppp-off</action>
|
pankso@292
|
779 <action>/etc/ppp/scripts/ppp-on &</action>
|
pankso@292
|
780 </button>
|
pankso@292
|
781 <button>
|
pankso@292
|
782 <label>Stop</label>
|
pankso@292
|
783 <input file icon="stop"></input>
|
pankso@292
|
784 <action>/etc/ppp/scripts/ppp-off</action>
|
pankso@292
|
785 </button>
|
pankso@292
|
786 </hbox>
|
pascal@371
|
787 </frame>
|
pascal@371
|
788 EOT
|
pascal@371
|
789 }
|
pankso@292
|
790
|
pankso@292
|
791 #
|
pascal@371
|
792 # System Wide configuration.
|
pankso@292
|
793 #
|
pascal@371
|
794 tab_system()
|
pascal@371
|
795 {
|
pascal@371
|
796 cat <<EOT
|
pascal@371
|
797 <frame Configuration files>
|
pankso@33
|
798 <hbox>
|
pankso@33
|
799 <text use-markup="true">
|
pankso@34
|
800 <label>"<b>Hosts :</b>"</label>
|
pankso@33
|
801 </text>
|
pankso@33
|
802 <entry editable="false">
|
pankso@33
|
803 <default>/etc/hosts</default>
|
pankso@33
|
804 <variable>HOSTS</variable>
|
pankso@33
|
805 </entry>
|
pascal@377
|
806 $(editbutton \$HOSTS)
|
pankso@33
|
807 </hbox>
|
pankso@33
|
808 <hbox>
|
pankso@33
|
809 <text use-markup="true">
|
pankso@34
|
810 <label>"<b>Host name :</b>"</label>
|
pankso@33
|
811 </text>
|
pankso@33
|
812 <entry editable="false">
|
pankso@33
|
813 <default>/etc/hostname</default>
|
pankso@33
|
814 <variable>HOSTNAME</variable>
|
pankso@33
|
815 </entry>
|
pascal@377
|
816 $(editbutton \$HOSTNAME)
|
pankso@33
|
817 </hbox>
|
pankso@33
|
818 <hbox>
|
pankso@33
|
819 <text use-markup="true">
|
pankso@34
|
820 <label>"<b>Network :</b>"</label>
|
pankso@33
|
821 </text>
|
pankso@33
|
822 <entry editable="false">
|
pankso@33
|
823 <default>/etc/network.conf</default>
|
pankso@33
|
824 <variable>CONFIG_FILE</variable>
|
pankso@33
|
825 </entry>
|
pascal@377
|
826 $(editbutton \$CONFIG_FILE)
|
pankso@33
|
827 </hbox>
|
pankso@33
|
828 <hbox>
|
pankso@33
|
829 <button>
|
pankso@33
|
830 <label>Restart</label>
|
pankso@33
|
831 <input file icon="reload"></input>
|
pascal@371
|
832 <action>echo -n "Stopping interface : \$INTERFACE... "</action>
|
pascal@371
|
833 <action>ifconfig \$INTERFACE down</action>
|
pankso@33
|
834 <action>killall -q udhcpc; echo "done"</action>
|
pascal@261
|
835 <action>/etc/init.d/network.sh restart</action>
|
pankso@33
|
836 </button>
|
pankso@33
|
837 </hbox>
|
pascal@371
|
838 </frame>
|
pascal@371
|
839 EOT
|
pascal@371
|
840 }
|
pankso@194
|
841
|
pascal@371
|
842 #
|
pascal@371
|
843 # ssh/ppp
|
pascal@371
|
844 #
|
pascal@371
|
845 tab_sshppp()
|
pascal@371
|
846 {
|
pascal@371
|
847 cat <<EOT
|
pascal@177
|
848 <frame Virtual Private Network with PPP/SSH>
|
pascal@177
|
849 <hbox>
|
pascal@177
|
850 <text use-markup="true">
|
pascal@177
|
851 <label>"<b>Peer :</b>"</label>
|
pascal@177
|
852 </text>
|
pascal@177
|
853 <entry>
|
pascal@177
|
854 <variable>DROPBEAR_PEERVPN</variable>
|
pascal@177
|
855 <default>user@elsewhere</default>
|
pascal@177
|
856 </entry>
|
pascal@177
|
857 </hbox>
|
pascal@177
|
858 <hbox>
|
pascal@177
|
859 <text use-markup="true">
|
pascal@177
|
860 <label>"<b>Local IP :</b>"</label>
|
pascal@177
|
861 </text>
|
pascal@177
|
862 <entry>
|
pascal@177
|
863 <variable>DROPBEAR_LOCAL</variable>
|
pascal@177
|
864 <default>192.168.254.1</default>
|
pascal@177
|
865 </entry>
|
pascal@177
|
866 </hbox>
|
pascal@177
|
867 <hbox>
|
pascal@177
|
868 <text use-markup="true">
|
pascal@177
|
869 <label>"<b>Remote IP :</b>"</label>
|
pascal@177
|
870 </text>
|
pascal@177
|
871 <entry>
|
pascal@177
|
872 <variable>DROPBEAR_REMOTE</variable>
|
pascal@177
|
873 <default>192.168.254.2</default>
|
pascal@177
|
874 </entry>
|
pascal@177
|
875 </hbox>
|
pascal@177
|
876 <hbox>
|
pascal@177
|
877 <text use-markup="true">
|
pascal@177
|
878 <label>"<b>Route(s) :</b>"</label>
|
pascal@177
|
879 </text>
|
pascal@177
|
880 <entry>
|
pascal@177
|
881 <variable>DROPBEAR_ROUTE</variable>
|
pascal@177
|
882 <default>192.168.10.0/24 192.168.20.0/28</default>
|
pascal@177
|
883 </entry>
|
pascal@177
|
884 </hbox>
|
pascal@177
|
885 <hbox>
|
pascal@372
|
886 $(wikibutton http://wiki.slitaz.org/doku.php?id=quickstart:vpn)
|
pascal@247
|
887 <button>
|
pascal@177
|
888 <input file icon="forward"></input>
|
pascal@177
|
889 <label>Connect</label>
|
pascal@371
|
890 <action>$0 call vpnssh \$DROPBEAR_PEERVPN \$DROPBEAR_LOCAL \$DROPBEAR_REMOTE "\$DROPBEAR_ROUTE" &</action>
|
pascal@177
|
891 </button>
|
pascal@177
|
892 <button>
|
pascal@177
|
893 <input file icon="stop"></input>
|
pascal@177
|
894 <label>Disconnect</label>
|
pascal@371
|
895 <action>$0 call killvpnssh</action>
|
pascal@177
|
896 </button>
|
pascal@177
|
897 <button>
|
pascal@177
|
898 <input file icon="go-up"></input>
|
pascal@177
|
899 <label>Send key</label>
|
pascal@372
|
900 <action>$xterm -geometry 80x10 -title "Send key" -e "$0 call sendsshkey \$DROPBEAR_PEERVPN; echo -e \"----\nENTER to continue...\" && read close"</action>
|
pascal@177
|
901 </button>
|
pascal@177
|
902 </hbox>
|
pascal@177
|
903 </frame>
|
pascal@371
|
904 EOT
|
pascal@371
|
905 }
|
pascal@371
|
906
|
pascal@371
|
907 #
|
pascal@371
|
908 # PPTP client
|
pascal@371
|
909 #
|
pascal@371
|
910 #FIXME
|
pascal@371
|
911 #cat > /etc/ppp/peers/$TUNNEL <<EOT
|
pascal@371
|
912 #pty "pptp $SERVER --nolaunchpppd"
|
pascal@371
|
913 #lock
|
pascal@371
|
914 #noauth
|
pascal@371
|
915 #nobsdcomp
|
pascal@371
|
916 #nodeflate
|
pascal@371
|
917 #name $DOMAIN\\$USERNAME
|
pascal@371
|
918 #remotename $TUNNEL
|
pascal@371
|
919 #ipparam $TUNNEL
|
pascal@371
|
920 #$(encryption && echo "require-mppe-128")
|
pascal@371
|
921 #EOT
|
pascal@371
|
922 #pppd call $TUNNEL updetach
|
pascal@371
|
923
|
pascal@371
|
924 tab_pptp()
|
pascal@371
|
925 {
|
pascal@371
|
926 [ -f /etc/ppp/options.pptp ] || cat >> /etc/ppp/options.pptp <<EOT
|
pascal@371
|
927 lock noauth nobsdcomp nodeflate remotename PPTP
|
pascal@371
|
928 EOT
|
pascal@371
|
929 [ -f /etc/ppp/pptp-servers ] || cat >> /etc/ppp/pptp-servers <<EOT
|
pascal@371
|
930 # PPTP servers list
|
pascal@371
|
931 EOT
|
pascal@371
|
932 cat <<EOT
|
pascal@371
|
933 <frame Virtual Private Network with PPTP>
|
pascal@371
|
934 <hbox>
|
pascal@371
|
935 <text use-markup="true">
|
pascal@371
|
936 <label>"<b>Server:</b>"</label>
|
pascal@371
|
937 </text>
|
pascal@371
|
938 <combobox>
|
pascal@371
|
939 <variable>PPTP_SERVER</variable>
|
pascal@371
|
940 EOT
|
pascal@371
|
941 grep -v ^\# /etc/ppp/pptp-servers | \
|
pascal@371
|
942 awk '{ printf " <item>%s</item>\n",$1 }'
|
pascal@371
|
943 cat <<EOT
|
pascal@371
|
944 <item>SERVER</item>
|
pascal@371
|
945 </combobox>
|
pascal@377
|
946 $(editbutton /etc/ppp/pptp-servers)
|
pascal@371
|
947 </hbox>
|
pascal@371
|
948 <hbox>
|
pascal@371
|
949 <text use-markup="true">
|
pascal@371
|
950 <label>"<b> User:</b>"</label>
|
pascal@371
|
951 </text>
|
pascal@371
|
952 <combobox>
|
pascal@371
|
953 <variable>PPTP_USER</variable>
|
pascal@371
|
954 EOT
|
pascal@371
|
955 grep '\\' /etc/ppp/chap-secrets | grep -v ^\# | \
|
pascal@371
|
956 awk '{ printf " <item>%s</item>\n",$1 }'
|
pascal@371
|
957 cat <<EOT
|
pascal@371
|
958 <item>DOMAIN\USERNAME</item>
|
pascal@371
|
959 </combobox>
|
pascal@377
|
960 $(editbutton /etc/ppp/chap-secrets)
|
pascal@371
|
961 </hbox>
|
pascal@371
|
962 <hbox>
|
pascal@371
|
963 <text use-markup="true">
|
pascal@371
|
964 <label>"<b>Password:</b>"</label>
|
pascal@371
|
965 </text>
|
pascal@371
|
966 <entry>
|
pascal@371
|
967 <variable>PPTP_PASS</variable>
|
pascal@371
|
968 </entry>
|
pascal@371
|
969 </hbox>
|
pascal@371
|
970 <hbox>
|
pascal@371
|
971 <checkbox>
|
pascal@371
|
972 <label>Encryption</label>
|
pascal@371
|
973 <variable>PPTP_ENC</variable>
|
pascal@371
|
974 <default>true</default>
|
pascal@371
|
975 </checkbox>
|
pascal@371
|
976 $(helpbutton pptp 80x35)
|
pascal@371
|
977 <button>
|
pascal@371
|
978 <input file icon="accessories-text-editor"></input>
|
pascal@371
|
979 <label>Options</label>
|
pascal@371
|
980 <action type="lauch">leafpad /etc/ppp/options.pptp</action>
|
pascal@371
|
981 </button>
|
pascal@374
|
982 $(webbutton pptpclient)
|
pascal@371
|
983 <button>
|
pascal@371
|
984 <input file icon="forward"></input>
|
pascal@371
|
985 <label>Connect</label>
|
pascal@371
|
986 <action>grep -qs ^\$PPTP_USER /etc/ppp/chap-secrets || \
|
pascal@371
|
987 echo "\$PPTP_USER PPTP \"$PPTP_PASS\" *" >> /etc/ppp/chap-secrets</action>
|
pascal@371
|
988 <action>grep -qs ^\$PPTP_SERVER /etc/ppp/pptp-servers || \
|
pascal@371
|
989 echo "\$PPTP_SERVER" >> /etc/ppp/pptp-servers</action>
|
pascal@371
|
990 <action>PASS=""; [ -n "\$PPTP_PASS" ] && PASS="password \$PASS"; \
|
pascal@371
|
991 ENC=""; [ x\$PPTP_ENC == xtrue ] && ENC="require-mppe-128"; \
|
pascal@371
|
992 /usr/sbin/pptp \$PPTP_SERVER file /etc/ppp/options.pptp \$ENC user \$PPTP_USER \$PASS &
|
pascal@371
|
993 </action>
|
pascal@371
|
994 </button>
|
pascal@371
|
995 <button>
|
pascal@371
|
996 <input file icon="stop"></input>
|
pascal@371
|
997 <label>Disconnect</label>
|
pascal@371
|
998 <action>killall pptp</action>
|
pascal@371
|
999 </button>
|
pascal@371
|
1000 </hbox>
|
pascal@371
|
1001 </frame>
|
pascal@371
|
1002 EOT
|
pascal@371
|
1003 }
|
pascal@371
|
1004
|
pascal@374
|
1005 #
|
pascal@374
|
1006 # Cisco EasyVPN
|
pascal@374
|
1007 #
|
pascal@374
|
1008 tab_easyvpn()
|
pascal@374
|
1009 {
|
pascal@374
|
1010 cat <<EOT
|
pascal@374
|
1011 <frame Cisco EasyVPN>
|
pascal@374
|
1012 <hbox>
|
pascal@374
|
1013 <text use-markup="true">
|
pascal@374
|
1014 <label>"<b>VPNC_OPTIONS</b>"</label>
|
pascal@374
|
1015 </text>
|
pascal@374
|
1016 <entry editable="false">
|
pascal@374
|
1017 EOT
|
pascal@374
|
1018 [ -n "$VPNC_OPTIONS" ] && cat << EOT
|
pascal@374
|
1019 <default>$tmp</default>
|
pascal@374
|
1020 EOT
|
pascal@374
|
1021 cat << EOT
|
pascal@374
|
1022 <variable>VPNC_OPTS</variable>
|
pascal@374
|
1023 </entry>
|
pascal@374
|
1024 $(helpbutton vpnc 80x30)
|
pascal@374
|
1025 <button>
|
pascal@374
|
1026 <input file icon="help"></input>
|
pascal@374
|
1027 <label>more</label>
|
pascal@374
|
1028 <action>$xterm -geometry 80x40 -title "vpnc help (q to quit)" -e "$(which vpnc) --long-help 2>&1 | less"</action>
|
pascal@374
|
1029 </button>
|
pascal@374
|
1030 $(editbutton /etc/daemons.conf)
|
pascal@374
|
1031 </hbox>
|
pascal@374
|
1032 $(configfile /etc/vpnc/default.conf VPNC_CONF)
|
pascal@374
|
1033 $(datafile "/etc/vpnc/vpnc-script" VPNC_SCRIPT 'Script:')
|
pascal@374
|
1034 <hbox>
|
pascal@374
|
1035 $(startstopdaemon vpnc)
|
pascal@374
|
1036 </hbox>
|
pascal@374
|
1037 </frame>
|
pascal@374
|
1038 EOT
|
pascal@374
|
1039 }
|
pascal@374
|
1040
|
pascal@375
|
1041 #
|
pascal@375
|
1042 # OpenVPN
|
pascal@375
|
1043 #
|
pascal@375
|
1044 tab_openvpn()
|
pascal@375
|
1045 {
|
pascal@375
|
1046 local i
|
pascal@375
|
1047 local n
|
pascal@375
|
1048 cat <<EOT
|
pascal@375
|
1049 <frame OpenVPN>
|
pascal@375
|
1050 EOT
|
pascal@375
|
1051 n=1
|
pascal@375
|
1052 for i in /etc/openvpn/*.conf ; do
|
pascal@375
|
1053 [ -f $i ] || continue
|
pascal@375
|
1054 configfile $i OPENVPN_CONF$n
|
pascal@375
|
1055 n=$(($n + 1))
|
pascal@375
|
1056 done
|
pascal@375
|
1057 cat <<EOT
|
pascal@375
|
1058 <hbox>
|
pascal@375
|
1059 $(helpbutton openvpn 80x40)
|
pascal@375
|
1060 $(startstopdaemon openvpn)
|
pascal@375
|
1061 </hbox>
|
pascal@375
|
1062 </frame>
|
pascal@375
|
1063 EOT
|
pascal@375
|
1064 }
|
pascal@375
|
1065
|
pascal@371
|
1066 data_vpn()
|
pascal@371
|
1067 {
|
pascal@371
|
1068 cat <<EOT
|
pascal@371
|
1069 $([ -x /usr/sbin/dropbear -o -x /usr/sbin/sshd ] && echo "pppd" ||
|
pascal@371
|
1070 echo "#") PPP/SSH tab_sshppp
|
pascal@371
|
1071 pptp PPTP tab_pptp
|
pascal@374
|
1072 vpnc EasyVPN tab_easyvpn
|
pascal@375
|
1073 openvpn OpenVPN tab_openvpn
|
pascal@371
|
1074 EOT
|
pascal@371
|
1075 }
|
pascal@371
|
1076
|
pascal@371
|
1077 #
|
pascal@371
|
1078 # VPN
|
pascal@371
|
1079 #
|
pascal@371
|
1080 tab_vpn()
|
pascal@371
|
1081 {
|
pascal@371
|
1082 use_tab data_vpn
|
pascal@371
|
1083 }
|
pascal@272
|
1084
|
pascal@272
|
1085 sshremote()
|
pascal@272
|
1086 {
|
pascal@272
|
1087 cat << EOT
|
pascal@126
|
1088 <hbox>
|
pascal@177
|
1089 <text use-markup="true">
|
pascal@177
|
1090 <label>"<b>Remote :</b>"</label>
|
pascal@177
|
1091 </text>
|
pascal@177
|
1092 <entry>
|
pascal@272
|
1093 <variable>$2</variable>
|
pascal@177
|
1094 <default>user@elsewhere</default>
|
pascal@177
|
1095 </entry>
|
pascal@177
|
1096 <button>
|
pascal@177
|
1097 <input file icon="utilities-terminal"></input>
|
pascal@177
|
1098 <label>Connect</label>
|
pascal@272
|
1099 <action>xterm -fa MiscFixed -fs 11 -bg black -fg white -geometry 80x25 -title "$1" -e "$1 \$$2 ; echo -e \"----\nENTER to continue...\" && read close" &</action>
|
pascal@177
|
1100 </button>
|
pascal@177
|
1101 <button>
|
pascal@177
|
1102 <input file icon="go-up"></input>
|
pascal@177
|
1103 <label>Send key</label>
|
pascal@372
|
1104 <action>$xterm -geometry 80x10 -title "send ssh key" -e "$0 call sendsshkey \$$2; echo -e \"----\nENTER to continue...\" && read close"</action>
|
pascal@177
|
1105 </button>
|
pascal@177
|
1106 </hbox>
|
pascal@272
|
1107 EOT
|
pascal@272
|
1108 }
|
pascal@272
|
1109
|
pascal@371
|
1110 #
|
pascal@371
|
1111 # Dropbear client & server
|
pascal@371
|
1112 #
|
pascal@371
|
1113 tab_dropbear()
|
pascal@371
|
1114 {
|
pascal@371
|
1115 . /etc/daemons.conf
|
pascal@371
|
1116 set -- $DROPBEAR_OPTIONS
|
pascal@371
|
1117 while [ -n "$2" ]; do
|
pascal@371
|
1118 [ "$1" = "-b" ] && DROPBEAR_BANNER="$2" && break
|
pascal@371
|
1119 shift
|
pascal@371
|
1120 done
|
pascal@371
|
1121
|
pascal@371
|
1122 cat <<EOT
|
pascal@272
|
1123 <frame Dropbear>
|
pascal@272
|
1124 $(helpdaemon dropbear 80x30 DROPBEAR_OPTIONS DROPBEAR_OPTS)
|
pascal@272
|
1125 $(datafile /etc/dropbear/banner DROPBEAR_BANNER 'Banner :')
|
pascal@272
|
1126 $(sshremote DROPBEAR_PEER 'dbclient -i /etc/dropbear/dropbear_rsa_host_key')
|
pascal@177
|
1127 <hbox>
|
pascal@271
|
1128 $(startstopdaemon dropbear)
|
pascal@126
|
1129 </hbox>
|
pascal@126
|
1130 </frame>
|
pascal@371
|
1131 EOT
|
pascal@371
|
1132 }
|
pascal@371
|
1133
|
pascal@371
|
1134 #
|
pascal@371
|
1135 # OpenSSH client & server
|
pascal@371
|
1136 #
|
pascal@371
|
1137 tab_openssh()
|
pascal@371
|
1138 {
|
pascal@371
|
1139 cat <<EOT
|
pascal@272
|
1140 <frame OpenSSH>
|
pascal@272
|
1141 $(helpdaemon sshd 80x30 OPENSSH_OPTIONS OPENSSH_OPTS 8 nohelp)
|
pascal@272
|
1142 $(configfile /etc/ssh/sshd_config OPENSSH_CONF '5 sshd_config')
|
pascal@272
|
1143 $(sshremote OPENSSH_PEER 'ssh -i /etc/ssh/ssh_host_rsa_key')
|
pascal@126
|
1144 <hbox>
|
pascal@272
|
1145 $(startstopdaemon openssh)
|
pascal@126
|
1146 </hbox>
|
pascal@272
|
1147 </frame>
|
pascal@371
|
1148 EOT
|
pascal@371
|
1149 }
|
pascal@371
|
1150
|
pascal@371
|
1151 data_sshd()
|
pascal@371
|
1152 {
|
pascal@371
|
1153 cat <<EOT
|
pascal@371
|
1154 dropbear Dropbear tab_dropbear
|
pascal@371
|
1155 sshd OpenSSH tab_openssh
|
pascal@371
|
1156 EOT
|
pascal@371
|
1157 }
|
pascal@371
|
1158
|
pascal@371
|
1159 #
|
pascal@371
|
1160 # SSH tab
|
pascal@371
|
1161 #
|
pascal@371
|
1162 tab_sshd()
|
pascal@371
|
1163 {
|
pascal@371
|
1164 use_tab data_sshd
|
pascal@371
|
1165 }
|
pascal@371
|
1166
|
pascal@371
|
1167 #
|
pascal@371
|
1168 # Busybox Inetd
|
pascal@371
|
1169 #
|
pascal@371
|
1170 tab_inetd()
|
pascal@371
|
1171 {
|
pascal@371
|
1172 cat <<EOT
|
pascal@371
|
1173 <frame Inetd (busybox)>
|
pascal@272
|
1174 $(helpdaemon inetd 60x14 INETD_OPTIONS INETD_OPTS)
|
pascal@271
|
1175 $(configfile /etc/inetd.conf INETD_CONF)
|
pascal@126
|
1176 <hbox>
|
pascal@371
|
1177 EOT
|
pascal@151
|
1178 for i in $(grep bin /etc/inetd.conf | awk '{ print $6}'); do
|
pascal@151
|
1179 i=$(basename $i)
|
pascal@371
|
1180 helpbutton $i 60x19 $i
|
pascal@151
|
1181 done
|
pascal@371
|
1182 cat <<EOT
|
pascal@271
|
1183 $(startstopdaemon inetd)
|
pascal@126
|
1184 </hbox>
|
pascal@126
|
1185 </frame>
|
pascal@371
|
1186 EOT
|
pascal@371
|
1187 }
|
pascal@371
|
1188
|
pascal@371
|
1189 #
|
pascal@371
|
1190 # ZeroConf
|
pascal@371
|
1191 #
|
pascal@371
|
1192 tab_zcip()
|
pascal@371
|
1193 {
|
pascal@272
|
1194 if [ -x /sbin/zcip -a -z "$ZCIP_OPTIONS" ]; then
|
pascal@272
|
1195 ZCIP_OPTIONS="eth0 /etc/zcip.script"
|
pascal@215
|
1196 cat >> /etc/daemons.conf <<EOT
|
pascal@215
|
1197 # ZeroConf options
|
pascal@272
|
1198 ZCIP_OPTIONS="$ZCIP_OPTIONS"
|
pascal@215
|
1199
|
pascal@215
|
1200 EOT
|
pascal@215
|
1201 fi
|
pascal@371
|
1202 cat <<EOT
|
pascal@272
|
1203 <frame Zcip (busybox)>
|
pascal@272
|
1204 $(helpdaemon zcip 60x14 ZCIP_OPTIONS ZCIP_OPTS)
|
pascal@272
|
1205 $(datafile /etc/zcip.script CZIP_SCRIPT 'Script :')
|
pascal@215
|
1206 <hbox>
|
pascal@271
|
1207 $(startstopdaemon zcip)
|
pascal@215
|
1208 </hbox>
|
pascal@215
|
1209 </frame>
|
pascal@371
|
1210 EOT
|
pascal@371
|
1211 }
|
pascal@371
|
1212
|
pascal@371
|
1213 #
|
pascal@371
|
1214 # Dhcpd ISC
|
pascal@371
|
1215 #
|
pascal@371
|
1216 tab_isc_dhcpd()
|
pascal@371
|
1217 {
|
pascal@371
|
1218 cat <<EOT
|
pascal@272
|
1219 <frame Dhcpd (ISC)>
|
pascal@272
|
1220 $(helpdaemon dhcpd 60x14 DHCPD_OPTIONS DHCPD_OPTS)
|
pascal@272
|
1221 $(configfile /etc/dhcpd.conf DHCPD_CONF)
|
pascal@126
|
1222 <hbox>
|
pascal@272
|
1223 $(startstopdaemon dhcpd dhcp)
|
pascal@155
|
1224 </hbox>
|
pascal@272
|
1225 </frame>
|
pascal@371
|
1226 EOT
|
pascal@371
|
1227 }
|
pascal@371
|
1228
|
pascal@371
|
1229 #
|
pascal@371
|
1230 # Dhcpd Busybox
|
pascal@371
|
1231 #
|
pascal@371
|
1232 tab_udhcpd()
|
pascal@371
|
1233 {
|
pascal@371
|
1234 cat <<EOT
|
pascal@272
|
1235 <frame Udhcpd (busybox)>
|
pascal@272
|
1236 $(helpdaemon udhcpd 60x14 UDHCPD_OPTIONS UDHCPD_OPTS)
|
pascal@271
|
1237 $(configfile /etc/udhcpd.conf UDHCPD_CONF)
|
pascal@155
|
1238 <hbox>
|
pascal@383
|
1239 $(startstopdaemon udhcpd busybox)
|
pascal@126
|
1240 </hbox>
|
pascal@126
|
1241 </frame>
|
pascal@371
|
1242 EOT
|
pascal@371
|
1243 }
|
pascal@371
|
1244
|
pascal@371
|
1245 data_dhcpd()
|
pascal@371
|
1246 {
|
pascal@371
|
1247 cat <<EOT
|
pascal@371
|
1248 udhcpd Udhcpd tab_udhcpd
|
pascal@371
|
1249 dhcpd Dhcpd tab_isc_dhcpd
|
pascal@373
|
1250 dnsmasq DNSmasq tab_dnsmasq
|
pascal@371
|
1251 EOT
|
pascal@371
|
1252 }
|
pascal@371
|
1253
|
pascal@371
|
1254 #
|
pascal@371
|
1255 # dhcpd tab
|
pascal@371
|
1256 #
|
pascal@371
|
1257 tab_dhcpd()
|
pascal@371
|
1258 {
|
pascal@371
|
1259 use_tab data_dhcpd
|
pascal@371
|
1260 }
|
pascal@371
|
1261
|
pascal@371
|
1262 #
|
pascal@377
|
1263 # PXE forwarder
|
pascal@371
|
1264 #
|
pascal@377
|
1265 tab_gpxe()
|
pascal@371
|
1266 {
|
pascal@371
|
1267 cat <<EOT
|
pascal@377
|
1268 <frame PXE forwarder>
|
pascal@377
|
1269 <hbox>
|
pascal@377
|
1270 <text use-markup="true">
|
pascal@377
|
1271 <label>"<b>WEB boot URL(s) :</b>"</label>
|
pascal@377
|
1272 </text>
|
pascal@377
|
1273 </hbox>
|
pascal@377
|
1274 <hbox>
|
pascal@377
|
1275 <entry editable="true">
|
pascal@377
|
1276 <default>
|
pascal@377
|
1277 "$(dd bs=1 skip=5 count=255 if=/usr/share/boot/gpxe.pxe 2> /dev/null | strings)"
|
pascal@377
|
1278 </default>
|
pascal@377
|
1279 <variable>WEB_PXE</variable>
|
pascal@377
|
1280 </entry>
|
pascal@377
|
1281 </hbox>
|
pascal@377
|
1282 <hbox>
|
pascal@377
|
1283 $(wikibutton http://wiki.slitaz.org/doku.php?id=quickstart:pxe)
|
pascal@377
|
1284 <button>
|
pascal@377
|
1285 <input file icon="go-jump"></input>
|
pascal@377
|
1286 <label>Install</label>
|
pascal@377
|
1287 <action>
|
pascal@377
|
1288 echo -n "\$WEB_PXE" | cat - /dev/zero | \
|
pascal@377
|
1289 dd conv=notrunc bs=1 seek=5 count=255 of=/usr/share/boot/gpxe.pxe
|
pascal@377
|
1290 </action>
|
pascal@377
|
1291 <action>
|
pascal@377
|
1292 sed -i "s|tftpd -r .*\$|tftpd -r /usr/share/boot|" /etc/inetd.conf
|
pascal@377
|
1293 </action>
|
pascal@377
|
1294 <action> sed -i "/^boot_file/d" \$UDHCPD_CONF </action>
|
pascal@377
|
1295 <action> echo "boot_file gpxe.pxe" >> \$UDHCPD_CONF </action>
|
pascal@377
|
1296 <action> /etc/init.d/inetd restart </action>
|
pascal@377
|
1297 <action> /etc/init.d/udhcpd restart </action>
|
pascal@377
|
1298 <action>sed -i "s/RUN_DAEMONS=\\"\\(.*\\)inetd \?\\(.*\\)\\"/RUN_DAEMONS=\\"\1\2\\"/" /etc/rcS.conf</action>
|
pascal@377
|
1299 <action>sed -i "s/RUN_DAEMONS=\\"\\(.*\\)udhcpd \?\\(.*\\)\\"/RUN_DAEMONS=\\"\1\2\\"/" /etc/rcS.conf</action>
|
pascal@377
|
1300 <action>sed -i "s/RUN_DAEMONS=\\"\\(.*\\)\\"/RUN_DAEMONS=\\"udhcpd inetd \1\\"/" /etc/rcS.conf</action>
|
pascal@377
|
1301 </button>
|
pascal@377
|
1302 </hbox>
|
pascal@377
|
1303 </frame>
|
pascal@377
|
1304 EOT
|
pascal@377
|
1305 }
|
pascal@377
|
1306
|
pascal@377
|
1307 #
|
pascal@377
|
1308 # PXE server
|
pascal@377
|
1309 #
|
pascal@377
|
1310 tab_pxelinux()
|
pascal@377
|
1311 {
|
pascal@377
|
1312 cat <<EOT
|
pascal@377
|
1313 <frame PXElinux>
|
pascal@126
|
1314 <hbox>
|
pascal@126
|
1315 <text wrap="true">
|
pascal@126
|
1316 <label>
|
pascal@151
|
1317 "Launch Dhcpd and Inetd with Tftpd to start the PXE service."
|
pascal@126
|
1318 </label>
|
pascal@126
|
1319 </text>
|
pascal@126
|
1320 </hbox>
|
pascal@126
|
1321 <hbox>
|
pascal@126
|
1322 <text use-markup="true">
|
pascal@126
|
1323 <label>"<b>Configuration :</b>"</label>
|
pascal@126
|
1324 </text>
|
pascal@126
|
1325 <entry editable="false">
|
pascal@371
|
1326 <default>
|
pascal@371
|
1327 $(grep bin/tftpd /etc/inetd.conf | awk '{ print $NF }')/pxelinux.cfg/default
|
pascal@371
|
1328 </default>
|
pascal@126
|
1329 <variable>PXE_CONF</variable>
|
pascal@126
|
1330 </entry>
|
pascal@126
|
1331 <button>
|
pascal@126
|
1332 <input file icon="accessories-text-editor"></input>
|
pascal@371
|
1333 <action>dir=\$(dirname \$PXE_CONF); [ -d \$dir ] || mkdir -p \$dir</action>
|
pascal@371
|
1334 <action>lzma d /usr/share/boot/pxelinux.0.lzma \$(dirname \$PXE_CONF)/../pxelinux.0</action>
|
pascal@377
|
1335 <action>sed -i "/^boot_file/d" \$UDHCPD_CONF</action>
|
pascal@377
|
1336 <action>echo "boot_file pxelinux.0" >> \$UDHCPD_CONF</action>
|
pascal@371
|
1337 <action>grep -q "^siaddr" \$UDHCPD_CONF || echo "siaddr \$(ifconfig \$INTERFACE | grep inet.ad | cut -d: -f2 | cut -d\ -f1)" >> \$UDHCPD_CONF</action>
|
pascal@371
|
1338 <action>[ -f \$PXE_CONF ] || echo -e "label linux\n\tkernel bzImage\n\tappend initrd=rootfs.gz rw root=/dev/null vga=normal" > \$PXE_CONF</action>
|
pascal@371
|
1339 <action type="lauch">leafpad \$PXE_CONF</action>
|
pascal@126
|
1340 </button>
|
pascal@126
|
1341 </hbox>
|
pascal@169
|
1342 <hbox>
|
pascal@372
|
1343 $(wikibutton http://wiki.slitaz.org/doku.php?id=quickstart:pxe)
|
pascal@247
|
1344 <button>
|
pascal@169
|
1345 <input file icon="system-file-manager"></input>
|
pascal@169
|
1346 <label>Network boot files</label>
|
pascal@372
|
1347 <action>$xterm -geometry 100x25 -title "Network boot files (q to quit)" -e "find \$(dirname \$(dirname \$PXE_CONF)) -exec ls -ld {} \; | less"</action>
|
pascal@169
|
1348 </button>
|
pascal@169
|
1349 </hbox>
|
pascal@126
|
1350 </frame>
|
pascal@371
|
1351 EOT
|
pascal@371
|
1352 }
|
pascal@371
|
1353
|
pascal@377
|
1354 data_pxe()
|
pascal@377
|
1355 {
|
pascal@377
|
1356 [ -f /usr/share/boot/pxelinux.0.lzma ] && cat <<EOT
|
pascal@377
|
1357 true PXElinux tab_pxelinux
|
pascal@377
|
1358 EOT
|
pascal@377
|
1359 [ -f /usr/share/boot/gpxe.pxe ] && cat <<EOT
|
pascal@377
|
1360 true PXE\ forwarder tab_gpxe
|
pascal@377
|
1361 EOT
|
pascal@377
|
1362 }
|
pascal@377
|
1363
|
pascal@377
|
1364 #
|
pascal@377
|
1365 # PXE
|
pascal@377
|
1366 #
|
pascal@377
|
1367 tab_pxe()
|
pascal@377
|
1368 {
|
pascal@377
|
1369 use_tab data_pxe
|
pascal@377
|
1370 }
|
pascal@377
|
1371
|
pascal@371
|
1372 #
|
pascal@371
|
1373 # Busybox dnsd
|
pascal@371
|
1374 #
|
pascal@371
|
1375 tab_dnsd()
|
pascal@371
|
1376 {
|
pascal@371
|
1377 cat <<EOT
|
pascal@371
|
1378 <frame Dnsd (busybox master dns)>
|
pascal@371
|
1379 $(helpdaemon dnsd 80x15 DNSD_OPTIONS DNSD_OPTS)
|
pascal@371
|
1380 $(configfile /etc/dnsd.conf DNSD_CONF)
|
pascal@371
|
1381 <hbox>
|
pascal@383
|
1382 $(startstopdaemon dnsd busybox)
|
pascal@371
|
1383 </hbox>
|
pascal@371
|
1384 </frame>
|
pascal@371
|
1385 EOT
|
pascal@371
|
1386 }
|
pascal@371
|
1387
|
pascal@371
|
1388 #
|
pascal@371
|
1389 # ISC Bind
|
pascal@371
|
1390 #
|
pascal@371
|
1391 tab_named()
|
pascal@371
|
1392 {
|
pascal@371
|
1393 cat <<EOT
|
pascal@272
|
1394 <frame Named (ISC bind)>
|
pascal@272
|
1395 $(helpdaemon named 80x10 NAMED_OPTIONS NAMED_OPTS)
|
pascal@272
|
1396 $(configfile /etc/bind/named.conf.local NAMED_CONF)
|
pascal@126
|
1397 <hbox>
|
pascal@272
|
1398 $(startstopdaemon named bind)
|
pascal@126
|
1399 </hbox>
|
pascal@272
|
1400 </frame>
|
pascal@371
|
1401 EOT
|
pascal@371
|
1402 }
|
pascal@371
|
1403
|
pascal@373
|
1404 #
|
pascal@373
|
1405 # DNSmasq
|
pascal@373
|
1406 #
|
pascal@373
|
1407 tab_dnsmasq()
|
pascal@373
|
1408 {
|
pascal@373
|
1409 cat <<EOT
|
pascal@373
|
1410 <frame DNSmasq (DNS/DHCP/TFTP)>
|
pascal@373
|
1411 $(helpdaemon dnsmasq 100x34 DNSMASQ_OPTIONS DNSMASQ_OPTS)
|
pascal@373
|
1412 $(configfile /etc/dnsmasq.conf DNSMASQ_CONF)
|
pascal@373
|
1413 <hbox>
|
pascal@373
|
1414 $(startstopdaemon dnsmasq)
|
pascal@373
|
1415 </hbox>
|
pascal@373
|
1416 </frame>
|
pascal@373
|
1417 EOT
|
pascal@373
|
1418 }
|
pascal@373
|
1419
|
pascal@371
|
1420 data_dns()
|
pascal@371
|
1421 {
|
pascal@371
|
1422 cat <<EOT
|
pascal@371
|
1423 dnsd Dnsd tab_dnsd
|
pascal@371
|
1424 named Named tab_named
|
pascal@373
|
1425 dnsmasq DNSmasq tab_dnsmasq
|
pascal@371
|
1426 #TODO sheerdns Sheerdns tab_sheerdns
|
pascal@371
|
1427 EOT
|
pascal@371
|
1428 }
|
pascal@371
|
1429
|
pascal@371
|
1430 #
|
pascal@371
|
1431 # dns tab
|
pascal@371
|
1432 #
|
pascal@371
|
1433 tab_dns()
|
pascal@371
|
1434 {
|
pascal@371
|
1435 use_tab data_dns
|
pascal@371
|
1436 }
|
pascal@371
|
1437
|
pascal@371
|
1438 #
|
pascal@371
|
1439 # rsync server
|
pascal@371
|
1440 #
|
pascal@371
|
1441 tab_rsync()
|
pascal@371
|
1442 {
|
pascal@371
|
1443 cat <<EOT
|
pascal@272
|
1444 <frame Rsync>
|
pascal@272
|
1445 $(helpdaemon rsync 80x30 RSYNCD_OPTIONS RSYNCD_OPTS 1)
|
pascal@272
|
1446 $(configfile /etc/rsyncd.conf RSYNCD_CONF)
|
pascal@272
|
1447 $(datafile /etc/rsyncd.secrets RSYNCD_SECRETS 'Secrets file :')
|
pascal@126
|
1448 <hbox>
|
pascal@272
|
1449 $(startstopdaemon rsyncd rsync)
|
pascal@126
|
1450 </hbox>
|
pascal@126
|
1451 </frame>
|
pascal@371
|
1452 EOT
|
pascal@371
|
1453 }
|
pascal@371
|
1454
|
pascal@371
|
1455 php_ini()
|
pascal@371
|
1456 {
|
pascal@371
|
1457 [ -f /etc/php.ini ] && cat <<EOT
|
pascal@371
|
1458 <frame PHP>
|
pascal@271
|
1459 $(configfile /etc/php.ini PHP_CONF)
|
pascal@168
|
1460 </frame>
|
pascal@371
|
1461 EOT
|
pascal@371
|
1462 }
|
pascal@371
|
1463
|
pascal@371
|
1464 #
|
pascal@371
|
1465 # Apache server
|
pascal@371
|
1466 #
|
pascal@371
|
1467 tab_apache()
|
pascal@371
|
1468 {
|
pascal@371
|
1469 cat <<EOT
|
pascal@371
|
1470 <frame Apache>
|
pascal@383
|
1471 $(configfile /etc/apache/httpd.conf HTTPD_CONF)
|
pascal@371
|
1472 $(php_ini)
|
pascal@272
|
1473 <hbox>
|
pascal@272
|
1474 $(startstopdaemon apache)
|
pascal@272
|
1475 </hbox>
|
pascal@272
|
1476 </frame>
|
pascal@371
|
1477 EOT
|
pascal@371
|
1478 }
|
pascal@371
|
1479
|
pascal@371
|
1480 #
|
pascal@371
|
1481 # Lighttpd server
|
pascal@371
|
1482 #
|
pascal@371
|
1483 tab_lighttpd()
|
pascal@371
|
1484 {
|
pascal@371
|
1485 cat <<EOT
|
pascal@371
|
1486 <frame Lighttpd>
|
pascal@383
|
1487 $(helpdaemon lighttpd 80x15 LIGHTTPD_OPTIONS LIGHTTPD_OPTS)
|
pascal@383
|
1488 $(configfile /etc/lighttpd/lighttpd.conf LIGHTTPD_CONF)
|
pascal@371
|
1489 $(php_ini)
|
pascal@126
|
1490 <hbox>
|
pascal@271
|
1491 $(startstopdaemon lighttpd)
|
pascal@126
|
1492 </hbox>
|
pascal@126
|
1493 </frame>
|
pascal@371
|
1494 EOT
|
pascal@371
|
1495 }
|
pascal@371
|
1496
|
pascal@383
|
1497 #
|
pascal@383
|
1498 # Busybox httpd server
|
pascal@383
|
1499 #
|
pascal@383
|
1500 tab_httpd()
|
pascal@383
|
1501 {
|
pascal@383
|
1502 cat <<EOT
|
pascal@383
|
1503 <frame httpd (busybox)>
|
pascal@383
|
1504 $(helpdaemon httpd 80x30 HTTPD_OPTIONS HTTPD_OPTS)
|
pascal@383
|
1505 $(configfile /etc/httpd.conf HTTPD_CONF)
|
pascal@383
|
1506 $(php_ini)
|
pascal@383
|
1507 <hbox>
|
pascal@383
|
1508 $(startstopdaemon httpd busybox)
|
pascal@383
|
1509 </hbox>
|
pascal@383
|
1510 </frame>
|
pascal@383
|
1511 EOT
|
pascal@383
|
1512 }
|
pascal@383
|
1513
|
pascal@371
|
1514 data_http()
|
pascal@371
|
1515 {
|
pascal@371
|
1516 cat <<EOT
|
pascal@384
|
1517 /etc/apache/httpd.conf Apache tab_apache
|
pascal@384
|
1518 lighttpd Lighttpd tab_lighttpd
|
pascal@384
|
1519 /etc/httpd.conf Busybox\ httpd tab_httpd
|
pascal@371
|
1520 EOT
|
pascal@371
|
1521 }
|
pascal@371
|
1522
|
pascal@371
|
1523 #
|
pascal@371
|
1524 # http tab
|
pascal@371
|
1525 #
|
pascal@371
|
1526 tab_http()
|
pascal@371
|
1527 {
|
pascal@371
|
1528 use_tab data_http
|
pascal@371
|
1529 }
|
pascal@371
|
1530
|
pascal@371
|
1531 #
|
pascal@371
|
1532 # Samba servers
|
pascal@371
|
1533 #
|
pascal@371
|
1534 tab_wins()
|
pascal@371
|
1535 {
|
pascal@371
|
1536 cat <<EOT
|
pascal@371
|
1537 <frame Samba: smbd & nmbd>
|
pascal@271
|
1538 $(configfile /etc/samba/smb.conf SMBD_CONF)
|
pascal@137
|
1539 <hbox>
|
pascal@137
|
1540 <button>
|
pascal@137
|
1541 <label>Reload</label>
|
pascal@371
|
1542 <input file icon="reload"></input>
|
pascal@137
|
1543 <action>/etc/init.d/samba reload</action>
|
pascal@371
|
1544 </button>
|
pascal@271
|
1545 $(startstopdaemon samba)
|
pascal@137
|
1546 </hbox>
|
pascal@137
|
1547 </frame>
|
pascal@371
|
1548 EOT
|
pascal@371
|
1549 }
|
pascal@371
|
1550
|
pascal@371
|
1551 #
|
pascal@371
|
1552 # x11vnc
|
pascal@371
|
1553 #
|
pascal@371
|
1554 tab_vnc()
|
pascal@371
|
1555 {
|
pascal@371
|
1556 cat <<EOT
|
pascal@272
|
1557 <frame x11vnc>
|
pascal@272
|
1558 $(helpdaemon x11vnc 80x30 X11VNC_OPTIONS X11VNC_OPTS)
|
pascal@163
|
1559 <hbox>
|
pascal@371
|
1560 <text use-markup="true">
|
pascal@371
|
1561 <label>"<b>New password</b>"</label>
|
pascal@163
|
1562 </text>
|
pascal@163
|
1563 <entry>
|
pascal@163
|
1564 <variable>X11VNC_PASSWD</variable>
|
pascal@163
|
1565 </entry>
|
pascal@163
|
1566 <button>
|
pascal@371
|
1567 <input file icon="reload"></input>
|
pascal@163
|
1568 <label>Update</label>
|
pascal@272
|
1569 <action>x11vnc -storepasswd \$X11VNC_PASSWD /etc/vnc.secret</action>
|
pascal@163
|
1570 </button>
|
pascal@163
|
1571 </hbox>
|
pascal@272
|
1572 <hbox>
|
pascal@271
|
1573 $(startstopdaemon x11vnc)
|
pascal@271
|
1574 </hbox>
|
pascal@271
|
1575 </frame>
|
pascal@371
|
1576 EOT
|
pascal@371
|
1577 }
|
pascal@371
|
1578
|
pascal@371
|
1579 #
|
pascal@371
|
1580 # knock server
|
pascal@371
|
1581 #
|
pascal@371
|
1582 tab_knockd()
|
pascal@371
|
1583 {
|
pascal@371
|
1584 cat <<EOT
|
pascal@272
|
1585 <frame Knockd: trigger backdoors>
|
pascal@272
|
1586 $(helpdaemon knockd 80x15 KNOCK_OPTIONS KNOCK_OPTS)
|
pascal@271
|
1587 $(configfile /etc/knockd.conf KNOCKD_CONF)
|
pascal@271
|
1588 <hbox>
|
pascal@272
|
1589 $(startstopdaemon knockd knock)
|
pascal@271
|
1590 </hbox>
|
pascal@271
|
1591 </frame>
|
pascal@371
|
1592 EOT
|
pascal@371
|
1593 }
|
pascal@371
|
1594
|
pascal@371
|
1595 data_servers()
|
pascal@371
|
1596 {
|
pascal@373
|
1597 local $pxe
|
pascal@373
|
1598 pxe="#"
|
pascal@373
|
1599 [ -x /usr/bin/tftpd -a -x /usr/sbin/udhcpd ] && pxe="inetd"
|
pascal@374
|
1600 [ -x /usr/sbin/dnsmasq ] && pxe="true"
|
pascal@377
|
1601 [ -f /usr/share/boot/pxelinux.0.lzma -o /usr/share/boot/gpxe.pxe ] || pxe="#"
|
pascal@371
|
1602 cat <<EOT
|
pascal@371
|
1603 $([ -x /usr/sbin/dropbear -o -x /usr/sbin/sshd ] && echo "true" ||
|
pascal@371
|
1604 echo "#") SSH tab_sshd
|
pascal@371
|
1605 inetd Inetd tab_inetd
|
pascal@371
|
1606 zcip ZeroConf tab_zcip
|
pascal@373
|
1607 $([ -x /usr/sbin/udhcpd -o -x /usr/sbin/dhcpd -o -x /usr/sbin/dnsmasq ] &&
|
pascal@373
|
1608 echo "true" ||
|
pascal@371
|
1609 echo "#") DHCP tab_dhcpd
|
pascal@373
|
1610 $pxe PXE tab_pxe
|
pascal@373
|
1611 dnsmasq tftpd tab_dnsmasq
|
pascal@373
|
1612 $([ -x /usr/sbin/dnsd -o -x /usr/sbin/named -o -x /usr/sbin/dnsmasq ] &&
|
pascal@373
|
1613 echo "true" ||
|
pascal@371
|
1614 echo "#") DNS tab_dns
|
pascal@371
|
1615 rsync Rsync tab_rsync
|
pascal@371
|
1616 $([ -x /usr/sbin/lighttpd -o -x /usr/bin/httpd ] && echo "true" ||
|
pascal@371
|
1617 echo "#") HTTP tab_http
|
pascal@371
|
1618 smbd WINS tab_wins
|
pascal@371
|
1619 x11vnc VNC tab_vnc
|
pascal@371
|
1620 knockd Knock tab_knockd
|
pascal@377
|
1621 #TODO+callback pppd Pppd tab_pppd
|
pascal@377
|
1622 #TODO pptpd PoPToP tab_poptop
|
pascal@377
|
1623 #TODO squid *sql openldap
|
pascal@371
|
1624 EOT
|
pascal@371
|
1625 }
|
pascal@371
|
1626
|
pascal@371
|
1627 #
|
pascal@371
|
1628 # Servers tab
|
pascal@371
|
1629 #
|
pascal@371
|
1630 tab_servers()
|
pascal@371
|
1631 {
|
pascal@371
|
1632 use_tab data_servers
|
pascal@371
|
1633 }
|
pascal@371
|
1634
|
pascal@371
|
1635 #
|
pascal@371
|
1636 # Firewall tab
|
pascal@371
|
1637 #
|
pascal@371
|
1638 tab_firewall()
|
pascal@371
|
1639 {
|
pascal@371
|
1640 cat <<EOT
|
pascal@371
|
1641 <frame Iptables>
|
pascal@271
|
1642 $(configfile /etc/iptables.conf IPTABLES_CONF)
|
pascal@163
|
1643 <hbox>
|
pascal@371
|
1644 $(helpbutton iptables 80x30)
|
pascal@371
|
1645 $(manbutton 8 iptables)
|
pascal@374
|
1646 $(webbutton iptables)
|
pascal@163
|
1647 <button>
|
pascal@271
|
1648 <label>Load</label>
|
pascal@371
|
1649 <input file icon="reload"></input>
|
pascal@271
|
1650 <action>cat \$IPTABLES_CONF | /sbin/iptables-restore</action>
|
pascal@271
|
1651 </button>
|
pascal@271
|
1652 <button>
|
pascal@271
|
1653 <label>Save</label>
|
pascal@371
|
1654 <input file icon="go-jump"></input>
|
pascal@271
|
1655 <action>/sbin/iptables-save > \$IPTABLES_CONF</action>
|
pascal@163
|
1656 </button>
|
pascal@163
|
1657 </hbox>
|
pascal@163
|
1658 </frame>
|
pascal@371
|
1659 EOT
|
pascal@371
|
1660 }
|
pascal@371
|
1661
|
pascal@371
|
1662 #
|
pascal@371
|
1663 # knock client
|
pascal@371
|
1664 #
|
pascal@371
|
1665 tab_knock()
|
pascal@371
|
1666 {
|
pascal@371
|
1667 cat <<EOT
|
pascal@371
|
1668 <frame Knock>
|
pascal@271
|
1669 <hbox>
|
pascal@271
|
1670 <text use-markup="true">
|
pascal@271
|
1671 <label>"<b>Options : </b>"</label>
|
pascal@271
|
1672 </text>
|
pascal@271
|
1673 <entry editable="true">
|
pascal@271
|
1674 <variable>KNOCK_OPTS</variable>
|
pascal@271
|
1675 <default>myserver.example.com 123:tcp 456:udp 789:tcp</default>
|
pascal@271
|
1676 </entry>
|
pascal@271
|
1677 </hbox>
|
pascal@371
|
1678 <hbox>
|
pascal@272
|
1679 $(helpbutton knock 80x12)
|
pascal@271
|
1680 <button>
|
pascal@271
|
1681 <label>Start</label>
|
pascal@371
|
1682 <input file icon="forward"></input>
|
pascal@272
|
1683 <action>knock \$KNOCK_OPTS</action>
|
pascal@271
|
1684 </button>
|
pascal@271
|
1685 </hbox>
|
pascal@271
|
1686 </frame>
|
pascal@371
|
1687 EOT
|
pascal@371
|
1688 }
|
pascal@371
|
1689
|
pascal@371
|
1690 #
|
pascal@371
|
1691 # ether-wake
|
pascal@371
|
1692 #
|
pascal@371
|
1693 tab_etherwake()
|
pascal@371
|
1694 {
|
pascal@371
|
1695 cat <<EOT
|
pascal@271
|
1696 <frame Ether-wake (busybox)>
|
pascal@141
|
1697 <hbox>
|
pascal@141
|
1698 <text use-markup="true">
|
pascal@151
|
1699 <label>"<b>Machines :</b>"</label>
|
pascal@151
|
1700 </text>
|
pascal@151
|
1701 <entry editable="false">
|
pascal@151
|
1702 <default>/etc/ethers</default>
|
pascal@151
|
1703 <variable>ETHERS</variable>
|
pascal@151
|
1704 </entry>
|
pascal@151
|
1705 <button>
|
pascal@151
|
1706 <input file icon="accessories-text-editor"></input>
|
pascal@372
|
1707 <action>[ -s \$ETHERS ] || echo "#00:01:02:03:04:05 mystation" >\$ETHERS</action>
|
pascal@371
|
1708 <action type="lauch">leafpad \$ETHERS</action>
|
pascal@151
|
1709 </button>
|
pascal@151
|
1710 </hbox>
|
pascal@151
|
1711 <hbox>
|
pascal@151
|
1712 <text use-markup="true">
|
pascal@141
|
1713 <label>"<b>Options : </b>"</label>
|
pascal@141
|
1714 </text>
|
pascal@271
|
1715 <entry editable="true">
|
pascal@141
|
1716 <variable>ETHERWAKE_OPTS</variable>
|
pascal@371
|
1717 </entry>
|
pascal@371
|
1718 $(helpbutton ether-wake 80x15)
|
pascal@371
|
1719 <button>
|
pascal@371
|
1720 <label>Start</label>
|
pascal@371
|
1721 <input file icon="forward"></input>
|
pascal@371
|
1722 <action>ether-wake \$ETHERWAKE_OPTS</action>
|
pascal@371
|
1723 </button>
|
pascal@371
|
1724 </hbox>
|
pascal@375
|
1725 <frame>
|
pascal@375
|
1726 <hbox>
|
pascal@375
|
1727 EOT
|
pascal@375
|
1728 if which ethtool > /dev/null; then
|
pascal@375
|
1729 cat <<EOT
|
pascal@375
|
1730 <text use-markup="true">
|
pascal@375
|
1731 <label>"<b>Interface:</b>"</label>
|
pascal@375
|
1732 </text>
|
pascal@375
|
1733 <combobox>
|
pascal@375
|
1734 <variable>ETHERWAKE_ETH</variable>
|
pascal@375
|
1735 EOT
|
pascal@375
|
1736 (cd /sys/class/net ; [ -d eth0 ] && ls -d eth* ) | \
|
pascal@375
|
1737 awk '{ printf " <item>%s</item>\n",$1 }'
|
pascal@375
|
1738 cat <<EOT
|
pascal@375
|
1739 </combobox>
|
pascal@375
|
1740 <button>
|
pascal@375
|
1741 <label>Enable Wake On LAN</label>
|
pascal@375
|
1742 <input file icon="forward"></input>
|
pascal@375
|
1743 <action>ethtool -s \$ETHERWAKE_ETH wok g</action>
|
pascal@375
|
1744 </button>
|
pascal@375
|
1745 EOT
|
pascal@375
|
1746 else
|
pascal@375
|
1747 cat <<EOT
|
pascal@375
|
1748 <vbox>
|
pascal@375
|
1749 <text wrap="true" width-chars="58">
|
pascal@375
|
1750 <label>
|
paul@398
|
1751 "Ethtool can enable the Wake-on-lan
|
paul@378
|
1752 feature on many Ethernet cards.
|
pascal@375
|
1753 "
|
pascal@375
|
1754 </label>
|
pascal@375
|
1755 </text>
|
pascal@375
|
1756 $(installbox ethtool)
|
pascal@375
|
1757 </vbox>
|
pascal@375
|
1758 EOT
|
pascal@375
|
1759 fi
|
pascal@375
|
1760 cat <<EOT
|
pascal@375
|
1761 </hbox>
|
pascal@375
|
1762 </frame>
|
pascal@371
|
1763 </frame>
|
pascal@371
|
1764 EOT
|
pascal@371
|
1765 }
|
pankso@33
|
1766
|
pascal@371
|
1767 data_main()
|
pascal@371
|
1768 {
|
pascal@371
|
1769 cat <<EOT
|
pascal@371
|
1770 #program tab name function
|
pascal@371
|
1771 ifconfig Connections tab_connections
|
pascal@371
|
1772 udhcpc DHCP tab_udhcpc
|
pascal@371
|
1773 ifconfig Static\ IP tab_fixed_ip
|
pascal@371
|
1774 pppoe PPPoE tab_pppoe
|
pascal@371
|
1775 pppd PPP tab_ppp
|
pascal@371
|
1776 true System\ wide tab_system
|
pascal@371
|
1777 true VPN tab_vpn
|
pascal@371
|
1778 true Servers tab_servers
|
pascal@371
|
1779 iptables Firewall tab_firewall
|
pascal@371
|
1780 knock Knock tab_knock
|
pascal@371
|
1781 ether-wake Etherwake tab_etherwake
|
pascal@371
|
1782 EOT
|
pascal@371
|
1783 }
|
pascal@371
|
1784
|
pascal@371
|
1785 tab_main()
|
pascal@371
|
1786 {
|
pascal@371
|
1787 use_tab data_main
|
pascal@371
|
1788 }
|
pascal@371
|
1789
|
pascal@371
|
1790 ######################################################
|
pascal@371
|
1791 #
|
pascal@371
|
1792 # Netbox GUI
|
pascal@371
|
1793 #
|
pascal@371
|
1794 ######################################################
|
pascal@371
|
1795
|
pascal@371
|
1796 # English/French help dialog.
|
pascal@371
|
1797 export HELP='
|
pascal@371
|
1798 <window title="Network status" icon-name="network-wire">
|
pascal@371
|
1799 <vbox>
|
pascal@371
|
1800 <text use-markup="true">
|
pascal@371
|
1801 <label>
|
pascal@371
|
1802 "
|
pascal@371
|
1803 <b>SliTaz - Netbox</b>"
|
pascal@371
|
1804 </label>
|
pascal@371
|
1805 </text>
|
pascal@371
|
1806 <frame English>
|
pascal@371
|
1807 <text wrap="true" width-chars="58">
|
pascal@371
|
1808 <label>
|
pascal@371
|
1809 "Netbox lets you manage network connections by getting a dynamic IP by
|
pascal@371
|
1810 DHCP or a static IP and setup servers. Netbox can start or stop
|
pascal@371
|
1811 networking, configure network interfaces or directly edit files."
|
pascal@371
|
1812 </label>
|
pascal@371
|
1813 </text>
|
pascal@371
|
1814 </frame>
|
pascal@371
|
1815 <frame Francais>
|
pascal@371
|
1816 <text wrap="true" width-chars="58">
|
pascal@371
|
1817 <label>
|
pascal@371
|
1818 "Netbox vous permet de gerer les connexions reseau avec une IP
|
pascal@371
|
1819 statique ou en obtenant une IP dynamique par DHCP, et de parametrer
|
pascal@371
|
1820 les serveurs. Netbox peut demarrer ou arreter le reseau, configurer
|
pascal@371
|
1821 les interfaces reseau ou editer directement les fichiers."
|
pascal@371
|
1822 </label>
|
pascal@371
|
1823 </text>
|
pascal@371
|
1824 </frame>
|
pascal@371
|
1825 </vbox>
|
pascal@371
|
1826 </window>
|
pascal@371
|
1827 '
|
pascal@371
|
1828
|
pascal@371
|
1829 # Interface status with ifconfig without arguments to show all
|
pascal@371
|
1830 # active connections.
|
pascal@371
|
1831 #
|
pascal@371
|
1832 export IFCONFIG="
|
pascal@371
|
1833 <window title=\"Network status\" icon-name=\"network-wire\">
|
pascal@371
|
1834 <vbox>
|
pascal@371
|
1835 $(tab_status)
|
pascal@371
|
1836 <hbox>
|
pascal@371
|
1837 <button>
|
pascal@371
|
1838 <input file icon=\"gtk-close\"></input>
|
pascal@371
|
1839 <action type=\"closewindow\">IFCONFIG</action>
|
pascal@371
|
1840 </button>
|
pascal@371
|
1841 </hbox>
|
pascal@371
|
1842 </vbox>
|
pascal@371
|
1843 </window>"
|
pascal@371
|
1844
|
pascal@371
|
1845 # The main dialog with notebook, start/stop buttons and all options.
|
pascal@371
|
1846 # Note that /etc/network.conf is seded when an interface is activated.
|
pascal@371
|
1847 #
|
pascal@371
|
1848 head='
|
pascal@371
|
1849 <window title="SliTaz Netbox Manager" icon-name="network-wired">
|
pascal@371
|
1850 <vbox>
|
pascal@371
|
1851
|
pascal@371
|
1852 <hbox>
|
pascal@371
|
1853 <text use-markup="true">
|
pascal@371
|
1854 <label>"<b>Network/Server Manager</b>"</label>
|
pascal@371
|
1855 </text>
|
pascal@371
|
1856 <pixmap>
|
pascal@371
|
1857 <input file>/usr/share/pixmaps/netbox.png</input>
|
pascal@371
|
1858 </pixmap>
|
pascal@371
|
1859 </hbox>
|
pascal@371
|
1860 '
|
pascal@371
|
1861 bottom='
|
pankso@297
|
1862 <hbox>
|
pankso@297
|
1863 <button>
|
pankso@297
|
1864 <label>Wireless manager</label>
|
pankso@297
|
1865 <input file icon="network-wireless"></input>
|
pankso@297
|
1866 <action>wifibox &</action>
|
pankso@297
|
1867 </button>
|
pankso@297
|
1868 <button>
|
pankso@297
|
1869 <label>Refresh list</label>
|
pankso@297
|
1870 <input file icon="reload"></input>
|
pankso@297
|
1871 <action>refresh:INTERFACE_LIST</action>
|
pankso@297
|
1872 </button>
|
pankso@297
|
1873 <button>
|
pankso@297
|
1874 <label>Full status</label>
|
pankso@297
|
1875 <input file icon="dialog-information"></input>
|
pankso@297
|
1876 <action type="launch">IFCONFIG</action>
|
pankso@297
|
1877 </button>
|
pankso@297
|
1878 <button help>
|
pankso@297
|
1879 <label>Help</label>
|
pankso@297
|
1880 <action type="launch">HELP</action>
|
pankso@297
|
1881 </button>
|
pankso@297
|
1882 <button>
|
pankso@297
|
1883 <label>Quit</label>
|
pankso@297
|
1884 <input file icon="exit"></input>
|
pankso@297
|
1885 <action type="exit">Exit</action>
|
pankso@297
|
1886 </button>
|
pankso@297
|
1887 </hbox>
|
pankso@194
|
1888
|
pankso@297
|
1889 </vbox>
|
pankso@38
|
1890 </window>
|
pankso@33
|
1891 '
|
pascal@371
|
1892
|
pascal@371
|
1893 NET_BOX="${head}$(tab_main)${bottom}"
|
pascal@126
|
1894
|
pascal@126
|
1895 export NET_BOX
|
pascal@126
|
1896
|
pascal@371
|
1897 # TODO: Modules(Network kernel modules)
|
pankso@33
|
1898
|
pankso@33
|
1899 # Only root can configure network.
|
pankso@33
|
1900 check_root
|
pankso@297
|
1901
|
pascal@177
|
1902 # Configure and connect if button Connect was pressed.
|
pascal@177
|
1903 if ! grep -qs ^name /etc/ppp/options ; then
|
pascal@177
|
1904 # Generate /etc/ppp/options
|
pascal@177
|
1905 cat > /etc/ppp/options << _EOT_
|
pascal@177
|
1906 plugin rp-pppoe.so
|
pascal@177
|
1907 name provider-ID
|
pascal@177
|
1908 noipdefault
|
pascal@177
|
1909 defaultroute
|
pascal@177
|
1910 mtu 1492
|
pascal@177
|
1911 mru 1492
|
pascal@177
|
1912 lock
|
pascal@177
|
1913 _EOT_
|
pascal@177
|
1914 # Generate /etc/ppp/pap-secrets
|
pascal@177
|
1915 cat > /etc/ppp/pap-secrets << _EOT_
|
pascal@177
|
1916 # Secrets for authentication using PAP
|
pascal@177
|
1917 # client server secret IP addresses
|
pascal@177
|
1918 _EOT_
|
pascal@177
|
1919 # Generate /etc/ppp/chap-secrets
|
pascal@177
|
1920 cat > /etc/ppp/chap-secrets << _EOT_
|
pascal@177
|
1921 # Secrets for authentication using CHAP
|
pascal@177
|
1922 # client server secret IP addresses
|
pascal@177
|
1923 _EOT_
|
pascal@177
|
1924 fi
|
pascal@259
|
1925 gtkdialog --center --program=NET_BOX | grep -a 'EXIT="restart"' && continue
|
pankso@33
|
1926 exit 0
|
pascal@259
|
1927 done
|