From e73d969053b11642b618dbdcf64bd2e35e57b6d3 Mon Sep 17 00:00:00 2001 From: lars Date: Fri, 12 May 2006 16:47:06 +0000 Subject: [PATCH] moving the cryptobox tree back to its place :) --- cbox-tree.d/etc/cron.d/cryptobox | 1 + cbox-tree.d/etc/cryptobox/cryptobox.conf | 56 ++ cbox-tree.d/etc/cryptobox/revision | 1 + cbox-tree.d/etc/cryptobox/ssl-cert.conf | 65 ++ cbox-tree.d/etc/default/cryptobox | 26 + cbox-tree.d/etc/init.d/cryptobox | 89 +++ cbox-tree.d/usr/lib/cgi-bin/cryptobox.pl | 704 ++++++++++++++++++ cbox-tree.d/usr/lib/cryptobox/cbox-manage.sh | 590 +++++++++++++++ .../usr/lib/cryptobox/cbox-root-actions.sh | 330 ++++++++ .../usr/lib/cryptobox/check_smb_idle.sh | 92 +++ cbox-tree.d/usr/lib/cryptobox/chroot-start.sh | 55 ++ .../usr/lib/cryptobox/configure-cryptobox.sh | 145 ++++ cbox-tree.d/usr/lib/cryptobox/firewall.sh | 67 ++ .../usr/lib/cryptobox/make_stunnel_cert.sh | 47 ++ .../usr/share/cryptobox/defaults/admin_pw | 0 cbox-tree.d/usr/share/cryptobox/defaults/ip | 1 + .../usr/share/cryptobox/defaults/language | 1 + .../usr/share/cryptobox/defaults/names.db | 0 .../usr/share/cryptobox/defaults/timeout | 1 + .../usr/share/cryptobox/defaults/version | 1 + cbox-tree.d/usr/share/cryptobox/lang/README | 28 + cbox-tree.d/usr/share/cryptobox/lang/TODO | 16 + cbox-tree.d/usr/share/cryptobox/lang/de.hdf | 215 ++++++ cbox-tree.d/usr/share/cryptobox/lang/en.hdf | 215 ++++++ cbox-tree.d/usr/share/cryptobox/lang/si.hdf | 215 ++++++ .../usr/share/cryptobox/templates/empty.cs | 3 + .../usr/share/cryptobox/templates/error.cs | 3 + .../usr/share/cryptobox/templates/footer.cs | 35 + .../share/cryptobox/templates/form_config.cs | 31 + .../share/cryptobox/templates/form_init.cs | 34 + .../share/cryptobox/templates/form_mount.cs | 15 + .../cryptobox/templates/form_shutdown.cs | 19 + .../share/cryptobox/templates/form_umount.cs | 12 + .../usr/share/cryptobox/templates/header.cs | 47 ++ .../usr/share/cryptobox/templates/macros.cs | 93 +++ .../usr/share/cryptobox/templates/main.cs | 16 + .../usr/share/cryptobox/templates/nav.cs | 22 + .../usr/share/cryptobox/templates/show_doc.cs | 7 + .../usr/share/cryptobox/templates/show_log.cs | 13 + .../share/cryptobox/templates/show_status.cs | 5 + cbox-tree.d/usr/share/doc/cryptobox/README | 24 + .../usr/share/doc/cryptobox/README.Debian | 18 + .../share/doc/cryptobox/changelog.Debian.gz | Bin 0 -> 156 bytes .../usr/share/doc/cryptobox/changelog.gz | Bin 0 -> 485 bytes cbox-tree.d/usr/share/doc/cryptobox/copyright | 18 + .../doc/cryptobox/html/de/CryptoBox.html | 93 +++ .../doc/cryptobox/html/de/CryptoBoxDev.html | 107 +++ .../html/de/CryptoBoxDevBackground.html | 61 ++ .../html/de/CryptoBoxDevCustomBuild.html | 85 +++ .../html/de/CryptoBoxDevCustomConfigure.html | 60 ++ .../html/de/CryptoBoxDevKnownProblems.html | 39 + .../html/de/CryptoBoxDevPreparation.html | 77 ++ .../html/de/CryptoBoxDevValidation.html | 78 ++ .../html/de/CryptoBoxDevWorkFlow.html | 151 ++++ .../doc/cryptobox/html/de/CryptoBoxUser.html | 59 ++ .../html/de/CryptoBoxUserConfiguration.html | 109 +++ .../html/de/CryptoBoxUserDailyUse.html | 124 +++ .../html/de/CryptoBoxUserGettingStarted.html | 57 ++ .../doc/cryptobox/html/en/CryptoBox.html | 89 +++ .../doc/cryptobox/html/en/CryptoBoxDev.html | 107 +++ .../html/en/CryptoBoxDevBackground.html | 61 ++ .../html/en/CryptoBoxDevCustomBuild.html | 85 +++ .../html/en/CryptoBoxDevCustomConfigure.html | 60 ++ .../html/en/CryptoBoxDevKnownProblems.html | 39 + .../html/en/CryptoBoxDevPreparation.html | 77 ++ .../html/en/CryptoBoxDevValidation.html | 78 ++ .../html/en/CryptoBoxDevWorkFlow.html | 151 ++++ .../doc/cryptobox/html/en/CryptoBoxUser.html | 60 ++ .../html/en/CryptoBoxUserConfiguration.html | 103 +++ .../html/en/CryptoBoxUserDailyUse.html | 114 +++ .../html/en/CryptoBoxUserGettingStarted.html | 64 ++ .../var/www/cryptobox-misc/antlogo100px.png | Bin 0 -> 7318 bytes .../www/cryptobox-misc/antlogo100px_green.png | Bin 0 -> 8624 bytes .../www/cryptobox-misc/antlogo100px_red.png | Bin 0 -> 8142 bytes cbox-tree.d/var/www/cryptobox-misc/backg.gif | Bin 0 -> 13018 bytes .../var/www/cryptobox-misc/cryptobox.css | 391 ++++++++++ cbox-tree.d/var/www/cryptobox-misc/list.gif | Bin 0 -> 51 bytes .../cryptobox-misc/screenshots/de_config.png | Bin 0 -> 80374 bytes .../cryptobox-misc/screenshots/de_init.png | Bin 0 -> 62123 bytes .../cryptobox-misc/screenshots/de_mount.png | Bin 0 -> 59615 bytes .../screenshots/de_w98_login.png | Bin 0 -> 3650 bytes .../screenshots/de_w98_network_drive.png | Bin 0 -> 3345 bytes .../screenshots/de_w98_not_logged_in.png | Bin 0 -> 2914 bytes .../cryptobox-misc/screenshots/en_config.png | Bin 0 -> 85007 bytes .../cryptobox-misc/screenshots/en_mount.png | Bin 0 -> 71564 bytes .../screenshots/en_w98_login.png | Bin 0 -> 3504 bytes .../screenshots/en_w98_network_drive.png | Bin 0 -> 3013 bytes .../screenshots/en_w98_not_logged_in.png | Bin 0 -> 2853 bytes cbox-tree.d/var/www/cryptobox-misc/smile.png | Bin 0 -> 356 bytes cbox-tree.d/var/www/cryptobox-misc/smile4.png | Bin 0 -> 275 bytes .../var/www/cryptobox-misc/somerights20.gif | Bin 0 -> 1835 bytes 91 files changed, 5955 insertions(+) create mode 100644 cbox-tree.d/etc/cron.d/cryptobox create mode 100644 cbox-tree.d/etc/cryptobox/cryptobox.conf create mode 100644 cbox-tree.d/etc/cryptobox/revision create mode 100644 cbox-tree.d/etc/cryptobox/ssl-cert.conf create mode 100644 cbox-tree.d/etc/default/cryptobox create mode 100755 cbox-tree.d/etc/init.d/cryptobox create mode 100755 cbox-tree.d/usr/lib/cgi-bin/cryptobox.pl create mode 100755 cbox-tree.d/usr/lib/cryptobox/cbox-manage.sh create mode 100755 cbox-tree.d/usr/lib/cryptobox/cbox-root-actions.sh create mode 100755 cbox-tree.d/usr/lib/cryptobox/check_smb_idle.sh create mode 100755 cbox-tree.d/usr/lib/cryptobox/chroot-start.sh create mode 100755 cbox-tree.d/usr/lib/cryptobox/configure-cryptobox.sh create mode 100755 cbox-tree.d/usr/lib/cryptobox/firewall.sh create mode 100755 cbox-tree.d/usr/lib/cryptobox/make_stunnel_cert.sh create mode 100644 cbox-tree.d/usr/share/cryptobox/defaults/admin_pw create mode 100644 cbox-tree.d/usr/share/cryptobox/defaults/ip create mode 100644 cbox-tree.d/usr/share/cryptobox/defaults/language create mode 100644 cbox-tree.d/usr/share/cryptobox/defaults/names.db create mode 100644 cbox-tree.d/usr/share/cryptobox/defaults/timeout create mode 100644 cbox-tree.d/usr/share/cryptobox/defaults/version create mode 100644 cbox-tree.d/usr/share/cryptobox/lang/README create mode 100644 cbox-tree.d/usr/share/cryptobox/lang/TODO create mode 100644 cbox-tree.d/usr/share/cryptobox/lang/de.hdf create mode 100644 cbox-tree.d/usr/share/cryptobox/lang/en.hdf create mode 100644 cbox-tree.d/usr/share/cryptobox/lang/si.hdf create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/empty.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/error.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/footer.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/form_config.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/form_init.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/form_mount.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/form_shutdown.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/form_umount.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/header.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/macros.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/main.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/nav.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/show_doc.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/show_log.cs create mode 100644 cbox-tree.d/usr/share/cryptobox/templates/show_status.cs create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/README create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/README.Debian create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/changelog.Debian.gz create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/changelog.gz create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/copyright create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBox.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDev.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevBackground.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevCustomBuild.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevCustomConfigure.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevKnownProblems.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevPreparation.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevValidation.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevWorkFlow.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUser.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUserConfiguration.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUserDailyUse.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUserGettingStarted.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBox.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDev.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevBackground.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevCustomBuild.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevCustomConfigure.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevKnownProblems.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevPreparation.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevValidation.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevWorkFlow.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUser.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUserConfiguration.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUserDailyUse.html create mode 100644 cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUserGettingStarted.html create mode 100644 cbox-tree.d/var/www/cryptobox-misc/antlogo100px.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/antlogo100px_green.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/antlogo100px_red.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/backg.gif create mode 100644 cbox-tree.d/var/www/cryptobox-misc/cryptobox.css create mode 100644 cbox-tree.d/var/www/cryptobox-misc/list.gif create mode 100644 cbox-tree.d/var/www/cryptobox-misc/screenshots/de_config.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/screenshots/de_init.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/screenshots/de_mount.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/screenshots/de_w98_login.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/screenshots/de_w98_network_drive.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/screenshots/de_w98_not_logged_in.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/screenshots/en_config.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/screenshots/en_mount.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/screenshots/en_w98_login.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/screenshots/en_w98_network_drive.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/screenshots/en_w98_not_logged_in.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/smile.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/smile4.png create mode 100644 cbox-tree.d/var/www/cryptobox-misc/somerights20.gif diff --git a/cbox-tree.d/etc/cron.d/cryptobox b/cbox-tree.d/etc/cron.d/cryptobox new file mode 100644 index 0000000..67d9661 --- /dev/null +++ b/cbox-tree.d/etc/cron.d/cryptobox @@ -0,0 +1 @@ +* * * * * root [ -e /usr/lib/cryptobox/cbox-manage.sh ] && /usr/lib/cryptobox/check_smb_idle.sh diff --git a/cbox-tree.d/etc/cryptobox/cryptobox.conf b/cbox-tree.d/etc/cryptobox/cryptobox.conf new file mode 100644 index 0000000..342f46f --- /dev/null +++ b/cbox-tree.d/etc/cryptobox/cryptobox.conf @@ -0,0 +1,56 @@ +# this file is directly sourced by some bash scripts +# so there should be no space around the "=" + +LANGUAGE=en +NET_IFACE=eth0 +FILE_USER=cryptobox-data +WEB_USER=www-data +SCAN_DEVICES="sda" +#SCAN_DEVICES="hda hdb hdc hdd hde hdf hdg scd sg sda sdb sdc sdd" + +# set this to "1" to create a dedicated configuration partition (very small) +# this should only be necessary, if your root filesystem is read-only (as for a live-cd) +USE_SEPERATE_CONFIG_PARTITION=0 + +# web interface +HTML_TEMPLATE_DIR=/usr/share/cryptobox/templates +STYLESHEET_URL=/cryptobox-misc/cryptobox.css + +# directories +LANGUAGE_DIR=/usr/share/cryptobox/lang +DOC_DIR=/usr/share/doc/cryptobox/html +CONFIG_DEFAULTS_DIR=/usr/share/cryptobox/defaults +CONFIG_DIR=/var/lib/cryptobox/config +MNT_PARENT=/var/lib/cryptobox/mnt + +# some files +CB_SCRIPT=/usr/lib/cryptobox/cbox-manage.sh +ROOT_PERM_SCRIPT=/usr/lib/cryptobox/cbox-root-actions.sh +DEV_FEATURES_SCRIPT=/usr/lib/cryptobox/devel-features.sh +FIREWALL_SCRIPT=/usr/lib/cryptobox/firewall.sh +MAKE_CERT_SCRIPT=/usr/lib/cryptobox/make_stunnel_cert.sh +LOG_FILE=/var/log/cryptobox.log +CERT_FILE=/var/lib/cryptobox/config/stunnel.pem +OPENSSL_CONF_FILE=/etc/cryptobox/ssl-cert.conf +IDLE_COUNTER_FILE=/tmp/cbox-idle-counter +CONFIG_MARKER=cryptobox.marker + +# crypto settings +# there is no default hash, as this is ignored by luks +DEFAULT_CIPHER=aes-cbc-essiv:sha256 +DEV_MAPPER_DIR=/dev/mapper + +# some programs +SFDISK=/sbin/sfdisk +MKFS_DATA=/sbin/mkfs.ext3 +MKFS_CONFIG=/sbin/mkfs.ext2 +CRYPTSETUP=/sbin/cryptsetup +IPTABLES=/sbin/iptables +IFCONFIG=/sbin/ifconfig + +# firewall setings +# do not use multiports (iptables) as the timeout-script depends on +# single port rules +# ssh is allowed too, but the server is not started automatically +ALLOW_TCP_PORTS="22 80 139 443 445" +ALLOW_UDP_PORTS="137 138" diff --git a/cbox-tree.d/etc/cryptobox/revision b/cbox-tree.d/etc/cryptobox/revision new file mode 100644 index 0000000..31cc7b9 --- /dev/null +++ b/cbox-tree.d/etc/cryptobox/revision @@ -0,0 +1 @@ +$Revision$ diff --git a/cbox-tree.d/etc/cryptobox/ssl-cert.conf b/cbox-tree.d/etc/cryptobox/ssl-cert.conf new file mode 100644 index 0000000..a1a1a63 --- /dev/null +++ b/cbox-tree.d/etc/cryptobox/ssl-cert.conf @@ -0,0 +1,65 @@ +# +# OpenSSL configuration file. +# + +# Establish working directory. + +dir = . + +[ ca ] +default_ca = CA_default + +[ CA_default ] +default_days = 3650 +default_md = md5 +policy = policy_match +#serial = $dir/serial +#database = $dir/index.txt +#new_certs_dir = $dir/newcert +#certificate = $dir/cacert.pem +#private_key = $dir/private/cakey.pem +#preserve = no +#email_in_dn = no +#nameopt = default_ca +#certopt = default_ca + +[ policy_match ] +countryName = match +stateOrProvinceName = match +organizationName = match +organizationalUnitName = match +commonName = supplied +emailAddress = optional + +[ req ] +default_bits = 1024 # Size of keys +default_keyfile = stunnel.pem # name of generated keys +default_md = md5 # message digest algorithm +distinguished_name = req_distinguished_name + +[ req_distinguished_name ] +# Variable name Prompt string +#---------------------- ---------------------------------- +0.organizationName = Organization Name (company) +organizationalUnitName = Organizational Unit Name (department, division) +emailAddress = Email Address +emailAddress_max = 40 +localityName = Locality Name (city, district) +stateOrProvinceName = State or Province Name (full name) +#countryName = Country Name (2 letter code) +#countryName_min = 2 +#countryName_max = 2 +#commonName = Common Name (hostname, IP, or your name) +#commonName_max = 64 + +# Default values for the above, for consistency and less typing. +# Variable name Value +#------------------------------ ------------------------------ +0.organizationName_default = CryptoBox +organizationalUnitName_default = s.l. +localityName_default = Kugelmugel +stateOrProvinceName_default = Metropolis +emailAddress_default = info@systemausfall.org + + + diff --git a/cbox-tree.d/etc/default/cryptobox b/cbox-tree.d/etc/default/cryptobox new file mode 100644 index 0000000..49dc265 --- /dev/null +++ b/cbox-tree.d/etc/default/cryptobox @@ -0,0 +1,26 @@ +# boot configuration file for the CryptoBox +# +# $Id$ +# +# the default setup of the cryptobox is complete inactivity + +# set to "1" to turn off the cryptobox - otherwise "0" +NO_START=1 + +# change the default configuration file if necessary +#CONF_FILE=/etc/cryptobox/cryptobox.conf + +# should the cryptobox skip the network interface configuration? +# "0" means skip (default) --- "1" causes the cryptobox to configure it +SKIP_NETWORK_CONFIG=1 + +# should the cryptobox set some firewall (iptables) rules? +# if this is turned off, then you have to add the appropriate +# rules manually (if you need the timeout feature of the cryptobox) +# default is 0 +EXEC_FIREWALL_RULES=0 + +# use stunnel for https support? +# default is 0 +USE_STUNNEL=0 + diff --git a/cbox-tree.d/etc/init.d/cryptobox b/cbox-tree.d/etc/init.d/cryptobox new file mode 100755 index 0000000..9e6c35c --- /dev/null +++ b/cbox-tree.d/etc/init.d/cryptobox @@ -0,0 +1,89 @@ +#!/bin/sh +set -eu +# +# we give some hints for users, sitting in front of the cryptobox waiting for a login prompt +# + +# check if the cryptobox is installed +[ -e "/usr/lib/cryptobox/cbox-manage.sh" ] || exit 0 + +# read the default setting file, if it exists +[ -e /etc/default/cryptobox ] && . /etc/default/cryptobox + +# startup switch defaults to zero (enabled) +NO_START=${NO_START:-0} +# check startup switch +if [ "$NO_START" = "1" ] + then [ $# -eq 0 ] && exit 0 + [ "$1" = "status" ] && exit 1 + [ "$1" = "stop" ] && exit 0 + echo "CryptoBox is disabled by default" + exit 0 + fi + +# stop-on-errors +set -eu + +# set CONF_FILE to default value, if not configured in /etc/default/cryptobox +CONF_FILE=${CONF_FILE:-/etc/cryptobox/cryptobox.conf} + +# parse config file +if [ -e "$CONF_FILE" ] + then . "$CONF_FILE" + else echo "[$(basename $0)] - configuration file ($CONF_FILE) not found!" >&2 + exit 1 + fi + +case "$1" in + start ) + # stop if already running + "$0" status && "$0" stop + # initialize + "$CB_SCRIPT" config-up + "$CB_SCRIPT" network-up + "$CB_SCRIPT" services-up + # check if we are on a developers CryptoBox + # if not give some usage hints + # otherwise give a warning and start the devel features + if [ ! -e "$DEV_FEATURES_SCRIPT" ]; then + echo + echo "How to use the CryptoBox:" + echo " * point a webbrowser from another computer to 'http://$(/usr/lib/cryptobox/cbox-manage.sh get_current_ip)/cryptobox'" + echo " * configure your CryptoBox via a webbrowser" + echo + else + echo + echo "+---------------------------------------------------------------+" + echo "| WARNING: Some CryptoBox development features are enabled |" + echo "| This should definitely NOT happen for a production CD. |" + echo "| as it offers no security at all. |" + echo "| If you don't plan to refine this CD, don't use it! |" + echo "+---------------------------------------------------------------+" + echo + "$DEV_FEATURES_SCRIPT" "$@" + fi + true + ;; + stop ) + # exit if not running + "$0" status || exit 0 + # shut down + "$CB_SCRIPT" services-down + "$CB_SCRIPT" network-down + "$CB_SCRIPT" config-down + ;; + restart | reload | force-reload ) + $0 stop + $0 start + ;; + status ) + if "$CB_SCRIPT" is_config_mounted + then exit 0 + else exit 1 + fi + ;; + * ) + echo "Syntax: $0 { start | stop | restart | reload | force-reload | status }" + ;; + esac + diff --git a/cbox-tree.d/usr/lib/cgi-bin/cryptobox.pl b/cbox-tree.d/usr/lib/cgi-bin/cryptobox.pl new file mode 100755 index 0000000..dd6c545 --- /dev/null +++ b/cbox-tree.d/usr/lib/cgi-bin/cryptobox.pl @@ -0,0 +1,704 @@ +#!/usr/bin/perl +# +# Copyright (c) 02005 sense.lab +# +# License: This script is distributed under the terms of version 2 +# of the GNU GPL. See the LICENSE file included with the package. +# +# $Id$ +# +# the web interface of the CryptoBox +# + + +############################################### + +use strict; +use CGI; +use ClearSilver; +use ConfigFile; + +my $CONFIG_FILE = '/etc/cryptobox/cryptobox.conf'; + +my $pagedata; + +my ($LANGUAGE_DIR, $DEFAULT_LANGUAGE, $HTML_TEMPLATE_DIR, $DOC_DIR); +my ($CB_SCRIPT, $LOG_FILE, $IS_DEVEL, $STYLESHEET_URL); + +&fatal_error ("could not find configuration file ($CONFIG_FILE)") unless (-e $CONFIG_FILE); +my $config = ConfigFile::read_config_file($CONFIG_FILE); + +$CB_SCRIPT = $config->{CB_SCRIPT}; +$LOG_FILE = $config->{LOG_FILE}; +$LANGUAGE_DIR = $config->{LANGUAGE_DIR}; +$DEFAULT_LANGUAGE = $config->{LANGUAGE}; +$HTML_TEMPLATE_DIR = $config->{HTML_TEMPLATE_DIR}; +$DOC_DIR = $config->{DOC_DIR}; +$IS_DEVEL = ( -e $config->{DEV_FEATURES_SCRIPT}); +$STYLESHEET_URL = $config->{STYLESHEET_URL}; + +# TODO: just a quick-and-dirty hack during migration to multiple containers +my $CRYPTO_DEV = `$CB_SCRIPT get_available_disks | cut -f 1 -d " " | tr "\n" "2"`; + +my $query = new CGI; + + +#################### subs ###################### + +# for fatal errors without the chance of clearsilver-rendering +sub fatal_error() +{ + my $message = shift; + + print "Content-Type: text/html\n\n"; + print "CryptoBox\n"; + print "\n"; + print '

' . $message . "

