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