Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dreambox_login_anpassungen
no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


tachtler:dreambox_login_anpassungen [2011/06/16 15:21] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
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 von 127.0.0.1