\n"; + print "\n"; + die "[CryptoBox]: $message"; +} + + +sub load_hdf +{ + my $hdf = ClearSilver::HDF->new(); + + my $fname = "$HTML_TEMPLATE_DIR/main.cs"; + &fatal_error ("Template directory is invalid ($fname not found)!") unless (-e "$fname"); + $hdf->setValue("Settings.TemplateDir","$HTML_TEMPLATE_DIR"); + + &fatal_error ("Documentation directory ($DOC_DIR) not found!") unless (-d "$DOC_DIR"); + $hdf->setValue("Settings.DocDir","$DOC_DIR"); + + # if it was requested as directory index (link from index.html), we should + # set a real script name - otherwise links with a query string will break + # ignore POST part of the SCRIPT_NAME (after "&") + (my $script_url = $ENV{'SCRIPT_NAME'}) =~ m/^[^&]*/; + $hdf->setValue("ScriptName", ($ENV{'SCRIPT_NAME'} eq '/')? '/cryptobox' : $script_url ); + + # set stylesheet url + $hdf->setValue("Settings.Stylesheet",$STYLESHEET_URL); + + &load_selected_language($hdf); + + &get_available_languages($hdf); + + return $hdf; +} + + +sub load_selected_language +{ + my $data = shift; + my $config_language; + + # load $DEFAULT_LANGUAGE - this is necessary, if a translation is incomplete + $data->readFile("$LANGUAGE_DIR/$DEFAULT_LANGUAGE" . ".hdf"); + + # load configured language, if it is valid + $config_language = `$CB_SCRIPT get_config language`; + $config_language = $DEFAULT_LANGUAGE unless (&validate_language("$config_language")); + + # check for preferred browser language, if the box was not initialized yet + if ( ! &check_config()) + { + my $prefLang = &get_browser_language(); + # take it, if a supported browser language was found + $config_language = $prefLang unless ($prefLang eq ''); + } + + ######### temporary language setting? ############ + # the default language can be overriden by the language links in the + # upper right of the page + if ($query->param('weblang')) { + my $weblang = $query->param('weblang'); + if (&validate_language($weblang)) { + # load the data + $config_language = "$weblang"; + # add the setting to every link + $data->setValue('Data.PostData.weblang', "$weblang"); + } else { + # no valid language was selected - so you may ignore it + $data->setValue('Data.Warning', 'InvalidLanguage'); + } + } + # import the configured resp. the temporarily selected language + $data->readFile("$LANGUAGE_DIR/$config_language" . ".hdf"); + + ########## select documentation language ########## + if (&validate_doc_language($config_language)) { + # selected web interface language + $data->setValue('Settings.DocLang', "$config_language"); + } elsif (&validate_doc_language($DEFAULT_LANGUAGE)) { + # configured CryptoBox language + $data->setValue('Settings.DocLang', "$DEFAULT_LANGUAGE"); + } else { + # default hardcoded language (english) + $data->setValue('Settings.DocLang', "en"); + } +} + + +sub get_available_languages +# import the names of all available languages +{ + my $data = shift; + my ($file, @files, $hdf, $lang_name); + + opendir(DIR, $LANGUAGE_DIR) or &fatal_error ("Language directory ($LANGUAGE_DIR) not accessible!"); + @files = sort grep { /.*\.hdf$/ } readdir(DIR); + close(DIR); + + foreach $file (@files) { + $hdf = ClearSilver::HDF->new(); + $hdf->readFile("$LANGUAGE_DIR/$file"); + substr($file, -4) = ""; + $lang_name = $hdf->getValue("Lang.Name", "$file"); + $data->setValue("Data.Languages." . "$file", "$lang_name"); + } +} + + +# look for preferred browser language setting +# this code was adapted from Per Cederberg - http://www.percederberg.net/home/perl/select.perl +# it returns an empty string, if no supported language was found +sub get_browser_language +{ + my ($str, @langs, @res); + + # Use language preference settings + if ($ENV{'HTTP_ACCEPT_LANGUAGE'} ne '') + { + @langs = split(/,/, $ENV{'HTTP_ACCEPT_LANGUAGE'}); + foreach (@langs) + { + # get the first part of the language setting + ($str) = ($_ =~ m/([a-z]+)/); + # check, if it supported by the cryptobox + $res[$#res+1] = $str if validate_language($str); + } + } + + # if everything fails - return empty string + $res[0] = "" if ($#res lt 0); + return $res[0]; +} + + +sub log_msg +{ + my $text = shift; + open(LOGFILE,">> $LOG_FILE"); + print LOGFILE "$text"; + close(LOGFILE); +} + + +sub check_ssl +{ + # BEWARE: dirty trick - is there a better way? + # stunnel is not in transparent mode -> that means, it replaces REMOTE_ADDR with + # its own IP (localhost, of course) + return ($ENV{'REMOTE_ADDR'} eq '127.0.0.1'); +} + + +sub check_mounted +{ + return (system("$CB_SCRIPT","is_crypto_mounted",$CRYPTO_DEV) == 0); +} + + +sub check_config +{ + return (system("$CB_SCRIPT","is_config_mounted",$CRYPTO_DEV) == 0); +} + + +sub check_init_running +{ + return (system("$CB_SCRIPT","is_init_running") == 0); +} + + +sub is_harddisk_available +{ + return (system("$CB_SCRIPT","is_harddisk_available") == 0); +} + +sub get_available_disks +# TODO: this is useful for diskselection buttons +{ + return `$CB_SCRIPT get_available_disks`; +} + +sub get_current_ip +# the IP of eth0 - not the configured value of the box (only for validation) +{ + return `$CB_SCRIPT get_current_ip`; +} + + +sub get_admin_pw +# returns the current administration password - empty, if it is not used +{ + return `$CB_SCRIPT get_config admin_pw`; +} + + +sub render +{ + my $pagefile = "$HTML_TEMPLATE_DIR/main.cs"; + print "Content-Type: text/html\n\n"; + + my $cs = ClearSilver::CS->new($pagedata); + $cs->parseFile($pagefile); + + print $cs->render(); +} + + +sub mount_vol +{ + my $pw = shift; + + if (&check_mounted) { + $pagedata->setValue('Data.Warning', 'IsMounted'); + } else { + open(PW_INPUT, "| $CB_SCRIPT crypto-up $CRYPTO_DEV"); + print PW_INPUT $pw; + close(PW_INPUT); + } +} + + +sub umount_vol +{ + if (&check_mounted) { + system("$CB_SCRIPT", "crypto-down",$CRYPTO_DEV); + } else { + $pagedata->setValue('Data.Warning', 'NotMounted'); + } +} + + +sub box_init +{ + my ($crypto_pw, $admin_pw) = @_; + + system("$CB_SCRIPT", "init") || return 1; + + # partitioning, config and initial cryptsetup + # TODO: define the name of the crypto container + open(PW_INPUT, "|$CB_SCRIPT crypto-create '$CRYPTO_DEV' default"); + print PW_INPUT $crypto_pw; + close(PW_INPUT); + + # set administration password + system("$CB_SCRIPT", "set_config", "admin_pw", "$admin_pw"); +} + +sub box_purge +{ + system("$CB_SCRIPT", "box-purge"); +} + +sub system_poweroff +{ + &umount_vol() if (&check_mounted()); + system("$CB_SCRIPT", "poweroff"); +} + + +sub system_reboot +{ + &umount_vol() if (&check_mounted()); + system("$CB_SCRIPT", "reboot"); +} + + +sub validate_ip +{ + my $ip = shift; + my @octets = split /\./, $ip; + return 0 if ($#octets == 4); + # check for values and non-digits + return 0 if (($octets[0] <= 0) || ($octets[0] >= 255) || ($octets[0] =~ /\D/)); + return 0 if (($octets[1] < 0) || ($octets[1] >= 255) || ($octets[1] =~ /\D/)); + return 0 if (($octets[2] < 0) || ($octets[2] >= 255) || ($octets[2] =~ /\D/)); + return 0 if (($octets[3] <= 0) || ($octets[3] >= 255) || ($octets[3] =~ /\D/)); + return 1; +} + + +sub validate_timeout +{ + my $timeout = shift; + return 0 if ($timeout =~ /\D/); + return 1; +} + + +# check for a valid interface language +sub validate_language +{ + my $language = shift; + # check for non-alphanumeric character + return 0 if ($language =~ /\W/); + return 0 if ($language eq ""); + return 0 if ( ! -e "$LANGUAGE_DIR/$language" . '.hdf'); + return 1; +} + + +# check for a valid documentation language +sub validate_doc_language +{ + my $language = shift; + # check for non-alphanumeric character + return 0 if ($language =~ /\W/); + return 0 if ($language eq ""); + return 0 if ( ! -e "$DOC_DIR/$language"); + return 1; +} + + +################### main ######################### + + +$pagedata = load_hdf(); + +# BEWARE: there are two kinds of actions: +# * some require a harddisk +# * some do not require a harddisk +# take care, that you put a new action into the appropriate block below + +# first: check for ssl! +if ( ! &check_ssl()) { + $pagedata->setValue('Data.Error', 'NoSSL'); + $pagedata->setValue('Data.Redirect.URL', "https://" . $ENV{'HTTP_HOST'} . $ENV{'SCRIPT_NAME'}); + $pagedata->setValue('Data.Redirect.Delay', "3"); +} elsif ($query->param('action')) { + my $action = $query->param('action'); + #--------------------------------------------------------------# + # here you may define all cases that do not require a harddisk # + # put all other cases below the harddisk check # + #--------------------------------------------------------------# + #################### show_log ####################### + if ($action eq 'show_log') { + $pagedata->setValue('Data.Action', 'show_log'); + ##################### doc ############################ + } elsif ($action eq 'doc') { + if ($query->param('page')) { + $pagedata->setValue('Data.Doc.Page', $query->param('page')); + $pagedata->setValue('Data.Action', 'show_doc'); + } else { + $pagedata->setValue('Data.Doc.Page', 'CryptoBoxUser'); + $pagedata->setValue('Data.Action', 'show_doc'); + } + ##################### poweroff ###################### + } elsif ($action eq 'shutdown_ask') { + $pagedata->setValue('Data.Action', 'form_shutdown'); + ##################### reboot ######################## + } elsif ($action eq 'shutdown_do') { + if ($query->param('type') eq 'reboot') { + &system_reboot(); + $pagedata->setValue('Data.Success', 'ReBoot'); + $pagedata->setValue('Data.Redirect.Action', 'show_status'); + $pagedata->setValue('Data.Redirect.Delay', "180"); + } else { + &system_poweroff(); + $pagedata->setValue('Data.Success', 'PowerOff'); + } + $pagedata->setValue('Data.Action', 'empty'); + ##################### check for a harddisk ########################## + # catch this error, to prevent all following actions from execution # + ##################################################################### + } elsif ( ! &is_harddisk_available()) { + $pagedata->setValue('Data.Error', 'NoHardDisk'); + #-------------------------------------------------------# + # here you may define all cases that require a harddisk # + #-------------------------------------------------------# + ################ umount_do ####################### + } elsif ($action eq 'umount_do') { + if ( ! &check_config()) { + $pagedata->setValue('Data.Warning', 'NotInitialized'); + $pagedata->setValue('Data.Action', 'form_init'); + } elsif (&check_init_running()) { + $pagedata->setValue('Data.Warning', 'InitNotFinished'); + $pagedata->setValue('Data.Action', 'empty'); + $pagedata->setValue('Data.Redirect.Action', 'form_config'); + $pagedata->setValue('Data.Redirect.Delay', "30"); + } elsif ( ! &check_mounted()) { + $pagedata->setValue('Data.Warning', 'NotMounted'); + $pagedata->setValue('Data.Action', 'empty'); + } else { + # unmounten + &umount_vol(); + if (&check_mounted()) { + $pagedata->setValue('Data.Warning', 'UmountFailed'); + $pagedata->setValue('Data.Action', 'form_umount'); + } else { + $pagedata->setValue('Data.Success', 'UmountDone'); + $pagedata->setValue('Data.Action', 'empty'); + $pagedata->setValue('Data.Redirect.Action', 'show_status'); + $pagedata->setValue('Data.Redirect.Delay', "30"); + } + } + ################ mount_do ######################## + } elsif ($action eq 'mount_do') { + # mount requested + if ( ! &check_config()) { + $pagedata->setValue('Data.Warning', 'NotInitialized'); + $pagedata->setValue('Data.Action', 'form_init'); + } elsif (&check_init_running()) { + $pagedata->setValue('Data.Warning', 'InitNotFinished'); + $pagedata->setValue('Data.Action', 'empty'); + $pagedata->setValue('Data.Redirect.Action', 'form_config'); + $pagedata->setValue('Data.Redirect.Delay', "30"); + } elsif (&check_mounted()) { + $pagedata->setValue('Data.Warning', 'IsMounted'); + $pagedata->setValue('Data.Action', 'empty'); + $pagedata->setValue('Data.Redirect.Action', 'show_status'); + $pagedata->setValue('Data.Redirect.Delay', "30"); + } elsif ($query->param('crypto_password') eq '') { + # leeres Passwort + $pagedata->setValue('Data.Warning', 'EmptyCryptoPassword'); + $pagedata->setValue('Data.Action', 'form_mount'); + } else { + # mounten + &mount_vol($query->param('crypto_password')); + if (!&check_mounted()) { + $pagedata->setValue('Data.Warning', 'MountFailed'); + $pagedata->setValue('Data.Action', 'form_mount'); + } else { + $pagedata->setValue('Data.Success', 'MountDone'); + $pagedata->setValue('Data.Action', 'empty'); + $pagedata->setValue('Data.Redirect.Action', 'show_status'); + $pagedata->setValue('Data.Redirect.Delay', "30"); + } + } + ################## mount_ask ####################### + } elsif ($action eq 'mount_ask') { + if ( ! &check_config()) { + $pagedata->setValue('Data.Warning', 'NotInitialized'); + $pagedata->setValue('Data.Action', 'form_init'); + } elsif (&check_init_running()) { + $pagedata->setValue('Data.Warning', 'InitNotFinished'); + $pagedata->setValue('Data.Action', 'empty'); + $pagedata->setValue('Data.Redirect.Action', 'form_config'); + $pagedata->setValue('Data.Redirect.Delay', "30"); + } elsif (&check_mounted()) { + $pagedata->setValue('Data.Warning', 'IsMounted'); + $pagedata->setValue('Data.Action', 'empty'); + $pagedata->setValue('Data.Redirect.Action', 'show_status'); + $pagedata->setValue('Data.Redirect.Delay', "30"); + } else { + $pagedata->setValue('Data.Action', 'form_mount'); + } + ################# umount_ask ######################## + } elsif ($action eq 'umount_ask') { + if ( ! &check_config()) { + $pagedata->setValue('Data.Warning', 'NotInitialized'); + $pagedata->setValue('Data.Action', 'form_init'); + } elsif ( ! &check_mounted()) { + $pagedata->setValue('Data.Warning', 'NotMounted'); + $pagedata->setValue('Data.Action', 'empty'); + $pagedata->setValue('Data.Redirect.Action', 'show_status'); + $pagedata->setValue('Data.Redirect.Delay', "30"); + } else { + $pagedata->setValue('Data.Action', 'form_umount'); + } + ################## init_ask ######################### + } elsif ($action eq 'init_ask') { + if (&check_init_running()) { + $pagedata->setValue('Data.Warning', 'InitNotFinished'); + $pagedata->setValue('Data.Action', 'form_config'); + } elsif (&check_config()) { + $pagedata->setValue('Data.Warning', 'AlreadyConfigured'); + $pagedata->setValue('Data.Action', 'form_init'); + } else { + $pagedata->setValue('Data.Action', 'form_init'); + } + #################### init_do ######################## + } elsif ($action eq 'init_do') { + my $current_admin_pw = &get_admin_pw; + if ($current_admin_pw ne '' && $current_admin_pw ne $query->param('current_admin_password')) { + $pagedata->setValue('Data.Warning', 'WrongAdminPassword'); + $pagedata->setValue('Data.Action', 'form_init'); + } elsif ($query->param('admin_password') ne $query->param('admin_password2')) { + # different admin-passwords + $pagedata->setValue('Data.Warning', 'DifferentAdminPasswords'); + $pagedata->setValue('Data.Action', 'form_init'); + } elsif ($query->param('crypto_password') ne $query->param('crypto_password2')) { + # different crypto-passwords + $pagedata->setValue('Data.Warning', 'DifferentCryptoPasswords'); + $pagedata->setValue('Data.Action', 'form_init'); + } elsif ($query->param('crypto_password') eq '') { + # empty password + $pagedata->setValue('Data.Warning', 'EmptyCryptoPassword'); + $pagedata->setValue('Data.Action', 'form_init'); + } elsif ($query->param('confirm') ne $pagedata->getValue('Lang.Text.ConfirmInit','')) { + # wrong confirm string + $pagedata->setValue('Data.Warning', 'InitNotConfirmed'); + $pagedata->setValue('Data.Action', 'form_init'); + } else { + # do init + &box_init($query->param('crypto_password'),$query->param('admin_password')); + if (!&check_init_running()) { + $pagedata->setValue('Data.Error', 'InitFailed'); + } else { + $pagedata->setValue('Data.Success', 'InitRunning'); + $pagedata->setValue('Data.Action', 'form_config'); + } + } + #################### config_ask ###################### + } elsif ($action eq 'config_ask') { + if ( ! &check_config()) { + $pagedata->setValue('Data.Warning', 'NotInitialized'); + $pagedata->setValue('Data.Action', 'form_init'); + } else { + $pagedata->setValue('Data.Action', 'form_config'); + } + #################### config_do ####################### + } elsif ($action eq 'config_do') { + if ( ! &check_config()) { + $pagedata->setValue('Data.Warning', 'NotInitialized'); + $pagedata->setValue('Data.Action', 'form_init'); + } else { + my $current_admin_pw = &get_admin_pw; + if ($current_admin_pw ne '' && $current_admin_pw ne $query->param('current_admin_password')) { + $pagedata->setValue('Data.Warning', 'WrongAdminPassword'); + $pagedata->setValue('Data.Action', 'form_config'); + } elsif ( ! &validate_language($query->param('language'))) { + $pagedata->setValue('Data.Warning', 'InvalidLanguage'); + $pagedata->setValue('Data.Action', 'form_config'); + } elsif ( ! &validate_ip($query->param('ip'))) { + $pagedata->setValue('Data.Warning', 'InvalidIP'); + $pagedata->setValue('Data.Action', 'form_config'); + } elsif ( ! &validate_timeout($query->param('timeout'))) { + $pagedata->setValue('Data.Warning', 'InvalidTimeOut'); + $pagedata->setValue('Data.Action', 'form_config'); + } else { + system("$CB_SCRIPT", "set_config", "language", $query->param('language')); + &load_selected_language($pagedata); + system("$CB_SCRIPT", "set_config", "timeout", $query->param('timeout')); + # check, if the ip was reconfigured + if ($query->param('ip') ne `$CB_SCRIPT get_config ip`) + { + # set the new value + system("$CB_SCRIPT", "set_config", "ip", $query->param('ip')); + # reconfigure the network interface + system("$CB_SCRIPT", "update_ip_address"); + # redirect to the new address + $pagedata->setValue('Data.Redirect.URL', "https://" . $query->param('ip') . $ENV{'SCRIPT_NAME'}); + $pagedata->setValue('Data.Redirect.Delay', "5"); + # display a warning for the redirection + $pagedata->setValue('Data.Warning', 'IPAddressChanged'); + } + # check for success + if (`$CB_SCRIPT get_config timeout` ne $query->param('timeout')) { + $pagedata->setValue('Data.Warning', 'ConfigTimeOutFailed'); + } elsif (`$CB_SCRIPT get_config ip` ne $query->param('ip')) { + $pagedata->setValue('Data.Warning', 'ConfigIPFailed'); + } elsif (`$CB_SCRIPT get_config language` ne $query->param('language')) { + $pagedata->setValue('Data.Warning', 'ConfigLanguageFailed'); + } else { + $pagedata->setValue('Data.Success', 'ConfigSaved'); + } + $pagedata->setValue('Data.Action', 'show_status'); + $pagedata->setValue('Data.Redirect.Action', 'show_status'); + $pagedata->setValue('Data.Redirect.Delay', "30"); + } + } + #################### status ######################### + } elsif ($action eq 'show_status') { + if ( ! &check_config()) { + $pagedata->setValue('Data.Warning', 'NotInitialized'); + $pagedata->setValue('Data.Action', 'form_init'); + } elsif (&check_init_running()) { + $pagedata->setValue('Data.Warning', 'InitNotFinished'); + $pagedata->setValue('Data.Action', 'empty'); + $pagedata->setValue('Data.Redirect.Action', 'form_config'); + $pagedata->setValue('Data.Redirect.Delay', "30"); + } else { + $pagedata->setValue('Data.Action', 'show_status'); + $pagedata->setValue('Data.Redirect.Action', 'show_status'); + $pagedata->setValue('Data.Redirect.Delay', "60"); + } + ################### box_purge ####################### + # if we find an existing config partition, then check the adminpw + } elsif ($action eq 'do_purge') { + if ( &check_config()) { + my $current_admin_pw = &get_admin_pw; + if ($current_admin_pw ne '' && $current_admin_pw ne $query->param('current_admin_password')) { + $pagedata->setValue('Data.Warning', 'WrongAdminPassword'); + $pagedata->setValue('Data.Action', 'form_config'); + } else { + &box_purge; + $pagedata->setValue('Data.Action', 'form_init'); + } + } + ################### unknown ######################### + } else { + $pagedata->setValue('Data.Error', 'UnknownAction'); + } +#################### default action ########################## +# check for a harddisk again, as this check was skipped +# because there was no action defined +} elsif ( ! &is_harddisk_available()) { + $pagedata->setValue('Data.Error', 'NoHardDisk'); +} else { + if (&check_init_running()) { + $pagedata->setValue('Data.Warning', 'InitNotFinished'); + $pagedata->setValue('Data.Action', 'empty'); + $pagedata->setValue('Data.Redirect.Action', 'form_config'); + $pagedata->setValue('Data.Redirect.Delay', "60"); + } elsif (&check_config()) { + $pagedata->setValue('Data.Action', 'show_status'); + $pagedata->setValue('Data.Redirect.Action', 'show_status'); + $pagedata->setValue('Data.Redirect.Delay', "60"); + } else { + $pagedata->setValue('Data.Action', 'form_init'); + } +} + +# check state of the cryptobox +$pagedata->setValue('Data.Status.Config', &check_config() ? 1 : 0); +$pagedata->setValue('Data.Status.InitRunning', &check_init_running() ? 1 : 0); +$pagedata->setValue('Data.Status.Mounted', &check_mounted() ? 1 : 0) if (&check_config()); +my $output = &get_current_ip(); +$pagedata->setValue('Data.Status.IP', "$output"); + +$output = &get_admin_pw(); +$pagedata->setValue('Data.Config.AdminPasswordIsSet', 1) if ($output ne ''); + +$output = `$CB_SCRIPT diskinfo 2>&1 | sed 's#\$#
#'`; +$pagedata->setValue('Data.PartitionInfo',"$output"); + +# preset config settings for clearsilver +$pagedata->setValue('Data.Config.IP', `$CB_SCRIPT get_config ip`); +$pagedata->setValue('Data.Config.TimeOut', `$CB_SCRIPT get_config timeout`); +$pagedata->setValue('Data.Config.Language', `$CB_SCRIPT get_config language`); + +# read log and add html linebreaks +$output = ''; +if (-e "$LOG_FILE") { + open(LOGFILE, "< $LOG_FILE"); + while () { $output .= "$_
" } + close(LOGFILE); +} +$pagedata->setValue('Data.Log',"$output"); + +$pagedata->setValue('Data.Status.DevelopmentMode', 1) if ($IS_DEVEL); + +# save QUERY_STRING (e.g. for weblang-links) +my $querystring = $ENV{'QUERY_STRING'}; +# remove weblang setting +$querystring =~ s/weblang=\w\w&?//; +$pagedata->setValue('Data.QueryString', "$querystring") if ($querystring ne ''); + +&render(); + +exit 0; + diff --git a/cbox-tree.d/usr/lib/cryptobox/cbox-manage.sh b/cbox-tree.d/usr/lib/cryptobox/cbox-manage.sh new file mode 100755 index 0000000..d79b215 --- /dev/null +++ b/cbox-tree.d/usr/lib/cryptobox/cbox-manage.sh @@ -0,0 +1,590 @@ +#!/bin/sh +# +# Copyright (c) 02005 sense.lab +# +# License: This script is distributed under the terms of version 2 +# of the GNU GPL. See the LICENSE file included with the package. +# +# $Id$ +# +# this script does EVERYTHING +# all other scripts are only frontends :) +# +# called by: +# - some rc-scripts +# - the web frontend cgi +# + +# TODO: check permissions and owners of config files, directories and scripts before +# running cbox-root-actions.sh + +set -eu + +# define reasonable defaults +USE_STUNNEL=0 +EXEC_FIREWALL_RULES=0 +SKIP_NETWORK_CONFIG=1 +CONF_FILE=/etc/cryptobox/cryptobox.conf + + +# read the default setting file, if it exists +[ -e /etc/default/cryptobox ] && . /etc/default/cryptobox + +# parse config file +. "$CONF_FILE" + +# check for writable log file +[ -w "$LOG_FILE" ] || LOG_FILE=/tmp/$(basename "$LOG_FILE") + +## configuration +CERT_TEMP=/tmp/stunnel.pem + +######## stuff ########## + +ALL_PARTITIONS=$(cat /proc/partitions | sed '1,2d; s/ */ /g; s/^ *//' | cut -d " " -f 4) + +######################### + +function log_msg() +{ + # the log file is not writable during boot - try before writing ... + [ -w "$LOG_FILE" ] || return 0 + echo >>"$LOG_FILE" + echo "##### `date` #####" >>"$LOG_FILE" + echo "$1" >>"$LOG_FILE" +} + + +function error_msg() +# parameters: ExitCode ErrorMessage +{ + echo "[`date`] - $2" | tee -a "$LOG_FILE" >&2 + # print the execution stack - not usable with busybox + # caller | sed 's/^/\t/' >&2 + exit "$1" +} + + +function config_set_value() +# parameters: SettingName [SettingValue] +# read from stdin if SettingValue is not defined +{ + [ "$USE_SEPERATE_CONFIG_PARTITION" = "1" ] && sudo "$ROOT_PERM_SCRIPT" remount_config rw + if [ $# -gt 1 ] + then echo -n "$2" > "$CONFIG_DIR/$1" + else cat - >"$CONFIG_DIR/$1" + fi + [ "$USE_SEPERATE_CONFIG_PARTITION" = "1" ] && sudo "$ROOT_PERM_SCRIPT" remount_config ro +} + + +function config_get_value() +# parameters: SettingName +{ + # use mounted config, if it exists - otherwise use defaults + local conf_dir + if is_config_active + then conf_dir=$CONFIG_DIR + else conf_dir=$CONFIG_DEFAULTS_DIR + fi + [ -z "$1" ] && error_msg 1 "empty setting name" + # check for existence - maybe use default values (for old releases without this setting) + if [ ! -e "$conf_dir/$1" ] + then case "$1" in + # you may place default values for older versions here + # for compatibility + * ) + error_msg 2 "unknown configuration value ($1)" + # empty output + ;; + esac + else echo -n $(cat "$conf_dir/$1") + # this removes the trailing line break + fi + # always return without error + true +} + + +function create_config() +# Parameter: device +{ + local device=$1 + unload_config + # create the new configuration filesystem if it is not static + if [ "$USE_SEPERATE_CONFIG_PARTITION" != "1" ] + then log_msg "Using static configuration ..." + else log_msg "Creating config filesystem ..." + sudo "$ROOT_PERM_SCRIPT" create_config "$device" + log_msg "Mounting config partition ..." + sudo "$ROOT_PERM_SCRIPT" mount_config "$device" + sudo "$ROOT_PERM_SCRIPT" remount_config rw + fi + log_msg "Copying configuration defaults ..." + cp -a "$CONFIG_DEFAULTS_DIR/." "$CONFIG_DIR" + + log_msg "Copying temporary certificate file to config filesystem ..." + # beware: the temp file should always be there - even after reboot - see "load_config" + [ "$USE_STUNNEL" = 1 ] && cp -p "$CERT_TEMP" "$CERT_FILE" + + log_msg "Setting inital values ..." + # beware: config_set_value remounts the config partition read-only + config_set_value "ip" "$(get_current_ip)" + # create database of readable names + config_set_value "names.db" "" + # create a marker to recognize a cryptobox partition + # this should be the last step, to prevent a half-initialized state + config_set_value "$CONFIG_MARKER" "$(date -I)" +} + + +function get_current_ip() +# not necessarily the same as configured (necessary for validation) +{ + # filter the output of ifconfig and remove trailing line break + echo -n $("$IFCONFIG" "$NET_IFACE" | grep "inet" | cut -d ":" -f2 | cut -d " " -f1) +} + + +function list_partitions_of_type() +# parameter: { config | crypto | plaindata | unused } +{ + local config= + local crypto= + local plaindata= + local unused= + for a in $ALL_PARTITIONS + do if sudo "$ROOT_PERM_SCRIPT" is_crypto_partition "/dev/$a" + then crypto="$crypto /dev/$a" + elif sudo "$ROOT_PERM_SCRIPT" is_config_partition "/dev/$a" + then config="$config /dev/$a" + elif sudo "$ROOT_PERM_SCRIPT" is_plaindata_partition "/dev/$a" + then plaindata="$plaindata /dev/$a" + else unused="$unused /dev/$a" + fi + done + case "$1" in + config | crypto | plaindata | unused ) + # dirty hack, but it works + eval "echo \$$1" + ;; + * ) + errot_msg "wrong parameter ($1) for list_partition_types in $(basename $0)" + ;; + esac | tr " " "\n" | grep -v '^$' +} + + +function get_crypto_uuid() +# Parameter: DEVICE +{ + sudo "$ROOT_PERM_SCRIPT" get_device_name "$1" +} + + +function get_crypto_name() +# Parameter: DEVICE +# return the readable name of the crypto container, it it is already defined +# if undefined - return the uuid +{ + local uuid=$(get_crypto_uuid "$1") + local dbname=$(config_get_value "names.db" | grep "^$uuid:" | cut -d ":" -f 2-) + if [ -z "$dbname" ] + then echo -n "$uuid" + else echo -n "$dbname" + fi +} + + +function set_crypto_name() +# TODO: the implementation is quite ugly, but it works (tm) +# Parameter: DEVICE NAME +{ + local uuid=$(get_crypto_uuid "$1") + # remove the old setting for this device and every possible entry with the same name + (config_get_value 'names.db' | sed "/^$uuid:/d; /^[^:]*:$2$/d"; echo "$uuid:$2") | config_set_value 'names.db' +} + + +function does_crypto_name_exist() +# Parameter: NAME +{ + config_get_value 'names.db' | grep -q "^[^:]*:$1$" +} + + +function create_crypto() +# Parameter: DEVICE NAME KEYFILE +# keyfile is necessary, to allow background execution via 'at' +# TODO: check if the keyfile is still necessary for sudo -b +{ + local device=$1 + local name=$2 + local keyfile=$3 + # otherwise the web interface will hang + # passphrase may be passed via command line + local key=$(<"$keyfile") + # remove the passphrase-file as soon as possible + dd if=/dev/zero of="$keyfile" bs=512 count=1 2>/dev/null + rm "$keyfile" + + log_msg "Creating crypto partition with the cipher $DEFAULT_CIPHER on $device" + echo "$key" | sudo "$ROOT_PERM_SCRIPT" create_crypto "$device" + + set_crypto_name "$device" "$name" +} + + +function is_config_active() +{ + test -f "$CONFIG_DIR/$CONFIG_MARKER" +} + + +function is_crypto_mounted() +# Parameter: DEVICE +{ + local name=$(get_crypto_uuid "$1") + [ -n "$name" ] && mountpoint -q "$MNT_PARENT/$name" +} + + +function is_init_running() +{ + check_at_command_queue " init" +} + + +# check if a specified command is in an at-queue +# Parameter: a regular expression of the commandline +# Return: the command is part of an at-queue (0) or not (1) +function check_at_command_queue() +{ + # 1) get the available job numbers + # 2) remove empty lines (especially the last one) + # 3) check every associated command for the regexp + at -l | cut -f 1 | while read jobnum + do at -c $jobnum | sed '/^$/d' | tail -1 + done | grep -q "$1" +} + + +function find_harddisk() +# look for the harddisk to be partitioned +{ + local device=$(get_available_disks | head -1) + if [ -z "$device" ] ; then + log_msg "no valid harddisk for initialisation found!" + cat /proc/partitions >>"$LOG_FILE" + # do not return with an error, to avoid a failing of the script ('break on error') + # the caller of this function should handle an empty return string + fi + echo -n "$device" +} + + +function get_available_disks() +# looks which allowed disks are at the moment connected with the cbox +{ + for scan in $SCAN_DEVICES + do for avail in $ALL_PARTITIONS + do [ "$scan" = "$avail" ] && echo "/dev/$avail" + done + done +} + + +function load_config() +{ + unload_config + local status=0 + # look for a configuration partition + [ "$USE_SEPERATE_CONFIG_PARTITION" = "1" ] && \ + list_partitions_of_type config | while read part && [ "$status" = 0 ] + do log_msg "Trying to load configuration from /dev/$part ..." + if sudo "$ROOT_PERM_SCRIPT" is_config_partition "/dev/$part" + then log_msg "configuraton found on $part" + sudo "$ROOT_PERM_SCRIPT" mount_config "/dev/$part" + status=1 + fi + done + if is_config_active + then # copy certificate to /tmp in case of re-initialization + # /tmp should be writable, so tmpfs has to be mounted before (/etc/rcS.d) + [ "$USE_STUNNEL" = 1 ] && cp "$CERT_FILE" "$CERT_TEMP" + else log_msg "failed to locate config partition" + return 1 + fi + true +} + + +function unload_config() +{ + is_config_active || return + # only try to unmount, if it is not static (the config of a live-cd is always dynamic) + if [ "$USE_SEPERATE_CONFIG_PARTITION" = "1" ] + then sudo "$ROOT_PERM_SCRIPT" umount_config + else true + fi +} + + +function mount_crypto() +# Parameter: DEVICE +{ + local device=$1 + [ -z "$device" ] && error_msg 4 'No valid harddisk found!' && return 1 + is_crypto_mounted "$device" && echo "The crypto filesystem is already active!" && return + # passphrase is read from stdin + log_msg "Mounting a crypto partition from $device" + sudo "$ROOT_PERM_SCRIPT" mount "$device" >>"$LOG_FILE" 2>&1 +} + + +function umount_crypto() +# Parameter: DEVICE +{ + local device=$1 + local uuid=$(get_crypto_uuid $device) + sudo "$ROOT_PERM_SCRIPT" umount "$uuid" +} + + +function box_purge() +# removing just the first bytes from the harddisk should be enough +# every harddisk will be overriden! +{ + # TODO: not ALL harddisks, please! + get_available_disks | while read a + do log_msg "Purging $a ..." + sudo "$ROOT_PERM_SCRIPT" trash_device "$a" + done +} + + +function init_cryptobox() +# this is only the first part of initialisation that takes no time - good for a smooth web interface +{ + local device=$(find_harddisk) + [ -z "$device" ] && log_msg 'No valid harddisk found!' && return 1 + turn_off_all_crypto + unload_config || true + log_msg "Partitioning the device ($device) ..." + sudo "$ROOT_PERM_SCRIPT" partition_disk "$device" "0,1,L \n,,L\n" + log_msg "Initializing config partition on ${device}1 ..." + # TODO: this should not be hard-coded + create_config "${device}1" +} + + +function turn_off_all_crypto() +{ + list_crypto_containers | while read a + do is_crypto_mounted "$a" && umount_crypto "$a" + done +} + + +### main ### + +# set PATH because thttpd removes /sbin and /usr/sbin for cgis +export PATH=/usr/sbin:/usr/bin:/sbin:/bin + + +ACTION=help +[ $# -gt 0 ] && ACTION=$1 && shift + +case "$ACTION" in + config-up ) + if load_config + then echo "Cryptobox configuration successfully loaded" + else error_msg 0 "Could not find a configuration partition!" + fi + ;; + config-down ) + unload_config || error_msg 4 "Could not unmount configuration partition" + ;; + network-up ) + if [ "$SKIP_NETWORK_CONFIG" != 1 ] + then conf_ip=$(config_get_value "ip") + log_msg "Configuring $NET_IFACE for $conf_ip ..." + echo "Configuring network interface for $NET_IFACE: $conf_ip" + "$IFCONFIG" "$NET_IFACE" "$conf_ip" + fi + if [ "$EXEC_FIREWALL_RULES" = 1 ] + then log_msg "Starting the firewall ..." + "$FIREWALL_SCRIPT" start + fi + if [ "$USE_STUNNEL" = 1 ] + then # start stunnel + if [ -f "$CERT_FILE" ] + then USE_CERT=$CERT_FILE + else USE_CERT=$CERT_TEMP + $MAKE_CERT_SCRIPT "$CERT_TEMP" >>"$LOG_FILE" 2>&1 + # TODO: this could be dangerous - right? + # this is necessary, to allow www-data to copy the certificate + chown "$WEB_USER" "$CERT_TEMP" + fi + log_msg "Starting stunnel ..." + stunnel -p "$USE_CERT" -r localhost:80 -d 443 \ + || echo "$USE_CERT not found - not starting stunnel" + fi + ;; + network-down ) + if [ "$EXEC_FIREWALL_RULES" = 1 ] + then log_msg "Stopping the firewall ..." + "$FIREWALL_SCRIPT" stop + fi + if [ "$USE_STUNNEL" = 1 ] + then log_msg "Stopping stunnel ..." + # TODO: what about a pid? + killall stunnel 2>/dev/null || true + fi + if [ "$SKIP_NETWORK_CONFIG" != 1 ] + then log_msg "Shutting the network interface down ..." + "$IFCONFIG" "$NET_IFACE" down + fi + ;; + services-up ) + # the mount point has to be writeable + # this action is called as root - so we are allowed to umount + # TODO: do this only for ro-filesystem + # TODO: this way of mounting is evil + if mountpoint -q "$MNT_PARENT" + then true + else mount -t tmpfs tmpfs "$MNT_PARENT" + fi + true + ;; + services-down ) + # this action is called as root - so we are allowed to umount + mountpoint -q "$MNT_PARENT" && umount "$MNT_PARENT" + # TODO: we should not depend on samba and thttpd + # /etc/init.d/samba stop || true + # /etc/init.d/thttpd stop || true + true + ;; + crypto-up ) + [ $# -ne 1 ] && error_msg "invalid number of parameters for 'crypto-up'" + mount_crypto "$1" + ;; + crypto-down ) + [ $# -ne 1 ] && error_msg "invalid number of parameters for 'crypto-down'" + umount_crypto "$1" + ;; + init ) + init_cryptobox >"$LOG_FILE" 2>&1 + ;; + crypto-create ) + # Parameter: DEVICE NAME + [ $# -ne 2 ] && error_msg "invalid number of parameters for 'crypto-create'" + # do it in the background to provide a smoother web interface + # messages and errors get written to $LOG_FILE + keyfile=/tmp/$(basename "$0")-passphrase-$(basename "$1") + # read the password + cat - >"$keyfile" + # execute it in the background + echo "'$0' crypto-create-bg '$1' '$2' '$keyfile' >'$LOG_FILE' 2>&1" | at now + ;; + crypto-create-bg ) + create_crypto "$@" + ;; + crypto-list ) + list_partitions_of_type crypto + ;; + crypto-list-unused ) + list_partitions_of_type unused + ;; + crypto-name ) + # Parameter: DEVICE + get_crypto_name "$1" + ;; + is_crypto_mounted ) + [ $# -ne 1 ] && error_msg 10 "invalid number of parameters for 'is_crypto_mounted'" + is_crypto_mounted "$1" + ;; + is_config_mounted ) + is_config_active + ;; + is_init_running ) + is_init_running + ;; + is_harddisk_available ) + [ -z "$(find_harddisk)" ] && exit 1 + exit 0 + ;; + update_ip_address ) + # reconfigure the network interface to a new IP address + # wait for 5 seconds to finish present http requests + if [ "$SKIP_NETWORK_CONFIG" != 1 ] + then echo -n "sleep 5; sudo $ROOT_PERM_SCRIPT update_network" | at now + fi + ;; + get_available_disks ) + get_available_disks + ;; + get_current_ip ) + get_current_ip + ;; + set_config ) + [ $# -ne 2 ] && error_msg 7 "'set_config' requires two parameters" + config_set_value "$1" "$2" + ;; + get_config ) + [ $# -ne 1 ] && error_msg 6 "'get_config' requires exactly one parameter" + config_get_value "$1" + ;; + diskinfo ) + get_available_disks | while read a + do sudo "$ROOT_PERM_SCRIPT" diskinfo "$a" + done + ;; + box-purge ) + log_msg "Cleaning the CryptoBox ..." + turn_off_all_crypto + "$0" config-down + box_purge >>"$LOG_FILE" 2>&1 + ;; + poweroff ) + log_msg "Turning off the CryptoBox ..." + turn_off_all_crypto + echo "poweroff" | at now + ;; + reboot ) + log_msg "Rebooting the CryptoBox ..." + turn_off_all_crypto + echo "reboot" | at now + ;; + * ) + echo "Syntax: `basename $0` ACTION [PARAMS]" + echo " config-up - scan for configuration partition and mount it" + echo " config-down - unmount configuration partition" + echo " network-up - enable network interface" + echo " network-down - disable network interface" + echo " services-up - run some cryptobox specific daemons" + echo " services-down - stop some cryptobox specific daemons" + echo " crypto-up - mount crypto partition" + echo " crypto-down - unmount crypto partition" + echo " box-init - initialize cryptobox (ALL data is LOST)" + echo " box-init-fg - the first part of initialization" + echo " box-init-bg - the last part of initialization (background)" + echo " is_crypto_mounted - check, if crypto partition is mounted" + echo " is_config_mounted - check, if configuration partition is mounted" + echo " is_init_running - check, if initialization is ongoing" + echo " is_harddisk_available - check, if there is a usable harddisk" + echo " get_available_disks - shows all connected and allowed disks" + echo " get_current_ip - get the current IP of the network interface" + echo " update_ip_address - update the network interface after reconfiguration" + echo " set_config NAME VALUE - change a configuration setting" + echo " get_config NAME - retrieve a configuration setting" + echo " diskinfo - show the partition table of the harddisk" + echo " box-purge - destroy partitiontable of all harddisks (delete everything)" + echo " poweroff - shutdown the cryptobox" + echo " reboot - reboot the cryptobox" + echo + ;; + esac + +exit 0 + diff --git a/cbox-tree.d/usr/lib/cryptobox/cbox-root-actions.sh b/cbox-tree.d/usr/lib/cryptobox/cbox-root-actions.sh new file mode 100755 index 0000000..0d33271 --- /dev/null +++ b/cbox-tree.d/usr/lib/cryptobox/cbox-root-actions.sh @@ -0,0 +1,330 @@ +#!/bin/sh +# +# Copyright (c) 02005 sense.lab +# +# License: This script is distributed under the terms of version 2 +# of the GNU GPL. See the LICENSE file included with the package. +# +# $Id$ +# +# this script is responsible for all dangerous actions, that require root privileges +# every action should be checked at least TWICE a day for open holes :) +# usually will get call via sudo +# +# called by: +# - cbox-manage.sh +# + +set -eu + +[ "$(id -u)" -ne 0 ] && echo "$(basename $0) - only root may call this script" >&2 && exit 100 + +# read the default setting file, if it exists +[ -e /etc/default/cryptobox ] && . /etc/default/cryptobox + +# set CONF_FILE to default value, if not configured in /etc/default/cryptobox +CONF_FILE=${CONF_FILE:-/etc/cryptobox/cryptobox.conf} +# parse config file +. "$CONF_FILE" + + +############ some useful functions ############### + +# check if the given device is part of the SCAN_DEVICE list +# every entry in SCAN_DEVICES is matched as "^/dev/${SCAN_DEVICE}[0-9]*$" against +# the given device +# other devices may not be touched +function is_device_allowed() +# parameter: device +{ + for a in $SCAN_DEVICES + do [[ "$1" =~ "^/dev/${a}[0-9]*$" ]] && return 0 + done + return 1 +} + + +function get_device_name() +# return the uuid of the device +# if there is no uuid, then the device name is "flattened" and returned +# ignore volume-id as it may be non-unique +{ + local UUID= + # check for luksUUID or ext2/3-uuid + if is_luks_device "$1" + then UUID=$("$CRYPTSETUP" luksUUID "$1") + else [ -n "$(which dumpe2fs)" ] && UUID=$(dumpe2fs -h "$1" 2>/dev/null | grep "UUID" | cut -d ":" -f 2 | sed "s/ *//g") + fi + # if there is no valid UUUD, then take the flattened device name + is_uuid_valid "$UUID" || UUID=${1//\//_} + echo "$UUID" +} + + +function is_uuid_valid() +# every devmapper name should look like a UUID +{ + local hex=[0-9a-f] + [[ "$1" =~ "^$hex\{8\}-$hex\{4\}-$hex\{4\}-$hex\{4\}-$hex\{12\}$" ]] +} + + +function error_msg() +# parameter ExitCode ErrorMessage +{ + echo "CBOX-ERROR: [$(basename $0) - $ACTION] - $2" >&2 + exit $1 +} + + +function partition_device() +# parameter: device sfdisk_layout_setup +# e.g.: /dev/hda "0,1,L \n,,L\n" +{ + # TODO: allow different layouts + # TODO: skip config partition if a configuration is already active + # sfdisk -n doesn't actually write (for testing purpose) + if echo -e "$2" | "$SFDISK" -n "$1" + then echo -e "$2" | "$SFDISK" "$1" || return 1 + else return 2 + fi + true +} + + +function is_luks_device() +# parameter: device +{ + "$CRYPTSETUP" isLuks "$1" +} + + +################ main #################### + +ACTION=unknown +[ $# -gt 0 ] && ACTION=$1 && shift + + +case "$ACTION" in + partition_disk ) + [ $# -ne 2 ] && error_msg 1 "wrong number of parameters" + is_device_allowed "$1" || \ + error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)" + partition_device "$1" "$2" || \ + error_msg 2 "failed to create new partition table on device $1" + ;; + mount ) + # parameters: device + # returns the relative name of the mointpoint for success + [ $# -ne 1 ] && error_msg 1 "wrong number of parameters" + is_device_allowed "$1" || \ + error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)" + name=$(get_device_name "$1") + mountpoint -q "$MNT_PARENT/$name" && \ + error_msg 5 "a device with the same name ($name) is already mounted" + mkdir -p "$MNT_PARENT/$name" + if is_luks_device "$1" + then "$CRYPTSETUP" luksOpen "$1" "$name" || \ + error_msg 6 "could not open encrypted device $1" + if mount "$DEV_MAPPER_DIR/$name" "$MNT_PARENT/$name" + then true + else "$CRYPTSETUP" luksClose "$name" || true + error_msg 7 "wrong password for $1 supplied" + fi + else mount "$1" "$MNT_PARENT/$name" || \ + error_msg 8 "invalid filesystem on device $1" + fi + # just in case, that there is no ext2/3 filesystem: + # set uid option (will fail silently for ext2/3) + mount -o remount,uid="$FILE_USER" "$MNT_PARENT/$name" 2>/dev/null || true + # adapt top-level permission to current setup - again: may fail silently + chown "$FILE_USER" "$MNT_PARENT/$name" 2>/dev/null || true + true + ;; + umount ) + #parameter: name (relative mountpoint) + [ $# -ne 1 ] && error_msg 1 "wrong number of parameters" + is_uuid_valid "$1" || [[ "$1" =~ "^[_a-z0-9]*$" ]] || \ + error_msg 4 "invalid UUID ($1)" + mountpoint -q "$MNT_PARENT/$1" || \ + error_msg 9 "the device with the UUID ($1) is not mounted" + # try to unmount - continue even on errors + umount "$MNT_PARENT/$1" || \ + error_msg 0 "unmount of device $1 failed - device is busy" + # remove (if necessary) the dev mapping + [ -e "$DEV_MAPPER_DIR/$1" ] && "$CRYPTSETUP" luksClose "$1" || \ + error_msg 11 "could not remove the device mapper for device $1" + # try to remove the mountpoint - a failure is not important + rmdir "$MNT_PARENT/$1" || true + # set exitcode + mountpoint -q "$MNT_PARENT/$1" && exit 1 + exit 0 + ;; + create_crypto ) + # parameter: device + # the passphrase is expected on stdin + [ $# -ne 1 ] && error_msg 1 "wrong number of parameters" + is_device_allowed "$1" || \ + error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)" + # read the passphrase from stdin + key=$(cat -) + # the iter-time is in milliseconds - keep it low for fast mounting + echo "$key" | \ + "$CRYPTSETUP" --cipher "$DEFAULT_CIPHER" --iter-time 2000 luksFormat "$1" || \ + error_msg 11 "failed to create the encrypted partition" + name=$(get_device_name "$1") + echo "$key" | "$CRYPTSETUP" luksOpen "$1" "$name" || \ + error_msg 12 "failed to open the encrypted partition" + # silent output from mkfs.ext3 + "$MKFS_DATA" -q "$DEV_MAPPER_DIR/$name" || \ + error_msg 13 "failed to create the encrypted filesystem" + "$CRYPTSETUP" luksClose "$name" || \ + error_msg 14 "failed to close the encrypted mapped device" + ;; + get_device_name ) + # parameter: device + [ $# -ne 1 ] && error_msg 1 "wrong number of parameters" + is_device_allowed "$1" || \ + error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)" + get_device_name "$1" + ;; + mount_config ) + # parameter: device + [ $# -ne 1 ] && error_msg 1 "wrong number of parameters" + [ "$USE_SEPERATE_CONFIG_DIR" != "1" ] && \ + error_msg 19 "I am configured to work without a seperate config partition (see $CONF_FILE)" + is_device_allowed "$1" || \ + error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)" + mountpoint -q "$CONFIG_DIR" && \ + error_msg 0 "the configuration partition is already mounted" + "$MKFS_CONFIG" -q "$1" || \ + error_msg 20 "failed to create config partition filesystem" + ;; + mount_config ) + # parameter: device + [ $# -ne 1 ] && error_msg 1 "wrong number of parameters" + [ "$USE_SEPERATE_CONFIG_DIR" != "1" ] && \ + error_msg 19 "I am configured to work without a seperate config partition (see $CONF_FILE)" + is_device_allowed "$1" || \ + error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)" + mountpoint -q "$CONFIG_DIR" && \ + error_msg 0 "the configuration partition is already mounted" + mount "$1" "$CONFIG_DIR" || \ + error_msg 16 "failed to mount configuration partition" + # chown to fix permissions - may fail for non-ext2/3 filesystems + chown -R "$WEB_USER" "$CONFIG_DIR" || true + mount -o remount,ro "$CONFIG_DIR" || \ + error_msg 18 "failed to remount configuration partition" + true + ;; + remount_config ) + # parameter: { ro | rw } + [ $# -ne 1 ] && error_msg 1 "wrong number of parameters" + [ "$USE_SEPERATE_CONFIG_DIR" != "1" ] && \ + error_msg 19 "I am configured to work without a seperate config partition (see $CONF_FILE)" + [[ "$1" =~ "^r[ow]$" ]] || error_msg 17 "only 'rw' and 'ro' are allowed" + mount -o "remount,$1" "$CONFIG_DIR" || \ + error_msg 18 "failed to remount configuration partition" + true + ;; + umount_config ) + # no parameters + [ $# -ne 0 ] && error_msg 1 "wrong number of parameters" + [ "$USE_SEPERATE_CONFIG_DIR" != "1" ] && \ + error_msg 19 "I am configured to work without a seperate config partition (see $CONF_FILE)" + mountpoint -q "$CONFIG_DIR" && umount "$CONFIG_DIR" || \ + error_msg 18 "failed to unmount configuration partition" + ;; + is_config_partition ) + # parameter: device + # returns exitcode 0 if the device contains a configuration + [ $# -ne 1 ] && error_msg 1 "wrong number of parameters" + [ "$USE_SEPERATE_CONFIG_DIR" != "1" ] && \ + error_msg 19 "I am configured to work without a seperate config partition (see $CONF_FILE)" + is_device_allowed "$1" || \ + error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)" + is_config=0 + tmp_dir=/tmp/$(basename $0)-$$-mnt + mkdir -p "$tmp_dir" + # error means "no config partition" + if mount "$1" "$CONFIG_DIR" + then [ -e "$CONFIG_DIR/$CONFIG_MARKER" ] && is_config=1 + umount "$CONFIG_DIR" || \ + error_msg 14 "unable to unmount configation partition after probing" + fi + rmdir "$tmp_dir" || true + # return 0 if $device is a config partition + [ "$is_config" -eq 1 ] && exit 0 + exit 1 + ;; + is_crypto_partition ) + # parameter: device + # returns exitcode 0 if the device contains a luks header + [ $# -ne 1 ] && error_msg 1 "wrong number of parameters" + is_device_allowed "$1" || \ + error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)" + is_luks_device "$1" + ;; + is_data_partition ) + # parameter: device + # returns exitcode 0 if the device contains a readable filesystem + [ $# -ne 1 ] && error_msg 1 "wrong number of parameters" + is_device_allowed "$1" || \ + error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)" + status=0 + tmp_dir=/tmp/$(basename $0)-$$-mnt + mkdir -p "$tmp_dir" + if mount "$1" "$tmp_dir" + then [ ! -e "$tmp_dir/$CONFIG_MARKER" ] && status=1 + umount "$tmp_dir" + fi + rmdir "$tmp_dir" || true + [ "$status" -eq 1 ] && exit 0 + exit 1 + ;; + trash_device ) + # parameter: device + [ $# -ne 1 ] && error_msg 1 "wrong number of parameters" + is_device_allowed "$1" || \ + error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)" + dd if=/dev/urandom of="$1" bs=512 count=1 2>/dev/null + ;; + diskinfo ) + # parameter: device + [ $# -ne 1 ] && error_msg 1 "wrong number of parameters" + is_device_allowed "$1" || \ + error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)" + "$SFDISK" -L -q -l "$1" + ;; + update_network ) + # parameter: none + ip= + # TODO: can we avoid to hard-code the filename ($CONFIG_DIR/ip) here? + [ -e "$CONFIG_DIR/ip" ] && ip=$(<"$CONFIG_DIR/ip") + [ -n "$z" ] && ifconfig "$NET_IFACE" "$ip" + ;; + * ) + echo "Syntax: $(basename $0) ACTION PARAMETERS" + echo ' partition_disk $device $disk_layout' + echo ' get_device_name $device' + echo ' create_crypto $device' + echo ' mount $device' + echo ' umount $name' + echo ' create_config $device' + echo ' mount_config $device' + echo ' remount_config { ro | rw }' + echo ' umount_config' + echo ' is_config_partition $device' + echo ' is_plaindata_partition $device' + echo ' is_crypto_partition $device' + echo ' trash_device $device' + echo ' diskinfo $device' + echo ' update_network' + echo ' help' + echo + [ "$ACTION" == "help" ] && exit 0 + # return error for any unknown/unspecified action + exit 1 + ;; + esac + diff --git a/cbox-tree.d/usr/lib/cryptobox/check_smb_idle.sh b/cbox-tree.d/usr/lib/cryptobox/check_smb_idle.sh new file mode 100755 index 0000000..fa3583d --- /dev/null +++ b/cbox-tree.d/usr/lib/cryptobox/check_smb_idle.sh @@ -0,0 +1,92 @@ +#!/bin/sh +# +# Copyright (c) 02005 sense.lab +# +# License: This script is distributed under the terms of version 2 +# of the GNU GPL. See the LICENSE file included with the package. +# +# $Id$ +# +# a simple script to check, if there was no smb traffic for the specified +# number of minutes - then it unmounts the crypto partition +# +# you may want to adjust the function "filter_ipt_rules" according to +# your setup +# +# any Parameter are ignored +# +# this script has to run as root - as it invokes iptables +# +# the iptables rules to detect smb traffic could look like the following: +# iptables -A INPUT -i eth0 -p udp --dport 138 -j ACCEPT +# iptables -A INPUT -i eth0 -p tcp --dport 139 -j ACCEPT +# +# called by: +# - cron (/etc/cron.d/cryptobox) +# + +set -eu + +# read the default setting file, if it exists +[ -e /etc/default/cryptobox ] && . /etc/default/cryptobox + +# set CONF_FILE to default value, if not configured in /etc/default/cryptobox +CONF_FILE=${CONF_FILE:-/etc/cryptobox/cryptobox.conf} +# parse config file +. "$CONF_FILE" + + +############# some functions ################## + +filter_ipt_rules() +# get the input rules for smb datagram traffic +{ + "$IPTABLES" -L INPUT -vnx | grep -E "udp dpt:138|tcp dpt:139" +} + + +function check_for_traffic() +{ + local traffic_yes=0 + # fallback if no rules were found + # extract the number of packets and calculate the sum + filter_ipt_rules | sed 's/ */ /g' | cut -d " " -f 3 | while read a + do [ "$a" -gt 0 ] && echo "$a" + done | grep -q "" && traffic_yes=1 + "$IPTABLES" -Z INPUT + [ "$traffic_yes" = "1" ] +} + + +################### main ###################### + +# TODO: migrate to multi-container-setup +exit 0 + +# break, if crypto partition is not mounted +"$CB_SCRIPT" is_crypto_mounted || exit 0 + +# break, if idle timer is turned off +MAX_IDLE_COUNTER=$("$CB_SCRIPT" get_config timeout) +[ "$MAX_IDLE_COUNTER" -eq 0 ] && exit 0 + +# config test +[ -z "$(filter_ipt_rules)" ] && echo "[`basename $0`]: Could not find a matching iptables rule!" >>"$LOG_FILE" && exit 1 + +# read current idle counter +if [ -e "$IDLE_COUNTER_FILE" ] + then current_count=$(<$IDLE_COUNTER_FILE) + else current_count=0 + fi + +# update counter +if check_for_traffic + then echo 0 + else echo $((current_count + 1)) + fi >"$IDLE_COUNTER_FILE" + +# unmount crypto partition, if the threshold was reached +if [ "$(<$IDLE_COUNTER_FILE)" -ge "$MAX_IDLE_COUNTER" ] + then "$CB_SCRIPT" crypto-down >>"$LOG_FILE" 2>&1 + echo "0" >"$IDLE_COUNTER_FILE" + fi diff --git a/cbox-tree.d/usr/lib/cryptobox/chroot-start.sh b/cbox-tree.d/usr/lib/cryptobox/chroot-start.sh new file mode 100755 index 0000000..5ac37ed --- /dev/null +++ b/cbox-tree.d/usr/lib/cryptobox/chroot-start.sh @@ -0,0 +1,55 @@ +#!/bin/sh +# +# Copyright (c) 02005 sense.lab +# +# License: This script is distributed under the terms of version 2 +# of the GNU GPL. See the LICENSE file included with the package. +# +# $Id$ +# +# FOR DEVELOPMENT ONLY! +# +# this script is used to prepare a chroot session for testing or configuring +# +# called by: +# - cbox-build.sh +# +# parameter: [commandline] +# +# if "commandline" is empty, "bash" will be used +# + +set -eu + +MNT_SRC=/opt/dfsruntime/runtimerd +MNT_DST=/opt/dfsruntime/runtimemnt +# the directory /tmp/ can not be used, as it is still a broken link, too +TMP_DIR="/tmp-`basename $0`-$$" + + +cp -a "$MNT_SRC/." "$TMP_DIR" +mount -n --bind "$TMP_DIR" "$MNT_DST" + +[ ! -e /dev/null ] && mknod "/dev/null" c 1 3 && chmod 666 "/dev/null" +[ ! -e /dev/urandom ] && mknod "/dev/urandom" c 1 9 && chmod 444 "/dev/urandom" +[ ! -e /dev/console ] && mknod "/dev/console" c 1 5 && chmod 660 "/dev/console" + +# remember, if proc was mounted before (e.g. because of a running chroot) +PROC_WAS_MOUNTED=no +mount -n -t proc proc /proc 2>/dev/null || PROC_WAS_MOUNTED=yes + +# default language setting - prevents dpkg error messages +export LANG=C + +# set default terminal (good if you are running in a screen session) +export TERM=linux + +# execute parameters as commandline +if [ $# -gt 0 ] + then "$@" + else bash + fi + +umount -n "$MNT_DST" +[ "$PROC_WAS_MOUNTED" = "no" ] && umount -n proc +rm -r "$TMP_DIR" diff --git a/cbox-tree.d/usr/lib/cryptobox/configure-cryptobox.sh b/cbox-tree.d/usr/lib/cryptobox/configure-cryptobox.sh new file mode 100755 index 0000000..34a2036 --- /dev/null +++ b/cbox-tree.d/usr/lib/cryptobox/configure-cryptobox.sh @@ -0,0 +1,145 @@ +#!/bin/sh +# +# Copyright (c) 02005 sense.lab +# +# License: This script is distributed under the terms of version 2 +# of the GNU GPL. See the LICENSE file included with the package. +# +# $Id$ +# +# this script is part of the building process of the cryptobox +# the "normal" action is necessary for every cryptobox (development & release) +# the "secure" action is mandatory for every release CD +# +# called by: +# - cbox-build.sh after copying custom files and before creating the iso image +# + +set -eu + +# read the default setting file, if it exists +[ -e /etc/default/cryptobox ] && . /etc/default/cryptobox + +# set CONF_FILE to default value, if not configured in /etc/default/cryptobox +CONF_FILE=${CONF_FILE:-/etc/cryptobox/cryptobox.conf} +# parse config file +. "$CONF_FILE" + +RUNTIMEDIR=/opt/dfsruntime/runtimerd +TUNDEV=$RUNTIMEDIR/dev/net/tun + +REMOVE_PACKAGES="strace + nvi nano vim vim-common + unzip tar zip gzip bzip2 + aptitude tasksel + ssh elinks curl wget netkit-inetd telnet + exim4-daemon-light exim4-config exim4-base + ppp pppconfig pppoe pppoeconf" + +# remove rc symlinks for these services +SERVICES_OFF="ssh samba setserial nviboot mountnfs ntpdate" + +function configure_normal() +# the usual stuff - not optimized for security +{ + ##### cryptobox settings ###### + sed -i '/^NO_START=.*$/NO_START=0/' + sed -i '/^SKIP_NETWORK_CONFIG=.*$/SKIP_NETWORK_CONFIG=0/' + sed -i '/^EXEC_FIREWALL_RULES=.*$/EXEC_FIREWALL_RULES=1/' + sed -i '/^USE_STUNNEL=.*$/USE_STUNNEL=1/' + + ########### boot up ########### + # turn off creation of "/etc/nologin" (read-only fs) + sed -i '/^DELAYLOGIN=/s/^DELAYLOGIN=.*$/DELAYLOGIN=no/' /etc/default/rcS + # turn off modifying /etc/motd (read-only fs) + sed -i '/^EDITMOTD=/s/^EDITMOTD=.*$/EDITMOTD=no/' /etc/default/rcS + + ######### devices ########## + # create tun device for running under qemu + if [ ! -e "$TUNDEV" ] + then mkdir -p `dirname "$TUNDEV"` + mknod "$TUNDEV" c 10 200 + fi + + ######### thttpd ########### + # change thttpd's config from 'chroot' to 'nochroot' - otherwise no perl script will run + sed -i "s/^chroot$/nochroot/" /etc/thttpd/thttpd.conf + # change thttpd-user from www-data to root (permissions for mount, cryptsetup, ...) + sed -i "s/^user=.*/user=root/" /etc/thttpd/thttpd.conf + + # the thttpd documentations says "nosymlinkcheck" instead of + # "nosymlink" - TODO: "nosymlink" breaks "/cryptobox" URL!!! + #sed -i "/symlink/d" /etc/thttpd/thttpd.conf + #echo "nosymlink" >>/etc/thttpd/thttpd.conf + + ########## sshd ############ + if [ -e "/etc/ssh" ]; then + # allow empty passwords for ssh + # the daemon is NOT started automatically, so you have to start it + # manually in case of need - as the root pw is empty and passwd is ro, you + # have to allow empty passwords for this rare case + sed -i 's/^PermitEmptyPass.*$/PermitEmptyPasswords yes/' /etc/ssh/sshd_config + # turn off PAM for ssh, as it prevents the use of empty passwords (stange behaviour) + sed -i 's/^UsePAM.*$/UsePAM no/' /etc/ssh/sshd_config + # allow nput of password + sed -i 's/^PasswordAuthentication.*$/PasswordAuthentication yes/' /etc/ssh/sshd_config + fi + + # remove symlinks for unwanted services + for a in $SERVICES_OFF; do + # echo "Turning off service $a ..." + find /etc/rc?.d/ -type l -name "[SK][0-9][0-9]$a" | while read b + do rm "$b" + done + done + + return 0 +} + + +function configure_secure() +# remove everything that could weaken security +# configure_normal should be called too! +{ + # disable keyboard login + sed -i '/getty/d' /etc/inittab + + # remove unnecessary packages + dpkg --force-all -P $REMOVE_PACKAGES 2>&1 | grep -v "which isn't installed." || true + + # remove the development features script + [ -e "$DEV_FEATURES_SCRIPT" ] && rm -f "$DEV_FEATURES_SCRIPT" + + # maybe an authorized_keys file was created - but it is not dangerous, + # as the openssh package was removed anyway + [ -d /root/.ssh ] && rm -rf /root/.ssh + + ############## clean up ################ + # remove deb-files, that were left by dfsbuild + test -d /opt/packages && rm -r /opt/packages + # remove packages and package lists + rm -fr /var/cache/apt/ + + return 0 +} + + +################ main #################### + + +ACTION=help +[ $# -gt 0 ] && ACTION=$1 + +case "$ACTION" in + normal ) + configure_normal + ;; + secure ) + configure_secure + ;; + * ) + echo "Syntax: `basename $0` { normal | secure }" + echo + ;; + esac + diff --git a/cbox-tree.d/usr/lib/cryptobox/firewall.sh b/cbox-tree.d/usr/lib/cryptobox/firewall.sh new file mode 100755 index 0000000..1edb172 --- /dev/null +++ b/cbox-tree.d/usr/lib/cryptobox/firewall.sh @@ -0,0 +1,67 @@ +#!/bin/sh +# +# Copyright (c) 02005 sense.lab +# +# License: This script is distributed under the terms of version 2 +# of the GNU GPL. See the LICENSE file included with the package. +# +# $Id$ +# +# set up the firewall of the cryptobox +# +# called by: +# - cbox-manage.sh during network-up +# + +set -u + +# read the default setting file, if it exists +[ -e /etc/default/cryptobox ] && . /etc/default/cryptobox + +# set CONF_FILE to default value, if not configured in /etc/default/cryptobox +CONF_FILE=${CONF_FILE:-/etc/cryptobox/cryptobox.conf} +# parse config file +. "$CONF_FILE" + + +ACTION="help" +[ $# -gt 0 ] && ACTION=$1 + +case "$ACTION" in + start) + iptables -P INPUT DROP + iptables -P FORWARD DROP + iptables -P OUTPUT ACCEPT + + OFILE=/proc/sys/net/ipv4/tcp_syncookies + [ -e "$OFILE" ] && echo 1 >"$OFILE" + + iptables -F + iptables -X + iptables -Z + + iptables -A INPUT -i lo -j ACCEPT + + for a in $ALLOW_TCP_PORTS + do iptables -A INPUT -i $NET_IFACE -p tcp --dport $a -j ACCEPT + done + + for a in $ALLOW_UDP_PORTS + do iptables -A INPUT -i $NET_IFACE -p udp --dport $a -j ACCEPT + done + + iptables -A INPUT -i $NET_IFACE -p icmp -j ACCEPT + ;; + stop) + iptables -P INPUT ACCEPT + iptables -P FORWARD ACCEPT + iptables -P OUTPUT ACCEPT + iptables -F + iptables -X + iptables -Z + ;; + *) + echo "usage $0 start | stop" + ;; +esac + diff --git a/cbox-tree.d/usr/lib/cryptobox/make_stunnel_cert.sh b/cbox-tree.d/usr/lib/cryptobox/make_stunnel_cert.sh new file mode 100755 index 0000000..138cde7 --- /dev/null +++ b/cbox-tree.d/usr/lib/cryptobox/make_stunnel_cert.sh @@ -0,0 +1,47 @@ +#!/bin/sh +# +# Copyright (c) 02005 sense.lab +# +# License: This script is distributed under the terms of version 2 +# of the GNU GPL. See the LICENSE file included with the package. +# +# $Id$ +# +# this script creates the stunnel certificate for https +# +# parameter: "destination file" +# +# called by: +# - cbox-manage.sh during network-up if no certificate was found on the config partition +# + +set -eu + +# read the default setting file, if it exists +[ -e /etc/default/cryptobox ] && . /etc/default/cryptobox + +# set CONF_FILE to default value, if not configured in /etc/default/cryptobox +CONF_FILE=${CONF_FILE:-/etc/cryptobox/cryptobox.conf} +# parse config file +. "$CONF_FILE" + + +# vcert values are in OPENSSL_CONF_FILE +CERTFILE="$1" +TMP_FILE=/tmp/cryptobox-cert.tmp + +[ ! -f "$OPENSSL_CONF_FILE" ] && echo "`basename $0`: $OPENSSL_CONF_FILE not found" && exit 2 +# this command creates the certificate +# this is required, because the certbuilding asks for 5 returns +echo -ne "\n\n\n\n\n" | openssl req -new -x509 -nodes -days 3650 -config "$OPENSSL_CONF_FILE" -out "$CERTFILE" -keyout "$CERTFILE" +chmod 600 "$CERTFILE" + +# next step needs a lot of randomdata +dd if=/dev/urandom of="$TMP_FILE" bs=1024 count=1024 +openssl dhparam -rand "$TMP_FILE" 512 >> "$CERTFILE" +rm "$TMP_FILE" + +#ln -sf ${CERTPATH}stunnel.pem ${CERTPATH}`openssl x509 -noout -hash < "${CERTPATH}stunnel.pem"`.0 + +## print out cert values +#openssl x509 -subject -dates -fingerprint -in stunnel.pem diff --git a/cbox-tree.d/usr/share/cryptobox/defaults/admin_pw b/cbox-tree.d/usr/share/cryptobox/defaults/admin_pw new file mode 100644 index 0000000..e69de29 diff --git a/cbox-tree.d/usr/share/cryptobox/defaults/ip b/cbox-tree.d/usr/share/cryptobox/defaults/ip new file mode 100644 index 0000000..1cad3c7 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/defaults/ip @@ -0,0 +1 @@ +192.168.0.23 diff --git a/cbox-tree.d/usr/share/cryptobox/defaults/language b/cbox-tree.d/usr/share/cryptobox/defaults/language new file mode 100644 index 0000000..c574d07 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/defaults/language @@ -0,0 +1 @@ +en diff --git a/cbox-tree.d/usr/share/cryptobox/defaults/names.db b/cbox-tree.d/usr/share/cryptobox/defaults/names.db new file mode 100644 index 0000000..e69de29 diff --git a/cbox-tree.d/usr/share/cryptobox/defaults/timeout b/cbox-tree.d/usr/share/cryptobox/defaults/timeout new file mode 100644 index 0000000..64bb6b7 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/defaults/timeout @@ -0,0 +1 @@ +30 diff --git a/cbox-tree.d/usr/share/cryptobox/defaults/version b/cbox-tree.d/usr/share/cryptobox/defaults/version new file mode 100644 index 0000000..be58634 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/defaults/version @@ -0,0 +1 @@ +0.3 diff --git a/cbox-tree.d/usr/share/cryptobox/lang/README b/cbox-tree.d/usr/share/cryptobox/lang/README new file mode 100644 index 0000000..8edf0b0 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/lang/README @@ -0,0 +1,28 @@ +$Id$ + +You may want to translate the CryptoBox into another language? +Most welcome! + +Existing translation can be found in the .hdf files. There are three +easy steps, that won't take longer than one hour to go through: + +1.) Download one .hdf in your preferred language (e.g. en.hdf if you're a native english speaker). + +2.) Start to change the text behind the equal sign line for line. + +3.) Send us your changed .hdf file. That's it - thank you! + + +Hints: +We are available via mail (cryptobox@systemausfall.org) for any questions. Don't worry to ask us if +something is vague. We prefer "utf" encoded hdf-files. If you don't +know what udf means - just don't care, send us your file and +everything else will be fine. You don't have to translate the whole +file, some minor parts are enough to send back. The community will do +the rest. ;) + +Again, thanks for your help! We do the Cryptobox things in our +freetime for fun and to provide an open source solution for this +special purpose. By helping us, you're taking part in this +development. + diff --git a/cbox-tree.d/usr/share/cryptobox/lang/TODO b/cbox-tree.d/usr/share/cryptobox/lang/TODO new file mode 100644 index 0000000..8afaa30 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/lang/TODO @@ -0,0 +1,16 @@ +$Id$ + +Here are some minor fixes that have to be done. Thanks a lot for your +help! + + +################################ slovenian ################################## + +- SuccessMessage.InitRunning contains only the first sentence +- SuccessMessage.ReBoot: add a hint for automatic redirection (3rd sentence) +- EmptyCryptoPassword: change 'Text' accordingly to English string. + +Below are some smaller changes in English sentences. Someone may change it accordingly. +- MountFailed: add 'Pleasy try again' to the end of the string. +- UmountFailed: changed 'Also close all unclean programs' to 'Close all unclean programs'. +- InitRunning: changed 'You may configure it now. You may activate the encrypted filesystem in a few minutes.' to 'You may configure it now and activate the encrypted filesystem in a few minutes.' diff --git a/cbox-tree.d/usr/share/cryptobox/lang/de.hdf b/cbox-tree.d/usr/share/cryptobox/lang/de.hdf new file mode 100644 index 0000000..fcf9bc4 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/lang/de.hdf @@ -0,0 +1,215 @@ +Lang { + + Name = deutsch + + Status = $Id$ + + Title { + Top = Die CryptoBox + Slogan = ... und 1984 war gestern! + Init = Initialisierung der CryptoBox + Mount = Aktivierung der Crypto-Daten + Umount = Deaktivierung der Crypto-Daten + Config = Konfiguration der CryptoBox + Log = Protokoll der CryptoBox + ShutDown = System + Status = Status der CryptoBox + } + + + Text { + EnterCurrentCryptoPassword = Das Crypto-Passwort eingeben: + EnterNewCryptoPassword = Das neue Crypto-Passwort eingeben: + EnterSameCryptoPassword = Das Crypto-Passwort wiederholen: + EnterCurrentAdminPassword = Das aktuelle Admin-Passwort eingeben: + EnterNewAdminPassword = Das neue Admin-Passwort eingeben: + EnterSameAdminPassword = Das neue Admin-Passwort wiederholen: + InitWarning = Bei der Initialisierung werden ALLE DATEN auf der Festplatte GELÖSCHT! + ConfirmInitHint = Um zu bestätigen, dass du weisst, was du tust, tippe hier bitte exakt Folgendes ein: + ConfirmInit = Ja, loesche alle Daten! + PartitionInfo = Derzeitige Partitionierung der Festplatte: + IPAddress = Netzwerk-Adresse (IP) der CryptoBox: + TimeOut = Zeitabschaltung des Crypto-Dateisystems (in Minuten): + EmptyLog = Das Logbuch der CryptoBox ist leer. + SelectLanguage = Spracheinstellung: + RedirectNote = Klicke hier, falls dein Browser die automatische Weiterleitung nicht unterstützt. + ProjectHomePage = Projekt-Seite + ProjectNote = Die CryptoBox ist ein Projekt von + DoUmount = Deaktivierung des verschlüsselten Dateisystems + DoMount = Aktivierung des verschlüsselten Dateisystems + Configuration = Einstellungen + CryptoIsActive = Die Crypto-Daten sind verfügbar. + CryptoIsDown = Die Crypto-Daten sind vor jedem Zugriff geschützt. + } + + + Button { + DoInit = CryptoBox initialisieren + SaveConfig = Speichere Konfiguration + Update = Aktualisieren + Mount = Crypto-Daten aktivieren + Umount = Crypto-Daten deaktivieren + Config = Einstellungen + PowerOff = ausschalten + ReBoot = neu starten + Protocol = Protokoll + Documentation = Handbuch + Status = Status + } + + + WarningMessage { + InitNotConfirmed { + Title = Bestätigung schlug fehl + Text = Der Bestätigungssatz muss exakt eingegeben werden! + } + + EmptyCryptoPassword { + Title = Ungültiges Crypto-Passwort + Text = Du musst ein Crypto-Passwort eingeben! + } + + DifferentCryptoPasswords { + Title = Ungleiche Crypto-Passworte + Text = Die beiden Passworte müssen identisch sein, um Eingabefehler zu verhindern. + } + + DifferentAdminPasswords { + Title = Ungleiche Administrations-Passworte + Text = Die beiden Passworte müssen identisch sein, um Eingabefehler zu verhindern. + } + + WrongAdminPassword { + Title = Falsches Administrations-Passwort + Text = Das eingegebene Administrations-Passwort ist falsch. Versuche es noch einmal. + } + + MountFailed { + Title = Aktivierung schlug fehl + Text = Das verschlüsselte Dateisystem konnte nicht aktiviert werden. Wahrscheinlich war das Passwort falsch. Versuche es noch einmal. + } + + UmountFailed { + Title = Deaktivierung schlug fehl + Text = Das verschlüsselte Dateisystem konnte nicht abgeschaltet werden. Wahrscheinlich sind noch Dateien geöffnet. Schließe alle potentiell unsauberen Programme (beispielsweise die weitverbreitete Textverarbeitung). Notfalls einfach die CryptoBox ausschalten! + } + + NotInitialized { + Title = Keine Konfiguration gefunden + Text = Die CryptoBox wurde noch nicht eingerichtet. + } + + InitNotFinished { + Title = Initalisierung noch nicht abgeschlossen + Text = Die Initialisierung wird in wenigen Minuten beendet sein. Erst danach ist diese Aktion möglich. + } + + IsMounted { + Title = Bereits aktiv + Text = Das verschlüsselte Dateisystem ist bereits aktiv. + } + + NotMounted { + Title = Nicht aktiv + Text = Das verschlüsselte Dateisystem ist derzeit nicht aktiv. + } + + AlreadyConfigured { + Title = Konfiguration gefunden + Text = Die CryptoBox wurde bereits eingerichtet. Bei einer erneuten Initialisierung werden alle Daten gelöscht! + } + + InvalidLanguage { + Title = Ungültige Sprache + Text = Die ausgewählte Sprache ist nicht verfügbar! + } + + InvalidIP { + Title = Ungültige IP + Text = Die ausgewählte Netzwerkadresse ist nicht gültig! + } + + InvalidTimeOut { + Title = Ungültige Zeitabschaltung + Text = Der ausgewählte Wert der Zeitabschaltung ist nicht gültig! + } + + ConfigTimeOutFailed { + Title = Fehler beim Ändern der Zeitabschaltung + Text = Der Wert der Zeitabschaltung konnte nicht geändert werden! + } + + ConfigLanguageFailed { + Title = Fehler beim Ändern der Spracheinstellung + Text = Die Spracheinstellung konnte nicht geändert werden! + } + + ConfigIPFailed { + Title = Fehler beim Ändern der Netzwerkadresse + Text = Die Netzwerkadresse konnte nicht geändert werden! + } + + IPAddressChanged { + Title = Änderung der Netzwerk-Adresse + Text = Die Netzwerk-Adresse der CryptoBox wurde verändert. In wenigen Sekunden werden sie zu der neuen Adresse umgeleitet. + } + } + + + SuccessMessage { + InitRunning { + Title = Initialisierung läuft + Text = Die Initialisierung der CryptoBox wird im Hintergrund abgeschlossen. Du kannst die CryptoBox nun konfigurieren und das verschlüsselte Dateisystem in ein paar Minuten aktivieren. + } + + ConfigSaved { + Title = Konfiguration gespeichert + Text = Die neuen Einstellungen der CryptoBox wurden übernommem. + } + + MountDone { + Title = Crypto-Daten aktiviert + Text = Das verschlüsselte Dateisystem ist nun verfügbar. + } + + UmountDone { + Title = Crypto-Daten deaktiviert + Text = Das verschlüsselte Dateisystem ist nun vor jedem Zugriff geschützt. + } + + PowerOff { + Title = Abschaltung + Text = Die CryptoBox wird gerade heruntergefahren. In wenigen Sekunden kannst du sie ausschalten (falls dies nicht automatisch geschieht). + } + + ReBoot { + Title = Neustart + Text = Die CryptoBox wird gerade neu gestartet. In wenigen Sekunden ist sie wieder verfügbar. Bitte warte solange - du wirst automatisch weitergeleitet. + } + } + + + ErrorMessage { + + UnknownAction { + Title = Unbekannte Aktion + Text = Du hast eine undefinierte Aktion angefordert. + } + + NoSSL { + Title = Unverschlüsselte Verbindung + Text = Die CryptoBox akzeptiert nur verschlüsselte Verbindungen (https). So bleibt das Passwort vor neugierigen Augen geschützt. In wenigen Sekunden wird eine verschlüsselte Verbindung hergestellt. + } + + InitFailed { + Title = Initialisierung fehlgeschlagen + Text = Sende bitte den Inhalt des Protokolls (siehe oben) an die Entwickler der CryptoBox (cryptobox@systemausfall.org). + } + + NoHardDisk { + Title = Keine Festplatte + Text = Es wurde kein Datenträger gefunden, der zur Speicherung der verschlüsselten Daten geeignet ist. Prüfe bitte, ob beim Anschalten des Computers eine Festplatte vom BIOS erkannt wurde. + } + } + +} diff --git a/cbox-tree.d/usr/share/cryptobox/lang/en.hdf b/cbox-tree.d/usr/share/cryptobox/lang/en.hdf new file mode 100644 index 0000000..5236178 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/lang/en.hdf @@ -0,0 +1,215 @@ +Lang { + + Name = english + + Status = $Id$ + + Title { + Top = The CryptoBox + Slogan = Privacy for the rest of us. + Init = CryptoBox initialization + Mount = Activation of encrypted data + Umount = Deactivation of encrypted data + Config = CryptoBox configuration + Log = CryptoBox logfiles + ShutDown = System + Status = Status + } + + + Text { + EnterCurrentCryptoPassword = Enter the crypto password: + EnterNewCryptoPassword = Enter the new crypto password: + EnterSameCryptoPassword = Repeat the new crypto password: + EnterCurrentAdminPassword = Enter the current administration password: + EnterNewAdminPassword = Enter the new administration password: + EnterSameAdminPassword = Repeat the new administration password: + InitWarning = During the process of initialization ALL DATA on the hard drive WILL BE DELETED! + ConfirmInitHint = To confirm that you know what you are doing, please enter exactly the following sequence: + ConfirmInit = Yes, delete all data! + PartitionInfo = Current partioning of the hard drive: + IPAddress = Network address (IP) of the CryptoBox: + TimeOut = Timeout for deactivation of the encrypted filesystem (in minutes): + EmptyLog = The logfiles of the CryptoBox are empty. + SelectLanguage = Language preferences: + RedirectNote = Click here if your browser does not support automatic redirection. + ProjectHomePage = Website of project + ProjectNote = The CryptoBox is a project of + DoUmount = Deactivation of the encrypted filesystem + DoMount = Activation of the encrypted filesystem + Configuration = Configuration + CryptoIsActive = The encrypted data is accessible. + CryptoIsDown = The encrypted data is protected from any access. + } + + + Button { + DoInit = Initialize CryptoBox + SaveConfig = Save configuration + Update = Refresh + Mount = Activate encrypted filesystem + Umount = Deactivate encrypted filesystem + Config = Configuration + PowerOff = Shutdown + ReBoot = Reboot + Protocol = Logfiles + Documentation = Manual + Status = Status + } + + + WarningMessage { + InitNotConfirmed { + Title = Confirmation failed + Text = The sentence has to be entered exactly as shown! + } + + EmptyCryptoPassword { + Title = Invalid crypto password + Text = You have to enter a crypto password! + } + + DifferentCryptoPasswords { + Title = Crypto passwords do not match + Text = Both entered passwords have to be identical to ensure this is the desired password. + } + + DifferentAdminPasswords { + Title = Administration passwords do not match + Text = Both entered passwords have to be identical to ensure this is the desired password. + } + + WrongAdminPassword { + Title = Wrong Administration password + Text = The entered administration password is wrong. Please try again. + } + + MountFailed { + Title = Activation failed + Text = The encrypted filesystem could not be activated. Probably the given password was wrong. Please try again. + } + + UmountFailed { + Title = Deactivation failed + Text = The encrypted filesystem could not be activated. Probably some files are still in use. Close all unclean programs (for example that widely used word processor). In case of need just shut down the CryptoBox! + } + + NotInitialized { + Title = No configuration found + Text = The CryptoBox has not yet been configured. + } + + InitNotFinished { + Title = Initialization not yet completed + Text = Initialization will be completed in a few minutes. After completed initialization this action will become available. + } + + IsMounted { + Title = Already active + Text = The encrypted filesystem has already been activated. + } + + NotMounted { + Title = Inactive + Text = The encrypted filesystem is currently not active. + } + + AlreadyConfigured { + Title = Configuration found + Text = The CryptoBox has already been configured. If you initialize again, all data will be deleted! + } + + InvalidLanguage { + Title = Invalid language + Text = The selected language is not available! + } + + InvalidIP { + Title = Invalid IP address + Text = The selected network address is not valid! + } + + InvalidTimeOut { + Title = Invalid timeout + Text = The selected timeout is not valid! + } + + ConfigTimeOutFailed { + Title = Error during change of timeout + Text = The timeout value could not be changed! + } + + ConfigLanguageFailed { + Title = Error during change of language preferences + Text = The language preferences could not be changed! + } + + ConfigIPFailed { + Title = Error during change of network address + Text = The network address could not be changed! + } + + IPAddressChanged { + Title = Change of network address + Text = The network address has been changed. In a few seconds you will get redirected to the new address. + } + } + + + SuccessMessage { + InitRunning { + Title = Initialization running + Text = The initialization will be completed in background. You may configure it now and activate the encrypted filesystem in a few minutes. + } + + ConfigSaved { + Title = Configuration saved + Text = The new settings have been accepted. + } + + MountDone { + Title = Encrypted filesystem activated + Text = The encrypted filesystem is now available. + } + + UmountDone { + Title = Encrypted filesystem deactivated + Text = The encrypted filesystem is now secured from all forms of access. + } + + PowerOff { + Title = Shutdown + Text = The CryptoBox is currently going to halt. In a few seconds you can power it off (in case this does not happen automatically). + } + + ReBoot { + Title = Reboot + Text = The CryptoBox is currently rebooting. In a few seconds it will be available again. Please wait - you will get redirected, when the reboot has finished. + } + } + + + ErrorMessage { + + UnknownAction { + Title = Unknown action + Text = You have requested an undefined action. + } + + NoSSL { + Title = Unencrypted connection + Text = The CryptoBox only accepts encrypted connections (https), so the password is safe from curious eyes. The encrypted connection will be established in a few seconds. + } + + InitFailed { + Title = Initialization failed + Text = Please send the logfiles (see above) to the developers of the CryptoBox (cryptobox@systemausfall.org). + } + + NoHardDisk { + Title = No hard drive + Text = No hard drive suitable for saving the encrypted filesystem found. Please ensure the BIOS detected the hard drive during power-on of the comuter. + } + } + +} diff --git a/cbox-tree.d/usr/share/cryptobox/lang/si.hdf b/cbox-tree.d/usr/share/cryptobox/lang/si.hdf new file mode 100644 index 0000000..2ec7a35 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/lang/si.hdf @@ -0,0 +1,215 @@ +Lang { + + Name = slovenščina + + Status = $Id$ + + Title { + Top = The CryptoBox + Slogan = Privatnost v vsako vas! + Init = CryptoBox zagon + Mount = Aktivacija kriptiranih podatkov + Umount = Deaktivacija kriptiranih podatkov + Config = CryptoBox konfiguracija + Log = CryptoBox dnevnik + ShutDown = Ugasni + Status = Stanje + } + + + Text { + EnterCurrentCryptoPassword = Vpišite geslo: + EnterNewCryptoPassword = Vpišite novo geslo: + EnterSameCryptoPassword = Ponovite novo geslo: + EnterCurrentAdminPassword = Vnesite trenutno obstoječe geslo administratorja/ke: + EnterNewAdminPassword = Vnesite novo geslo administratorja/ke: + EnterSameAdminPassword = Ponovite novo geslo administratorja/ke: + InitWarning = Med incializacijo bodo VSI PODATKI z vašega trdega diska IZBRISANI! + ConfirmInitHint = Vsled potrditve vaših dejanj vpišite naslednje besedilo: + ConfirmInit = Da, zbirši vse podatke! + PartitionInfo = trenutna porazdelitev trdega diska: + IPAddress = IP CryptoBoxa: + TimeOut = Čas preklica deaktivacije kriptiranega datotečnega sistema:(v minutah) + EmptyLog = Dnevnik CryptoBoxa je prazen. + SelectLanguage = Jezikovne nastavitve: + RedirectNote = Kliknite če vaš iskalnik ne podpira avtomatične preusmeritve. + ProjectHomePage = Spletna stran projekta + ProjectNote = CryptoBox je projekt + DoUmount = Deaktivacija kriptiranega datotečnega sistema + DoMount = Aktivacija kriptiranega datotečnega sistema + Configuration = Konfiguracija + CryptoIsActive = Kriptirani podatki so dostopni. + CryptoIsDown = Kriptirani podatki soso zaèiteni pred kakr nimkoli dostopom. + } + + + Button { + DoInit = Zagon CryptoBoxa + SaveConfig = Shrani konfiguracijo + Update = Osveži + Mount = Aktivacija kriptiranega datotečnega sistema + Umount = Deaktivacija kriptiranega datotečnega sistema + Config = Konfiguracija + PowerOff = Ugasni + ReBoot = Ponovni zagon + Protocol = Dnevnik + Documentation = Priročnik + Status = Stanje + } + + + WarningMessage { + InitNotConfirmed { + Title = Potrditev ni uspela + Text = Besedilo mora biti vpisano natanko kot je prikazano! + } + + EmptyCryptoPassword { + Title = Nepravilno geslo + Text = Geslo ne sme biti prazno! + } + + DifferentCryptoPasswords { + Title = Gesli se ne ujemata! + Text = Obe vnešeni gesli morata biti identični, v zagotovilo, da je vpisano željeno geslo. + } + + DifferentAdminPasswords { + Title = Administracijski gesli se ne ujemata + Text = Obe vnešeni gesli morata biti identični, v zagotovilo da je vpisano željeno geslo. + } + + WrongAdminPassword { + Title = Napačno administracijsko geslo! + Text = Vnešeno administracijsko geslo je nepravilno. Prosimo poskusite znova! + } + + MountFailed { + Title = Aktivacija ni uspela + Text = Kriptiran datotečni sistem se ni aktiviral.Po vsej verjetnosti je bilo geslo napačno. + } + + UmountFailed { + Title = Deaktivacija ni uspela + Text = Kriptiran datotečni sistem se ni aktiviral.Datoteke so morda v uporabi. Zaprite vse programe. (naprimer ta nadvse razširjen urejevalnik besedil). V primeru nuje ugasnite CryptoBox! + } + + NotInitialized { + Title = Konfiguracija ni najdena + Text = CryptoBox še ni bil konfiguriran. + } + + InitNotFinished { + Title = Zagon še ni dovršen + Text = Zagon bo dovršen v nekaj minutah. Po končanem zagonu bo ta možnost omogočena. + } + + IsMounted { + Title = Že aktivno + Text = Kriptiran datotečni sistem je že aktiviran. + } + + NotMounted { + Title = Onemogočeno + Text = Kriptiran datotečni sistem trenutno ni aktiven. + } + + AlreadyConfigured { + Title = Konfiguracija uspela + Text = CryptoBox je đe bil konfiguriran. Če ponovno zaženete bodo vsi podatki izbrisani! + } + + InvalidLanguage { + Title = Nepravilna izbira jezika + Text = Izbrani jezik ni na voljo! + } + + InvalidIP { + Title = Napačen IP naslov + Text = Izbran omrežni naslov ni veljaven! + } + + InvalidTimeOut { + Title = Nepravilen čas preklica + Text = Izbran čas preklica ni veljaven! + } + + ConfigTimeOutFailed { + Title = Napaka med spremembo časa preklica + Text = Časa preklica ne morete spremeniti! + } + + ConfigLanguageFailed { + Title = Napaka med spremembo jezikovnih nastavitev + Text = Spreminjanje jezikovnih nastavitev ni mogoče. + } + + ConfigIPFailed { + Title = Napaka med spreminjanjem omrežnega naslova. + Text = Spreminjanje omrežnega naslova ni mogoče. + } + + IPAddressChanged { + Title = Sprememba omrežnega naslova + Text = Omrežni naslov je spremenjen. V nekaj sekundah boste preusmerjeni na nov naslov. + } + } + + + SuccessMessage { + InitRunning { + Title = Zagon poteka + Text = Zagon bo dokončan v ozadju. + } + + ConfigSaved { + Title = Konfiguracija spravljena + Text = Nove nastavitve so sprejete. + } + + MountDone { + Title = Kriptiran datotečni sistem aktiviran + Text = Kriptiran datotečni sistem je na voljo. + } + + UmountDone { + Title = Kriptiran datotečni sistem deaktiviran. + Text = Kriptiran datotečni sistem je varovan pred vstopom. + } + + PowerOff { + Title = Ugasni + Text = CryptoBox se zaustavlja. V nekaj sekundah ga lahko izklopite.(v kolikor se to ne zgodi avtomatično). + } + + ReBoot { + Title = Ponovni zagon + Text = CryptoBox se zaganja. V nekaj sekundah bo zopet na voljo. + } + } + + + ErrorMessage { + + UnknownAction { + Title = Neznan zahtevek + Text = Podali ste nedefiniran zahtevek. + } + + NoSSL { + Title = Nekriptirana povezava + Text = CryptoBox sprejme le kriptirane povezave (https), da je geslo zaščiteno pred radovednimi očmi. V nekaj sekundah bo kriptirana povezava vzpostavljena. + } + + InitFailed { + Title = Zagon ni uspel + Text = Prosim pošljite dnevnik (poglejte zgoraj) razvijalcem CryptoBoxa (cryptobox@systemausfall.org). + } + + NoHardDisk { + Title = Ni trdega diska + Text = Primeren trdi disk za shranjenje kriptiranega datotečnega sistema ni zaznan. Poskrbite da bo med zagonom BIOS zaznal trdi disk. + } + } + +} diff --git a/cbox-tree.d/usr/share/cryptobox/templates/empty.cs b/cbox-tree.d/usr/share/cryptobox/templates/empty.cs new file mode 100644 index 0000000..8db0381 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/empty.cs @@ -0,0 +1,3 @@ + + + diff --git a/cbox-tree.d/usr/share/cryptobox/templates/error.cs b/cbox-tree.d/usr/share/cryptobox/templates/error.cs new file mode 100644 index 0000000..ac56d9a --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/error.cs @@ -0,0 +1,3 @@ + + + diff --git a/cbox-tree.d/usr/share/cryptobox/templates/footer.cs b/cbox-tree.d/usr/share/cryptobox/templates/footer.cs new file mode 100644 index 0000000..afb8a6b --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/footer.cs @@ -0,0 +1,35 @@ + + + +

