Debian 8 (Jessie) - Probleme mit ssh/sftp Übertragung

Problem : Nach einem Update auf Debian 8 bekommt ein Client keine Verbindung mehr. Im Logfile wird folgendes gelogt.
 sshd[xxx]: fatal: Unable to negotiate a key exchange method [preauth]


Lösung : manuelles hinzufügen des KexAlgorithms in der Datei /etc/ssh/sshd_config
Diesen Eintrag in die Datei /etc/ssh/sshd_config kopieren.
KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr
danach die Schlüssel neu generieren.
ssh-keygen -A
Jetzt starten wir noch den Dienst neu damit er alle Einstellungen mitbekommt.
service ssh restart
Nach diesen Änderungen konnte unser Kunde wieder wie gewohnt übertragen.

Kleine Anmerkung von mir es hat einen Grund warum veraltet Ciphers rausgeworfen werden.

Debian Jessie (8) - console-kit-daemon benötigt viel RAM und CPU

Problem : Auf einem Debian System läuft der Dienst console-kit-daemon und verbraucht RAM und CPU. Das ist solange richtig wie eine GUI (Gnome/KDE/FluxB/LXDE oder ähnliches) verwendet wird, ist dies nicht der Fall kann der Dienst deaktiviert werden.

Lösung : Da ich grundsätzlich ein Backup erstelle hab ich die Datei org.freedesktop.ConsoleKit.service aus /usr/share/dbus-1/system-service/ nach /backup kopiert.
cp /usr/share/dbus-1/system-service/org.freedesktop.ConsoleKit.service /backup

dannach hab ich die im Ordner gelöscht
rm /usr/share/dbus-1/system-service/org.freedesktop.ConsoleKit.service

nach einem Neustart läuft der Dienst console-kit-daemon nicht mehr und benötigt somit keine Resourcen mehr ;-)

Warnung : In manchen Foren steht die Empfehlung wie der Datei das exectue Bit zu nehmen. Ich rate davon ab da es dann zu anderen Seiten Effekten kommen kann (z.B. ssh login dauert ewig - timeout). Also ein
chmod -x /usr/sbin/console-kit-daemon
ist nur was zum testen für produktiv Systeme empfehle ich den oben beschriebenen Weg.

Debian ( 6 ) Squeeze - Bash Shellshock schließen und testen

Ein Debian Squeeze System auf die Bash-Lücke: ShellShock testen und diese schließen.

Bash Shellshock testen :
env x='() { :;}; echo "WARNUNG: SHELLSHOCK GEFUNDEN"' bash --norc -c ':' 2>/dev/null;
Sieht der output so aus ist das System verwundbar
WARNUNG: SHELLSHOCK GEFUNDEN

Die Jungs von #shellshock haben einen besseren Test geschrieben, in der Sektion "Testing Your System" ist der Aufruf dafür zu finden.

Auf meinen Debian (6) Squeeze Server konnte ich die Lücke , soweit bekannt , schließen.

Ich habe meine /etc/apt/sources.list auf den LTS Zweig konfiguriert
deb http://http.debian.net/debian/ squeeze main contrib non-free
deb-src http://http.debian.net/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
deb http://http.debian.net/debian squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian squeeze-lts main contrib non-free
danach nur das Packet bash geupdatet
apt-get update && apt-get install --only-upgrade bash
Erneut Bash Shellshock testen :
env x='() { :;}; echo "WARNUNG: SHELLSHOCK GEFUNDEN"' bash --norc -c ':' 2>/dev/null;
Wenn hier jetzt kein Output mehr zu sehen ist dann ist die bekannte Lücke geschlossen.

Weitere Quellen :
Bash-Luecke-Shellshock-Tests-auf-Verwundbarkeit-und-Abwehr
how-to-fix-shellshock-vulnerability-on-debian-squeeze
Mitigating the shellshock vulnerability (CVE-2014-6271 and CVE-2014-7169)
#shellshock

Check_MK Plugin | LOCAL Check ! | Linux Updates

Ich habe hier als Server Überwachung Check_MK am laufen , die Serverüberwachung bringt die Möglichkeit mit Windows Systeme auf Updates zu überprüfen. Diese Funktion habe ich für Linux Systeme vermisst und habe einen local Check für Debian geschrieben der die selbe Aufgabe übernimmt.

eine Datei anlegen mit folgendem Inhalt z.B. debian_updates.sh


#!/bin/bash
LOGPATH=`dirname $(readlink -f ${0})`
LOGFILE=debian_updates.log
LOGFULL=$LOGPATH/logs/$LOGFILE
DEBVER=`cat /etc/debian_version`
TNOW=$(date "+%s");
STATUS=0

