slitaz-tools annotate tinyutils/netbox @ rev 374

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