+ + + + + + + + + + + + + + + diff --git a/cbox-tree.d/usr/share/cryptobox/templates/form_config.cs b/cbox-tree.d/usr/share/cryptobox/templates/form_config.cs new file mode 100644 index 0000000..fcc7ee4 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/form_config.cs @@ -0,0 +1,31 @@ + + +
+

+ + + +


+

+ + +


+

+ +


+

+ +


+

+ + + + + +
diff --git a/cbox-tree.d/usr/share/cryptobox/templates/form_init.cs b/cbox-tree.d/usr/share/cryptobox/templates/form_init.cs new file mode 100644 index 0000000..1e22803 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/form_init.cs @@ -0,0 +1,34 @@ + + +

+ +
+ + +

+ +


+

+ +


+

+


+

+


+

+


+

+


+

+ + + +
+ +
+ +
+

+

+
diff --git a/cbox-tree.d/usr/share/cryptobox/templates/form_mount.cs b/cbox-tree.d/usr/share/cryptobox/templates/form_mount.cs new file mode 100644 index 0000000..a55dc00 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/form_mount.cs @@ -0,0 +1,15 @@ + + +

+ +
+ + +

+

+ + + + + +
diff --git a/cbox-tree.d/usr/share/cryptobox/templates/form_shutdown.cs b/cbox-tree.d/usr/share/cryptobox/templates/form_shutdown.cs new file mode 100644 index 0000000..3a27662 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/form_shutdown.cs @@ -0,0 +1,19 @@ + + +

