slitaz-tools annotate tinyutils/netbox @ rev 398

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