#sysadmin Teil 1: Wie man sich auf Linux Systemen verstecken kann

Hier mal ein paar kleine Dinge zusammengeschrieben wie man sich auf Linux Systemen verstecken kann. Was man als Sysadmin dagegen tun kann gibt es dann in dem nächsten Blogpost

  • Wenn man den Output von den Kommandos lastlog, last oder lastb leeren möchte hilft folgendes:
    user@host ~ $ >/var/log/lastlog
    user@host ~ $ >/var/log/wtmp
    user@host ~ $ >/var/log/btmp
  • Befehle die mit vorangestellten zwei Leerzeichen ausgeführt werden sind normalerweise nicht der History sichtbar
    user@host ~ $   cat /var/www/foo/mysql.inc.php
  • Kommandos nicht in die History schreiben:
    user@host ~ $ export HISTSIZE=0
  • PROMPT_COMMAND resetten:
    user@host ~ $ export PROMPT_COMMAND=""
  • History löschen und Shell beenden:
    user@host ~ $ unset HISTFILE && exit
  • Prozesse verstecken kann man, indem man ein leeres Verzeichnis über ein /proc/PID Verzeichnis mountet. Den Mount wiederum kann man auch verstecken:
    user@host ~ $ mkdir /tmp/foo
    user@host ~ $ cp /etc/mtab /tmp/t
    user@host ~ $ mount --bind /tmp/foo /proc/PID
    user@host ~ $ mv /tmp/t /etc/mtab

Weiteres gerne in die Kommentare.

Update 1, 25.07.2015:

https://twitter.com/lordcoke/status/623942954135257088

ZIP-Dateien: Validieren, nachträglich Aufsplitten und beim Erzeugen gleich Splitten

Auf Linux-Systemen kann man ja mit den Kommandos „split“ und „cat“ recht einfach Dateien aufteilen und wieder zusammenführen. In der Windows-Welt würde das Zusammenfügen von mit split geteilten Dateien mittels „copy /b part1 part2 completefile“ auch noch gehen aber das ist nicht gerade intuitiv und für einen Endanwender nicht akzeptabel.

Deswegen werden für die Windows-Welt am besten ZIP-Dateien erzeugt und in kleine Teile aufgespalten. Aktuell habe ich eine 16GB Datei vor mir die ich erst validieren und dann in 3GB große Teile aufsplitten möchte:

$ aptitude install zip
$ unzip -t 15gbfile.zip
$ zipsplit -n 3145728 15gbfile.zip

Um beim Erzeugen von ZIP-Dateien diese gleich aufzuteilen kann man den -s Parameter benutzen. Das folgende Kommando erstellt 3GB große ZIP-Dateien vom Unterordner myImages:

$ zip -s 3g -r myZippedImages.zip myImages/

Übersicht: Wichtige S.M.A.R.T Werte und Ihre Bedeutung

Im IT-Administrator 07/2014 gibt es einen guten Artikel zum Thema S.M.A.R.T Werte bei Festplatten. Da das Thema bei uns in der Firma immer mal wieder aktuell ist und vor allem die Frage im Raum steht wie man Festplatten durch Monitoring besser überwachen kann ist eine Tabelle sehr gut, die aufzeigt welche SMART Werte in der Praxis überhaupt von Relevanz sind und was sie beziehungsweise eine Änderung bedeuten. Für meine eigene Dokumentation möchte ich diese hier einmal festhalten:

 