+ +
+ + + + + + +   + + + + + + +
diff --git a/cbox-tree.d/usr/share/cryptobox/templates/form_umount.cs b/cbox-tree.d/usr/share/cryptobox/templates/form_umount.cs new file mode 100644 index 0000000..f11b963 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/form_umount.cs @@ -0,0 +1,12 @@ + + +

+ +
+ + + + + + +
diff --git a/cbox-tree.d/usr/share/cryptobox/templates/header.cs b/cbox-tree.d/usr/share/cryptobox/templates/header.cs new file mode 100644 index 0000000..e87dcf8 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/header.cs @@ -0,0 +1,47 @@ + + + + + + + CryptoBox + + + + + + + + + + +
+ +
+ +
+ +
+ +
+ +
+ +

+

+
+ +
+ + +
diff --git a/cbox-tree.d/usr/share/cryptobox/templates/macros.cs b/cbox-tree.d/usr/share/cryptobox/templates/macros.cs new file mode 100644 index 0000000..c58624f --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/macros.cs @@ -0,0 +1,93 @@ + + +
+

+

+ + + +
+

+

+ + + +
+

+

+ + + + + + + + + + + + + +
+ diff --git a/cbox-tree.d/usr/share/cryptobox/templates/main.cs b/cbox-tree.d/usr/share/cryptobox/templates/main.cs new file mode 100644 index 0000000..d93cc61 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/main.cs @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/cbox-tree.d/usr/share/cryptobox/templates/nav.cs b/cbox-tree.d/usr/share/cryptobox/templates/nav.cs new file mode 100644 index 0000000..5528d7a --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/nav.cs @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/cbox-tree.d/usr/share/cryptobox/templates/show_doc.cs b/cbox-tree.d/usr/share/cryptobox/templates/show_doc.cs new file mode 100644 index 0000000..20146db --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/show_doc.cs @@ -0,0 +1,7 @@ + + +
+ + + +
diff --git a/cbox-tree.d/usr/share/cryptobox/templates/show_log.cs b/cbox-tree.d/usr/share/cryptobox/templates/show_log.cs new file mode 100644 index 0000000..3544b63 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/show_log.cs @@ -0,0 +1,13 @@ + + +
+ +

