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 #
|
jozee@461
|
8 VERSION=20100315
|
jozee@461
|
9
|
jozee@461
|
10 . /usr/lib/slitaz/gui_functions
|
pankso@33
|
11
|
pankso@33
|
12 # Check if user is root.
|
pankso@33
|
13 check_root()
|
pankso@33
|
14 {
|
pankso@33
|
15 if test $(id -u) != 0 ; then
|
pankso@33
|
16 echo -e "
|
pankso@194
|
17 You must be root to run `basename $0`. Please type 'su' and
|
pankso@33
|
18 root password to become super-user.\n"
|
pankso@33
|
19 exit 0
|
pankso@33
|
20 fi
|
pankso@33
|
21 }
|
pankso@33
|
22
|
jozee@461
|
23
|
pascal@371
|
24 #
|
pankso@297
|
25 # Functions called by the connection tab to list interfaces.
|
pascal@371
|
26 #
|
pascal@371
|
27 ############################################################
|
pascal@371
|
28
|
pankso@297
|
29 interface_status()
|
pankso@297
|
30 {
|
pankso@297
|
31 if ifconfig | grep -A 1 $i | grep -q inet; then
|
pankso@297
|
32 ip=`ifconfig | grep -A 1 $i | grep inet | awk '{ print $2 }' | cut -d ":" -f 2`
|
pankso@297
|
33 echo "connected ($ip)"
|
pankso@297
|
34 else
|
pankso@297
|
35 echo "-"
|
pankso@297
|
36 fi
|
pankso@297
|
37 }
|
pankso@297
|
38 # First column is for icon name.
|
pankso@297
|
39 detect_interfaces()
|
pankso@297
|
40 {
|
pankso@297
|
41 for i in `ls /sys/class/net`
|
pankso@297
|
42 do
|
pankso@297
|
43 case $i in
|
pankso@297
|
44 eth*)
|
pankso@297
|
45 echo "network-wired | $i | Ethernet | `interface_status`" ;;
|
pankso@297
|
46 wlan*|ath*|ra*)
|
pankso@297
|
47 echo "network-wireless | $i | Wireless | `interface_status`" ;;
|
pankso@297
|
48 lo)
|
pankso@297
|
49 echo "gtk-network | $i | Loopback | `interface_status`" ;;
|
pankso@297
|
50 *)
|
pankso@297
|
51 continue ;;
|
pankso@297
|
52 esac
|
pankso@297
|
53
|
pankso@297
|
54 done
|
pankso@297
|
55 }
|
pankso@297
|
56
|
pankso@297
|
57 # When users double click on a connection.
|
pankso@297
|
58 interfaces_List_actions()
|
pankso@297
|
59 {
|
pankso@297
|
60 echo "$INTERFACE_LIST"
|
pankso@297
|
61 }
|
pankso@297
|
62
|
paul@317
|
63 # Netbox can be called with args.
|
pankso@297
|
64 case "$1" in
|
pankso@297
|
65 detect_interfaces|interfaces_List_actions)
|
pankso@297
|
66 $1
|
pankso@297
|
67 exit 0 ;;
|
pankso@297
|
68 *)
|
pankso@297
|
69 continue ;;
|
pankso@297
|
70 esac
|
pankso@297
|
71
|
pascal@177
|
72 set_ipup()
|
pascal@177
|
73 {
|
pascal@177
|
74 [ -f /etc/ppp/ip-up ] && return
|
pascal@177
|
75 cat > /etc/ppp/ip-up <<EOT
|
pascal@177
|
76 #!/bin/sh
|
pascal@177
|
77 exec $0 call ipup \$@
|
pascal@177
|
78 EOT
|
pascal@177
|
79 chmod +x /etc/ppp/ip-up
|
pascal@177
|
80 }
|
pascal@177
|
81
|
pascal@259
|
82 while true; do
|
pascal@259
|
83
|
pascal@225
|
84 # Detect WIFI_INTERFACE and update /etc/network.conf
|
pascal@224
|
85 . /etc/network.conf
|
pascal@256
|
86 if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
|
pascal@256
|
87 WIFI_INTERFACE=$(for i in /sys/class/net/*/wireless; do \
|
pascal@256
|
88 [ -d $i ] && echo $(basename $(dirname $i)) || echo wlan0; \
|
pascal@256
|
89 break; done)
|
pascal@224
|
90 [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf
|
pascal@224
|
91 fi
|
pascal@224
|
92
|
pascal@371
|
93 #
|
pascal@371
|
94 # Netbox internal calls
|
pascal@371
|
95 #
|
pascal@371
|
96 #########################################################
|
pascal@371
|
97
|
pascal@177
|
98 if [ "$1" = "call" ]; then
|
pascal@177
|
99 ppp="pppd local lock notty"
|
pascal@177
|
100 pppup=""
|
pascal@177
|
101 sub=$2
|
pascal@177
|
102 shift 2
|
pascal@177
|
103 case "$sub" in
|
pascal@177
|
104 sendsshkey)
|
pascal@177
|
105 check_root
|
pascal@372
|
106 ( dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key ;
|
pascal@372
|
107 cat /etc/ssh/ssh_host_rsa_key.pub ) 2> /dev/null | \
|
pascal@372
|
108 grep ^ssh | ssh $1 "mkdir .ssh 2> /dev/null ; \
|
pascal@372
|
109 while read key; do for i in authorized_keys authorized_keys2; do \
|
pascal@414
|
110 grep -qs '\$key' .ssh/\$i || echo '\$key' >> .ssh/\$i ; done ; done ; \
|
pascal@372
|
111 chmod 700 .ssh ; chmod 600 .ssh/authorized_keys*"
|
pascal@177
|
112 exit 0;;
|
pascal@271
|
113 # OpenSSH VPN:
|
pascal@271
|
114 # PermitTunnel=point-to-point (or yes, ethernet, no)
|
pascal@271
|
115 # Tunnel="4" => tun4
|
pascal@271
|
116 # Local Client:
|
pascal@271
|
117 # # ssh -f -w 0:1 $REMOTE true => local tun0 [, remote tun1]
|
pascal@271
|
118 # # ifconfig $TUN $IP1 $IP2 netmask 255.255.255.252
|
pascal@271
|
119 # # route add $REMOTE_NETWORK $IP2
|
pascal@271
|
120 # Remote Server:
|
pascal@271
|
121 # # ifconfig $TUN $IP2 $IP1 netmask 255.255.255.252
|
pascal@271
|
122 # # route add $LOCAL_NETWORK $IP1
|
pascal@177
|
123 vpnssh) check_root
|
pascal@177
|
124 set_ipup
|
pascal@177
|
125 ps ww | grep -q "$ppp $2:$3" && exit 1
|
pascal@177
|
126 pipe="/tmp/ssh$$"
|
pascal@177
|
127 mkfifo $pipe
|
pascal@177
|
128 [ -n "$4" ] && pppup="ipparam 'addroutes,$(echo $4 | sed 's/ /,/g')'"
|
pascal@177
|
129 cat $pipe | dbclient -i /etc/dropbear/dropbear_rsa_host_key \
|
pascal@177
|
130 $1 "$ppp" | $ppp $2:$3 $pppup > $pipe
|
pascal@177
|
131 rm -f $pipe
|
pascal@177
|
132 exit 0;;
|
pascal@177
|
133 killvpnssh)
|
pascal@177
|
134 check_root
|
pascal@177
|
135 kill $(ps x | grep dbclient | grep "$ppp" | awk '{ print $1 }')
|
pascal@177
|
136 exit 0;;
|
pascal@177
|
137 ipup)
|
pascal@177
|
138 # Arg Name Example
|
pascal@177
|
139 # $1 Interface name ppp0
|
pascal@177
|
140 # $2 The tty ttyS1
|
pascal@177
|
141 # $3 The link speed 38400
|
pascal@177
|
142 # $4 Local IP number 12.34.56.78
|
pascal@177
|
143 # $5 Peer IP number 12.34.56.99
|
pascal@177
|
144 # $6 Optional ``ipparam'' value foo
|
pascal@177
|
145 iface=$1
|
pascal@177
|
146 # skip tty if present
|
pascal@177
|
147 case "$2" in [0-9]*);; *) shift; esac
|
pascal@177
|
148 peer=$4
|
pascal@177
|
149 IFS=","; set -- $(eval echo $5); unset IFS
|
pascal@177
|
150 set -- $1
|
pascal@177
|
151 if [ "$1" = "addroutes" ]; then
|
pascal@177
|
152 while [ -n "$2" ]; do
|
pascal@177
|
153 eval $(ipcalc -n $2)
|
pascal@177
|
154 eval $(ipcalc -m $2)
|
pascal@177
|
155 route add -net $NETWORK netmask $NETMASK \
|
pascal@177
|
156 gw $peer $iface
|
pascal@177
|
157 shift
|
pascal@177
|
158 done
|
pascal@177
|
159 fi
|
pascal@177
|
160 exit 0;;
|
pascal@177
|
161 esac
|
pascal@177
|
162 echo "call $sub unsupported."
|
pascal@177
|
163 exit 1
|
pascal@177
|
164 fi
|
pascal@177
|
165
|
pascal@371
|
166
|
pascal@371
|
167
|
pascal@371
|
168 #
|
pascal@371
|
169 # Status wire interfaces
|
pascal@371
|
170 #
|
pascal@371
|
171 tab_status_iface()
|
pascal@371
|
172 {
|
pascal@375
|
173 local eth
|
pascal@375
|
174 eth="$( (cd /sys/class/net ; [ -d eth0 ] && ls -d eth* ) )"
|
pascal@375
|
175 which ethtool > /dev/null || eth=''
|
pascal@375
|
176 if [ -n "$eth" ]; then
|
pascal@375
|
177 cat <<EOT
|
pascal@375
|
178 <notebook labels="Ifconfig|$(echo $eth | sed 's/ /|/g')">
|
pascal@375
|
179 EOT
|
pascal@375
|
180 fi
|
pascal@371
|
181 cat <<EOT
|
pascal@371
|
182 <frame Ifconfig>
|
pascal@371
|
183 <text wrap="false" width-chars="58">
|
pascal@371
|
184 <input>ifconfig</input>
|
pankso@292
|
185 </text>
|
pascal@371
|
186 </frame>
|
pascal@371
|
187 EOT
|
pascal@375
|
188 if [ -n "$eth" ]; then
|
pascal@375
|
189 local i
|
pascal@375
|
190 for i in $eth ; do
|
pascal@375
|
191 cat <<EOT
|
pascal@375
|
192 <frame $i>
|
pascal@375
|
193 <text wrap="false" width-chars="58">
|
pascal@375
|
194 <input>ethtool $i</input>
|
pascal@375
|
195 </text>
|
pascal@375
|
196 </frame>
|
pascal@375
|
197 EOT
|
pascal@375
|
198 done
|
pascal@375
|
199 cat <<EOT
|
pascal@375
|
200 </notebook>
|
pascal@375
|
201 EOT
|
pascal@375
|
202 fi
|
pascal@371
|
203 }
|
pascal@371
|
204
|
pascal@371
|
205 #
|
pascal@371
|
206 # Status wifi interfaces
|
pascal@371
|
207 #
|
pascal@371
|
208 tab_status_wifi_iface()
|
pascal@371
|
209 {
|
pascal@371
|
210 cat <<EOT
|
pascal@371
|
211 <frame Iwconfig>
|
pascal@371
|
212 <text wrap="false" width-chars="58">
|
pascal@371
|
213 <input>iwconfig</input>
|
pascal@371
|
214 </text>
|
pascal@371
|
215 </frame>
|
pascal@371
|
216 EOT
|
pascal@371
|
217 }
|
pascal@371
|
218
|
pascal@371
|
219 #
|
pascal@371
|
220 # Status wifi network
|
pascal@371
|
221 #
|
pascal@371
|
222 tab_status_wifi_net()
|
pascal@371
|
223 {
|
pascal@371
|
224 cat <<EOT
|
pascal@371
|
225 <frame Wireless networks>
|
pascal@371
|
226 <text wrap="false" width-chars="58">
|
pascal@371
|
227 <input>iwlist scan</input>
|
pascal@371
|
228 </text>
|
pascal@371
|
229 </frame>
|
pascal@371
|
230 EOT
|
pascal@371
|
231 }
|
pascal@371
|
232
|
pascal@371
|
233 #
|
pascal@371
|
234 # Status routing
|
pascal@371
|
235 #
|
pascal@371
|
236 tab_status_route()
|
pascal@371
|
237 {
|
pascal@371
|
238 cat <<EOT
|
pascal@371
|
239 <frame Routing>
|
pascal@371
|
240 <frame Nameservers>
|
pascal@371
|
241 <text wrap="false" width-chars="58">
|
pascal@371
|
242 <input>cat /etc/resolv.conf</input>
|
pankso@292
|
243 </text>
|
pankso@292
|
244 </frame>
|
pascal@371
|
245 <frame Routing table>
|
pascal@371
|
246 <text wrap="false" width-chars="58">
|
pascal@371
|
247 <input>route</input>
|
pankso@292
|
248 </text>
|
pankso@292
|
249 </frame>
|
pascal@371
|
250 <frame Arp table>
|
pascal@371
|
251 <text wrap="false" width-chars="58">
|
pascal@371
|
252 <input>arp</input>
|
pascal@371
|
253 </text>
|
pascal@371
|
254 </frame>
|
pascal@371
|
255 </frame>
|
pascal@371
|
256 EOT
|
pascal@371
|
257 }
|
pankso@194
|
258
|
pascal@371
|
259 data_status()
|
pascal@371
|
260 {
|
pascal@371
|
261 cat <<EOT
|
pascal@371
|
262 ifconfig Network\ interfaces tab_status_iface
|
pascal@371
|
263 iwconfig Wireless\ interfaces tab_status_wifi_iface
|
pascal@371
|
264 iwlist Wireless\ networks tab_status_wifi_net
|
pascal@371
|
265 route Routing tab_status_route
|
pascal@371
|
266 EOT
|
pascal@371
|
267 }
|
pascal@371
|
268
|
pankso@33
|
269 #
|
pascal@371
|
270 # Status
|
pascal@371
|
271 #
|
pascal@371
|
272 tab_status()
|
pascal@371
|
273 {
|
pascal@371
|
274 use_tab data_status
|
pascal@371
|
275 }
|
pankso@194
|
276
|
pascal@371
|
277 #
|
pankso@297
|
278 # Interfaces list from detect_interfaces()
|
pascal@371
|
279 #
|
pascal@371
|
280 tab_connections()
|
pascal@371
|
281 {
|
pascal@371
|
282 cat <<EOT
|
pankso@297
|
283 <vbox>
|
pankso@297
|
284 <tree>
|
pankso@297
|
285 <width>520</width><height>120</height>
|
pankso@297
|
286 <variable>INTERFACE_LIST</variable>
|
pankso@297
|
287 <label>Interface|Type|Status</label>
|
pascal@371
|
288 <input icon_column="0">$0 detect_interfaces</input>
|
pankso@297
|
289 <action>refresh:INTERFACE_LIST</action>
|
pankso@297
|
290 </tree>
|
pascal@371
|
291 </vbox>
|
pascal@371
|
292 EOT
|
pascal@371
|
293 }
|
pankso@297
|
294
|
pascal@371
|
295 #
|
pankso@297
|
296 # DHCP
|
pascal@371
|
297 #
|
pascal@371
|
298 tab_udhcpc()
|
pascal@371
|
299 {
|
pascal@371
|
300 cat <<EOT
|
pankso@292
|
301 <frame Udhcpc (busybox)>
|
pankso@292
|
302 <text width-chars="58">
|
pascal@371
|
303 <label> "Ethernet (cable) default connection." </label>
|
pankso@292
|
304 </text>
|
pankso@292
|
305 <hbox>
|
pankso@292
|
306 <text use-markup="true">
|
pankso@292
|
307 <label>"<b>Interface:</b>"</label>
|
pankso@292
|
308 </text>
|
pankso@292
|
309 <entry>
|
pascal@371
|
310 <input>. /etc/network.conf; echo "\$INTERFACE"</input>
|
pankso@292
|
311 <variable>INTERFACE</variable>
|
pankso@292
|
312 </entry>
|
pankso@292
|
313 </hbox>
|
pankso@292
|
314 <hbox>
|
pankso@292
|
315 <text use-markup="true">
|
pankso@292
|
316 <label>"<b>Options: </b>"</label>
|
pankso@292
|
317 </text>
|
pankso@292
|
318 <entry>
|
pankso@292
|
319 <default>-b</default>
|
pankso@292
|
320 <variable>UDHCPC_OPTS</variable>
|
pankso@292
|
321 </entry>
|
pascal@372
|
322 $(helpbutton udhcpc 80x30)
|
pankso@292
|
323 </hbox>
|
pankso@292
|
324 <hbox>
|
pankso@292
|
325 <text use-markup="true">
|
pankso@292
|
326 <label>"<b>Script: </b>"</label>
|
pankso@292
|
327 </text>
|
pankso@292
|
328 <entry editable="false">
|
pankso@292
|
329 <default>/usr/share/udhcpc/default.script</default>
|
pankso@292
|
330 <variable>UDHCPC_SCRIPT</variable>
|
pankso@292
|
331 </entry>
|
pascal@377
|
332 $(editbutton \$UDHCPC_SCRIPT)
|
pankso@292
|
333 </hbox>
|
pankso@292
|
334 <hbox>
|
pankso@292
|
335 <button>
|
pankso@292
|
336 <label>Start</label>
|
pankso@292
|
337 <input file icon="forward"></input>
|
pascal@371
|
338 <action>sed -i s/`cat /etc/network.conf | grep ^INTERFACE=`/INTERFACE="\$INTERFACE"/ /etc/network.conf</action>
|
pascal@371
|
339 <action>sed -i s/DHCP="no"/DHCP="yes"/ /etc/network.conf</action>
|
pascal@371
|
340 <action>sed -i s/STATIC="yes"/STATIC="no"/ /etc/network.conf</action>
|
pascal@371
|
341 <action>udhcpc \$UDHCPC_OPTS -i \$INTERFACE -p /var/run/udhcpc.\$INTERFACE.pid</action>
|
pankso@297
|
342 <action>refresh:INTERFACE_LIST</action>
|
pankso@292
|
343 </button>
|
pankso@292
|
344 <button>
|
pankso@292
|
345 <label>Stop</label>
|
pankso@292
|
346 <input file icon="stop"></input>
|
pascal@371
|
347 <action>echo -n "Stopping interface : \$INTERFACE... "</action>
|
pascal@371
|
348 <action>ifconfig \$INTERFACE down</action>
|
pankso@292
|
349 <action>killall -q udhcpc; echo "done"</action>
|
pankso@297
|
350 <action>refresh:INTERFACE_LIST</action>
|
pankso@292
|
351 </button>
|
pankso@292
|
352 </hbox>
|
pascal@371
|
353 </frame>
|
pascal@371
|
354 EOT
|
pascal@371
|
355 }
|
pankso@194
|
356
|
pascal@371
|
357 #
|
pankso@292
|
358 # Static/fixed IP settings.
|
pascal@371
|
359 #
|
pascal@371
|
360 tab_fixed_ip()
|
pascal@371
|
361 {
|
pascal@371
|
362 cat <<EOT
|
pankso@292
|
363 <frame Ethernet fixed IP>
|
pankso@292
|
364 <hbox>
|
pankso@292
|
365 <text use-markup="true">
|
pankso@292
|
366 <label>"<b>Interface: </b>"</label>
|
pankso@292
|
367 </text>
|
pankso@292
|
368 <entry>
|
pascal@371
|
369 <input>. /etc/network.conf; echo "\$INTERFACE"</input>
|
pankso@292
|
370 <variable>INTERFACE</variable>
|
pankso@292
|
371 </entry>
|
pankso@292
|
372 </hbox>
|
pankso@292
|
373 <hbox>
|
pankso@292
|
374 <text use-markup="true">
|
pankso@292
|
375 <label>"<b>IP: </b>"</label>
|
pankso@292
|
376 </text>
|
pankso@292
|
377 <entry>
|
pascal@371
|
378 <input>. /etc/network.conf; echo "\$IP"</input>
|
pankso@292
|
379 <variable>IP</variable>
|
pankso@292
|
380 </entry>
|
pankso@292
|
381 </hbox>
|
pankso@292
|
382 <hbox>
|
pankso@292
|
383 <text use-markup="true">
|
pankso@292
|
384 <label>"<b>Netmask: </b>"</label>
|
pankso@292
|
385 </text>
|
pankso@292
|
386 <entry>
|
pascal@371
|
387 <input>. /etc/network.conf; echo "\$NETMASK"</input>
|
pankso@292
|
388 <variable>NETMASK</variable>
|
pankso@292
|
389 </entry>
|
pankso@292
|
390 </hbox>
|
pankso@292
|
391 <hbox>
|
pankso@292
|
392 <text use-markup="true">
|
pankso@292
|
393 <label>"<b>Gateway: </b>"</label>
|
pankso@292
|
394 </text>
|
pankso@292
|
395 <entry>
|
pascal@371
|
396 <input>. /etc/network.conf; echo "\$GATEWAY"</input>
|
pankso@292
|
397 <variable>GATEWAY</variable>
|
pankso@292
|
398 </entry>
|
pankso@292
|
399 </hbox>
|
pankso@292
|
400 <hbox>
|
pankso@292
|
401 <text use-markup="true">
|
pankso@292
|
402 <label>"<b>DNS server: </b>"</label>
|
pankso@292
|
403 </text>
|
pankso@292
|
404 <entry>
|
pascal@371
|
405 <input>. /etc/network.conf; echo "\$DNS_SERVER"</input>
|
pankso@292
|
406 <variable>DNS_SERVER</variable>
|
pankso@292
|
407 </entry>
|
pascal@371
|
408 </hbox>
|
pankso@292
|
409 <hbox>
|
pankso@292
|
410 <button>
|
pankso@292
|
411 <label>Start</label>
|
pankso@292
|
412 <input file icon="forward"></input>
|
pankso@292
|
413 <action>ifconfig lo down</action>
|
pascal@371
|
414 <action>ifconfig \$INTERFACE down</action>
|
pascal@371
|
415 <action>sed -i s/`cat /etc/network.conf | grep ^INTERFACE=`/INTERFACE="\$INTERFACE"/ /etc/network.conf</action>
|
pascal@371
|
416 <action>sed -i s/DHCP="yes"/DHCP="no"/ /etc/network.conf</action>
|
pascal@371
|
417 <action>sed -i s/WIFI="yes"/WIFI="no"/ /etc/network.conf</action>
|
pascal@371
|
418 <action>sed -i s/STATIC="no"/STATIC="yes"/ /etc/network.conf</action>
|
pascal@371
|
419 <action>sed -i s/`cat /etc/network.conf | grep ^IP=`/IP="\$IP"/ /etc/network.conf</action>
|
pascal@371
|
420 <action>sed -i s/`cat /etc/network.conf | grep ^NETMASK=`/NETMASK="\$NETMASK"/ /etc/network.conf</action>
|
pascal@371
|
421 <action>sed -i s/`cat /etc/network.conf | grep ^GATEWAY=`/GATEWAY="\$GATEWAY"/ /etc/network.conf</action>
|
pascal@371
|
422 <action>sed -i s/`cat /etc/network.conf | grep ^DNS_SERVER=`/DNS_SERVER="\$DNS_SERVER"/ /etc/network.conf</action>
|
pankso@292
|
423 <action>/etc/init.d/network.sh</action>
|
pankso@297
|
424 <action>refresh:INTERFACE_LIST</action>
|
pankso@292
|
425 </button>
|
pankso@292
|
426 <button>
|
pankso@292
|
427 <label>Stop</label>
|
pankso@292
|
428 <input file icon="stop"></input>
|
pascal@371
|
429 <action>ifconfig \$INTERFACE down</action>
|
pankso@297
|
430 <action>refresh:INTERFACE_LIST</action>
|
pankso@292
|
431 </button>
|
pankso@292
|
432 </hbox>
|
pascal@371
|
433 </frame>
|
pascal@371
|
434 EOT
|
pascal@371
|
435 }
|
pankso@292
|
436
|
pascal@371
|
437 #
|
pankso@292
|
438 # PPPoe settings.
|
pascal@371
|
439 #
|
pascal@371
|
440 tab_pppoe()
|
pascal@371
|
441 {
|
pascal@371
|
442 cat <<EOT
|
pankso@292
|
443 <frame PPPoE>
|
pankso@292
|
444 <hbox>
|
pankso@292
|
445 <text use-markup="true">
|
pankso@292
|
446 <label>"<b>Name: </b>"</label>
|
pankso@292
|
447 </text>
|
pankso@292
|
448 <entry>
|
pascal@371
|
449 <input>NAME=\$(grep -s ^name /etc/ppp/options); echo "\${NAME#* }"</input>
|
pankso@292
|
450 <variable>NAME</variable>
|
pankso@292
|
451 </entry>
|
pankso@292
|
452 </hbox>
|
pankso@292
|
453 <hbox>
|
pankso@292
|
454 <text use-markup="true">
|
pankso@292
|
455 <label>"<b>Username:</b>"</label>
|
pankso@292
|
456 </text>
|
pankso@292
|
457 <entry>
|
pankso@292
|
458 <variable>USER</variable>
|
pankso@292
|
459 </entry>
|
pankso@292
|
460 </hbox>
|
pankso@292
|
461 <hbox>
|
pankso@292
|
462 <text use-markup="true">
|
pankso@292
|
463 <label>"<b>Password:</b>"</label>
|
pankso@292
|
464 </text>
|
pankso@292
|
465 <entry>
|
pankso@292
|
466 <variable>PASS</variable>
|
pankso@292
|
467 </entry>
|
pankso@292
|
468 </hbox>
|
pankso@292
|
469 <hbox>
|
pascal@371
|
470 $(helpbutton pppd 80x30)
|
pascal@371
|
471 $(manbutton 8 pppd)
|
pascal@374
|
472 $(webbutton ppp)
|
pankso@292
|
473 <button>
|
pankso@292
|
474 <input file icon="accessories-text-editor"></input>
|
pankso@292
|
475 <label>Tune</label>
|
pascal@371
|
476 <action>[ -n "\$NAME" ] && sed -i "s/^name .*/name \$NAME/" /etc/ppp/options</action>
|
pankso@292
|
477 <action type="lauch">leafpad /etc/ppp/options</action>
|
pankso@292
|
478 </button>
|
pankso@292
|
479 <button>
|
pankso@292
|
480 <label>Start</label>
|
pankso@292
|
481 <input file icon="forward"></input>
|
pascal@371
|
482 <action>[ -n "\$USER" ] && grep -qs "^\"\$USER\"" /etc/ppp/pap-secrets
|
pascal@371
|
483 && echo "\"\$USER\" * \"\$PASS\"" >> /etc/ppp/pap-secrets</action>
|
pascal@371
|
484 <action>[ -n "\$USER" ] && grep -qs "^\"\$USER\"" /etc/ppp/chap-secrets
|
pascal@371
|
485 && echo "\"\$USER\" * \"\$PASS\"" >> /etc/ppp/chap-secrets</action>
|
pascal@371
|
486 <action>[ -n "\$NAME" ] && sed -i "s/^name .*/name \$NAME/" /etc/ppp/options</action>
|
pankso@292
|
487 <action>killall udhcpc</action>
|
pankso@292
|
488 <action>sed -i "s/DHCP=\"yes\"/DHCP=\"no\"/" /etc/network.conf</action>
|
pankso@292
|
489 <action>sed -i "s/PPPOE=\"no\"/PPPOE=\"yes\"/" /etc/network.conf</action>
|
pascal@371
|
490 <action>pppd \$INTERFACE &</action>
|
pankso@292
|
491 </button>
|
pankso@292
|
492 <button>
|
pankso@292
|
493 <label>Stop</label>
|
pankso@292
|
494 <input file icon="stop"></input>
|
pankso@292
|
495 <action>sed -i "s/PPPOE=\"yes\"/PPPOE=\"no\"/" /etc/network.conf</action>
|
pankso@292
|
496 <action>killall pppd</action>
|
pankso@292
|
497 </button>
|
pankso@292
|
498 </hbox>
|
pascal@371
|
499 </frame>
|
pascal@371
|
500 EOT
|
pascal@371
|
501 }
|
pankso@292
|
502
|
pascal@371
|
503 #
|
pankso@292
|
504 # PPP settings.
|
pascal@371
|
505 #
|
pascal@371
|
506 tab_ppp()
|
pascal@371
|
507 {
|
pascal@371
|
508 cat <<EOT
|
pankso@292
|
509 <frame PPP>
|
pankso@292
|
510 <hbox>
|
pankso@292
|
511 <text use-markup="true">
|
pankso@292
|
512 <label>"<b>Username: </b>"</label>
|
pankso@292
|
513 </text>
|
pankso@292
|
514 <entry>
|
pascal@371
|
515 <input>USER=\$(grep -s ^ACCOUNT= /etc/ppp/scripts/ppp-on | cut -f1); echo "\${USER#*=}"</input>
|
pankso@292
|
516 <variable>USER</variable>
|
pankso@292
|
517 </entry>
|
pankso@292
|
518 </hbox>
|
pankso@292
|
519 <hbox>
|
pankso@292
|
520 <text use-markup="true">
|
pankso@292
|
521 <label>"<b>Password: </b>"</label>
|
pankso@292
|
522 </text>
|
pankso@292
|
523 <entry>
|
pascal@371
|
524 <input>PASS=\$(grep -s ^PASSWORD= /etc/ppp/scripts/ppp-on | cut -f1); echo "\${PASS#*=}"</input>
|
pankso@292
|
525 <variable>PASS</variable>
|
pankso@292
|
526 </entry>
|
pankso@292
|
527 </hbox>
|
pankso@292
|
528 <hbox>
|
pankso@292
|
529 <text use-markup="true">
|
pankso@292
|
530 <label>"<b>Telephone:</b>"</label>
|
pankso@292
|
531 </text>
|
pankso@292
|
532 <entry>
|
pascal@371
|
533 <input>PHONE=\$(grep -s ^TELEPHONE= /etc/ppp/scripts/ppp-on | cut -f1); echo "\${PHONE#*=}"</input>
|
pankso@292
|
534 <variable>PHONE</variable>
|
pankso@292
|
535 </entry>
|
pankso@292
|
536 </hbox>
|
pankso@292
|
537 <hbox>
|
pascal@371
|
538 $(helpbutton pppd 80x30)
|
pascal@371
|
539 $(manbutton 8 pppd)
|
pascal@374
|
540 $(webbutton ppp)
|
pankso@292
|
541 <button>
|
pankso@292
|
542 <input file icon="accessories-text-editor"></input>
|
pankso@292
|
543 <label>Tune</label>
|
pascal@371
|
544 <action>[ -n "\$NAME" ] && sed -i "s/^ACCOUNT=.*/ACCOUNT=\$NAME/" /etc/ppp/scripts/ppp-on</action>
|
pascal@371
|
545 <action>[ -n "\$PASS" ] && sed -i "s/^PASSWORD=.*/PASSWORD=\$PASS/" /etc/ppp/scripts/ppp-on</action>
|
pascal@371
|
546 <action>[ -n "\$PHONE" ] && sed -i "s/^TELEPHONE=.*/TELEPHONE=\$PHONE/" /etc/ppp/scripts/ppp-on</action>
|
pankso@292
|
547 <action type="lauch">leafpad /etc/ppp/scripts/ppp-on</action>
|
pankso@292
|
548 </button>
|
pankso@292
|
549 <button>
|
pankso@292
|
550 <label>Start</label>
|
pankso@292
|
551 <input file icon="forward"></input>
|
pascal@371
|
552 <action>[ -n "\$USER" ] && grep -qs "^\"\$USER\"" /etc/ppp/pap-secrets
|
pascal@371
|
553 && echo "\"\$USER\" * \"\$PASS\"" >> /etc/ppp/pap-secrets</action>
|
pascal@371
|
554 <action>[ -n "\$USER" ] && grep -qs "^\"\$USER\"" /etc/ppp/chap-secrets
|
pascal@371
|
555 && echo "\"\$USER\" * \"\$PASS\"" >> /etc/ppp/chap-secrets</action>
|
pascal@371
|
556 <action>[ -n "\$NAME" ] && sed -i "s/^name .*/name \$NAME/" /etc/ppp/options</action>
|
pankso@292
|
557 <action>/etc/ppp/scripts/ppp-off</action>
|
pankso@292
|
558 <action>/etc/ppp/scripts/ppp-on &</action>
|
pankso@292
|
559 </button>
|
pankso@292
|
560 <button>
|
pankso@292
|
561 <label>Stop</label>
|
pankso@292
|
562 <input file icon="stop"></input>
|
pankso@292
|
563 <action>/etc/ppp/scripts/ppp-off</action>
|
pankso@292
|
564 </button>
|
pankso@292
|
565 </hbox>
|
pascal@371
|
566 </frame>
|
pascal@371
|
567 EOT
|
pascal@371
|
568 }
|
pankso@292
|
569
|
pankso@292
|
570 #
|
pascal@371
|
571 # System Wide configuration.
|
pankso@292
|
572 #
|
pascal@371
|
573 tab_system()
|
pascal@371
|
574 {
|
pascal@371
|
575 cat <<EOT
|
pascal@371
|
576 <frame Configuration files>
|
pankso@33
|
577 <hbox>
|
pankso@33
|
578 <text use-markup="true">
|
pankso@34
|
579 <label>"<b>Hosts :</b>"</label>
|
pankso@33
|
580 </text>
|
pankso@33
|
581 <entry editable="false">
|
pankso@33
|
582 <default>/etc/hosts</default>
|
pankso@33
|
583 <variable>HOSTS</variable>
|
pankso@33
|
584 </entry>
|
pascal@377
|
585 $(editbutton \$HOSTS)
|
pankso@33
|
586 </hbox>
|
pankso@33
|
587 <hbox>
|
pankso@33
|
588 <text use-markup="true">
|
pankso@34
|
589 <label>"<b>Host name :</b>"</label>
|
pankso@33
|
590 </text>
|
pankso@33
|
591 <entry editable="false">
|
pankso@33
|
592 <default>/etc/hostname</default>
|
pankso@33
|
593 <variable>HOSTNAME</variable>
|
pankso@33
|
594 </entry>
|
pascal@377
|
595 $(editbutton \$HOSTNAME)
|
pankso@33
|
596 </hbox>
|
pankso@33
|
597 <hbox>
|
pankso@33
|
598 <text use-markup="true">
|
pankso@34
|
599 <label>"<b>Network :</b>"</label>
|
pankso@33
|
600 </text>
|
pankso@33
|
601 <entry editable="false">
|
pankso@33
|
602 <default>/etc/network.conf</default>
|
pankso@33
|
603 <variable>CONFIG_FILE</variable>
|
pankso@33
|
604 </entry>
|
pascal@377
|
605 $(editbutton \$CONFIG_FILE)
|
pankso@33
|
606 </hbox>
|
pankso@33
|
607 <hbox>
|
pankso@33
|
608 <button>
|
pankso@33
|
609 <label>Restart</label>
|
pankso@33
|
610 <input file icon="reload"></input>
|
pascal@371
|
611 <action>echo -n "Stopping interface : \$INTERFACE... "</action>
|
pascal@371
|
612 <action>ifconfig \$INTERFACE down</action>
|
pankso@33
|
613 <action>killall -q udhcpc; echo "done"</action>
|
pascal@261
|
614 <action>/etc/init.d/network.sh restart</action>
|
pankso@33
|
615 </button>
|
pankso@33
|
616 </hbox>
|
pascal@371
|
617 </frame>
|
pascal@371
|
618 EOT
|
pascal@371
|
619 }
|
pankso@194
|
620
|
pascal@371
|
621 #
|
pascal@371
|
622 # ssh/ppp
|
pascal@371
|
623 #
|
pascal@371
|
624 tab_sshppp()
|
pascal@371
|
625 {
|
pascal@371
|
626 cat <<EOT
|
pascal@177
|
627 <frame Virtual Private Network with PPP/SSH>
|
pascal@177
|
628 <hbox>
|
pascal@177
|
629 <text use-markup="true">
|
pascal@177
|
630 <label>"<b>Peer :</b>"</label>
|
pascal@177
|
631 </text>
|
pascal@177
|
632 <entry>
|
pascal@177
|
633 <variable>DROPBEAR_PEERVPN</variable>
|
pascal@177
|
634 <default>user@elsewhere</default>
|
pascal@177
|
635 </entry>
|
pascal@177
|
636 </hbox>
|
pascal@177
|
637 <hbox>
|
pascal@177
|
638 <text use-markup="true">
|
pascal@177
|
639 <label>"<b>Local IP :</b>"</label>
|
pascal@177
|
640 </text>
|
pascal@177
|
641 <entry>
|
pascal@177
|
642 <variable>DROPBEAR_LOCAL</variable>
|
pascal@177
|
643 <default>192.168.254.1</default>
|
pascal@177
|
644 </entry>
|
pascal@177
|
645 </hbox>
|
pascal@177
|
646 <hbox>
|
pascal@177
|
647 <text use-markup="true">
|
pascal@177
|
648 <label>"<b>Remote IP :</b>"</label>
|
pascal@177
|
649 </text>
|
pascal@177
|
650 <entry>
|
pascal@177
|
651 <variable>DROPBEAR_REMOTE</variable>
|
pascal@177
|
652 <default>192.168.254.2</default>
|
pascal@177
|
653 </entry>
|
pascal@177
|
654 </hbox>
|
pascal@177
|
655 <hbox>
|
pascal@177
|
656 <text use-markup="true">
|
pascal@177
|
657 <label>"<b>Route(s) :</b>"</label>
|
pascal@177
|
658 </text>
|
pascal@177
|
659 <entry>
|
pascal@177
|
660 <variable>DROPBEAR_ROUTE</variable>
|
pascal@177
|
661 <default>192.168.10.0/24 192.168.20.0/28</default>
|
pascal@177
|
662 </entry>
|
pascal@177
|
663 </hbox>
|
pascal@177
|
664 <hbox>
|
pascal@498
|
665 $(wikibutton http://doc.slitaz.org/en:guides:vpn)
|
pascal@247
|
666 <button>
|
pascal@177
|
667 <input file icon="forward"></input>
|
pascal@177
|
668 <label>Connect</label>
|
pascal@371
|
669 <action>$0 call vpnssh \$DROPBEAR_PEERVPN \$DROPBEAR_LOCAL \$DROPBEAR_REMOTE "\$DROPBEAR_ROUTE" &</action>
|
pascal@177
|
670 </button>
|
pascal@177
|
671 <button>
|
pascal@177
|
672 <input file icon="stop"></input>
|
pascal@177
|
673 <label>Disconnect</label>
|
pascal@371
|
674 <action>$0 call killvpnssh</action>
|
pascal@177
|
675 </button>
|
pascal@177
|
676 <button>
|
pascal@177
|
677 <input file icon="go-up"></input>
|
pascal@177
|
678 <label>Send key</label>
|
pascal@372
|
679 <action>$xterm -geometry 80x10 -title "Send key" -e "$0 call sendsshkey \$DROPBEAR_PEERVPN; echo -e \"----\nENTER to continue...\" && read close"</action>
|
pascal@177
|
680 </button>
|
pascal@177
|
681 </hbox>
|
pascal@177
|
682 </frame>
|
pascal@371
|
683 EOT
|
pascal@371
|
684 }
|
pascal@371
|
685
|
pascal@371
|
686 #
|
pascal@371
|
687 # PPTP client
|
pascal@371
|
688 #
|
pascal@371
|
689 #FIXME
|
pascal@371
|
690 #cat > /etc/ppp/peers/$TUNNEL <<EOT
|
pascal@371
|
691 #pty "pptp $SERVER --nolaunchpppd"
|
pascal@371
|
692 #lock
|
pascal@371
|
693 #noauth
|
pascal@371
|
694 #nobsdcomp
|
pascal@371
|
695 #nodeflate
|
pascal@371
|
696 #name $DOMAIN\\$USERNAME
|
pascal@371
|
697 #remotename $TUNNEL
|
pascal@371
|
698 #ipparam $TUNNEL
|
pascal@371
|
699 #$(encryption && echo "require-mppe-128")
|
pascal@371
|
700 #EOT
|
pascal@371
|
701 #pppd call $TUNNEL updetach
|
pascal@371
|
702
|
pascal@371
|
703 tab_pptp()
|
pascal@371
|
704 {
|
pascal@371
|
705 [ -f /etc/ppp/options.pptp ] || cat >> /etc/ppp/options.pptp <<EOT
|
pascal@371
|
706 lock noauth nobsdcomp nodeflate remotename PPTP
|
pascal@371
|
707 EOT
|
pascal@371
|
708 [ -f /etc/ppp/pptp-servers ] || cat >> /etc/ppp/pptp-servers <<EOT
|
pascal@371
|
709 # PPTP servers list
|
pascal@371
|
710 EOT
|
pascal@371
|
711 cat <<EOT
|
pascal@371
|
712 <frame Virtual Private Network with PPTP>
|
pascal@371
|
713 <hbox>
|
pascal@371
|
714 <text use-markup="true">
|
pascal@371
|
715 <label>"<b>Server:</b>"</label>
|
pascal@371
|
716 </text>
|
pascal@371
|
717 <combobox>
|
pascal@371
|
718 <variable>PPTP_SERVER</variable>
|
pascal@371
|
719 EOT
|
pascal@371
|
720 grep -v ^\# /etc/ppp/pptp-servers | \
|
pascal@371
|
721 awk '{ printf " <item>%s</item>\n",$1 }'
|
pascal@371
|
722 cat <<EOT
|
pascal@371
|
723 <item>SERVER</item>
|
pascal@371
|
724 </combobox>
|
pascal@377
|
725 $(editbutton /etc/ppp/pptp-servers)
|
pascal@371
|
726 </hbox>
|
pascal@371
|
727 <hbox>
|
pascal@371
|
728 <text use-markup="true">
|
pascal@371
|
729 <label>"<b> User:</b>"</label>
|
pascal@371
|
730 </text>
|
pascal@371
|
731 <combobox>
|
pascal@371
|
732 <variable>PPTP_USER</variable>
|
pascal@371
|
733 EOT
|
pascal@371
|
734 grep '\\' /etc/ppp/chap-secrets | grep -v ^\# | \
|
pascal@371
|
735 awk '{ printf " <item>%s</item>\n",$1 }'
|
pascal@371
|
736 cat <<EOT
|
pascal@371
|
737 <item>DOMAIN\USERNAME</item>
|
pascal@371
|
738 </combobox>
|
pascal@377
|
739 $(editbutton /etc/ppp/chap-secrets)
|
pascal@371
|
740 </hbox>
|
pascal@371
|
741 <hbox>
|
pascal@371
|
742 <text use-markup="true">
|
pascal@371
|
743 <label>"<b>Password:</b>"</label>
|
pascal@371
|
744 </text>
|
pascal@371
|
745 <entry>
|
pascal@371
|
746 <variable>PPTP_PASS</variable>
|
pascal@371
|
747 </entry>
|
pascal@371
|
748 </hbox>
|
pascal@371
|
749 <hbox>
|
pascal@371
|
750 <checkbox>
|
pascal@371
|
751 <label>Encryption</label>
|
pascal@371
|
752 <variable>PPTP_ENC</variable>
|
pascal@371
|
753 <default>true</default>
|
pascal@371
|
754 </checkbox>
|
pascal@371
|
755 $(helpbutton pptp 80x35)
|
pascal@371
|
756 <button>
|
pascal@371
|
757 <input file icon="accessories-text-editor"></input>
|
pascal@371
|
758 <label>Options</label>
|
pascal@371
|
759 <action type="lauch">leafpad /etc/ppp/options.pptp</action>
|
pascal@371
|
760 </button>
|
pascal@374
|
761 $(webbutton pptpclient)
|
pascal@371
|
762 <button>
|
pascal@371
|
763 <input file icon="forward"></input>
|
pascal@371
|
764 <label>Connect</label>
|
pascal@371
|
765 <action>grep -qs ^\$PPTP_USER /etc/ppp/chap-secrets || \
|
pascal@371
|
766 echo "\$PPTP_USER PPTP \"$PPTP_PASS\" *" >> /etc/ppp/chap-secrets</action>
|
pascal@371
|
767 <action>grep -qs ^\$PPTP_SERVER /etc/ppp/pptp-servers || \
|
pascal@371
|
768 echo "\$PPTP_SERVER" >> /etc/ppp/pptp-servers</action>
|
pascal@371
|
769 <action>PASS=""; [ -n "\$PPTP_PASS" ] && PASS="password \$PASS"; \
|
pascal@371
|
770 ENC=""; [ x\$PPTP_ENC == xtrue ] && ENC="require-mppe-128"; \
|
pascal@371
|
771 /usr/sbin/pptp \$PPTP_SERVER file /etc/ppp/options.pptp \$ENC user \$PPTP_USER \$PASS &
|
pascal@371
|
772 </action>
|
pascal@371
|
773 </button>
|
pascal@371
|
774 <button>
|
pascal@371
|
775 <input file icon="stop"></input>
|
pascal@371
|
776 <label>Disconnect</label>
|
pascal@371
|
777 <action>killall pptp</action>
|
pascal@371
|
778 </button>
|
pascal@371
|
779 </hbox>
|
pascal@371
|
780 </frame>
|
pascal@371
|
781 EOT
|
pascal@371
|
782 }
|
pascal@371
|
783
|
pascal@374
|
784 #
|
pascal@374
|
785 # Cisco EasyVPN
|
pascal@374
|
786 #
|
pascal@374
|
787 tab_easyvpn()
|
pascal@374
|
788 {
|
pascal@374
|
789 cat <<EOT
|
pascal@374
|
790 <frame Cisco EasyVPN>
|
pascal@374
|
791 <hbox>
|
pascal@374
|
792 <text use-markup="true">
|
pascal@374
|
793 <label>"<b>VPNC_OPTIONS</b>"</label>
|
pascal@374
|
794 </text>
|
pascal@374
|
795 <entry editable="false">
|
pascal@374
|
796 EOT
|
pascal@374
|
797 [ -n "$VPNC_OPTIONS" ] && cat << EOT
|
pascal@374
|
798 <default>$tmp</default>
|
pascal@374
|
799 EOT
|
pascal@374
|
800 cat << EOT
|
pascal@374
|
801 <variable>VPNC_OPTS</variable>
|
pascal@374
|
802 </entry>
|
pascal@374
|
803 $(helpbutton vpnc 80x30)
|
pascal@374
|
804 <button>
|
pascal@374
|
805 <input file icon="help"></input>
|
pascal@374
|
806 <label>more</label>
|
pascal@374
|
807 <action>$xterm -geometry 80x40 -title "vpnc help (q to quit)" -e "$(which vpnc) --long-help 2>&1 | less"</action>
|
pascal@374
|
808 </button>
|
pascal@374
|
809 $(editbutton /etc/daemons.conf)
|
pascal@374
|
810 </hbox>
|
pascal@374
|
811 $(configfile /etc/vpnc/default.conf VPNC_CONF)
|
pascal@374
|
812 $(datafile "/etc/vpnc/vpnc-script" VPNC_SCRIPT 'Script:')
|
pascal@374
|
813 <hbox>
|
pascal@374
|
814 $(startstopdaemon vpnc)
|
pascal@374
|
815 </hbox>
|
pascal@374
|
816 </frame>
|
pascal@374
|
817 EOT
|
pascal@374
|
818 }
|
pascal@374
|
819
|
pascal@375
|
820 #
|
pascal@375
|
821 # OpenVPN
|
pascal@375
|
822 #
|
pascal@375
|
823 tab_openvpn()
|
pascal@375
|
824 {
|
pascal@375
|
825 local i
|
pascal@375
|
826 local n
|
pascal@375
|
827 cat <<EOT
|
pascal@375
|
828 <frame OpenVPN>
|
pascal@375
|
829 EOT
|
pascal@375
|
830 n=1
|
pascal@375
|
831 for i in /etc/openvpn/*.conf ; do
|
pascal@375
|
832 [ -f $i ] || continue
|
pascal@375
|
833 configfile $i OPENVPN_CONF$n
|
pascal@375
|
834 n=$(($n + 1))
|
pascal@375
|
835 done
|
pascal@375
|
836 cat <<EOT
|
pascal@375
|
837 <hbox>
|
pascal@375
|
838 $(helpbutton openvpn 80x40)
|
pascal@375
|
839 $(startstopdaemon openvpn)
|
pascal@375
|
840 </hbox>
|
pascal@375
|
841 </frame>
|
pascal@375
|
842 EOT
|
pascal@375
|
843 }
|
pascal@375
|
844
|
pascal@371
|
845 data_vpn()
|
pascal@371
|
846 {
|
pascal@371
|
847 cat <<EOT
|
pascal@371
|
848 $([ -x /usr/sbin/dropbear -o -x /usr/sbin/sshd ] && echo "pppd" ||
|
pascal@371
|
849 echo "#") PPP/SSH tab_sshppp
|
pascal@371
|
850 pptp PPTP tab_pptp
|
pascal@374
|
851 vpnc EasyVPN tab_easyvpn
|
pascal@375
|
852 openvpn OpenVPN tab_openvpn
|
pascal@371
|
853 EOT
|
pascal@371
|
854 }
|
pascal@371
|
855
|
pascal@371
|
856 #
|
pascal@371
|
857 # VPN
|
pascal@371
|
858 #
|
pascal@371
|
859 tab_vpn()
|
pascal@371
|
860 {
|
pascal@371
|
861 use_tab data_vpn
|
pascal@371
|
862 }
|
pascal@272
|
863
|
pascal@371
|
864 #
|
pascal@371
|
865 # ether-wake
|
pascal@371
|
866 #
|
pascal@371
|
867 tab_etherwake()
|
pascal@371
|
868 {
|
pascal@371
|
869 cat <<EOT
|
pascal@271
|
870 <frame Ether-wake (busybox)>
|
pascal@141
|
871 <hbox>
|
pascal@141
|
872 <text use-markup="true">
|
pascal@151
|
873 <label>"<b>Machines :</b>"</label>
|
pascal@151
|
874 </text>
|
pascal@151
|
875 <entry editable="false">
|
pascal@151
|
876 <default>/etc/ethers</default>
|
pascal@151
|
877 <variable>ETHERS</variable>
|
pascal@151
|
878 </entry>
|
pascal@151
|
879 <button>
|
pascal@151
|
880 <input file icon="accessories-text-editor"></input>
|
pascal@372
|
881 <action>[ -s \$ETHERS ] || echo "#00:01:02:03:04:05 mystation" >\$ETHERS</action>
|
pascal@371
|
882 <action type="lauch">leafpad \$ETHERS</action>
|
pascal@151
|
883 </button>
|
pascal@151
|
884 </hbox>
|
pascal@151
|
885 <hbox>
|
pascal@151
|
886 <text use-markup="true">
|
pascal@141
|
887 <label>"<b>Options : </b>"</label>
|
pascal@141
|
888 </text>
|
pascal@271
|
889 <entry editable="true">
|
pascal@141
|
890 <variable>ETHERWAKE_OPTS</variable>
|
pascal@371
|
891 </entry>
|
pascal@371
|
892 $(helpbutton ether-wake 80x15)
|
pascal@371
|
893 <button>
|
pascal@371
|
894 <label>Start</label>
|
pascal@371
|
895 <input file icon="forward"></input>
|
pascal@371
|
896 <action>ether-wake \$ETHERWAKE_OPTS</action>
|
pascal@371
|
897 </button>
|
pascal@371
|
898 </hbox>
|
pascal@375
|
899 <frame>
|
pascal@375
|
900 <hbox>
|
pascal@375
|
901 EOT
|
pascal@375
|
902 if which ethtool > /dev/null; then
|
pascal@375
|
903 cat <<EOT
|
pascal@375
|
904 <text use-markup="true">
|
pascal@375
|
905 <label>"<b>Interface:</b>"</label>
|
pascal@375
|
906 </text>
|
pascal@375
|
907 <combobox>
|
pascal@375
|
908 <variable>ETHERWAKE_ETH</variable>
|
pascal@375
|
909 EOT
|
pascal@375
|
910 (cd /sys/class/net ; [ -d eth0 ] && ls -d eth* ) | \
|
pascal@375
|
911 awk '{ printf " <item>%s</item>\n",$1 }'
|
pascal@375
|
912 cat <<EOT
|
pascal@375
|
913 </combobox>
|
pascal@375
|
914 <button>
|
pascal@375
|
915 <label>Enable Wake On LAN</label>
|
pascal@375
|
916 <input file icon="forward"></input>
|
pascal@375
|
917 <action>ethtool -s \$ETHERWAKE_ETH wok g</action>
|
pascal@375
|
918 </button>
|
pascal@375
|
919 EOT
|
pascal@375
|
920 else
|
pascal@375
|
921 cat <<EOT
|
pascal@375
|
922 <vbox>
|
pascal@375
|
923 <text wrap="true" width-chars="58">
|
pascal@375
|
924 <label>
|
paul@398
|
925 "Ethtool can enable the Wake-on-lan
|
paul@378
|
926 feature on many Ethernet cards.
|
pascal@375
|
927 "
|
pascal@375
|
928 </label>
|
pascal@375
|
929 </text>
|
pascal@375
|
930 $(installbox ethtool)
|
pascal@375
|
931 </vbox>
|
pascal@375
|
932 EOT
|
pascal@375
|
933 fi
|
pascal@375
|
934 cat <<EOT
|
pascal@375
|
935 </hbox>
|
pascal@375
|
936 </frame>
|
pascal@371
|
937 </frame>
|
pascal@371
|
938 EOT
|
pascal@371
|
939 }
|
pankso@33
|
940
|
pascal@371
|
941 data_main()
|
pascal@371
|
942 {
|
pascal@371
|
943 cat <<EOT
|
pascal@371
|
944 #program tab name function
|
pascal@371
|
945 ifconfig Connections tab_connections
|
pascal@371
|
946 udhcpc DHCP tab_udhcpc
|
pascal@371
|
947 ifconfig Static\ IP tab_fixed_ip
|
pascal@371
|
948 pppoe PPPoE tab_pppoe
|
pascal@371
|
949 pppd PPP tab_ppp
|
pascal@371
|
950 true VPN tab_vpn
|
pascal@371
|
951 ether-wake Etherwake tab_etherwake
|
jozee@461
|
952 true Configuration tab_system
|
pascal@371
|
953 EOT
|
pascal@371
|
954 }
|
pascal@371
|
955
|
pascal@371
|
956 tab_main()
|
pascal@371
|
957 {
|
pascal@371
|
958 use_tab data_main
|
pascal@371
|
959 }
|
pascal@371
|
960
|
pascal@371
|
961 ######################################################
|
pascal@371
|
962 #
|
pascal@371
|
963 # Netbox GUI
|
pascal@371
|
964 #
|
pascal@371
|
965 ######################################################
|
pascal@371
|
966
|
pascal@371
|
967 # English/French help dialog.
|
pascal@371
|
968 export HELP='
|
pascal@371
|
969 <window title="Network status" icon-name="network-wire">
|
pascal@371
|
970 <vbox>
|
pascal@371
|
971 <text use-markup="true">
|
pascal@371
|
972 <label>
|
pascal@371
|
973 "
|
pascal@371
|
974 <b>SliTaz - Netbox</b>"
|
pascal@371
|
975 </label>
|
pascal@371
|
976 </text>
|
pascal@371
|
977 <frame English>
|
pascal@371
|
978 <text wrap="true" width-chars="58">
|
pascal@371
|
979 <label>
|
pascal@371
|
980 "Netbox lets you manage network connections by getting a dynamic IP by
|
pascal@371
|
981 DHCP or a static IP and setup servers. Netbox can start or stop
|
pascal@371
|
982 networking, configure network interfaces or directly edit files."
|
pascal@371
|
983 </label>
|
pascal@371
|
984 </text>
|
pascal@371
|
985 </frame>
|
pascal@371
|
986 <frame Francais>
|
pascal@371
|
987 <text wrap="true" width-chars="58">
|
pascal@371
|
988 <label>
|
pascal@371
|
989 "Netbox vous permet de gerer les connexions reseau avec une IP
|
pascal@371
|
990 statique ou en obtenant une IP dynamique par DHCP, et de parametrer
|
pascal@371
|
991 les serveurs. Netbox peut demarrer ou arreter le reseau, configurer
|
pascal@371
|
992 les interfaces reseau ou editer directement les fichiers."
|
pascal@371
|
993 </label>
|
pascal@371
|
994 </text>
|
pascal@371
|
995 </frame>
|
pascal@371
|
996 </vbox>
|
pascal@371
|
997 </window>
|
pascal@371
|
998 '
|
pascal@371
|
999
|
pascal@371
|
1000 # Interface status with ifconfig without arguments to show all
|
pascal@371
|
1001 # active connections.
|
pascal@371
|
1002 #
|
pascal@371
|
1003 export IFCONFIG="
|
pascal@371
|
1004 <window title=\"Network status\" icon-name=\"network-wire\">
|
pascal@371
|
1005 <vbox>
|
pascal@371
|
1006 $(tab_status)
|
pascal@371
|
1007 <hbox>
|
pascal@371
|
1008 <button>
|
pascal@371
|
1009 <input file icon=\"gtk-close\"></input>
|
pascal@371
|
1010 <action type=\"closewindow\">IFCONFIG</action>
|
pascal@371
|
1011 </button>
|
pascal@371
|
1012 </hbox>
|
pascal@371
|
1013 </vbox>
|
pascal@371
|
1014 </window>"
|
pascal@371
|
1015
|
pascal@371
|
1016 # The main dialog with notebook, start/stop buttons and all options.
|
pascal@371
|
1017 # Note that /etc/network.conf is seded when an interface is activated.
|
pascal@371
|
1018 #
|
pascal@371
|
1019 head='
|
pascal@371
|
1020 <window title="SliTaz Netbox Manager" icon-name="network-wired">
|
pascal@371
|
1021 <vbox>
|
pascal@371
|
1022
|
pascal@371
|
1023 <hbox>
|
pascal@371
|
1024 <text use-markup="true">
|
jozee@461
|
1025 <label>"<b>Network Manager</b>"</label>
|
pascal@371
|
1026 </text>
|
pascal@371
|
1027 <pixmap>
|
pascal@371
|
1028 <input file>/usr/share/pixmaps/netbox.png</input>
|
pascal@371
|
1029 </pixmap>
|
pascal@371
|
1030 </hbox>
|
pascal@371
|
1031 '
|
pascal@371
|
1032 bottom='
|
pankso@297
|
1033 <hbox>
|
pankso@297
|
1034 <button>
|
pankso@297
|
1035 <label>Wireless manager</label>
|
pankso@297
|
1036 <input file icon="network-wireless"></input>
|
pankso@297
|
1037 <action>wifibox &</action>
|
pankso@297
|
1038 </button>
|
pankso@297
|
1039 <button>
|
pankso@297
|
1040 <label>Refresh list</label>
|
pankso@297
|
1041 <input file icon="reload"></input>
|
pankso@297
|
1042 <action>refresh:INTERFACE_LIST</action>
|
pankso@297
|
1043 </button>
|
pankso@297
|
1044 <button>
|
pankso@297
|
1045 <label>Full status</label>
|
pankso@297
|
1046 <input file icon="dialog-information"></input>
|
pankso@297
|
1047 <action type="launch">IFCONFIG</action>
|
pankso@297
|
1048 </button>
|
pankso@297
|
1049 <button help>
|
pankso@297
|
1050 <label>Help</label>
|
pankso@297
|
1051 <action type="launch">HELP</action>
|
pankso@297
|
1052 </button>
|
pankso@297
|
1053 <button>
|
pankso@297
|
1054 <label>Quit</label>
|
pankso@297
|
1055 <input file icon="exit"></input>
|
pankso@297
|
1056 <action type="exit">Exit</action>
|
pankso@297
|
1057 </button>
|
pankso@297
|
1058 </hbox>
|
pankso@194
|
1059
|
pankso@297
|
1060 </vbox>
|
pankso@38
|
1061 </window>
|
pankso@33
|
1062 '
|
pascal@371
|
1063
|
pascal@371
|
1064 NET_BOX="${head}$(tab_main)${bottom}"
|
pascal@126
|
1065
|
pascal@126
|
1066 export NET_BOX
|
pascal@126
|
1067
|
pascal@371
|
1068 # TODO: Modules(Network kernel modules)
|
pankso@33
|
1069
|
pankso@33
|
1070 # Only root can configure network.
|
pankso@33
|
1071 check_root
|
pankso@297
|
1072
|
pascal@177
|
1073 # Configure and connect if button Connect was pressed.
|
pascal@177
|
1074 if ! grep -qs ^name /etc/ppp/options ; then
|
pascal@177
|
1075 # Generate /etc/ppp/options
|
pascal@177
|
1076 cat > /etc/ppp/options << _EOT_
|
pascal@177
|
1077 plugin rp-pppoe.so
|
pascal@177
|
1078 name provider-ID
|
pascal@177
|
1079 noipdefault
|
pascal@177
|
1080 defaultroute
|
pascal@177
|
1081 mtu 1492
|
pascal@177
|
1082 mru 1492
|
pascal@177
|
1083 lock
|
pascal@177
|
1084 _EOT_
|
pascal@177
|
1085 # Generate /etc/ppp/pap-secrets
|
pascal@177
|
1086 cat > /etc/ppp/pap-secrets << _EOT_
|
pascal@177
|
1087 # Secrets for authentication using PAP
|
pascal@177
|
1088 # client server secret IP addresses
|
pascal@177
|
1089 _EOT_
|
pascal@177
|
1090 # Generate /etc/ppp/chap-secrets
|
pascal@177
|
1091 cat > /etc/ppp/chap-secrets << _EOT_
|
pascal@177
|
1092 # Secrets for authentication using CHAP
|
pascal@177
|
1093 # client server secret IP addresses
|
pascal@177
|
1094 _EOT_
|
pascal@177
|
1095 fi
|
pascal@259
|
1096 gtkdialog --center --program=NET_BOX | grep -a 'EXIT="restart"' && continue
|
pankso@33
|
1097 exit 0
|
pascal@259
|
1098 done
|