function Get_Updates {
         apt-get update > /dev/null 2> /dev/nul
         AVUP=`apt-get dist-upgrade -qq -y -s |  grep -c '^Inst '`
         AVPACK=`apt-get dist-upgrade -qq -y -s |  awk '/^Inst / { print $2 }' | sed ':a;N;$!ba;s/\n/ /g'`
         AVUPA=$(($AVUP + 1));
         AVUP=$(($AVUPA - 1));
         if [ $AVUP != 0 ]; then
              STATUS=1
              STATUSTXT="$AVUP Updates ( Debian Version : $DEBVER )__ $AVPACK"
         else
              STATUS=0
              STATUSTXT="System ist auf dem aktuellsten Stand ( Debian Version : $DEBVER )"
         fi

        echo "$STATUS Debian_Update - $STATUSTXT" > $LOGFULL
        echo "$STATUS Debian_Update - $STATUSTXT"
}


if [ -e $LOGFULL ];
   then
   TDATEI=$(stat -c %Z $LOGFULL);
   ALTER=$(($TNOW - $TDATEI));
   MAXALTER=86400;      # ---- Berechnet sich wie folgt 24*60*60=86400 Sekunden
                if [ $ALTER -gt $MAXALTER ];
                        then
                        Get_Updates
                        else
                        while read line; do
                                echo $line
                        done < $LOGFULL
                        exit;
                fi
   else
        Get_Updates
   fi

exit



die Datei ausführbar machen mit chmod u+x Dateiname und dann in /usr/lib/check_mk_agent/local/ kopieren. Ein Unterverzeichnis mit dem Namen logs anlegen und einen Full Scan auf die Maschine ausführen. Ab dann werden die Updates auch in der Serverüberwachung angezeigt.

z.B. keine Updates



z.B. Updates stehen zur Installation

Automatisch Backups von Linux Server löschen

So hier ist mal ein kleines Bash Skript um automatisiert Backups zu löschen.

Es müssen natürlich alle Variablen angepasst werden, diese sollte ja selbsterklärend sein.


#!/bin/bash

# Allgemeine Variablen fr Logfiles
datum=`date +%Y_%0m_%0e`

ablauf_log="/share/log/ablauf-$datum.log"
error_log="/share/log/error-$datum.log"

# Maximales alter des Backupfiles in Tagen
alter="21"

echo Bereinigen wird gestartet $datum >>$ablauf_log
echo Bereinigen wird gestartet
echo ------------------------------------------------ >>$ablauf_log
echo ------------------------------------------------

# ---------------------------------- GESAMT BACKUP ROUTINE
ordner="/share/backup/sbs"
echo Variablen
echo Ordner wird auf $ordner gesetzt
echo Alter wird auf $alter gesetzt
echo
echo ------- $ordner -- Komplettsicherung aelter als $alter Tage >>$ablauf_log
echo Dateien in $ordner werden auf Alter ueberprueft  - max. $alter Tage

find $ordner -mtime +$alter -exec echo {} \;
find $ordner -mtime +$alter -exec rm {} \;

echo ------------------------------------------------

# ---------------------------------- WEBSERVER BACKUP ROUTINE
alter="15" # fuer webserve und lexware nur 15 Tage
ordner="/share/backup/webserver"

echo Neu setzen der Variablen
echo Ordner wird auf $ordner gesetzt
echo Alter wird auf $alter gesetzt
echo

echo ------- $ordner -- Webserversicherung aelter als $alter Tage >>$ablauf_log
echo Dateien in $ordner werden auf Alter ueberprueft  - max. $alter Tage

find $ordner -mtime +$alter -exec echo {} \;
find $ordner -mtime +$alter -exec rm {} \;

echo ------------------------------------------------

# ---------------------------------- LEXWARE BACKUP ROUTINE
# - Alter ist bereits definiert
# ---------------------------------------------------------
ordner="/share/backup/lexware"

echo Neu setzen der Variablen
echo Ordner wird auf $ordner gesetzt
echo Alter wird auf $alter gesetzt
echo

echo ------- $ordner -- Lexwaresicherung aelter als $alter Tage >>$ablauf_log
echo Dateien in $ordner werden auf Alter ueberprueft  - max. $alter Tage

find $ordner -mtime +$alter -exec echo {} \;
find $ordner -mtime +$alter -exec rm {} \;

echo ------------------------------------------------
echo
echo ------------------------------------------------ >>$ablauf_log
echo Vorgang abgeschlossen >>$ablauf_log


Getestet mit SUSE / DEBIAN / UBUNTU
“Das Alzheimer-Gesetz der Programmierung: Wenn du einen von dir vor zwei Wochen geschriebenen Code ansiehst, kommt es dir vor als hättest du ihn noch nie gesehen.”
Dan Hurvitz – Software-Entwickler