+ + +

+ +

+ + +
diff --git a/cbox-tree.d/usr/share/cryptobox/templates/show_status.cs b/cbox-tree.d/usr/share/cryptobox/templates/show_status.cs new file mode 100644 index 0000000..00e2ab4 --- /dev/null +++ b/cbox-tree.d/usr/share/cryptobox/templates/show_status.cs @@ -0,0 +1,5 @@ + + +

+

+

diff --git a/cbox-tree.d/usr/share/doc/cryptobox/README b/cbox-tree.d/usr/share/doc/cryptobox/README new file mode 100644 index 0000000..7161412 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/README @@ -0,0 +1,24 @@ +$Id$ +CryptoBox version 0.3 + +1) Documentation +The documentation is available at https://systemausfall.org/trac/cryptobox/wiki/CryptoBoxUser + +2) Building a LiveCD +try: "scripts/cbox-build.sh release" +or look at the developer's documentation: https://systemausfall.org/trac/cryptobox/wiki/CryptoBoxDev + +3) Bug reporting +Use our issue tracker at https://systemausfall.org/trac/cryptobox/newticket + +4) Licence +All scripts are GPL code (v2.0 or above). +The documentation is licenced under "Creative Commons 2.5 share-alike" (http://creativecommons.org/licenses/by-sa/2.5/). + +5) Contributors +Clavdia Horvat, Tadej Brce & Dušan Rebolj - slovenian translation + +6) Contact +email: cryptobox@systemausfall.org + +The CryptoBox project is mainly driven by sense.lab (https://systemausfall.org/senselab). diff --git a/cbox-tree.d/usr/share/doc/cryptobox/README.Debian b/cbox-tree.d/usr/share/doc/cryptobox/README.Debian new file mode 100644 index 0000000..72c1a65 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/README.Debian @@ -0,0 +1,18 @@ +CryptoBox for Debian - installation notes + +1) additional dependencies +you need the following packages, which are not (yet) part of the main debian distribution: + * cryptsetup_luks - http://luks.endorphin.org/masses + * clearsilver for perl (>=0.9.14) - http://www.clearsilver.net/downloads/ + + +2) cgi-bin +If you do not use thttpd as your webserver, you should add the cgi-bin path to +your script directory. For apache this would be something like the following: +(file /etc/apache???/conf.d/cryptobox) +Alias /cryptobox-misc /var/www/cryptobox-misc +ScriptAlias /cryptobox /usr/lib/cgi-bin/cryptobox.pl + + +-- Lars Kruse Sun, 4 Dec 2005 21:05:45 +0100 + diff --git a/cbox-tree.d/usr/share/doc/cryptobox/changelog.Debian.gz b/cbox-tree.d/usr/share/doc/cryptobox/changelog.Debian.gz new file mode 100644 index 0000000000000000000000000000000000000000..938ac74d85ff8cb9d29002d2ebc2694bc4ca7185 GIT binary patch literal 156 zcmV;N0Av3jiwFov_KZUU17m1mZf9j|Z)Yw=oe2$=POoR&DaFZ%%k;g$_kAO-+qiAU+4w3^7wIqlVZGpw?y$cBj7r24= z&WWf2t%5-Zy6^*11vi5VdZCp;o&qLPTSF(@6+Fr_jr|F5 zaHe3%9O0+7`3ik~s5^d@?5r(UFg$5yV?fW`Wg%{#;un`TkJ`suk3vk~voKmhAVU~e z--m3>2S{fJJ?4PI5G)$uLV~SJ6b6(l?&b9aWY^u49tE@QyqeMT>I&wBvp`t(bz66j zSnbQ%jfQT$K-`z_m4zQ9G+KE3^}E?H`+5Z^Cvy?B?dz}9c-#SS_SKHO%W3<0qcC%c b!up)`e;8YQGHjhKGwl8V(+#tOAp-yajj82# literal 0 HcmV?d00001 diff --git a/cbox-tree.d/usr/share/doc/cryptobox/copyright b/cbox-tree.d/usr/share/doc/cryptobox/copyright new file mode 100644 index 0000000..5441f59 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/copyright @@ -0,0 +1,18 @@ +Copyright (c) 02005 sense.lab + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License with +your Debian GNU/Linux system, in /usr/share/common-licenses/GPL, or with the +Debian GNU/Linux hello source package as the file COPYING. If not, +write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +Boston, MA 02110-1301 USA + +$Id$ diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBox.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBox.html new file mode 100644 index 0000000..76e4f40 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBox.html @@ -0,0 +1,93 @@ + + + + + +
+

