Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dreambox_login_anpassungen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

tachtler:dreambox_login_anpassungen [2011/06/16 15:21] (aktuell)
Zeile 1: Zeile 1:
 +====== Dreambox Login Anpassungen ======
  
 +Folgende Anpassungen des Logins können auf einer Dreambox durchgeführt werden. ​
 +
 +:!: **HINWEIS** - Diese Anpassungen sind jedoch für den normalen Betrieb der Dreambox __**NICHT**__ erforderlich,​ eher als zusätzliche **Möglichkeiten** zu sehen!
 +
 +===== Anpassung Hostname =====
 +
 +Standardmäßig meldet sich die Dreambox nach einem Login via 
 +  * Telnet ​  //​**oder**//​
 +  * SSH
 +mit folgendem //​Hostnamen//:​
 +<​code>​
 +root@dm7025:​~#​
 +</​code>​
 +
 +Abgefragt wird der Hostname mit nachfolgendem Befehl:
 +<​code>​
 +root@dm7025:​~#​ hostname
 +dm7025
 +root@dm7025:​~#​
 +</​code>​
 +
 +Mit nachfolgendem Befehl, kann der Hostname auf z.B. einen eigenen DNS-Namen abgeändert werden:
 +<​code>​
 +root@dm7025:​~#​ hostname receiver.tachtler.net
 +root@receiver:​~#​
 +</​code>​
 +
 +Um diese Änderungen auch **dauerhaft**,​ auch nach einem **Neustart** der Dreambox zu erhalten, ist die Anpassung der Konfiguratiosndatei
 +  * **''/​etc/​hostname''​**
 +auf den neuen Namen erforderlich.
 +
 +Mit dem nachfolgendem Befehl kann die Datei editiert werden:
 +<​code>​
 +root@receiver:​~#​ vi /​etc/​hostname
 +</​code>​
 +
 +:!: **WICHTIG** - **Im Editorfenster muss dann die Tastenkombination ''​[Shift(Hochstellen)] und [ R ]''​ gedrückt werden um den Inhalt überschreiben zu können**
 +
 +:!: **WICHTIG** - **Gespeichert wird mit 2 x [Esc]-Taste und dann muss ''​ :wq ''​ eingegeben werden!**
 +
 +===== Anpassung issue, issue.net, motd =====
 +
 +In den Dateien
 +  * ''/​etc/​issue''​
 +  * ''/​etc/​issue.net''​
 +  * ''/​etc/​motd''​
 +sind jeweils Informationen abgelegt, welche beim anmelden an der Dreambox zur Anzeige kommen können. ​
 +
 +Die Datei ''/​etc/​issue''​ würde bei einer Anmeldung auf einer "​eigenen"​ ''​shell''​ angezeigt werden. (:!: **HINWEIS** - Aktuell nicht relevant)
 +
 +Die Datei ''/​etc/​issue''​ wird nach einer Verbindung via //​**Telnet**//​ oder //​**SSH**//,​ **vor** der Benutzerkennung bzw. vor der Passowortabfrage angezeigt.
 +
 +Die Datei ''/​etc/​issue.net'',​ **nach** erfolgreicher Anmeldung via //​**Telnet**//​ oder //​**SSH**//​.
 +
 +:!: **WICHTIG** - **Nachfolgend ein kleines Script, welches die Generierung aller drei Dateien übernimmt!**
 +
 +<​code>​
 +#!/bin/sh
 +
 +##############################################################################​
 +# Script-Name : issue-issue.net-motd.sh ​                                     # 
 +# Description : Generates the files /etc/issue, /​etc/​issue.net and /etc/motd # 
 +#               which will be used at login. /etc/issue is used at the tty-  # 
 +#               ​prompt. /​etc/​issue.net will shown after connection via ssh,  # 
 +#               ​telnet,​ or so on. /etc/motd is schown after successful login # 
 +#               at the prompt. ​                                              # ​
 +# Last update : 24.11.2009 ​                                                  # ​
 +# Version ​    : 1.00                                                         # ​
 +##############################################################################​
 +
 +# Source function from library import.
 +success() {
 +  echo -n "​...["​
 +  echo -n " ​ OK  "
 +  echo -n "​]"​
 +  echo -ne "​\r"​
 +  return 0
 +}
 +
 +failure() {
 +  echo -n "​...["​
 +  echo -n "​FAILED"​
 +  echo -n "​]"​
 +  echo -ne "​\r"​
 +  return 1
 +}
 +
 +# Function center text with border (screen 80x25).
 +text_center_border () {
 +        # Input text.
 +        # TEXT_INPUT=`uname -n`
 +        TEXT_INPUT="​$1"​
 +
 +        # Help variables.
 +        WORD_COUNT=`echo $TEXT_INPUT | wc -c`
 +        WORD_COUNT=`expr $WORD_COUNT - 1`
 +        LINE_COUNT=72
 +        DIFF_COUNT=`expr $LINE_COUNT - $WORD_COUNT`
 +        ERG_MODULO=`expr $DIFF_COUNT % 2`
 +        CHAR_BEFOR=`expr $DIFF_COUNT / 2`
 +        CHAR_AFTER=`expr $DIFF_COUNT / 2`
 +
 +        # Check lenght modulo to adjust right border.
 +        if [ "​0"​ != "​$ERG_MODULO"​ ]; then
 +                CHAR_AFTER=`expr $CHAR_AFTER + 1`
 +        fi
 +
 +        # Output line.
 +        printf " # %${CHAR_BEFOR}s${TEXT_INPUT}%${CHAR_AFTER}s #\n"
 +}
 +
 +# Source variable declarations.
 +FILE_ISSUE="/​etc/​issue"​
 +FILE_ISSUE_NET="/​etc/​issue.net"​
 +FILE_MOTD="/​etc/​motd"​
 +
 +OS_NAME="​DreamBox 7025+"
 +
 +##############################################################################​
 +# Generate /​etc/​issue ​                                                       # 
 +##############################################################################​
 +cat <<​ISSUE >​$FILE_ISSUE
 +$OS_NAME - \s - \v
 +Kernel \r on an \m at \l
 +
 +ISSUE
 +
 +echo -n $"​Generating $FILE_ISSUE"​
 +
 +# Check if file NOT exist OR IS empty.
 +if [ ! -s "​$FILE_ISSUE"​ ]; then
 +        failure; echo
 +        exit 11
 +else
 +        success; echo
 +        cat $FILE_ISSUE
 +fi
 +
 +# Set owner.
 +`chown root.root $FILE_ISSUE`
 +
 +echo -n $"Set owner $FILE_ISSUE"​
 +
 +# Check if owner was set.
 +if [ "​$?"​ != "​0"​ ]; then
 +        failure; echo
 +        exit 12
 +else
 +        success; echo
 +fi
 +
 +# Set file permission.
 +`chmod 644 $FILE_ISSUE`
 +
 +echo -n $"Set permission $FILE_ISSUE"​
 +
 +# Check if permission was set.
 +if [ "​$?"​ != "​0"​ ]; then
 +        failure; echo
 +        exit 13
 +else
 +        success; echo
 +fi
 +
 +ls -la $FILE_ISSUE
 +
 +##############################################################################​
 +# Generate /​etc/​issue.net ​                                                   # 
 +##############################################################################​
 +cat <<​ISSUENET >​$FILE_ISSUE_NET
 +
 + ############################################################################​
 + # ​                                                                         #
 + # ​                    This is a private DreamBox 7025+. ​                   #
 + # ​                                                                         #
 + # ​           Unauthorized access to this system is prohibited !            #
 + # ​                                                                         #
 + # ​  This system is actively monitored and all connections may be logged. ​  #
 + # ​       By accessing this system, you consent to this monitoring. ​        #
 + # ​                                                                         #
 + ############################################################################​
 +
 +ISSUENET
 +
 +echo -n $"​Generating $FILE_ISSUE_NET"​
 +
 +# Check if file NOT exist OR IS empty.
 +if [ ! -s "​$FILE_ISSUE_NET"​ ]; then
 +        failure; echo
 +        exit 21
 +else
 +        success; echo
 +        cat $FILE_ISSUE_NET
 +fi
 +
 +# Set owner.
 +`chown root.root $FILE_ISSUE_NET`
 +
 +echo -n $"Set owner $FILE_ISSUE_NET"​
 +
 +# Check if owner was set.
 +if [ "​$?"​ != "​0"​ ]; then
 +        failure; echo
 +        exit 22
 +else
 +        success; echo
 +fi
 +
 +# Set file permission.
 +`chmod 644 $FILE_ISSUE_NET`
 +
 +echo -n $"Set permission $FILE_ISSUE_NET"​
 +
 +# Check if permission was set.
 +if [ "​$?"​ != "​0"​ ]; then
 +        failure; echo
 +        exit 23
 +else
 +        success; echo
 +fi
 +
 +ls -la $FILE_ISSUE_NET
 +
 +##############################################################################​
 +# Generate /​etc/​motd ​                                                        # ​
 +##############################################################################​
 +cat <<​MOTD >​$FILE_MOTD
 +
 + ############################################################################​
 + # ​                                                                         #
 + # ​                    This is a private DreamBox 7025+. ​                   #
 + # ​                                                                         #
 +MOTD
 +
 +text_center_border `uname -n` >>​$FILE_MOTD
 +
 +cat <<​MOTD >>​$FILE_MOTD
 + # ​                                                                         #
 + # ​           Unauthorized access to this system is prohibited !            #
 + # ​                                                                         #
 + # ​  This system is actively monitored and all connections may be logged. ​  #
 + # ​       By accessing this system, you consent to this monitoring. ​        #
 + # ​                                                                         #
 + ############################################################################​
 +
 +MOTD
 +
 +echo -n $"​Generating $FILE_MOTD"​
 +
 +# Check if file NOT exist OR IS empty.
 +if [ ! -s "​$FILE_MOTD"​ ]; then
 +        failure; echo
 +        exit 31
 +else
 +        success; echo
 +        cat $FILE_MOTD
 +fi
 +
 +# Set owner.
 +`chown root.root $FILE_MOTD`
 +
 +echo -n $"Set owner $FILE_MOTD"​
 +
 +# Check if owner was set.
 +if [ "​$?"​ != "​0"​ ]; then
 +        failure; echo
 +        exit 32
 +else
 +        success; echo
 +fi
 +
 +# Set file permission.
 +`chmod 644 $FILE_MOTD`
 +
 +echo -n $"Set permission $FILE_MOTD"​
 +
 +# Check if permission was set.
 +if [ "​$?"​ != "​0"​ ]; then
 +        failure; echo
 +        exit 33
 +else
 +        success; echo
 +fi
 +
 +ls -la $FILE_MOTD
 +
 +exit 0
 +</​code>​
 +
 +Der Inhalt dieses Scriptes muss in eine Datei auf der Dreambox kopiert werden und zur Ausführung gebracht werden. Folgende Schritte sind dazu notwendig:
 +
 +**1. Schritt** - Anlegen der Datei mit dem Inhalt des Scriptes
 +
 +Mit dem nachfolgendem Befehl kann eine neue Datei angelegt und gleichzeitig editiert werden:
 +<​code>​
 +root@receiver:​~#​ vi /​home/​root/​issue-issue.net-motd.sh
 +</​code>​
 +
 +:!: **WICHTIG** - **Der Inhalt kann hier mit der Maus markiert und kopiert werden, im Editorfenster muss dann die Taste ''​[ i ]''​ gedrückt werden und anschließend [STRG]+[SHIFT]+[v]-Tasten zum einfügen der Daten.**
 +
 +:!: **WICHTIG** - **Gespeichert wird mit 2 x [Esc]-Taste und dann muss ''​ :wq ''​ eingegeben werden!**
 +
 +**2. Schritt** - Script ausführbar machen
 +
 +Nachfolgender Befehl macht die Datei ausführbar,​ so dass das Script ausgeführt werden kann:
 +<​code>​
 +root@receiver:​~#​ chmod 700 /​home/​root/​issue-issue.net-motd.sh
 +</​code>​
 +
 +**3. Schritt** - Script ausführen
 +
 +Nachfolgender Befehl führt das Script dann aus:
 +<​code>​
 +root@receiver:​~#​ /​home/​root/​issue-issue.net-motd.sh ​
 +</​code>​
 +
 +Anzeige während der Ausführung...
 +
 +<​code>​
 +$Generating /​etc/​issue...[ ​ OK  ]
 +DreamBox 7025+ - \s - \v
 +Kernel \r on an \m at \l
 +
 +$Set owner /​etc/​issue...[ ​ OK  ]
 +$Set permission /​etc/​issue...[ ​ OK  ]
 +-rw-r--r-- ​   1 root     ​root ​          51 Jun 16 15:20 /etc/issue
 +$Generating /​etc/​issue.net...[ ​ OK  ]
 +
 + ############################################################################​
 + # ​                                                                         #
 + # ​                    This is a private DreamBox 7025+. ​                   #
 + # ​                                                                         #
 + # ​           Unauthorized access to this system is prohibited !            #
 + # ​                                                                         #
 + # ​  This system is actively monitored and all connections may be logged. ​  #
 + # ​       By accessing this system, you consent to this monitoring. ​        #
 + # ​                                                                         #
 + ############################################################################​
 +
 +$Set owner /​etc/​issue.net...[ ​ OK  ]
 +$Set permission /​etc/​issue.net...[ ​ OK  ]
 +-rw-r--r-- ​   1 root     ​root ​         782 Jun 16 15:20 /​etc/​issue.net
 +$Generating /​etc/​motd...[ ​ OK  ]
 +
 + ############################################################################​
 + # ​                                                                         #
 + # ​                    This is a private DreamBox 7025+. ​                   #
 + # ​                                                                         #
 + # ​                         receiver.tachtler.net ​                          #
 + # ​                                                                         #
 + # ​           Unauthorized access to this system is prohibited !            #
 + # ​                                                                         #
 + # ​  This system is actively monitored and all connections may be logged. ​  #
 + # ​       By accessing this system, you consent to this monitoring. ​        #
 + # ​                                                                         #
 + ############################################################################​
 +
 +$Set owner /​etc/​motd...[ ​ OK  ]
 +$Set permission /​etc/​motd...[ ​ OK  ]
 +-rw-r--r-- ​   1 root     ​root ​         938 Jun 16 15:20 /etc/motd
 +</​code>​
 +
 +===== Anpassung SSH-Daemon Dropbear =====
 +
 +Um bei der Anmeldung via **//SSH//** auch den Anmeldetext,​ welcher in der Datei ''/​etc/​issue.net''​ enthalten ist, **vor** der Eingabe des Passworts anzeigen zu lassen, ist es notwendig, eine Zeile in das Start-Script des SSH-Deamons einzufügen.
 +
 +Änderungen an Dateien sind mit 
 +<​code>​
 +# Tachtler
 +</​code>​
 +gekennzeichnet.
 +
 +Nachfolgende Zeile muss in das Start-Script von [[http://​matt.ucc.asn.au/​dropbear/​dropbear.html|Dropbear]] eingefügt werden:
 +<​code>​
 +DROPBEAR_BANNER=/​etc/​issue.net
 +</​code>​
 +
 +Hier die komplette Startdatei:
 +<​code>​
 +#!/bin/sh
 +#
 +# Do not configure this file. Edit /​etc/​default/​dropbear instead!
 +#
 +
 +PATH=/​usr/​local/​sbin:/​usr/​local/​bin:/​sbin:/​bin:/​usr/​sbin:/​usr/​bin
 +DAEMON=/​usr/​sbin/​dropbear
 +NAME=dropbear
 +DESC="​Dropbear SSH server"​
 +
 +DROPBEAR_PORT=22
 +DROPBEAR_EXTRA_ARGS=
 +# Tachtler
 +DROPBEAR_BANNER=/​etc/​issue.net
 +NO_START=0
 +
 +set -e
 +
 +test ! -r /​etc/​default/​dropbear || . /​etc/​default/​dropbear
 +test "​$NO_START"​ = "​0"​ || exit 0
 +test -x "​$DAEMON"​ || exit 0
 +test ! -h /​var/​service/​dropbear || exit 0
 +
 +readonly_rootfs=0
 +for flag in `awk '{ if ($2 == "/"​) { split($4,​FLAGS,","​) } }; END { for (f in FLAGS) print FLAGS[f] }' </​proc/​mounts`;​ do
 +  case $flag in
 +   ro)
 +     ​readonly_rootfs=1
 +     ;;
 +  esac
 +done
 +
 +if [ $readonly_rootfs = "​1"​ ]; then
 +  mkdir -p /​var/​lib/​dropbear
 +  DROPBEAR_RSAKEY_DEFAULT="/​var/​lib/​dropbear/​dropbear_rsa_host_key"​
 +  DROPBEAR_DSSKEY_DEFAULT="/​var/​lib/​dropbear/​dropbear_dss_host_key"​
 +else
 +  DROPBEAR_RSAKEY_DEFAULT="/​etc/​dropbear/​dropbear_rsa_host_key"​
 +  DROPBEAR_DSSKEY_DEFAULT="/​etc/​dropbear/​dropbear_dss_host_key"​
 +fi
 +
 +test -z "​$DROPBEAR_BANNER"​ || \
 +  DROPBEAR_EXTRA_ARGS="​$DROPBEAR_EXTRA_ARGS -b $DROPBEAR_BANNER"​
 +test -n "​$DROPBEAR_RSAKEY"​ || \
 +  DROPBEAR_RSAKEY=$DROPBEAR_RSAKEY_DEFAULT
 +test -n "​$DROPBEAR_DSSKEY"​ || \
 +  DROPBEAR_DSSKEY=$DROPBEAR_DSSKEY_DEFAULT
 +test -n "​$DROPBEAR_KEYTYPES"​ || \
 +  DROPBEAR_KEYTYPES="​rsa"​
 +
 +gen_keys() {
 +for t in $DROPBEAR_KEYTYPES;​ do
 +  case $t in
 +    rsa)
 +        test -f $DROPBEAR_RSAKEY || dropbearkey -t rsa -f $DROPBEAR_RSAKEY
 +        ;;
 +    dsa)
 +        test -f $DROPBEAR_DSSKEY || dropbearkey -t dss -f $DROPBEAR_DSSKEY
 +        ;;
 +  esac
 +done
 +}
 +
 +case "​$1"​ in
 +  start)
 +        echo -n "​Starting $DESC: "
 +        gen_keys
 +        KEY_ARGS=""​
 +        test -f $DROPBEAR_DSSKEY && KEY_ARGS="​$KEY_ARGS -d $DROPBEAR_DSSKEY"​
 +        test -f $DROPBEAR_RSAKEY && KEY_ARGS="​$KEY_ARGS -r $DROPBEAR_RSAKEY"​
 +        start-stop-daemon -S \
 +          -x "​$DAEMON"​ -- $KEY_ARGS \
 +            -p "​$DROPBEAR_PORT"​ $DROPBEAR_EXTRA_ARGS
 +        echo "​$NAME."​
 +        ;;
 +  stop)
 +        echo -n "​Stopping $DESC: "
 +        start-stop-daemon -K -x "​$DAEMON"​
 +        echo "​$NAME."​
 +        ;;
 +  restart|force-reload)
 +        echo -n "​Restarting $DESC: "
 +        start-stop-daemon -K -x "​$DAEMON"​
 +        sleep 1
 +        KEY_ARGS=""​
 +        test -f $DROPBEAR_DSSKEY && KEY_ARGS="​$KEY_ARGS -d $DROPBEAR_DSSKEY"​
 +        test -f $DROPBEAR_RSAKEY && KEY_ARGS="​$KEY_ARGS -r $DROPBEAR_RSAKEY"​
 +        start-stop-daemon -S \
 +          -x "​$DAEMON"​ -- $KEY_ARGS \
 +            -p "​$DROPBEAR_PORT"​ $DROPBEAR_EXTRA_ARGS
 +        echo "​$NAME."​
 +        ;;
 +  *)
 +        N=/​etc/​init.d/​$NAME
 +        echo "​Usage:​ $N {start|stop|restart|force-reload}"​ >&2
 +        exit 1
 +        ;;
 +esac
 +
 +exit 0
 +</​code>​
 +
 +:!: **HINWEIS** - **Die Änderungen können auch in einer neuen Datei mit dem Namen ''​dropbear''​ im Verzeichnis ''/​etc/​default''​ hinterlegt werden - Kompletter Pfad ist ''/​etc/​default/​dropbear''​ !**
 +
 +:!: **WICHTIG** - **Um die Einstellungen wirksam werden zu lassen, ist es am einfachsten die Dreambox neu zu starten!**
tachtler/dreambox_login_anpassungen.txt · Zuletzt geändert: 2011/06/16 15:21 (Externe Bearbeitung)