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

LDAP Einträge auf der Kommandozeile editieren mit ldapvi

Um Einträge in einem LDAP auf der Kommandozeile zu ändern habe ich vor kurzem das Programm ldapvi kennengelernt. Dieses kann unter Debian oder Ubuntu mit dem folgenden Kommando aus den Paketquellen installiert werden:

aptitude install ldapvi

Danach ist noch der BindDN und das dazugehörige Passwort in die Konfigurationsdatei /etc/ldapvi.conf einzutragen. Die Werte kann man zum Beispiel so erfahren:

cat /etc/ldap.secret && grep -i admin /etc/ldap.conf

In der ldapvi.conf ist dann die Syntax:

user: cn=admin,dc=.....
password: XXXXXX

Anschließend können mit dem Aufruf des Kommandos ldapvi die Einträge im Standardeditor des Systems (update-alternatives –config editor) bearbeitet werden. Ist man fertig und schließt den Editor wird man informiert ob Änderungen vorliegen und wenn ja vor die Wahl gestellt was man nun machen möchte. Hier nutze ich die folgenden Kommandos:

  • v zeigt einem im LDIF Format die Änderungen an
  • e geht zurück in den Editiermodus
  • Q verwirft die Änderungen
  • y übernimmt die Änderungen

Puppet Snippets

  • Wenn man den Katalog von einem Node anschauen möchte, kann man sich diesen auf dem Master mit folgendem Befehl kompilieren:
    puppet master --compile nodename
  • In Hiera kann man Werte wie folgt auslesen:
    hiera -c /etc/puppet/hiera.yaml apt::sources ::fqdn="puppetnode.example.net"

    Weitere Variablen kann man einfach so wie den fqdn auch übergeben:

    hiera -c /etc/puppet/hiera.yaml apt::sources ::fqdn="puppetnode.example.net"  ::provider="foobar"

 

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/