+

+ +

+

Die CryptoBox

+

+English version +

+

Neuigkeiten

+

+Das erste Release der CryptoBox ist unter https://codecoop.org/projects/cryptobox/ verfügbar. +

+

Überblick

+

+Die CryptoBox ist eine Live-CD mit der sich jeder alte Rechner in Sekundenschnelle in einen verschlüsselnden Server umwandeln lässt. Damit kannst du sensible Daten speichern, ohne dass du etwas über Kryptografie wissen musst. +

+

Download

+

Spezifikation

+ +
SystemDebian GNU/Linux-basierte Live-CD +
benötigter Computer"ausrangierter" PC (i386 ab p1 mind. 32MB RAM) +
unterstützte Clients*nix; *bsd; Windows; Mac OS +
interner Fileserversamba (Netzwerkfreigaben) +
Benutzerschnittstelleper Browser bedienbares Web-Interface +
VerschlüsselungAES via device-mapper +
+

+Das Web-Interface der CryptoBox ünterstützt derzeit folgende Sprachen: +

+
  • deutsch +
  • englisch +
  • slowenisch +

+Du kannst gern weitere Übersetzungen in andere Sprachen hinzufügen (idealerweise utf-encodiert). +

+

Dokumentation

+

+Das Nutzerhandbuch ist unter CryptoBoxUser verfügbar. +

+

Entwicklung

+

+Beteilige dich an der Entwicklung der CryptoBox und werde reich und schön! ;)
+Nee im Ernst, wir freuen uns über jeden partizipierenden Menschen. Du wirst in einem entspannten Team reichlich Erfahrungen sammeln, eine nützliche Sache voranbringen und - wer weiß - vielleicht macht dich das auch schön. Schreib eine Mail an cryptobox[at]systemausfall.org und hab Spaß. +

+

+Probleme und Anregungen kannst du in unserer Fehlerdatenbank melden. +

+

+Die englischsprachige Entwickler-Doku findest du unter CryptoBoxDev. +

+

+Die Quell-Daten kannst du hier begutachten. +

+

+Für allgemeine Fragen, schreibe eine Email an cryptobox[at]systemausfall.org. +

+

Mitwirkende

+

+

  • Clavdia Horvat, Tadej Brce & Dušan Rebolj - slovenian translation +
  • http://codecoop.org - webspace +
+

+

Rechtliches

+
  1. Alle Skripte unterliegen der GPL - sie sind also quasi vollständig frei. +
  2. Die Dokumentation unterliegt einer Creative Commons-Lizenz, damit wird die Möglichkeit der freien Verbreitung des gesammelten Wissens gewährleistet. +
  3. Wir übernehmen keinerlei Haftung für eventuelle Folgen, die durch die Nutzung einer CryptoBox entstehen könnten. +

+

Kommentare

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDev.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDev.html new file mode 100644 index 0000000..33fc754 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDev.html @@ -0,0 +1,107 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBox/de, CryptoBox/en) + +

+
+

Development documentation

+

+The following pages are written for developers only.
+Users of the CryptoBox should read CryptoBoxUser instead. +

+

Source

+

+You may browse the source code. +

+

Contact

+

+We are waiting for your emails to cryptobox[at]systemausfall.org. +

+

Bug reports

+

+Please use our issue tracker, if you discover problems: https://systemausfall.org/trac/cryptobox/newticket +

+
+
+ + + diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevBackground.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevBackground.html new file mode 100644 index 0000000..57a5809 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevBackground.html @@ -0,0 +1,61 @@ + + + + + +
+

+

+

Table of Contents

+
    +
  1. dfsbuild
  2. +
  3. the kernel
  4. +
  5. qemu
  6. +
  7. alternative LiveCDs
  8. +
  9. Comments
  10. +
+
+ +

+

+Navigation: ( CryptoBoxDev) + +

+
+

Details of the CryptoBox

+

dfsbuild

+

+The base system of the CryptoBox Live-CD is created by dfsbuild. +

+

+It is recommended to use some kind of caching tool for the retrieval of the debian packages (e.g.: apt-cacher, apt-proxy or approx). This saves a lot of bandwidth and time. +

+

+The documentation for dfsbuild is sparse. But it is quite unlikely, that you will get in direct contact with it, as it is wrapped by cbox-build. However the following links may help you for specific problems: +

+

the kernel

+

+The linux kernel for the CryptoBox is compiled statically. If you want to change it, you could follow this steps: +

+
  1. get the sources: apt-get install kernel-tree-2.6.11 (or the version of your choice) +
  2. copy the exisiting config file kernel/config-2.6.11 as .config into your kernel source directory +
  3. build the debian kernel package make-kpkg --revision=1.dfs --rootcmd=fakeroot kernel_image +
  4. change the kernel in the unpackdebs setting in dfs-cbox.conf (see CryptoBoxDevCustomBuild for details) +

qemu

+

+Qemu is a portable system emulator. It is a convenient tool to ease the development workflow, as you do not need to burn LiveCDs for testing. +

+

alternative LiveCDs

+

+We tried some other LiveCDs before we decided to use dfsbuild. The following pages describe their advantages and disadvantages as the base system for the CryptoBox: +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevCustomBuild.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevCustomBuild.html new file mode 100644 index 0000000..6607d93 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevCustomBuild.html @@ -0,0 +1,85 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBoxDev, CryptoBoxDevBackground, CryptoBoxDevPreparation, CryptoBoxDevWorkFlow) + +

+
+

Custom builds of the CryptoBox

+

Overview

+

+The following sections are useful, if you want to change the default settings of your personal CryptoBox development environment. +

+

+You should have completed the steps described in CryptoBoxDevPreparation. +

+

Settings

+

dfsbuild settings

+

+All settings for dfsbuild can be found in etc-defaults.d/dfs-cbox.conf. +

+

+If you want to change any of them, you should do the following: +

+
  1. copy etc-defaults.d/dfs-cbox.conf file to etc-local.d/ +
  2. change etc-local.d/dfs-cbox.conf according to your needs +

+This allows you to use your own (personal) settings, without interfering with files under version control. +

+

CryptoBox development configuration

+

+Some settings regarding the building, configuring and validating of the CryptoBox can be found in etc-defaults.d/cbox-dev.conf. +

+

+If you want to change any of them, you should do the following: +

+
  1. copy etc-defaults.d/cbox-dev.conf file to etc-local.d/ +
  2. change etc-local.d/cbox-dev.conf according to your needs +

SSH connection

+

+The file ssh_config is used to establish a connection to a running CryptoBox system. +

+

+It can be necessary to change these settings, if: +

+
  • you do not want to use the default IP for the CryptoBox +
  • or the CryptoBox is not within your local network. +

+If you want to change some settings, you should do the following: +

+
  1. copy etc-defaults.d/ssh_config file to etc-local.d/ +
  2. change etc-local.d/ssh_config according to your needs +

qemu network configuration

+

+The file etc-defauolts.d/qemu-ifup is used for the CryptoBox emulation with qemu. See man qemu for details. +

+

+If you want to change some settings, you should do the following: +

+
  1. copy etc-defaults.d/qemu-ifup file to etc-local.d/ +
  2. change etc-local.d/qemu-ifup according to your needs +

+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevCustomConfigure.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevCustomConfigure.html new file mode 100644 index 0000000..9b93359 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevCustomConfigure.html @@ -0,0 +1,60 @@ + + + + + +
+

+

+

Table of Contents

+
    +
  1. Overview
  2. +
  3. Locations
  4. +
  5. Examples
  6. +
  7. Comments
  8. +
+
+ +

+

+Navigation: ( CryptoBoxDev) + +

+
+

Custom configuration of the CryptoBox

+

Overview

+

+You may change nearly every aspect of the CryptoBox by using the custom configuration hook directory. +

+

+Any script inside of this directory will be executed after the default configuration procedure (see CryptoBoxDevWorkFlow). +

+

+The order of execution is defined by the names of the scripts (alphabetically). +

+

Locations

+

+Some example customization scripts can be found in configure-examples.d/. +

+

+You may put your scripts into configure-local.d/. They will be sourced by cbox-build.sh. +

+

Examples

+

+The examples in configure-examples.d/ can be copied to configure-local.d/ and adjusted to your needs. +

+ +
set_default_ipchange the default IP address of the CryptoBox +
set_default_languageset the default language +
set_default_timeoutset the default idle time for automatic unmounting +
set_hostnamechange the default hostname +
set_root_pwchange the password of root (only useful for a development CryptoBox) +
import_authorized_keysupload a ssh key for passwordless access to a development CryptoBox +
set_scan_deviceswhere to look for usable harddisks +
+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevKnownProblems.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevKnownProblems.html new file mode 100644 index 0000000..787bc2f --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevKnownProblems.html @@ -0,0 +1,39 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBoxDev) + +

+
+

Known problems

+

qemu

+

interleaved files not (yet) supported

+

+You should update qemu to version 0.7 or higher. +

+

smbd: segfault

+

+This happens under certain circumstances. We do not know a solution for this problem. +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevPreparation.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevPreparation.html new file mode 100644 index 0000000..64be90c --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevPreparation.html @@ -0,0 +1,77 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBoxDev, CryptoBoxDevCustomBuild, CryptoBoxDevWorkFlow) + +

+
+

Preparations for developers

+

Software requirements

+

Packages

+

+We use Debian as our development environment. This was a natural choice, as the CryptoBox-LiveCD is also based on Debian. Other distributions should work too, of course - your mileage may vary. +

+

+required: +

+

+recommended: +

+

Kernel

+

+If you want to use qemu to test your CryptoBox in a virtual environment, then you will need the tun/tap kernel feature. +

+
CONFIG_TUN=m
+

Get the source

+

+Download the latest release from our subversion-Repository: +

+
svn checkout https://svn.systemausfall.org/svn/cryptobox/trunk
+

First build

+

+run scripts/cbox-build.sh release as root - hopefully, there should be no errors :) +

+

+Hint: This step will fail, if you did not install apt-cacher. See CryptoBoxDevCustomBuild for details on how to change the build-configuration settings (in this case: mirror in dfs-cbox.conf). +

+

Finished

+

+Now you can start to pariticipate in the development of the CryptoBox or simply customize your own CryptoBox-LiveCD. +

+

+See CryptoBoxDevWorkFlow for details of how to use the developer's tools of the CryptoBox. +

+

+CryptoBoxDevCustomBuild shows some examples for local customizations of the CryptoBox. +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevValidation.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevValidation.html new file mode 100644 index 0000000..9276cd0 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevValidation.html @@ -0,0 +1,78 @@ + + + + + +
+

+

+

Table of Contents

+
    +
  1. Overview
  2. +
  3. Validate
  4. +
  5. How to create a test
  6. +
  7. Comments
  8. +
+
+ +

+

+Navigation: ( CryptoBoxDev) + +

+
+

Validation of the CryptoBox

+

Overview

+

+The validation feature helps you to check the programming logic of the CryptoBox. A lot of test cases are defined to verify as many functions of the CryptoBox as possible. +

+

+The requests are processed with curl. +

+

+The received web page is saved to allow a later design review or css debugging. +

+

+The current state of the CryptoBox is represented by ten single values (e.g.: box is configured, IP of the box, current language setting, ...), which are invisibly a part of each html page (as comments). The returned status of every request is compared to the predicted value of the test case. +

+

+Similar test cases are pooled into test groups (e.g.: initialization, configuration and mounting). +

+

Validate

+

+Run scripts/validate.sh] to conduct all tests of all groups. See scripts/validate.sh help for other actions. +

+

+The results will be saved in validation/report. +

+

+In addition to every single retrieved page, a html page called summary-?.html is created, which contains the state checks of all tests in a group. +

+

How to create a test

+

+All test cases can be found in validation/test-cases. +

+

+Every test consists of the following files: +

+ +
input.curlthe configuration file for the curl request +
outputthe predicted state of the CryptoBox after the call +
descriptiona short description of the test (will be used for the summary) +
delay[optional] time to wait after this test +
+

+Use the existing test cases as templates for new tests. +

+

+Read validation/test-cases/README for details. +

+

+Every logical path of the web interface CGI should be validated by a test case. +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevWorkFlow.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevWorkFlow.html new file mode 100644 index 0000000..85f73ec --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxDevWorkFlow.html @@ -0,0 +1,151 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBoxDev, CryptoBoxDevCustomConfigure, CryptoBoxDevPreparation) + +

+
+

Development workflow

+

Preparations

+

+You should have completed the steps described in CryptoBoxDevPreparation. +

+

Create a CryptoBox-LiveCD

+

+The following steps can be executed in the order of their appearance. +

+

+Usually there is no need to repeat the whole process, after you changed some parts of the CryptoBox. Especially the first step (building of the base system with dfsbuild) may usually be skipped. +

+

+Every step of the building process must be executed as root. +

+

Build the base system

+

+Run scripts/cbox-build.sh dfsbuild to create the base system for the LiveCD. +

+

+The result can be found in _builddir/cd1/image. +

+

+If you do not want to use the apt-cacher to save bandwidth and time, then you should modify the mirror-setting in dfs-cbox.conf (see CryptoBoxDevCustomBuild for details). +

+

Configure the base image

+

+Run scripts/cbox-build.sh config to copy the CryptoBox-specific files to the base image. +

+

+TODO: link to cbox-build.sh-manpage +

+

Remove development features

+

+The original base system, that was created by dfsbuild contains a lot packages and some scripts, that are only useful during development. You should remove them, as they cause severe security implications. +

+

+To reduce the CryptoBox-LiveCD to the usable minimum for operational use, you should run scripts/cbox-build.sh harden. +

+

Create an iso image

+

+To burn a CryptoBox-LiveCD, you need an bootable iso9660-image. +

+

+Create the iso image with scripts/cbox-build.sh iso. The resulting file can be found at _builddir/cd1/cryptobox.iso. +

+

Burn the CD

+

+Do it manually: +

+
cdrecord -v dev=0,0,0 _builddir/cryptobox.iso
+

+(change the dev setting according to your setup). +

+

+Let the script do it for you: scripts/cbox-build.sh burn (maybe you have to change the CDWRITER setting in cbox-dev.conf - see CryptoBoxDevCustomBuild). +

+

+Of course, it is not wise to use CD-R media. CD-RW consume less resources. +

+

Test the CryptoBox-LiveCD

+

+This section is only useful for developers, who want to improve or change the CryptoBox system. +

+

Chroot: quick & dirty tests

+

+If you modified the perl- or shell-scripts of the CryptoBox, then you can check for syntax errors by running them in a chroot environment. Be careful: you have access to all ressources of your computer, while you are working within a chroot environment - so you can easily repartition your real disk ... +

+

+To start a chroot environment, you can execute scripts/cbox-dev.sh chroot. +

+

+For more intensive tests, you may use qemu (see below) or burn real LiveCDs - of course this would take much more time. +

+

Qemu: nearly complete emulation

+

+The processor emulator qemu allows you test the CryptoBox in a virtual environment, that is completely separated from your real computer's resources. It is the tool of choice, if you do nat have a real computer around for testing. +

+

+Beware - there are some problems, when using qemu: +

+
  • smbd does not start (segfault) +
  • ??? +

+To start a qemu emulation of the iso image, you may type: +

+
scripts/cbox-dev.sh qemu
+

Debugging and merging

+

+This section is only useful for developers, who want to develop on a running CryptoBox system (emulated or real). +

+

+You may access the CryptoBox directly or you can use ssh to open a remote session: +

+
./cbox-dev.sh ssh
+

Development on a running system

+

+When you run an emulation or test a real LiveCD, you may encounter problems and bugs. To test your fixes for these problems, it is convenient, to change the running test system. Afterwards you can merge these changes to your local development copy. +

+

+Type scripts/cbox-dev.sh diff to see the changes, you made on the running CryptoBox system. +

+

+Type scripts/cbox-dev.sh merge to merge these changes to your local working copy. +

+

Uploading a new release

+

+Alternatively you may also upload a new version of your local working copy to the running CryptoBox system. +

+

+Type scripts/cbox-dev.sh upload - beware: all recent changes you made to the running CryptoBox system, are lost. +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUser.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUser.html new file mode 100644 index 0000000..17ebd31 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUser.html @@ -0,0 +1,59 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBox/de) + +

+
+

Nutzerhandbuch

+

+Die folgenden Seiten beschreiben die Nutzung der CryptoBox. +

+

+Die online-Version dieses Handbuchs ist ein Wiki. Das bedeutet, dass du diese Seiten verändern kannst. Falls du also Fragen oder Anregungen hast, schreibe bitte deine Anmerkungen in den Kommentar-Abschnitt am Ende der jeweiligen Seite. Die Entwickler werden deine Fragen beantworten und das Handbuch schnellstmöglich aktualisieren. Auf diese Art und Weise kannst du die Nutzbarkeit der CryptoBox für alle Nutzer verbessern! +

+
  1. CryptoBoxUserGettingStarted -- die Vorbereitung der Hardware +
  2. CryptoBoxUserConfiguration -- die Einrichtung deines neuen verschlüsselten Dateiservers +
  3. CryptoBoxUserDailyUse -- die tägliche Nutzung der CryptoBox +

+Die online-Version dieses Handbuchs befindet sich unter https://systemausfall.org/trac/cryptobox/wiki/CryptoBoxUser/de. +

+
+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUserConfiguration.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUserConfiguration.html new file mode 100644 index 0000000..fccc749 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUserConfiguration.html @@ -0,0 +1,109 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBoxUser/de) + +

+
+

Die Konfiguration deiner CryptoBox

+

Überblick

+

+Alle Funktionen der CryptoBox können durch das komfortable Web-Interface bedient werden. Zur Erst-Einrichtung der CryptoBox folge einfach den folgenden Schritten. +

+

+Falls du in Eile bist, kannst du das Vorwort überspringen. +

+

+Die Initialisierung erklärt die Einrichtung der Festplatte. Dieser Schritt ist nur bei der ersten Einrichtung oder nach einem Festplattenwechsel notwendig. +

+

+Im Konfigurations-Abschnitt werden die verfügbaren Einstellungen der CryptoBox beschrieben. Hier kannst du beispielsweise die Sprache des Web-Interfaces oder die Netzwerkadresse deiner CryptoBox einstellen. +

+

+Vergiss nicht, auch den Hinweise/Fallstricke-Abschnitt zu lesen. +

+

Vorwort

+

+Du bist den Anweisungen aus CryptoBoxUserGettingStarted gefolgt und sitzt nun vor deinem Arbeits-Rechner. Nun kannst du in deinem Web-Browser das Web-Interface der CryptoBox ansteuern: https://192.168.0.23. +