WertBedeutung
Spin_Up_Time (ID:3)Die Zeit in Millisekunden, die der Plattenstapel beim Hochfahren benoetigt, um auf Nenndrehzahl zu kommen. Steigt dieser Wert ploetzlich an, deutet das auf ein defektes Plattenlagter oder Motorproblem hin.
Spin_Retry_Count (ID:10)Anzahl der Fehlstarts beim hochdrehen des Plattenstapels. Dreht der Plattenstapel nach kurzer Zeit nicht mit Nenndrehzahl, wird ein erneuter Startversuch unternommen. Beginnt dieser Wert ueber 0 zu steigen, deutet das auf ein defektes Plattenlager oder Motorproblem hin.
Calibration_Retry_Count (ID:11)Anzahl der Rekalibrierungsversuche. Schaffen es die Koepfe nicht, sich in der vorgegebenen (kurzen) Zeit genau ueber einer Spir zu platzieren, muss eine Rekalibrierung initiiert werden. Steigt dieser Wert, deutet das vor allem bei aelteren Laufwerken auf beginnende Probleme der Festplattenmechanik hin.
Power_On_Hours (ID:9)Anzahl der Betriebsstunden. Der Wert waechst im Laufe der Zeit und zeigt lediglich das Alter der Festplatte in Stunden (manchmal Minuten oder Sekunden) an.
Temperature_Celsium (ID:194)Aktuelle Temperatur im Laufwerk. Der Wert sollte ganz grob moeglichst im Bereich von 30°C-40°C liegen - zu warme Festplatten (>45°C) aber auch kalte Platten (<20°C) haben ein deutlich erhoehtes Ausfallrisiko.
UDMA_CRC_Error_Count (ID:199)Anzahl der fehlerhaftern Uebertragungen zwischen Festplatte und Controller. Werte ueber 0 deuten auf schlecht eingesteckte Verbindungskabel, mangelde Abschirmung oder Wackelkontakte hin. Sehr hohe Werte (mehrere tausend) koennen Ihre Ursache in einem defekten Controller-Chip haben.
Reallocated_Sector_Ct (ID:5)Anzahl der reallozierten Sektoren. Sobald ein Sektor mehrfach nicht mehr korrekt gelesen/geschrieben/geprueft werden kann, wird er in einen reservierten Bereich der Platte ausgelagert (sparse area). Dies ist ein deutliches Warnzeichen, weil es auf beginnende Oberflaechenprobleme hinweist. Beginnt dieser Wert ueber 0 zu wachsen, steht oft ein Festplattenausfall (head-crash) bevor.
Seek_Error_Rate (ID:7)Eine nicht naeher spezifizierte Rate fuer Positionierungsfehler der Schreib-/Lesekoepfe. Steigt dieser Wert, deutet das auf Probleme mit der Positionierung der Koepfe hin - Ursache koennen Servofehler, thermische Ausdehnung oder mechanische Ausfallerscheinungen sein.
(Raw_)Read_Error_Rate (ID:1)Eine nicht naeher spezifizierte Rate fuer Lesefehler. Ein steigender Wert bedeutet, dass die Oberflaeche der Platten beschaedigt ist oder die Schreib-/Lesekoepfe fehlerhaft arbeiten.
Uncorrectable_Sector_ct (ID:198)Anzahl der Versuche, fehlerhafte Sektoren ohne Erfolg zu lesen oder zu schreiben. Ein steigender Wert zeigt defekte Plattenoberflaechen oder Fehler in den Schreib-/Lesekoepfen an.
Free_Fall_Protection (ID:254) und nG-Sense_Rerror_Rate (ID:221)Wird bei Notebook-Festplatten die 'Free Fall Protection' ausgeloest (Platte befindet sich bei 0 G im freien Fall) und/oder gibt es Fehler durch zu hohe G-Raten (Vibration/Stoesse), steigen diese Werte. Das wiederum deutet auf einen sehr rauhen Umgang mit den Notebook hin.
Load_Cycle_Coung (ID:193)Anzahl der Unload/Load-Zyklen der Schreib-/Lesekoepfe. Viele (Notebook-)Festplatten parken ihre Koepfe (unload) nach wenigen Sekunden Leerlauf, um Energie zu sparen. Schreibt ein Betriebssystem wie Linux alle paar Sekunden beispielsweise eine Log-Datei, muessen die Koepfe dazu wieder 'ent-parkt' werden (load). Die maximale Anzahl von Unload-/Load-Zyklen sollte je nach Hersteller 100.000 bis 600.000 nicht ueberschreiten, waechst im obigen Szenario jedoch um ueber 100 pro Stunde. Das Unload/-Load Maximum ist so innerhalb eines Jahres erreicht. Abhilfe schafft ein Abschalten der Energiespar-Option.
Current_Pending_Sector_Ct (197)Dieser besondere Wert zeigt die aktuell nicht korrekt les- oder schreibbaren Sektoren an, die noch nicht remappt wurden. Ist ein Sektor auch nicht mit Hilfe der Fehlerkorrektur (ECC)lesbar, erhaelt er zunaechst den Status 'current pending sector'. Der Sektor wird nun aber noch nicht remapped, weil sein Inhalt (bei Lesefehlern) ja nicht bekannt ist und ein spaeterer Versuche vielleicht erfolgreich ist. Erst nach mehreren erfolglosen Lese-Versuchen wird der Sektor als fehlerhaft markiert und Reallocated_Sector_Ct (ID: 5) um den Wert 1 erhoeht. Wird andererseits schreibend auf den Sektor zugegriffen, muessen die Daten zuvor logischerweise nicht gelesen werden. Die Festplatte markiert den Sektor dann endgueltig als fehlerhaft und mapped ihn in den reservierten Bereich um.