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