+

+Bevor du Daten auf deiner CryptoBox speichern kannst, muss die Festplatte mit einem verschlüsselten Dateisystem versehen werden. Das klingt kompliziert, ist jedoch mit einem Klick erledigt. :) +

+

Initialisierung

+

+Klicke auf Initialisierung in der Menü-Zeile. +

+

+Jetzt wirst du zur Eingabe zweier Passworte aufgefordert (jeweils mit Wiederholung - zum Training deiner Tipp-Fertigkeiten ;)). +

+

+de_init.png +

+
  • Das erste Passwort ist das Administrations-Password. +
    • Es schützt die Konfiguration deiner CryptoBox. +
    • Dies ist notwendig, um zu verhindern, dass jemand unerlaubt die Daten auf deiner CryptoBox durch eine erneute Initialisierung löscht. +
    • Wahrscheinlich wirst du dieses Passwort nie wieder benötigen. +
    • Du kannst das Administrations-Passwort leer lassen - dies wird jedoch nicht empfohlen. +
  • Das Crypto-Passwort ist wesentlich wichtiger, da es der einzige Schutz der Daten auf der verschlüsselten Festplatte ist. Wähle es mit Sorgfalt! +
    • Du benötigst es, um auf deine Daten zuzugreifen. +
    • Ein sicheres Passwort sollte aus mindestens 15 Zeichen (einschließlich Ziffern und Sonderzeichen) bestehen. Die Sicherheit deiner Daten steht und fällt mit der Qualität dieses Passworts. +
  • Um dich daran zu erinnern, dass dieser Schritt die Festplatte der CryptoBox komplett löschen wird, musst du den angezeigten roten Warnhinweis im letzten Formularfeld eingeben. +
  • Nun kannst du die Initialisierung durch einen Klick auf Initialisiere die CryptoBox abschließen. +

+Das war es dann auch schon. Kryptographie war wohl nie einfacher zu verwenden, oder? ;) +

+

+Der Initialisierungsvorgang läuft nun im Hintergrund ab und wird nach wenigen Minuten (abhängig von der Größe deiner Festplatte) abgeschlossen. +

+

Konfiguration

+

+Im Gegensatz zur Initialisierung, die nur einmal durchgeführt werden muss, kannst du die Konfiguration jederzeit deinen Wünschen anpassen. Dazu klickst du einfach auf Konfiguration in der Menü-Zeile des Web-Interfaces. Nun wird dir ein Formular mit vier Feldern präsentiert: +

+

+de_config.png +

+
  • Falls du ein Administrator-Passwort während der Initialisierung festgelegt hast, musst du es nun eingeben. Andernfalls wird dieses Formularfeld nicht angezeigt. +
  • Du kannst die voreingestellte Netzwerk-Adresse (IP) verändern, falls sie nicht zu deiner Netzwerk-Struktur passt. +
  • Die Zeitabschaltung sorgt dafür, dass nach einer festgelegten Dauer von Inaktivität (in Minuten), das Crypto-Dateisystem deaktiviert wird (damit sind deine Daten wieder geschützt). Laufende Dateiübertragungen werden dadurch natürlich nicht gestört. +
    • Es ist ratsam, eine kurze Abschalt-Zeit einzustellen (wenige Minuten). +
    • Der Wert 0 deaktiviert die automatische Abschaltung. +
  • Die Sprache ist der Standard für alle Nutzer des CryptoBox-Web-Interfaces. Sie kann individuell durch die Sprach-Links am rechten oberen Bildschirmrand überschrieben werden. +

+Speichere deine neuen Einstellungen durch einen Klick auf Speichere Konfiguration. +

+

+Das ist alles - deine CryptoBox ist jetzt bereit für die tägliche Nutzung! +

+

Hinweise / Fallstricke

+
  • Alle Daten auf der Festplatte in der CryptoBox werden bei der Initialisierung gelöscht. +
  • Die Passworte müssen jeweils zweimal eingegeben werden, um die Gefahr von Tipp-Fehlern zu vermindern. +
  • Das optionale Administrations-Passwort ist nur für die Konfiguration oder eine erneute Initialisierung erforderlich. +
  • Das Crypto-Passwort beschützt deine sensiblen Daten. +
  • Falls die CryptoBox nicht über die Adresse 192.168.0.23 erreichbar ist, musst du die Netzwerk-Adresse deines Arbeits-Rechners für die Dauer der Initialisierung der CryptoBox vorübergehend ändern. +

+zurück zu CryptoBoxUser +

+
+

Kommentare

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUserDailyUse.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUserDailyUse.html new file mode 100644 index 0000000..7647341 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUserDailyUse.html @@ -0,0 +1,124 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBoxUser/de, CryptoBoxUserConfiguration/de) + +

+
+

Tägliche Nutzung

+

Aktivieren des verschlüsselten Dateisystems

+

+Du kannst dein verschlüsseltes Dateisystem mit folgenden Schritten aktivieren: +

+
  • Wähle mit deinem Web-Browser die Adresse deiner CryptoBox an. Die Voreinstellung ist https://192.168.0.23. +
  • Klicke auf Aktivieren der Crypto-Daten. Daraufhin erscheint ein Formular zur Eingabe des Crypto-Passworts. +
  • Gib dein Crypto-Passwort ein und klicke auf die darunterliegende Schaltfläche. +

+de_mount.png +

+

+Nun ist das verschlüsselte Dateisystem verfügbar. Um es zu nutzen, suche in deiner Netzwerkumgebung nach der Netzwerk-Adresse deiner CryptoBox (Voreinstellung: 192.168.0.23). Nun kannst du das Netzlaufwerk wie üblich verwenden. +

+

Zugriff auf die verschlüsselten Daten

+

Linux - Kommandozeile

+

+Um als normaler Nutzer auf die Crypto-Partition zuzugreifen, solltest du folgende Zeile zur /etc/fstab hinzufügen: +

+
//192.168.0.23/public   /mnt/    smbfs   defaults,noexec,noauto,user,guest      0       0
+

+Nun kannst du die Crypto-Partition nach /mnt mounten: +

+
mount /mnt/
+

+bzw. unmounten: +

+
smbumount /mnt
+

Windows

+

+Starte den Windows Explorer und wähle im Menü unter Extras die Option Netzlaufwerke verbinden aus. +

+

+de_w98_network_drive.png +

+

+Trage unter Pfad die Adresse des Verzeichnisse der CryptoBox ein, auf das du zugreifen willst (Standard: \\192.168.0.23\public). Soll die Verbindung beim jedem Start von Windows wiederhergestellt werden, aktiviere Verbindung beim Start wiederherstellen. +

+

+Nun kannst du auf das verschlüsselte Dateisystem wie jedes andere Laufwerk benutzen. +

+

Abschalten des verschlüsselten Dateisystems

+

+Du kannst das verschlüsselte Dateisystem abschalten, indem du in der Menü-Zeile des Web-Interfaces der CryptoBox auf Deaktivierung der Crypto-Daten klickst. +

+

+Deine Daten sind nun wieder vor jedem Zugriff geschützt. +

+

Abschaltung der CryptoBox

+

+Klicke auf System in der Menü-Zeile des Web-Interfaces. Nun kannst du zwischen Abschaltung und Neustart wählen. Die Abschaltung dauert einige Sekunden. +

+

+Falls dein CryptoBox-Rechner relativ neu ist (ungefähr ab Baujahr 02000), wird er sich nun selbständig abschalten. Andernfalls musst du dies per Hand tun. +

+

Notfall-Abschaltung

+

+Falls du deine Daten wirklich schnell vor neugierigen Augen schützen musst, dann ziehe einfach den Stecker der CryptoBox. Dies ist nicht besonders sauber und kann (in sehr seltenen Ausnahmefällen) geöffnete Dateien beschädigen. Es ist jedoch die schnellste Methode zur Sicherung deiner Daten vor unbefugtem Zugriff. +

+

+zurück zu CryptoBoxUser +

+
+

Fragen und Antworten

+

Windows: Netzlaufwerk kann nicht verbunden werden

+

+de_w98_not_logged_in.png +

+

+Erscheint diese Fehlermeldung, hast du dich beim Start von Windows nicht angemeldet bzw. das Anmeldefenster mit der Taste Esc (Escape) verschwinden lassen. Klicke auf Start und Abmelden und melde dich neu an - sobald das Anmeldefenster erscheint, klicke auf OK: +

+

+de_w98_login.png +

+

Linux: only root can unmount //192.168.0.23/public

+

+Das Unmounten der Crypto-Partition mit umount funktioniert nicht. +

+

+Lösung: Verwende stattdessen: +

+
smbumount /mnt
+

Linux: Operation not permitted / smbmnt failed: 1

+

+Der Versuch die Partition als normaler Nutzer zu mounten schlägt fehl: +

+
cannot mount on /mnt/: Operation not permitted
+smbmnt failed: 1
+

+Lösung: Das Mount-Verzeichnis muss dem selben Nutzer gehören, der den mount-Befehl ausführt (bspw. phil): +

+
chown phil. /mnt
+

+

Kommentare

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUserGettingStarted.html b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUserGettingStarted.html new file mode 100644 index 0000000..3c74e14 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/de/CryptoBoxUserGettingStarted.html @@ -0,0 +1,57 @@ + + + + + +
+

+

+

Table of Contents

+
    +
  1. Erste Schritte
  2. +
  3. Hinweise / Fallstricke
  4. +
  5. Kommentare
  6. +
+
+ +

+

+Navigation: ( CryptoBoxUser/de, CryptoBoxUserConfiguration/de) + +

+
+

Wie geht es los

+

Erste Schritte

+

+Die CryptoBox ist schnell aufgebaut: +

+
  1. Du brauchst einen alten Computer (mindestens 100MHZ, 48MB RAM) (Faustregel: nach 1996 gekauft). Dazu eine passende Netzwerkkarte, ein CD-ROM Laufwerk und eine riesige Festplatte. +
    • Die Festplatte muss nicht riesig sein, je nachdem was du speichern willst, reicht auch 'ne kleine ;) +
    • Du brauchst keinen Monitor, keine Tastatur und keine Maus, um die CryptoBox zu benutzen (bzw. nur für die Erst-Einrichtung). +
    • Du kannst natürlich einen schnelleren Rechner verwenden - der unbedeutende Performance-Zuwachs wird jedoch wohl nicht durch den erhöhten Energiebedarf gerechtfertigt. +
  2. Lade die aktuellste Version der CryptoBox als iso-image herunter und brenne dieses auf einen CD-Rohling. +
  3. Konfiguriere den PC, so dass er vom CD Laufwerk bootet. Dazu solltest du im BIOS als "boot device" "CD-ROM" einstellen. +
  4. Pack die frisch gebrannte CryptoBox CD ins Laufwerk und starte den Computer. +

+Wenn der Computer jetzt von der CD startet, hast du alle Anforderungen erfüllt. +

+

+Du kannst nun zu deinem Arbeits-Rechner in demselben Netzwerk gehen und "https://192.168.0.23" ansurfen. Dort sollte die CryptoBox-Konfigurationsseite erscheinen. Ist doch kinderleicht, oder? +

+

+Die weiteren Schritte werden unter CryptoBoxUserConfiguration beschrieben. +

+

Hinweise / Fallstricke

+
  • Eventuell musst du für die Einrichtung der CryptoBox kurzzeitig deine Netzwerkaddresse (IP) ändern. Falls du nicht weißt, wie und warum, dann frage jemanden um Rat ... (wahrscheinlich klappt es aber ohne Änderungen) +
  • Falls du eine neue Festplatte kaufen willst, beachte, dass alte PCs nicht mit modernen Festplattengrößen klarkommen. +
  • Einige alte PCs können nicht vom CD-ROM-Laufwerk booten. +
  • Falls dir der Begriff "BIOS" nichts sagt, bitte Menschen um Hilfe, bevor du was veränderst ;) +
  • Vergiss nicht, den CryptoBox-Rechner ans Netzwerk anzuschliessen! +
  • Du brauchst einen Monitor und eine Tastatur für die Konfiguration des BIOS. +

+

Kommentare

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBox.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBox.html new file mode 100644 index 0000000..c87150c --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBox.html @@ -0,0 +1,89 @@ + + + + + +
+

+

+ +

+

The CryptoBox

+

+deutsche Version +

+

News

+

+The first release of the CryptoBox is available at https://codecoop.org/projects/cryptobox/ +

+

Overview

+

+The CryptoBox is a Debian/Linux based live-cd. This CD boots up, starting a secure fileserver. Even non-technical users are able to store their data on its encrypted harddisk. There is no special knowledge about cryptography or servers required at all. +

+

Download

+

Specs

+ +
systemDebian/Linux based Live-CD +
needed hardware "outdated" PC (i386 p1-100 32MB RAM minimum) +
supported clients*nix; *bsd; Windows; Mac OS +
fileserversamba (network shares) +
userinterfacefully remote controlled via webbrowser +
encryptionAES via device-mapper +
+

+The web interface of the CryptoBox supports the following languages: +

+
  • English +
  • German +
  • Slovenian +

+Feel free to contribute a translation for another language (preferably utf-encoded). +

+

Documentation

+

+The user documentation has its home at CryptoBoxUser. +

+

Development

+

+Take a look at the developer's documentation at CryptoBoxDev. +

+

+Report bugs to https://systemausfall.org/trac/cryptobox/newticket. +

+

+Browse the source code. +

+

+Anything else? Write us an email: cryptobox[at]systemausfall.org +

+

Acknowledgements

+

+

  • Clavdia Horvat, Tadej Brce & Dušan Rebolj - slovenian translation +
  • http://codecoop.org - webspace +
+

+

Legal stuff

+
  1. All scripts are GPL licensed +
  2. The documentation is licensed under a Creative Commons License +
  3. We do not take any warranty for the functionality or usability of the CryptoBox. +

+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDev.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDev.html new file mode 100644 index 0000000..ced5e8a --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDev.html @@ -0,0 +1,107 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBox/de, CryptoBox/en) + +

+
+

Development documentation

+

+The following pages are written for developers only.
+Users of the CryptoBox should read CryptoBoxUser instead. +

+

Source

+

+You may browse the source code. +

+

Contact

+

+We are waiting for your emails to cryptobox[at]systemausfall.org. +

+

Bug reports

+

+Please use our issue tracker, if you discover problems: https://systemausfall.org/trac/cryptobox/newticket +

+
+
+ + + diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevBackground.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevBackground.html new file mode 100644 index 0000000..3e12ac3 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevBackground.html @@ -0,0 +1,61 @@ + + + + + +
+

+

+

Table of Contents

+
    +
  1. dfsbuild
  2. +
  3. the kernel
  4. +
  5. qemu
  6. +
  7. alternative LiveCDs
  8. +
  9. Comments
  10. +
+
+ +

+

+Navigation: ( CryptoBoxDev) + +

+
+

Details of the CryptoBox

+

dfsbuild

+

+The base system of the CryptoBox Live-CD is created by dfsbuild. +

+

+It is recommended to use some kind of caching tool for the retrieval of the debian packages (e.g.: apt-cacher, apt-proxy or approx). This saves a lot of bandwidth and time. +

+

+The documentation for dfsbuild is sparse. But it is quite unlikely, that you will get in direct contact with it, as it is wrapped by cbox-build. However the following links may help you for specific problems: +

+

the kernel

+

+The linux kernel for the CryptoBox is compiled statically. If you want to change it, you could follow this steps: +

+
  1. get the sources: apt-get install kernel-tree-2.6.11 (or the version of your choice) +
  2. copy the exisiting config file kernel/config-2.6.11 as .config into your kernel source directory +
  3. build the debian kernel package make-kpkg --revision=1.dfs --rootcmd=fakeroot kernel_image +
  4. change the kernel in the unpackdebs setting in dfs-cbox.conf (see CryptoBoxDevCustomBuild for details) +

qemu

+

+Qemu is a portable system emulator. It is a convenient tool to ease the development workflow, as you do not need to burn LiveCDs for testing. +

+

alternative LiveCDs

+

+We tried some other LiveCDs before we decided to use dfsbuild. The following pages describe their advantages and disadvantages as the base system for the CryptoBox: +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevCustomBuild.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevCustomBuild.html new file mode 100644 index 0000000..b975168 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevCustomBuild.html @@ -0,0 +1,85 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBoxDev, CryptoBoxDevBackground, CryptoBoxDevPreparation, CryptoBoxDevWorkFlow) + +

+
+

Custom builds of the CryptoBox

+

Overview

+

+The following sections are useful, if you want to change the default settings of your personal CryptoBox development environment. +

+

+You should have completed the steps described in CryptoBoxDevPreparation. +

+

Settings

+

dfsbuild settings

+

+All settings for dfsbuild can be found in etc-defaults.d/dfs-cbox.conf. +

+

+If you want to change any of them, you should do the following: +

+
  1. copy etc-defaults.d/dfs-cbox.conf file to etc-local.d/ +
  2. change etc-local.d/dfs-cbox.conf according to your needs +

+This allows you to use your own (personal) settings, without interfering with files under version control. +

+

CryptoBox development configuration

+

+Some settings regarding the building, configuring and validating of the CryptoBox can be found in etc-defaults.d/cbox-dev.conf. +

+

+If you want to change any of them, you should do the following: +

+
  1. copy etc-defaults.d/cbox-dev.conf file to etc-local.d/ +
  2. change etc-local.d/cbox-dev.conf according to your needs +

SSH connection

+

+The file ssh_config is used to establish a connection to a running CryptoBox system. +

+

+It can be necessary to change these settings, if: +

+
  • you do not want to use the default IP for the CryptoBox +
  • or the CryptoBox is not within your local network. +

+If you want to change some settings, you should do the following: +

+
  1. copy etc-defaults.d/ssh_config file to etc-local.d/ +
  2. change etc-local.d/ssh_config according to your needs +

qemu network configuration

+

+The file etc-defauolts.d/qemu-ifup is used for the CryptoBox emulation with qemu. See man qemu for details. +

+

+If you want to change some settings, you should do the following: +

+
  1. copy etc-defaults.d/qemu-ifup file to etc-local.d/ +
  2. change etc-local.d/qemu-ifup according to your needs +

+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevCustomConfigure.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevCustomConfigure.html new file mode 100644 index 0000000..c823caf --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevCustomConfigure.html @@ -0,0 +1,60 @@ + + + + + +
+

+

+

Table of Contents

+
    +
  1. Overview
  2. +
  3. Locations
  4. +
  5. Examples
  6. +
  7. Comments
  8. +
+
+ +

+

+Navigation: ( CryptoBoxDev) + +

+
+

Custom configuration of the CryptoBox

+

Overview

+

+You may change nearly every aspect of the CryptoBox by using the custom configuration hook directory. +

+

+Any script inside of this directory will be executed after the default configuration procedure (see CryptoBoxDevWorkFlow). +

+

+The order of execution is defined by the names of the scripts (alphabetically). +

+

Locations

+

+Some example customization scripts can be found in configure-examples.d/. +

+

+You may put your scripts into configure-local.d/. They will be sourced by cbox-build.sh. +

+

Examples

+

+The examples in configure-examples.d/ can be copied to configure-local.d/ and adjusted to your needs. +

+ +
set_default_ipchange the default IP address of the CryptoBox +
set_default_languageset the default language +
set_default_timeoutset the default idle time for automatic unmounting +
set_hostnamechange the default hostname +
set_root_pwchange the password of root (only useful for a development CryptoBox) +
import_authorized_keysupload a ssh key for passwordless access to a development CryptoBox +
set_scan_deviceswhere to look for usable harddisks +
+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevKnownProblems.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevKnownProblems.html new file mode 100644 index 0000000..abe55bd --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevKnownProblems.html @@ -0,0 +1,39 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBoxDev) + +

+
+

Known problems

+

qemu

+

interleaved files not (yet) supported

+

+You should update qemu to version 0.7 or higher. +

+

smbd: segfault

+

+This happens under certain circumstances. We do not know a solution for this problem. +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevPreparation.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevPreparation.html new file mode 100644 index 0000000..e8a78d7 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevPreparation.html @@ -0,0 +1,77 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBoxDev, CryptoBoxDevCustomBuild, CryptoBoxDevWorkFlow) + +

+
+

Preparations for developers

+

Software requirements

+

Packages

+

+We use Debian as our development environment. This was a natural choice, as the CryptoBox-LiveCD is also based on Debian. Other distributions should work too, of course - your mileage may vary. +

+

+required: +

+

+recommended: +

+

Kernel

+

+If you want to use qemu to test your CryptoBox in a virtual environment, then you will need the tun/tap kernel feature. +

+
CONFIG_TUN=m
+

Get the source

+

+Download the latest release from our subversion-Repository: +

+
svn checkout https://svn.systemausfall.org/svn/cryptobox/trunk
+

First build

+

+run scripts/cbox-build.sh release as root - hopefully, there should be no errors :) +

+

+Hint: This step will fail, if you did not install apt-cacher. See CryptoBoxDevCustomBuild for details on how to change the build-configuration settings (in this case: mirror in dfs-cbox.conf). +

+

Finished

+

+Now you can start to pariticipate in the development of the CryptoBox or simply customize your own CryptoBox-LiveCD. +

+

+See CryptoBoxDevWorkFlow for details of how to use the developer's tools of the CryptoBox. +

+

+CryptoBoxDevCustomBuild shows some examples for local customizations of the CryptoBox. +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevValidation.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevValidation.html new file mode 100644 index 0000000..2511b22 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevValidation.html @@ -0,0 +1,78 @@ + + + + + +
+

+

+

Table of Contents

+
    +
  1. Overview
  2. +
  3. Validate
  4. +
  5. How to create a test
  6. +
  7. Comments
  8. +
+
+ +

+

+Navigation: ( CryptoBoxDev) + +

+
+

Validation of the CryptoBox

+

Overview

+

+The validation feature helps you to check the programming logic of the CryptoBox. A lot of test cases are defined to verify as many functions of the CryptoBox as possible. +

+

+The requests are processed with curl. +

+

+The received web page is saved to allow a later design review or css debugging. +

+

+The current state of the CryptoBox is represented by ten single values (e.g.: box is configured, IP of the box, current language setting, ...), which are invisibly a part of each html page (as comments). The returned status of every request is compared to the predicted value of the test case. +

+

+Similar test cases are pooled into test groups (e.g.: initialization, configuration and mounting). +

+

Validate

+

+Run scripts/validate.sh] to conduct all tests of all groups. See scripts/validate.sh help for other actions. +

+

+The results will be saved in validation/report. +

+

+In addition to every single retrieved page, a html page called summary-?.html is created, which contains the state checks of all tests in a group. +

+

How to create a test

+

+All test cases can be found in validation/test-cases. +

+

+Every test consists of the following files: +

+ +
input.curlthe configuration file for the curl request +
outputthe predicted state of the CryptoBox after the call +
descriptiona short description of the test (will be used for the summary) +
delay[optional] time to wait after this test +
+

+Use the existing test cases as templates for new tests. +

+

+Read validation/test-cases/README for details. +

+

+Every logical path of the web interface CGI should be validated by a test case. +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevWorkFlow.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevWorkFlow.html new file mode 100644 index 0000000..f3c3825 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxDevWorkFlow.html @@ -0,0 +1,151 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBoxDev, CryptoBoxDevCustomConfigure, CryptoBoxDevPreparation) + +

+
+

Development workflow

+

Preparations

+

+You should have completed the steps described in CryptoBoxDevPreparation. +

+

Create a CryptoBox-LiveCD

+

+The following steps can be executed in the order of their appearance. +

+

+Usually there is no need to repeat the whole process, after you changed some parts of the CryptoBox. Especially the first step (building of the base system with dfsbuild) may usually be skipped. +

+

+Every step of the building process must be executed as root. +

+

Build the base system

+

+Run scripts/cbox-build.sh dfsbuild to create the base system for the LiveCD. +

+

+The result can be found in _builddir/cd1/image. +

+

+If you do not want to use the apt-cacher to save bandwidth and time, then you should modify the mirror-setting in dfs-cbox.conf (see CryptoBoxDevCustomBuild for details). +

+

Configure the base image

+

+Run scripts/cbox-build.sh config to copy the CryptoBox-specific files to the base image. +

+

+TODO: link to cbox-build.sh-manpage +

+

Remove development features

+

