slitaz-tools annotate tinyutils/serverbox @ rev 516

tazx: incorrect tux; slitaz installer creates 1008 user
author Rohit Joshi <jozee@slitaz.org>
date Wed Nov 10 20:26:12 2010 -0500 (2010-11-10)
parents ca6804d9b56b
children 7fdb586cf6bf
rev   line source
jozee@462 1 #!/bin/sh
jozee@462 2 #
jozee@462 3 # Gtkdialog box to manage servers.
jozee@462 4 # Please use tab to indent.
jozee@462 5
jozee@462 6 VERSION=20100315
jozee@462 7
jozee@462 8 . /usr/lib/slitaz/gui_functions
jozee@462 9
jozee@462 10 # Check if user is root.
jozee@462 11 check_root()
jozee@462 12 {
jozee@462 13 if test $(id -u) != 0 ; then
jozee@462 14 echo -e "
jozee@462 15 You must be root to run `basename $0`. Please type 'su' and
jozee@462 16 root password to become super-user.\n"
jozee@462 17 exit 0
jozee@462 18 fi
jozee@462 19 }
jozee@462 20 #
jozee@462 21 # Status servers
jozee@462 22 #
jozee@462 23 tab_status_servers()
jozee@462 24 {
jozee@462 25 local servers
jozee@462 26 servers="dropbear sshd inetd dhcpd dnsd named rsync httpd mbd vnc pppd knock"
jozee@462 27 cat <<EOT
jozee@462 28 <frame Servers>
jozee@462 29 <text wrap="false" width-chars="58">
jozee@462 30 <input>for i in $servers; do ps ww | grep \$i | grep -v grep | fold -s; done</input>
jozee@462 31 </text>
jozee@462 32 </frame>
jozee@462 33 EOT
jozee@462 34 }
jozee@462 35
jozee@462 36 data_status()
jozee@462 37 {
jozee@462 38 cat <<EOT
jozee@462 39 ps Servers tab_status_servers
jozee@462 40 EOT
jozee@462 41 }
jozee@462 42
jozee@462 43 #
jozee@462 44 # Status
jozee@462 45 #
jozee@462 46 tab_status()
jozee@462 47 {
jozee@462 48 use_tab data_status
jozee@462 49 }
jozee@462 50
jozee@462 51 sshremote()
jozee@462 52 {
jozee@462 53 cat << EOT
jozee@462 54 <hbox>
jozee@462 55 <text use-markup="true">
jozee@462 56 <label>"<b>Remote :</b>"</label>
jozee@462 57 </text>
jozee@462 58 <entry>
jozee@462 59 <variable>$2</variable>
jozee@462 60 <default>user@elsewhere</default>
jozee@462 61 </entry>
jozee@462 62 <button>
jozee@462 63 <input file icon="utilities-terminal"></input>
jozee@462 64 <label>Connect</label>
jozee@462 65 <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>
jozee@462 66 </button>
jozee@462 67 <button>
jozee@462 68 <input file icon="go-up"></input>
jozee@462 69 <label>Send key</label>
jozee@462 70 <action>$xterm -geometry 80x10 -title "send ssh key" -e "$0 call sendsshkey \$$2; echo -e \"----\nENTER to continue...\" && read close"</action>
jozee@462 71 </button>
jozee@462 72 </hbox>
jozee@462 73 EOT
jozee@462 74 }
jozee@462 75 #
jozee@462 76 # Dropbear client & server
jozee@462 77 #
jozee@462 78 tab_dropbear()
jozee@462 79 {
jozee@462 80 . /etc/daemons.conf
jozee@462 81 set -- $DROPBEAR_OPTIONS
jozee@462 82 while [ -n "$2" ]; do
jozee@462 83 [ "$1" = "-b" ] && DROPBEAR_BANNER="$2" && break
jozee@462 84 shift
jozee@462 85 done
jozee@462 86
jozee@462 87 cat <<EOT
jozee@462 88 <frame Dropbear>
jozee@462 89 $(helpdaemon dropbear 80x30 DROPBEAR_OPTIONS DROPBEAR_OPTS)
jozee@462 90 $(datafile /etc/dropbear/banner DROPBEAR_BANNER 'Banner :')
jozee@462 91 $(sshremote DROPBEAR_PEER 'dbclient -i /etc/dropbear/dropbear_rsa_host_key')
jozee@462 92 <hbox>
jozee@462 93 $(startstopdaemon dropbear)
jozee@462 94 </hbox>
jozee@462 95 </frame>
jozee@462 96 EOT
jozee@462 97 }
jozee@462 98
jozee@462 99 #
jozee@462 100 # OpenSSH client & server
jozee@462 101 #
jozee@462 102 tab_openssh()
jozee@462 103 {
jozee@462 104 cat <<EOT
jozee@462 105 <frame OpenSSH>
jozee@462 106 $(helpdaemon sshd 80x30 OPENSSH_OPTIONS OPENSSH_OPTS 8 nohelp)
jozee@462 107 $(configfile /etc/ssh/sshd_config OPENSSH_CONF '5 sshd_config')
jozee@462 108 $(sshremote OPENSSH_PEER 'ssh -i /etc/ssh/ssh_host_rsa_key')
jozee@462 109 <hbox>
jozee@462 110 $(startstopdaemon openssh)
jozee@462 111 </hbox>
jozee@462 112 </frame>
jozee@462 113 EOT
jozee@462 114 }
jozee@462 115
jozee@462 116 data_sshd()
jozee@462 117 {
jozee@462 118 cat <<EOT
jozee@462 119 dropbear Dropbear tab_dropbear
jozee@462 120 sshd OpenSSH tab_openssh
jozee@462 121 EOT
jozee@462 122 }
jozee@462 123
jozee@462 124 #
jozee@462 125 # SSH tab
jozee@462 126 #
jozee@462 127 tab_sshd()
jozee@462 128 {
jozee@462 129 use_tab data_sshd
jozee@462 130 }
jozee@462 131
jozee@462 132 #
jozee@462 133 # Busybox Inetd
jozee@462 134 #
jozee@462 135 tab_inetd()
jozee@462 136 {
jozee@462 137 cat <<EOT
jozee@462 138 <frame Inetd (busybox)>
jozee@462 139 $(helpdaemon inetd 60x14 INETD_OPTIONS INETD_OPTS)
jozee@462 140 $(configfile /etc/inetd.conf INETD_CONF)
jozee@462 141 <hbox>
jozee@462 142 EOT
jozee@462 143 for i in $(grep bin /etc/inetd.conf | awk '{ print $6}'); do
jozee@462 144 i=$(basename $i)
jozee@462 145 helpbutton $i 60x19 $i
jozee@462 146 done
jozee@462 147 cat <<EOT
jozee@462 148 $(startstopdaemon inetd)
jozee@462 149 </hbox>
jozee@462 150 </frame>
jozee@462 151 EOT
jozee@462 152 }
jozee@462 153
jozee@462 154 #
jozee@462 155 # ZeroConf
jozee@462 156 #
jozee@462 157 tab_zcip()
jozee@462 158 {
jozee@462 159
jozee@462 160 . /etc/daemons.conf
jozee@462 161 if [ -x /sbin/zcip -a -z "$ZCIP_OPTIONS" ]; then
jozee@462 162 ZCIP_OPTIONS="eth0 /etc/zcip.script"
jozee@462 163 cat >> /etc/daemons.conf <<EOT
jozee@462 164 # ZeroConf options
jozee@462 165 ZCIP_OPTIONS="$ZCIP_OPTIONS"
jozee@462 166
jozee@462 167 EOT
jozee@462 168 fi
jozee@462 169 cat <<EOT
jozee@462 170 <frame Zcip (busybox)>
jozee@462 171 $(helpdaemon zcip 60x14 ZCIP_OPTIONS ZCIP_OPTS)
jozee@462 172 $(datafile /etc/zcip.script CZIP_SCRIPT 'Script :')
jozee@462 173 <hbox>
jozee@462 174 $(startstopdaemon zcip)
jozee@462 175 </hbox>
jozee@462 176 </frame>
jozee@462 177 EOT
jozee@462 178 }
jozee@462 179
jozee@462 180 #
jozee@462 181 # Dhcpd ISC
jozee@462 182 #
jozee@462 183 tab_isc_dhcpd()
jozee@462 184 {
jozee@462 185 cat <<EOT
jozee@462 186 <frame Dhcpd (ISC)>
jozee@462 187 $(helpdaemon dhcpd 60x14 DHCPD_OPTIONS DHCPD_OPTS)
jozee@462 188 $(configfile /etc/dhcpd.conf DHCPD_CONF)
jozee@462 189 <hbox>
jozee@462 190 $(startstopdaemon dhcpd dhcp)
jozee@462 191 </hbox>
jozee@462 192 </frame>
jozee@462 193 EOT
jozee@462 194 }
jozee@462 195
jozee@462 196 #
jozee@462 197 # Dhcpd Busybox
jozee@462 198 #
jozee@462 199 tab_udhcpd()
jozee@462 200 {
jozee@462 201 cat <<EOT
jozee@462 202 <frame Udhcpd (busybox)>
jozee@462 203 $(helpdaemon udhcpd 60x14 UDHCPD_OPTIONS UDHCPD_OPTS)
jozee@462 204 $(configfile /etc/udhcpd.conf UDHCPD_CONF)
jozee@462 205 <hbox>
jozee@462 206 $(startstopdaemon udhcpd busybox)
jozee@462 207 </hbox>
jozee@462 208 </frame>
jozee@462 209 EOT
jozee@462 210 }
jozee@462 211
jozee@462 212 data_dhcpd()
jozee@462 213 {
jozee@462 214 cat <<EOT
jozee@462 215 udhcpd Udhcpd tab_udhcpd
jozee@462 216 dhcpd Dhcpd tab_isc_dhcpd
jozee@462 217 dnsmasq DNSmasq tab_dnsmasq
jozee@462 218 EOT
jozee@462 219 }
jozee@462 220
jozee@462 221 #
jozee@462 222 # dhcpd tab
jozee@462 223 #
jozee@462 224 tab_dhcpd()
jozee@462 225 {
jozee@462 226 use_tab data_dhcpd
jozee@462 227 }
jozee@462 228
jozee@462 229 #
jozee@462 230 # PXE forwarder
jozee@462 231 #
jozee@462 232 tab_gpxe()
jozee@462 233 {
jozee@462 234 cat <<EOT
jozee@462 235 <frame PXE forwarder>
jozee@462 236 <hbox>
jozee@462 237 <text use-markup="true">
jozee@462 238 <label>"<b>WEB boot URL(s) :</b>"</label>
jozee@462 239 </text>
jozee@462 240 </hbox>
jozee@462 241 <hbox>
jozee@462 242 <entry editable="true">
jozee@462 243 <default>
jozee@462 244 "$(dd bs=1 skip=5 count=255 if=/usr/share/boot/gpxe.pxe 2> /dev/null | strings)"
jozee@462 245 </default>
jozee@462 246 <variable>WEB_PXE</variable>
jozee@462 247 </entry>
jozee@462 248 </hbox>
jozee@462 249 <hbox>
pascal@498 250 $(wikibutton http://doc.slitaz.org/en:guides:pxe)
jozee@462 251 <button>
jozee@462 252 <input file icon="go-jump"></input>
jozee@462 253 <label>Install</label>
jozee@462 254 <action>
jozee@462 255 echo -n "\$WEB_PXE" | cat - /dev/zero | \
jozee@462 256 dd conv=notrunc bs=1 seek=5 count=255 of=/usr/share/boot/gpxe.pxe
jozee@462 257 </action>
jozee@462 258 <action>
jozee@462 259 sed -i "s|tftpd -r .*\$|tftpd -r /usr/share/boot|" /etc/inetd.conf
jozee@462 260 </action>
jozee@462 261 <action> sed -i "/^boot_file/d" \$UDHCPD_CONF </action>
jozee@462 262 <action> echo "boot_file gpxe.pxe" >> \$UDHCPD_CONF </action>
jozee@462 263 <action> /etc/init.d/inetd restart </action>
jozee@462 264 <action> /etc/init.d/udhcpd restart </action>
jozee@462 265 <action>sed -i "s/RUN_DAEMONS=\\"\\(.*\\)inetd \?\\(.*\\)\\"/RUN_DAEMONS=\\"\1\2\\"/" /etc/rcS.conf</action>
jozee@462 266 <action>sed -i "s/RUN_DAEMONS=\\"\\(.*\\)udhcpd \?\\(.*\\)\\"/RUN_DAEMONS=\\"\1\2\\"/" /etc/rcS.conf</action>
jozee@462 267 <action>sed -i "s/RUN_DAEMONS=\\"\\(.*\\)\\"/RUN_DAEMONS=\\"udhcpd inetd \1\\"/" /etc/rcS.conf</action>
jozee@462 268 </button>
jozee@462 269 </hbox>
jozee@462 270 </frame>
jozee@462 271 EOT
jozee@462 272 }
jozee@462 273
jozee@462 274 #
jozee@462 275 # PXE server
jozee@462 276 #
jozee@462 277 tab_pxelinux()
jozee@462 278 {
jozee@462 279 cat <<EOT
jozee@462 280 <frame PXElinux>
jozee@462 281 <hbox>
jozee@462 282 <text wrap="true">
jozee@462 283 <label>
jozee@462 284 "Launch Dhcpd and Inetd with Tftpd to start the PXE service."
jozee@462 285 </label>
jozee@462 286 </text>
jozee@462 287 </hbox>
jozee@462 288 <hbox>
jozee@462 289 <text use-markup="true">
jozee@462 290 <label>"<b>Configuration :</b>"</label>
jozee@462 291 </text>
jozee@462 292 <entry editable="false">
jozee@462 293 <default>
jozee@462 294 $(grep bin/tftpd /etc/inetd.conf | awk '{ print $NF }')/pxelinux.cfg/default
jozee@462 295 </default>
jozee@462 296 <variable>PXE_CONF</variable>
jozee@462 297 </entry>
jozee@462 298 <button>
jozee@462 299 <input file icon="accessories-text-editor"></input>
jozee@462 300 <action>dir=\$(dirname \$PXE_CONF); [ -d \$dir ] || mkdir -p \$dir</action>
jozee@462 301 <action>lzma d /usr/share/boot/pxelinux.0.lzma \$(dirname \$PXE_CONF)/../pxelinux.0</action>
jozee@462 302 <action>sed -i "/^boot_file/d" \$UDHCPD_CONF</action>
jozee@462 303 <action>echo "boot_file pxelinux.0" >> \$UDHCPD_CONF</action>
jozee@462 304 <action>grep -q "^siaddr" \$UDHCPD_CONF || echo "siaddr \$(ifconfig \$INTERFACE | grep inet.ad | cut -d: -f2 | cut -d\ -f1)" >> \$UDHCPD_CONF</action>
jozee@462 305 <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>
jozee@462 306 <action type="lauch">leafpad \$PXE_CONF</action>
jozee@462 307 </button>
jozee@462 308 </hbox>
jozee@462 309 <hbox>
pascal@498 310 $(wikibutton http://doc.slitaz.org/en:guides:pxe)
jozee@462 311 <button>
jozee@462 312 <input file icon="system-file-manager"></input>
jozee@462 313 <label>Network boot files</label>
jozee@462 314 <action>$xterm -geometry 100x25 -title "Network boot files (q to quit)" -e "find \$(dirname \$(dirname \$PXE_CONF)) -exec ls -ld {} \; | less"</action>
jozee@462 315 </button>
jozee@462 316 </hbox>
jozee@462 317 </frame>
jozee@462 318 EOT
jozee@462 319 }
jozee@462 320
jozee@462 321 data_pxe()
jozee@462 322 {
jozee@462 323 [ -f /usr/share/boot/pxelinux.0.lzma ] && cat <<EOT
jozee@462 324 true PXElinux tab_pxelinux
jozee@462 325 EOT
jozee@462 326 [ -f /usr/share/boot/gpxe.pxe ] && cat <<EOT
jozee@462 327 true PXE\ forwarder tab_gpxe
jozee@462 328 EOT
jozee@462 329 }
jozee@462 330
jozee@462 331 #
jozee@462 332 # PXE
jozee@462 333 #
jozee@462 334 tab_pxe()
jozee@462 335 {
jozee@462 336 use_tab data_pxe
jozee@462 337 }
jozee@462 338
jozee@462 339 #
jozee@462 340 # Busybox dnsd
jozee@462 341 #
jozee@462 342 tab_dnsd()
jozee@462 343 {
jozee@462 344 cat <<EOT
jozee@462 345 <frame Dnsd (busybox master dns)>
jozee@462 346 $(helpdaemon dnsd 80x15 DNSD_OPTIONS DNSD_OPTS)
jozee@462 347 $(configfile /etc/dnsd.conf DNSD_CONF)
jozee@462 348 <hbox>
jozee@462 349 $(startstopdaemon dnsd busybox)
jozee@462 350 </hbox>
jozee@462 351 </frame>
jozee@462 352 EOT
jozee@462 353 }
jozee@462 354
jozee@462 355 #
jozee@462 356 # ISC Bind
jozee@462 357 #
jozee@462 358 tab_named()
jozee@462 359 {
jozee@462 360 cat <<EOT
jozee@462 361 <frame Named (ISC bind)>
jozee@462 362 $(helpdaemon named 80x10 NAMED_OPTIONS NAMED_OPTS)
jozee@462 363 $(configfile /etc/bind/named.conf.local NAMED_CONF)
jozee@462 364 <hbox>
jozee@462 365 $(startstopdaemon named bind)
jozee@462 366 </hbox>
jozee@462 367 </frame>
jozee@462 368 EOT
jozee@462 369 }
jozee@462 370
jozee@462 371 #
jozee@462 372 # DNSmasq
jozee@462 373 #
jozee@462 374 tab_dnsmasq()
jozee@462 375 {
jozee@462 376 cat <<EOT
jozee@462 377 <frame DNSmasq (DNS/DHCP/TFTP)>
jozee@462 378 $(helpdaemon dnsmasq 100x34 DNSMASQ_OPTIONS DNSMASQ_OPTS)
jozee@462 379 $(configfile /etc/dnsmasq.conf DNSMASQ_CONF)
jozee@462 380 <hbox>
jozee@462 381 $(startstopdaemon dnsmasq)
jozee@462 382 </hbox>
jozee@462 383 </frame>
jozee@462 384 EOT
jozee@462 385 }
jozee@462 386
jozee@462 387 data_dns()
jozee@462 388 {
jozee@462 389 cat <<EOT
jozee@462 390 dnsd Dnsd tab_dnsd
jozee@462 391 named Named tab_named
jozee@462 392 dnsmasq DNSmasq tab_dnsmasq
jozee@462 393 #TODO sheerdns Sheerdns tab_sheerdns
jozee@462 394 EOT
jozee@462 395 }
jozee@462 396
jozee@462 397 #
jozee@462 398 # dns tab
jozee@462 399 #
jozee@462 400 tab_dns()
jozee@462 401 {
jozee@462 402 use_tab data_dns
jozee@462 403 }
jozee@462 404
jozee@462 405 #
jozee@462 406 # rsync server
jozee@462 407 #
jozee@462 408 tab_rsync()
jozee@462 409 {
jozee@462 410 cat <<EOT
jozee@462 411 <frame Rsync>
jozee@462 412 $(helpdaemon rsync 80x30 RSYNCD_OPTIONS RSYNCD_OPTS 1)
jozee@462 413 $(configfile /etc/rsyncd.conf RSYNCD_CONF)
jozee@462 414 $(datafile /etc/rsyncd.secrets RSYNCD_SECRETS 'Secrets file :')
jozee@462 415 <hbox>
jozee@462 416 $(startstopdaemon rsyncd rsync)
jozee@462 417 </hbox>
jozee@462 418 </frame>
jozee@462 419 EOT
jozee@462 420 }
jozee@462 421
jozee@462 422 php_ini()
jozee@462 423 {
jozee@462 424 [ -f /etc/php.ini ] && cat <<EOT
jozee@462 425 <frame PHP>
jozee@462 426 $(configfile /etc/php.ini PHP_CONF)
jozee@462 427 </frame>
jozee@462 428 EOT
jozee@462 429 }
jozee@462 430
jozee@462 431 #
jozee@462 432 # Apache server
jozee@462 433 #
jozee@462 434 tab_apache()
jozee@462 435 {
jozee@462 436 cat <<EOT
jozee@462 437 <frame Apache>
jozee@462 438 $(configfile /etc/apache/httpd.conf HTTPD_CONF)
jozee@462 439 $(php_ini)
jozee@462 440 <hbox>
jozee@462 441 $(startstopdaemon apache)
jozee@462 442 </hbox>
jozee@462 443 </frame>
jozee@462 444 EOT
jozee@462 445 }
jozee@462 446
jozee@462 447 #
jozee@462 448 # Lighttpd server
jozee@462 449 #
jozee@462 450 tab_lighttpd()
jozee@462 451 {
jozee@462 452 cat <<EOT
jozee@462 453 <frame Lighttpd>
jozee@462 454 $(helpdaemon lighttpd 80x15 LIGHTTPD_OPTIONS LIGHTTPD_OPTS)
jozee@462 455 $(configfile /etc/lighttpd/lighttpd.conf LIGHTTPD_CONF)
jozee@462 456 $(php_ini)
jozee@462 457 <hbox>
jozee@462 458 $(startstopdaemon lighttpd)
jozee@462 459 </hbox>
jozee@462 460 </frame>
jozee@462 461 EOT
jozee@462 462 }
jozee@462 463
jozee@462 464 #
jozee@462 465 # Busybox httpd server
jozee@462 466 #
jozee@462 467 tab_httpd()
jozee@462 468 {
jozee@462 469 cat <<EOT
jozee@462 470 <frame httpd (busybox)>
jozee@462 471 $(helpdaemon httpd 80x30 HTTPD_OPTIONS HTTPD_OPTS)
jozee@462 472 $(configfile /etc/httpd.conf HTTPD_CONF)
jozee@462 473 $(php_ini)
jozee@462 474 <hbox>
jozee@462 475 $(startstopdaemon httpd busybox)
jozee@462 476 </hbox>
jozee@462 477 </frame>
jozee@462 478 EOT
jozee@462 479 }
jozee@462 480
jozee@462 481 data_http()
jozee@462 482 {
jozee@462 483 cat <<EOT
jozee@462 484 /etc/apache/httpd.conf Apache tab_apache
jozee@462 485 lighttpd Lighttpd tab_lighttpd
jozee@462 486 /etc/httpd.conf Busybox\ httpd tab_httpd
jozee@462 487 EOT
jozee@462 488 }
jozee@462 489
jozee@462 490 #
jozee@462 491 # http tab
jozee@462 492 #
jozee@462 493 tab_http()
jozee@462 494 {
jozee@462 495 use_tab data_http
jozee@462 496 }
jozee@462 497
jozee@462 498 #
jozee@462 499 # Samba servers
jozee@462 500 #
jozee@462 501 tab_wins()
jozee@462 502 {
jozee@462 503 cat <<EOT
jozee@462 504 <frame Samba: smbd & nmbd>
jozee@462 505 $(configfile /etc/samba/smb.conf SMBD_CONF)
jozee@462 506 <hbox>
jozee@462 507 <button>
jozee@462 508 <label>Reload</label>
jozee@462 509 <input file icon="reload"></input>
jozee@462 510 <action>/etc/init.d/samba reload</action>
jozee@462 511 </button>
jozee@462 512 $(startstopdaemon samba)
jozee@462 513 </hbox>
jozee@462 514 </frame>
jozee@462 515 EOT
jozee@462 516 }
jozee@462 517
jozee@462 518 #
jozee@462 519 # x11vnc
jozee@462 520 #
jozee@462 521 tab_vnc()
jozee@462 522 {
jozee@462 523 cat <<EOT
jozee@462 524 <frame x11vnc>
jozee@462 525 $(helpdaemon x11vnc 80x30 X11VNC_OPTIONS X11VNC_OPTS)
jozee@462 526 <hbox>
jozee@462 527 <text use-markup="true">
jozee@462 528 <label>"<b>New password</b>"</label>
jozee@462 529 </text>
jozee@462 530 <entry>
jozee@462 531 <variable>X11VNC_PASSWD</variable>
jozee@462 532 </entry>
jozee@462 533 <button>
jozee@462 534 <input file icon="reload"></input>
jozee@462 535 <label>Update</label>
jozee@462 536 <action>x11vnc -storepasswd \$X11VNC_PASSWD /etc/vnc.secret</action>
jozee@462 537 </button>
jozee@462 538 </hbox>
jozee@462 539 <hbox>
jozee@462 540 $(startstopdaemon x11vnc)
jozee@462 541 </hbox>
jozee@462 542 </frame>
jozee@462 543 EOT
jozee@462 544 }
jozee@462 545
jozee@462 546 #
jozee@462 547 # knock server
jozee@462 548 #
jozee@462 549 tab_knockd()
jozee@462 550 {
jozee@462 551 cat <<EOT
jozee@462 552 <frame Knockd: trigger backdoors>
jozee@462 553 $(helpdaemon knockd 80x15 KNOCK_OPTIONS KNOCK_OPTS)
jozee@462 554 $(configfile /etc/knockd.conf KNOCKD_CONF)
jozee@462 555 <hbox>
jozee@462 556 $(startstopdaemon knockd knock)
jozee@462 557 </hbox>
jozee@462 558 </frame>
jozee@462 559 EOT
jozee@462 560 }
jozee@462 561
jozee@462 562 data_servers()
jozee@462 563 {
jozee@462 564 local $pxe
jozee@462 565 pxe="#"
jozee@462 566 [ -x /usr/bin/tftpd -a -x /usr/sbin/udhcpd ] && pxe="inetd"
jozee@462 567 [ -x /usr/sbin/dnsmasq ] && pxe="true"
jozee@462 568 [ -f /usr/share/boot/pxelinux.0.lzma -o /usr/share/boot/gpxe.pxe ] || pxe="#"
jozee@462 569 cat <<EOT
jozee@462 570 $([ -x /usr/sbin/dropbear -o -x /usr/sbin/sshd ] && echo "true" ||
jozee@462 571 echo "#") SSH tab_sshd
jozee@462 572 $([ -x /usr/sbin/lighttpd -o -x /usr/bin/httpd ] && echo "true" ||
jozee@462 573 echo "#") HTTP tab_http
jozee@462 574 rsync Rsync tab_rsync
jozee@462 575 smbd SAMBA tab_wins
jozee@462 576 inetd Inetd tab_inetd
jozee@462 577 zcip ZeroConf tab_zcip
jozee@462 578 $([ -x /usr/sbin/udhcpd -o -x /usr/sbin/dhcpd -o -x /usr/sbin/dnsmasq ] &&
jozee@462 579 echo "true" ||
jozee@462 580 echo "#") DHCP tab_dhcpd
jozee@462 581 $pxe PXE tab_pxe
jozee@462 582 dnsmasq tftpd tab_dnsmasq
jozee@462 583 $([ -x /usr/sbin/dnsd -o -x /usr/sbin/named -o -x /usr/sbin/dnsmasq ] &&
jozee@462 584 echo "true" ||
jozee@462 585 echo "#") DNS tab_dns
jozee@462 586 x11vnc VNC tab_vnc
jozee@462 587 knockd Knock tab_knockd
jozee@462 588 #TODO+callback pppd Pppd tab_pppd
jozee@462 589 #TODO pptpd PoPToP tab_poptop
jozee@462 590 #TODO squid *sql openldap
jozee@462 591 EOT
jozee@462 592 }
jozee@462 593
jozee@462 594 #
jozee@462 595 # Servers tab
jozee@462 596 #
jozee@462 597 tab_servers()
jozee@462 598 {
jozee@462 599 use_tab data_servers
jozee@462 600 }
jozee@462 601
jozee@462 602 #
jozee@462 603 # Firewall tab
jozee@462 604 #
jozee@462 605 tab_firewall()
jozee@462 606 {
jozee@462 607 cat <<EOT
jozee@462 608 <frame Iptables>
jozee@462 609 $(configfile /etc/firewall.conf IPTABLES_CONF)
jozee@462 610 <hbox>
jozee@462 611 $(helpbutton iptables 80x30)
jozee@462 612 $(manbutton 8 iptables)
jozee@462 613 $(webbutton iptables)
jozee@462 614 <button>
jozee@462 615 <label>Load</label>
jozee@462 616 <input file icon="reload"></input>
jozee@462 617 <action>cat \$IPTABLES_CONF | /sbin/iptables-restore</action>
jozee@462 618 </button>
jozee@462 619 <button>
jozee@462 620 <label>Save</label>
jozee@462 621 <input file icon="go-jump"></input>
jozee@462 622 <action>/sbin/iptables-save > \$IPTABLES_CONF</action>
jozee@462 623 </button>
jozee@462 624 </hbox>
jozee@462 625 </frame>
jozee@462 626 EOT
jozee@462 627 }
jozee@462 628
jozee@462 629 #
jozee@462 630 # knock client
jozee@462 631 #
jozee@462 632 tab_knock()
jozee@462 633 {
jozee@462 634 cat <<EOT
jozee@462 635 <frame Knock>
jozee@462 636 <hbox>
jozee@462 637 <text use-markup="true">
jozee@462 638 <label>"<b>Options : </b>"</label>
jozee@462 639 </text>
jozee@462 640 <entry editable="true">
jozee@462 641 <variable>KNOCK_OPTS</variable>
jozee@462 642 <default>myserver.example.com 123:tcp 456:udp 789:tcp</default>
jozee@462 643 </entry>
jozee@462 644 </hbox>
jozee@462 645 <hbox>
jozee@462 646 $(helpbutton knock 80x12)
jozee@462 647 <button>
jozee@462 648 <label>Start</label>
jozee@462 649 <input file icon="forward"></input>
jozee@462 650 <action>knock \$KNOCK_OPTS</action>
jozee@462 651 </button>
jozee@462 652 </hbox>
jozee@462 653 </frame>
jozee@462 654 EOT
jozee@462 655 }
jozee@462 656
jozee@462 657 data_main()
jozee@462 658 {
jozee@462 659 cat <<EOT
jozee@462 660 #program tab name function
jozee@462 661 true Servers tab_servers
jozee@462 662 iptables Firewall tab_firewall
jozee@462 663 knock Knock tab_knock
jozee@462 664 EOT
jozee@462 665 }
jozee@462 666
jozee@462 667 tab_main()
jozee@462 668 {
jozee@462 669 use_tab data_main
jozee@462 670 }
jozee@462 671
jozee@462 672 ######################################################
jozee@462 673 #
jozee@462 674 # Serverbox GUI
jozee@462 675 #
jozee@462 676 ######################################################
jozee@462 677
jozee@462 678 # Only root can configure server.
jozee@462 679 check_root
jozee@462 680
jozee@462 681 # English/French help dialog.
jozee@462 682 export HELP='
jozee@462 683 <window title="Network status" icon-name="network-wire">
jozee@462 684 <vbox>
jozee@462 685 <text use-markup="true">
jozee@462 686 <label>
jozee@462 687 "
jozee@462 688 <b>SliTaz - Serverbox</b>"
jozee@462 689 </label>
jozee@462 690 </text>
jozee@462 691 <frame English>
jozee@462 692 <text wrap="true" width-chars="58">
jozee@462 693 <label>
jozee@462 694 "Serverbox lets you manage and setup servers. First, install and
paul@500 695 edit any configuration files. Then, start or stop the servers."
jozee@462 696 </label>
jozee@462 697 </text>
jozee@462 698 </frame>
jozee@462 699 <frame Francais>
jozee@462 700 <text wrap="true" width-chars="58">
jozee@462 701 <label>
jozee@462 702 "Serverbox peut demarrer ou arreter le reseau, configurer
jozee@462 703 les interfaces reseau ou editer directement les fichiers."
jozee@462 704 </label>
jozee@462 705 </text>
jozee@462 706 </frame>
jozee@462 707 </vbox>
jozee@462 708 </window>
jozee@462 709 '
jozee@462 710
jozee@462 711 # The main dialog with notebook, start/stop buttons and all options.
jozee@462 712 # Note that /etc/network.conf is seded when an interface is activated.
jozee@462 713 #
jozee@462 714 head='
jozee@462 715 <window title="SliTaz Server Manager" icon-name="network-wired">
jozee@462 716 <vbox>
jozee@462 717
jozee@462 718 <hbox>
jozee@462 719 <text use-markup="true">
jozee@462 720 <label>"<b>Server Manager</b>"</label>
jozee@462 721 </text>
jozee@462 722 <pixmap>
jozee@462 723 <input file>/usr/share/pixmaps/netbox.png</input>
jozee@462 724 </pixmap>
jozee@462 725 </hbox>
jozee@462 726 '
jozee@462 727 bottom='
jozee@462 728 <hbox>
jozee@462 729 <button help>
jozee@462 730 <label>Help</label>
jozee@462 731 <action type="launch">HELP</action>
jozee@462 732 </button>
jozee@462 733 <button>
jozee@462 734 <label>Quit</label>
jozee@462 735 <input file icon="exit"></input>
jozee@462 736 <action type="exit">Exit</action>
jozee@462 737 </button>
jozee@462 738 </hbox>
jozee@462 739
jozee@462 740 </vbox>
jozee@462 741 </window>
jozee@462 742 '
jozee@462 743
jozee@462 744 SERVER_BOX="${head}$(tab_main)${bottom}"
jozee@462 745
jozee@462 746 export SERVER_BOX
jozee@462 747
jozee@462 748 gtkdialog --center --program=SERVER_BOX >/dev/null