Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dreambox_login_anpassungen

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:

root@dm7025:~#

Abgefragt wird der Hostname mit nachfolgendem Befehl:

root@dm7025:~# hostname
dm7025
root@dm7025:~#

Mit nachfolgendem Befehl, kann der Hostname auf z.B. einen eigenen DNS-Namen abgeändert werden:

root@dm7025:~# hostname receiver.tachtler.net
root@receiver:~#

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:

root@receiver:~# vi /etc/hostname

:!: 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!

#!/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

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:

root@receiver:~# vi /home/root/issue-issue.net-motd.sh

:!: 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:

root@receiver:~# chmod 700 /home/root/issue-issue.net-motd.sh

3. Schritt - Script ausführen

Nachfolgender Befehl führt das Script dann aus:

root@receiver:~# /home/root/issue-issue.net-motd.sh 

Anzeige während der Ausführung…

$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

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

# Tachtler
gekennzeichnet.

Nachfolgende Zeile muss in das Start-Script von Dropbear eingefügt werden:

DROPBEAR_BANNER=/etc/issue.net

Hier die komplette Startdatei:

#!/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

:!: 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!

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/dreambox_login_anpassungen.txt · Zuletzt geändert: 2011/06/16 15:21 (Externe Bearbeitung)