+The original base system, that was created by dfsbuild contains a lot packages and some scripts, that are only useful during development. You should remove them, as they cause severe security implications. +

+

+To reduce the CryptoBox-LiveCD to the usable minimum for operational use, you should run scripts/cbox-build.sh harden. +

+

Create an iso image

+

+To burn a CryptoBox-LiveCD, you need an bootable iso9660-image. +

+

+Create the iso image with scripts/cbox-build.sh iso. The resulting file can be found at _builddir/cd1/cryptobox.iso. +

+

Burn the CD

+

+Do it manually: +

+
cdrecord -v dev=0,0,0 _builddir/cryptobox.iso
+

+(change the dev setting according to your setup). +

+

+Let the script do it for you: scripts/cbox-build.sh burn (maybe you have to change the CDWRITER setting in cbox-dev.conf - see CryptoBoxDevCustomBuild). +

+

+Of course, it is not wise to use CD-R media. CD-RW consume less resources. +

+

Test the CryptoBox-LiveCD

+

+This section is only useful for developers, who want to improve or change the CryptoBox system. +

+

Chroot: quick & dirty tests

+

+If you modified the perl- or shell-scripts of the CryptoBox, then you can check for syntax errors by running them in a chroot environment. Be careful: you have access to all ressources of your computer, while you are working within a chroot environment - so you can easily repartition your real disk ... +

+

+To start a chroot environment, you can execute scripts/cbox-dev.sh chroot. +

+

+For more intensive tests, you may use qemu (see below) or burn real LiveCDs - of course this would take much more time. +

+

Qemu: nearly complete emulation

+

+The processor emulator qemu allows you test the CryptoBox in a virtual environment, that is completely separated from your real computer's resources. It is the tool of choice, if you do nat have a real computer around for testing. +

+

+Beware - there are some problems, when using qemu: +

+
  • smbd does not start (segfault) +
  • ??? +

+To start a qemu emulation of the iso image, you may type: +

+
scripts/cbox-dev.sh qemu
+

Debugging and merging

+

+This section is only useful for developers, who want to develop on a running CryptoBox system (emulated or real). +

+

+You may access the CryptoBox directly or you can use ssh to open a remote session: +

+
./cbox-dev.sh ssh
+

Development on a running system

+

+When you run an emulation or test a real LiveCD, you may encounter problems and bugs. To test your fixes for these problems, it is convenient, to change the running test system. Afterwards you can merge these changes to your local development copy. +

+

+Type scripts/cbox-dev.sh diff to see the changes, you made on the running CryptoBox system. +

+

+Type scripts/cbox-dev.sh merge to merge these changes to your local working copy. +

+

Uploading a new release

+

+Alternatively you may also upload a new version of your local working copy to the running CryptoBox system. +

+

+Type scripts/cbox-dev.sh upload - beware: all recent changes you made to the running CryptoBox system, are lost. +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUser.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUser.html new file mode 100644 index 0000000..a7e95d7 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUser.html @@ -0,0 +1,60 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBox/en, CryptoBoxUser) + +

+
+

User Documentation

+

+The following pages describe the easy use of the CryptoBox. +

+

+The online version of this manual is a wiki, which means you can edit the pages. So if you have a question or you perceive a description as unclear, please post it on the bottom of the relevant page. The developers will answer your questions and update the manual as fast as possible. This way you can contribute in making the CryptoBox a better experience for everyone! +

+
  1. CryptoBoxUserGettingStarted -- first steps to get the Cryptobox up and running +
  2. CryptoBoxUserConfiguration -- configure the details of your new encrypted fileserver +
  3. CryptoBoxUserDailyUse -- daily use of your CryptoBox +

+The online version of this manual can be found at https://systemausfall.org/trac/cryptobox/wiki/CryptoBoxUser/en. +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUserConfiguration.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUserConfiguration.html new file mode 100644 index 0000000..88236ba --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUserConfiguration.html @@ -0,0 +1,103 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBoxUser/en, CryptoBoxUserConfiguration) + +

+
+

Configuration of your CryptoBox

+

Overview

+

+All parts of administration of the CryptoBox are done through a comfortable web interface. If this is the first time you use the CryptoBox, just follow the steps below. +

+

+You can safely ignore the Foreword if you are in a hurry. +

+

+Initialization describes the process of integrating a new harddisk. You usually have to perform this steps if you start with a new CryptoBox or after replacing the harddisk. +

+

+In the Configuration section, you can configure the CryptoBox according to your personal needs, e.g. change your desired language for the web interface or change the IP address of the CryptoBox. +

+

+Do not forget to read the Hints / Caveats section too. +

+

Foreword

+

+Okay, you finished the CryptoBoxUserGettingStarted and are now sitting in front of a computer that is connected via network with your CryptoBox. You point a browser to "https://192.168.0.23" and the CryptoBox interface appears. +

+

+Before you can save data on your CryptoBox, its harddisk has to be formatted with a cryptographic filesystem. Sounds complicated but don't be scared - it's really a "one click" thing. :) +

+

Initialization

+

+Click on Initialize CryptoBox in the title bar. +

+

+Now you are promted to enter two passwords twice (because we want to train your typing skills ;). +

+
  • The first password is the administration password. +
    • It is used to protect the configuration of the CryptoBox. +
    • This is necessary to make sure, that no one without your permission can destroy your data by re-initializing the CryptoBox. +
    • Chances are good, that you will only need it once. +
    • You may leave it empty, but this is not recommended. +
  • The crypto password is the more important password, protecting the data on your harddisk. Choose it wisely! +
    • You will need it, whenever you want to access your encrypted data. +
    • For a secure password consider a length of at least 15 characters including digits and special characters. The security of your encrypted data stands or falls with a good password. +
  • To avoid mistakes and to remind you on what you're going to do, you have to type the displayed red phrase into the last field. +
  • Now you can complete the initialization by clicking on the Initialize !CryptoBox button at the bottom of the form. +

+That's all. Wasn't it a real "one click" thing? Cryptography has never been easier to use. ;) +

+

+The initialization process takes place in the background and will be completed after a few minutes, depending on your harddisk's size. +

+

Configuration

+

+While the initialization is usually done only once, the configuration can be changed at any time you want. You can reach it by clicking at Configuration in the menu bar of the website. Now you see a form with four fields: +

+
  • If you defined a administration passwort during Initialization, you have to enter it first. Otherwise this field does not appear. +
  • If the default network address (IP) doesn't fit into your network infrastructure, you can change it in the second field. +
  • The timeout defines the amount of time (in minutes) after that the CryptoBox deactivates the access to the encrypted data. If you e.g. copy a file on the box, it starts counting at zero, so down-/uploads won't be interrupted. +
  • It's good choice to enter a small number (few minutes). +
  • A timeout of 0 turns off the automatic deactivation - this is not recommended. +
  • At language preferences you can select the default language for the CryptoBox interface. +

+Complete your changes by clicking on Save configuration. +

+

+That's all - your CryptoBox is now ready for daily use! +

+

Hints / Caveats

+
  • All data on the CryptoBox harddisk will be erased during Initialization. +
  • All passwords have to be typed twice to reduce the chance of a typo. +
  • The optional adminstration password is necessary for configuration only. +
  • The crypto password protects your beloved data. +
  • If the cryptobox is not reachable by browsing to 192.168.0.23, you may have to adjust the network settings of your computer for initialization of the CryptoBox. +

+back to CryptoBoxUser +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUserDailyUse.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUserDailyUse.html new file mode 100644 index 0000000..1f2b0c8 --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUserDailyUse.html @@ -0,0 +1,114 @@ + + + + + +
+

+

+ +

+

+Navigation: ( CryptoBoxUser/en, CryptoBoxUserConfiguration/en, CryptoBoxUserDailyUse) + +

+
+

Daily use of the CryptoBox

+

Activate your encrypted filesystem

+

+You can activate your encrypted filesystem by doing following these steps: +

+
  • Point your web browser at the address of your CryptoBox. The default is https://192.168.0.23. +
  • Click on Activation of encrypted data. A new page asking for your crypto password appears. +
  • Enter your crypto password and click on the button below labeled activate encrypted filesystem. +

+Now the filesystem is accessible. To use it, search for a computer in your network neighborhood. When asked for the name, enter the above IP address (default: 192.168.0.23). Now you can use it like any other network resource. +

+

Use your encrypted data

+

Linux - command line

+

+To use the encrypted data partition with regular user rights add the line below to your /etc/fstab: +

+
//192.168.0.23/public   /mnt/    smbfs   defaults,noexec,noauto,user,guest      0       0
+

+Now you can mount the encrypted data partition to /mnt: +

+
mount /mnt
+

+resp. unmount: +

+
smbumount /mnt
+

Windows

+

+Run the the Windows Explorer and choose Map network drive in the Extras menu: +

+
  • select a drive of your choice +
  • enter \\192.168.0.23\public (default setting) as target +

+Now you can use your encrypted data like any other network resource. +

+

Deactivate your encrypted filesystem

+

+You can deactivate the encrypted filesystem by clicking at Deactivation of encrypted data in the web interface of your CryptoBox. +

+

+Your data is now protected again. +

+

Shut down your CryptoBox

+

+Click at the Shutdown link in the menu of the web interface. There you can choose poweroff or reboot. The shutdown takes some seconds. +

+

+If the hardware of your CryptoBox is quite recent, it will power-off automatically. Otherwise you have to do it manually. +

+

In case of emergency

+

+If you have to protect the drive really fast, just power-off the CryptoBox machine instantly by pulling the plug or pushing the power button. This is not very clean and can (in very rare circumstances) corrupt open files, but it is the fasted method to secure your data. +

+

+back to CryptoBoxUser +

+
+

Questions and Answers

+

Windows: network drive cannot be mapped

+

+This error message may appear, if you did not login during the booting of you windows machine (or you closed the login dialog by pressing ESC). +

+

+Solution: Choose Logout in the Start menu and login again. +

+

Linux: only root can unmount //192.168.0.23/public

+

+You can't unmount the partition with umount. +

+

+Solution: Use smbumount instead: +

+
smbumount /mnt
+

Linux: Operation not permitted / smbmnt failed: 1

+

+The attempt to mount the partition as a regular user ends up with: +

+
cannot mount on /mnt/: Operation not permitted
+smbmnt failed: 1
+

+Solution: Set the directory's owner to the same user that mounts the share (e.g. phil): +

+
chown phil. /mnt
+

+

Comments

+

+ +

+
diff --git a/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUserGettingStarted.html b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUserGettingStarted.html new file mode 100644 index 0000000..0ee4f8e --- /dev/null +++ b/cbox-tree.d/usr/share/doc/cryptobox/html/en/CryptoBoxUserGettingStarted.html @@ -0,0 +1,64 @@ + + + + + +
+

+

+

Table of Contents

+
    +
  1. First Steps
  2. +
  3. Hints / Caveats
  4. +
  5. Comments
  6. +
+
+ +

+

+Navigation: ( CryptoBoxUser/en, CryptoBoxUserConfiguration/en, CryptoBoxUserGettingStarted) + +

+
+

Getting started

+

First Steps

+

+Getting the CryptoBox started doesn't take much: +

+
  1. You need an old Computer (at least 100MHz, 48MB RAM) (rule of thumb: bought at least after 1996). This PC needs a network card, a CD-ROM drive and a huge harddisk. +
    • Well the disk doesn't need to be huge, it should just suit your filestorage needs ;) +
    • You don't need a monitor or a keyboard to use your CryptoBox (with one exception, see below). +
    • Of course, you may use a faster computer, but they usually consume much more energy and do not provide signifcant advantages. +
  2. Then download the latest version of the CryptoBox as an iso-image and burn this image onto a CD. +
  3. Configure your PC, so it can boot from the CD. Therefore you have to enter the BIOS and configure the CD-ROM as boot device. +
  4. Insert the shiny new CryptoBox CD you've just burned and start the computer. +

+ +If it now boots from the CD, you accomplished all of the requirements. +

+

+Now you can just go to your current desktop computer and point your browser to https://192.168.0.23 where the CryptoBox interface should be displayed. Easy - isn't it? +

+

+For further steps go to CryptoBoxUserConfiguration. +

+

Hints / Caveats

+

+ +

+
  • Maybe you need to change the network address (IP) of your PC to configure the CryptoBox for the first time. Ask someone for help, if you don't know how and why ... +
  • If you're going to buy a new harddisk keep in mind that very old hardware can't handle current disk sizes! +
  • Some old PCs are not able to boot from CD. +
  • If you don't know what a BIOS is, better ask someone, before you try to change something. ;) +
  • Don't forget to connect your PC to your local area network! +
  • To configure the BIOS, you need a keyboard and a monitor. But this has to be done only once. +

+back to CryptoBoxUser +

+
+

Comments

+

+ +

+
diff --git a/cbox-tree.d/var/www/cryptobox-misc/antlogo100px.png b/cbox-tree.d/var/www/cryptobox-misc/antlogo100px.png new file mode 100644 index 0000000000000000000000000000000000000000..454709d24449e98d592fca0a2f5881fdad5fc054 GIT binary patch literal 7318 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 Ifq?M-4?;aU1poj5 literal 0 HcmV?d00001 diff --git a/cbox-tree.d/var/www/cryptobox-misc/cryptobox.css b/cbox-tree.d/var/www/cryptobox-misc/cryptobox.css new file mode 100644 index 0000000..e12c610 --- /dev/null +++ b/cbox-tree.d/var/www/cryptobox-misc/cryptobox.css @@ -0,0 +1,391 @@ +body { + background-image: url(backg.gif); + background-position: top center; + background-attachment: fixed; + background-repeat: no-repeat; + text-align: center; + margin: 0; + padding: 0; + font-family: verdana, lucida, arial, helvetica, sans-serif; + } + +#main { + background: none; + width: 600px; + padding: 0px; + margin-left: auto; + margin-right: auto; + } + +#main h1, h2, h3 { + font-family: sans-serif, arial; + font-weight: normal; + letter-spacing: 0.05em; + color: #acacac; + font-variant: small-caps; + padding: 0 1em; + text-align: left; + } + +#main h1 { + font-size: 2em; + } + +#main h2 { + font-size: 1.5em; + } + +#main h3 { + font-size: 1.2em; + } + +#head { + width: 600px; + height: 120px; + margin: 0; + padding: 0; + background-image: url(antlogo100px.png); + background-position: top right; + background-attachment: scroll; + background-repeat: no-repeat; + } + +#head_green { + width: 600px; + height: 120px; + margin: 0; + padding: 0; + background-image: url(antlogo100px_green.png); + background-position: top right; + background-attachment: scroll; + background-repeat: no-repeat; + } + +#head_red { + width: 600px; + height: 120px; + margin: 0; + padding: 0; + background-image: url(antlogo100px_red.png); + background-position: top right; + background-attachment: scroll; + background-repeat: no-repeat; + } +#development { + font-weight: bold; +} + + +#content { + margin: 0; + padding: 0; + width: 600px; + font-size: 0.9em; + min-height: 300px; + } + +#content a { + line-height: 1.2em; + color: black; + text-decoration: none; + font-weight: bold; + font-size: 0.9em; + } + +#content a:hover { + text-decoration: underline; + } + +#content a:visited { + color: #acacac; + } + +#content p { + font-size: 0.9em; + padding: 0 1em; + text-align: justify; + } + +#menu { + text-align: center; + border-top: 1px solid #5e5e5e; + border-bottom: 1px solid #5e5e5e; + background-color: #ACE149; + } + +#menu a:link, #menu a:visited { + color: #5e5e5e; + margin: 5px; + text-decoration: none; + border: none; + padding: 4px; + font-size: 0.8em; + } + +#menu a:hover { + color: #8e8e8e; + } + +#words { + width: 565px; + padding: 1.1em 0em 1.1em 1.1em; + margin-top: 0; + } + +#words h1{ + font-size: 1.8em; + } + +#words h2{ + font-size: 1.4em; + } + +#words ol, #words ul { + font-size: 0.9em; + } + +#words ol li { + padding: 0 1em; + line-height: 1.7em; + } + +#words ul li { + padding: 0 1em; + line-height: 1.7em; + list-style-image: url(list.gif); + } + +#footer { + clear: both; + text-align: center; + border-top: 1px solid #5e5e5e; + border-bottom: 1px solid #5e5e5e; + background-color: #ACE149; + font-size: 0.8em; + color: #5e5e5e; + } + +#footer a:link, #footer a:visited { + color: #5e5e5e; + margin: 5px; + text-decoration: none; + border: none; + padding: 4px; + } + +#footer a:hover { + text-decoration: underline; + } + +#confirmtext span { + color: red; + font-weight: bold; + } + + +/* -------=-=-=- warnings, errors and success messages-=-=-=-------- */ + +#words div.warning,div.error,div.success { + margin-top: 20px; + margin-bottom: 20px; + padding-top: 10px; + padding-bottom: 15px; + color: #707070; + } + +#words .warning,.error,.success { + border: 1px dashed #808080; + text-align: center; + color: #5e5e5e; + text-decoration: none; + font-weight: bold; + font-size: 0.9em; + padding-left: 40px; + padding-right: 40px; + } + +#words .warning { + background-color: #f5f5f5; + } + +#words .error { + background-color: #f5f5f5; + } + +#words .success { +/* nice green color - but no one likes it right? + background-color: #90EE90; */ + } + +#words div.warning,div.error,div.success h1,h2 { + color: #808080; + } + +#words .warning,.error,.success a { + color: #5e5e5e; + text-decoration: none; + font-weight: bold; + font-size: 0.9em; +} + +#words .note { + text-align: center; + color: #F48659; + font-style: italic; + } + +/* ----------------------=-=-=- Forms -=-=-=--------------------- */ +/* pretty forms and buttons */ +input { + border: 1px solid #BFBFBF; + color: #949494; + background-color: white; + padding: 2px 5px 1px 5px; + font-size: 1em; + } + +input:hover { + border: 1px solid #ACE149; + color: #7DA721; + background-color: white; + font-size: 1em; + } + +textarea { + font-family: arial, verdana, helvetica, sans-serif; + font-size: 1.1em; + border: 1px solid #BFBFBF; + color: #949494; + padding: 2px 5px 1px 5px; + width: 450px; + } + +textarea:hover { + color: #7DA721; + background-color: white; + border: 1px solid #ACE149; + } + +button { + color: #5e5e5e; + background-color: #ACE149; + border: 1px solid #5e5e5e; + font-size: 0.8em; + font-weight: bold; + cursor: pointer; + } + +button:hover { + color: #5e5e5e; + background-color: #D0F0A0; + border: 1px solid #ACE149; + font-size: 0.8em; + font-weight: bold; + cursor: pointer; + } + +#words form label { + min-width: 20em; + } + +#words form p { + text-align: center; + } + +/* ------------=-=-=- language selection -=-=-=------------- */ + +#lang { + position: absolute; + float: right; + right: 5px; + top: 5px; + text-align: right; + } + +#lang a { + color: #acacac; + font-family: verdana, lucida, arial, helvetica, sans-serif; + font-size: smaller; + } + +#lang a:hover { + color: #707070; + } + + +/* ------------=-=-=- documentation -=-=-=------------- */ + +#doc ol,ul li { + text-align: left; + margin-left: 20px; + } + +#doc dl dt { + text-align: left; + margin-left: 20px; + font-style: italic; + } + +#doc h1 { + padding-top: 25px; +} + +#doc h2 { + padding-top: 20px; +} + +#doc h3 { + padding-top: 10px; + } + +/* ------------=-=-=- special things -=-=-=------------- */ + +#partition_info p, #log p.console { + margin-left: 10%; + margin-right: 10%; + font-family: monospace + text-align: left; + } + +/* ---------=-=-=-=- onscreen help -=-=-=-=--------- */ +/* not active anymore */ + +#words a.popup { + line-height: inherit; + color: inherit; + background-color: inherit; + text-decoration: inherit; + font-weight: inherit; + font-size: inherit; + } + +#words a.popup:hover { + text-decoration: inherit; + } + +#words a.popup span { + display: none; + position: fixed; + bottom: 10px; + left: 9%; + width: 80%; + background: #f0f0f0; + padding: 10px; + border-color: #e0e0e0; + border-width: 2px; + border-style: solid; + margin: 0; + } + +#words a.popup:hover span { + display: inline; + } + +#words a.popup span p { + text-align: left; + } + +#words a.popup span h3 { + color: #909090; + margin-top: 0px; + } diff --git a/cbox-tree.d/var/www/cryptobox-misc/list.gif b/cbox-tree.d/var/www/cryptobox-misc/list.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe15cc981a0a53fdc20bd0c3328b9bbbd21f5a3c GIT binary patch literal 51 zcmZ?wbhEHbWM^P!XkcVWOH2Fz|G(l-7DfgJMg|=QAOOiQFmd(tOCI2OJ!{r71_o;Y DMwJZ7 literal 0 HcmV?d00001 diff --git a/cbox-tree.d/var/www/cryptobox-misc/screenshots/de_config.png b/cbox-tree.d/var/www/cryptobox-misc/screenshots/de_config.png new file mode 100644 index 0000000000000000000000000000000000000000..3dc322843e4b935ea8c69715599d8aa1b4c4995e GIT binary patch literal 80374 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ΜsRXIC1#n&pprc<09P}Zpz9)OZ(&PsnQNZ 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 literal 0 HcmV?d00001 diff --git a/cbox-tree.d/var/www/cryptobox-misc/screenshots/de_mount.png b/cbox-tree.d/var/www/cryptobox-misc/screenshots/de_mount.png new file mode 100644 index 0000000000000000000000000000000000000000..37920b2a84c3e58f2e3e6f5daa71ddee7c96f403 GIT binary patch literal 59615 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≷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 XaV-V*&95nVfceSGD8DO{GX3;FA-Y=@ literal 0 HcmV?d00001 diff --git a/cbox-tree.d/var/www/cryptobox-misc/screenshots/de_w98_login.png b/cbox-tree.d/var/www/cryptobox-misc/screenshots/de_w98_login.png new file mode 100644 index 0000000000000000000000000000000000000000..f7cef41a9ae80ede89214576240a27c976593058 GIT binary patch literal 3650 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 X9V5$V4_wF*+XW2uP4qB#oTC2&4=6S3 literal 0 HcmV?d00001 diff --git a/cbox-tree.d/var/www/cryptobox-misc/screenshots/de_w98_network_drive.png b/cbox-tree.d/var/www/cryptobox-misc/screenshots/de_w98_network_drive.png new file mode 100644 index 0000000000000000000000000000000000000000..da72c6f775a04e7464021358e94b4a0cba7b0704 GIT binary patch literal 3345 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 literal 0 HcmV?d00001 diff --git a/cbox-tree.d/var/www/cryptobox-misc/screenshots/en_config.png b/cbox-tree.d/var/www/cryptobox-misc/screenshots/en_config.png new file mode 100644 index 0000000000000000000000000000000000000000..e74b416611de7dd79374aef35e0ca0c66166b6a6 GIT binary patch literal 85007 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

f5@mVO``-y~LWzi`r>8G3FLAN3eos$_ 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 IZusf{0AAebWdHyG literal 0 HcmV?d00001 diff --git a/cbox-tree.d/var/www/cryptobox-misc/screenshots/en_w98_login.png b/cbox-tree.d/var/www/cryptobox-misc/screenshots/en_w98_login.png new file mode 100644 index 0000000000000000000000000000000000000000..9ff45fb6404b7138b8056994cf65c2f3a3d8a740 GIT binary patch literal 3504 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 V=9Tk1rR~3)mgcr*wSRiW{ttxk2L}KE literal 0 HcmV?d00001 diff --git a/cbox-tree.d/var/www/cryptobox-misc/screenshots/en_w98_network_drive.png b/cbox-tree.d/var/www/cryptobox-misc/screenshots/en_w98_network_drive.png new file mode 100644 index 0000000000000000000000000000000000000000..d1e89d7e4a90c89a870745b9511960bfb5113aff GIT binary patch literal 3013 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 literal 0 HcmV?d00001 diff --git a/cbox-tree.d/var/www/cryptobox-misc/smile.png b/cbox-tree.d/var/www/cryptobox-misc/smile.png new file mode 100644 index 0000000000000000000000000000000000000000..b51b3ff49e87feff120fd5fa5e49c72cf4473fff GIT binary patch literal 356 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 Zr>uCkvs6?;r#<8Oy?*-hpN$9v06Vt#9ijjL literal 0 HcmV?d00001