Kategorien
Linux security

NTP-Client

Die Server sollen alle als NTP-Clients arbeiten, dafür benötigen wir die Pakete:

ntp
enthält das kontrollprogramm welches den Zugriff auf entfernte NTP Server ermöglicht
ntp-simple
der ntp daemon welcher sich mit anderen ntp Servern verbindet
ntpdate
tool zum schreiben der aktuellen Uhrzeit in die Systemuhr

aptitude install ntp ntp-simple ntpdate

Die Konfigurationsdatei befindet sich in der Datei /etc/ntp.conf. Folgende Zeilen sorgen für das Synchronisieren mit dem Servers.

# Zeitabweichung
driftfile /var/lib/ntp/ntp.drift
#
# Logfile
logconfig =syncstatus +sysevents
logfile /var/log/ntp.log
#
server ptbtime1.ptb.de
server ptbtime2.ptb.de
server ntp1.uni-augsburg.de
server ntp2.uni-augsburg.de
server ntp3.uni-augsburg.de
server ntp4.uni-augsburg.de
server ntps1-0.cs.tu-berlin.de
server ntps1-1.cs.tu-berlin.de
#
# Zugriff von folgenden Clients erlauben
restrict ptbtime1.ptb.de
restrict ptbtime2.ptb.de
restrict ntp1.uni-augsburg.de
restrict ntp2.uni-augsburg.de
restrict ntp3.uni-augsburg.de
restrict ntp4.uni-augsburg.de
restrict ntps1-0.cs.tu-berlin.de
restrict ntps1-1.cs.tu-berlin.de
restrict 127.0.0.1
# Zugriff verwehren
restrict default notrust nomodify nopeer

nach dem der Inhalt von ntp.conf entsprechend geändert wurde noch die aktuelle Zeit mit dem NTP-Server Synchronisieren,

/etc/init.d/ntp start

in der Systemuhr des Servers die Zeit schreiben,

hwclock –systohc

und den Dienst zum Synchronisieren starten:

/etc/init.d/ntp-server start
/etc/init.d/ntpdate start

Um sich die eingetragenen Zeitserver anzeigen zu lassen gibt es den Befehl:

ntpq -p

Sollte in iptables die Synchronisierung erlaubt werden ist folgender Eintrag notwendig:

iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Kategorien
Linux

X-server-minimal

Die X-Server Grundinstallation

$ aptitude install xserver-xorg-core

zusätzlich muss noch eine Terminal Emulation, einen Window Manager und gegebenen falls das Programm für den Ziffernblock manuell installiert werden.
Terminal Emulationen:
– xterm (1180kB)
– multi-aterm (188kB) mit Tabs
– xvt (139kB)

Window Manager:
– icewm
– fluxbox oder blackbox

Um den Ziffernblock unter X.ORG zu aktivieren wird das folgende Programm benötigt, es ist für Notebooks, Netbooks nicht sinvoll und wird auch bei einer KDE, gnome oder xfce Installation unnötig.
– numlockx

Xserver starten

Um den Server manuell zu starteten wird folgendes in die Schell eingegeben:
$ startx icewm (in dem angegeben beispiel wird icewm gestartet!)

Komfortabler geht es mit einem Displaymanager wie xdm (X Display Manager). Wird ein solcher installiert, bootet der Rechner bis zu einem grafischen Login um dann den Windowmanager / die Deskop Umgebung zu starten.

Displaymanager

– xdm (ca 1MB)
– gdm (ca 9MB + Gnomelibs)
– kdm (ca 1MB + KDELibs)
– login.app (ca 1MB)
– slim (ca 1MB)
– wdm (ca 1MB)

Window Manager

$ aptitude install xserver-xorg-core icewm

Die Empfehlung aus “Xserver-minimal” und “Displaymanager”:
$ aptitude install xserver-xorg-core icewm numlockx multi-aterm wdm

ergeben eine einfach zu nutzende grafische Oberfläche.
Eine Liste von Window Managern, die in debian enthalten sind, befindet sich im [“SoftwareFinder/GUI”].
Gedanken und Konfigurationsdateien für einen leichtgewichtigen Desktop (engl)

Desktop Umgebungen

KDE minimal

$ aptitude install xserver-xorg-core kdebase kdm
– Platzverbrauch durch diese Installation(zusätzlich zur Basisinstallation): 103MB + Sprachunterstützung (24MB)
– Arbeitsspeicherverbrauch durch diese Installation: ?
– Windowmanager ist enthalten: kwin
– kdm kann auch weggelassen werden wenn man einen anderen(oder keinen) Displaymanager nutzen möchte.
– kde-i18n-de für die deusche Tastaturunterstützung

Gnome minimal

$ aptitude install xserver-xorg-core gnome-core gdm
– Platzverbrauch durch diese Installation(zusätzlich zur Basisinstallation): 157MB
– Arbeitsspeicherverbrauch durch diese Installation: ?
– Windowmanager ist enthalten: metacity
– gdm oder anderen, oder keinen Displaymanager nutzen

XFCE minimal

$ aptitude install xserver-xorg-core xfce4 gdm
– Platzverbrauch durch diese Installation zusätzlich: 81MB
– RAM nutzung durch diese Installation: ~ 80 MB
– Windowmanager ist enthalten: xfwm
– gdm oder anderen, oder keinen Displaymanager nutzen

Schriften

Anwendungen welche GTK1 benutzen (zum Beisspiel xmms, emelfm) haben nach der Installation ohne eines der Folgenden Pakete unlesbare Schriften. Je nach eingestellter Auflösung:
– xfonts-100dpi-transcoded (ca 12MB)
– xfonts-75dpi-transcoded (ca 10MB)
– xfonts-base-transcoded (ca 2MB)

Kategorien
Linux

Prozesse verwalten

Prozess Anhalten: [Strg]+z
Prozess Beenden: [Strg]+c
Prozess in den Vordergrund holen: fg
Prozess in den Hintergrund schieben: bg

Kategorien
Forensik IPTables Linux security

Offene Ports anzeigen

Um herauszufinden welcher Dienst auf welchem Port lauscht sind folgende Zeilen sehr hilfreich.

netstat -anp | egrep '(Proto|0.0.0.0|:::)' | grep -v '127.0.0.1'
lsof -i
lsof |grep LISTEN
Kategorien
Linux

Lokales Debian-Repository erstellen

Die Dateien Packages und Release erzeugen.

In dem Verzeichniss welches für das Repository auserkoren wurde via apt-ftparchive die Packages Datei anlegen.

apt-ftparchive packages . > Packages

Packages mit gzip komprimieren.

gzip -9 Packages

Die Datei Release aus den vorhandenen Dateien erzeugen.

apt-ftparchive release . > Release

GPG-Signatur

Einen GPG Key erstellen, wenn man denn noch keinen hat.

gpg --gen-key
  • als Art des Schlüssels “(1) DSA und ElGamal” wählen
  • als Schlüssellänge 2048 Bit benutzen
  • Gültigkeit des Schlüssels “2y” für 2 Jahre eingeben

Anschließend wird noch der Name, die Email Adresse und das Passwort angegeben und der GnuPGP Key erstellt.

Der Public-Key soll unter dem Namen “PublicKey” im Repository gespeichert sein.

gpg --armor --export "Vornahme Nachname" > PublicKey

Anschließend nur noch die Datei “Release” Signieren.

gpg --output Release.gpg -ba Release

und den Pfad zum Repository für die /etc/apt/source.list veröffentlichen.

deb http://meinRepository/ ./

den PublicKey mit wget herunterladen und mit apt-key dem lokalen System hinzufügen.

wget http://meinRepository/PublicKey
apt-key add PublicKey
Kategorien
Forensik Linux security

Md5 checksummen erstellen und vergleichen.

Anlegen der md5 Datei.

Datenträger für Prüfsummenliste mounten , z.B. Diskette:

mount /dev/fd0h1440 /mnt

Liste zu Prüfender Dateien erstellen

find /bin /boot /etc /lib /opt /root /sbin /usr \
-type f > /mnt/md5files.txt

md5sum auf Datenträger kopieren

cp /usr/bin/md5sum /mnt

Prüfsummenliste erstellen

cat < /mnt/floppy/Dateiliste.txt | xargs \
/mnt/md5sum > /mnt/md5list.md5

Datenträger ungemounten

umount /mnt/floppy

Auswerten
Nach Veränderungen an den Dateien fahnden.

Datenträger mit Prüfsummenliste mounten , z.B. Diskette:

mount /dev/fd0h1440 /mnt

mit Prüfsummenliste nach veränderungen suchen

/mnt/floppy/md5sum -c /mnt/md5list.md5 | less

Nach zusätzlichen Dateien suchen.

Liste zu Prüfender Dateien erstellen

find /bin /boot /etc /lib /opt /root /sbin /usr \
-type f > /tmp/files.txt

mit diff unterschiede finden

diff /mnt/floppy/Dateiliste.txt /tmp/Dateiliste2.tmp
Kategorien
Linux Postfix security

Postfix an eine IP-Adresse binden

Wenn der Server auf dem der eigene EMail-Server betrieben wird über mehr als eine einzelne IP-Adresse verfügt wählt Postfix standardmässig die sinnvollste™ um eine Verbindung zu dem Ziel-EMail-Server aufzubauen.

Wenn man nun aber z.B. nur auf einer IP-Adresse den Revers-DNS-Eintrag (PTR-Record) gesetzt hat, oder für jede IP-Adresse eine andere, wünscht jedoch daß alle EMails über die gleiche IP-Adresse verschickt werden, ist diese Verhalten störend.

Mit der Option smtp_bind_adress kann die Ausgehende IP-Adresse des Postfix konfiguriert werden. Die smtp_bin_adress kann sowohl in der master.cf als auch der mail.cf konfiguriert werden.:

/etc/postfix/master.cf:

smtp unix - - - - - smtp -o smtp_bind_address=ii.jj.xx.yy

/etc/postfix/main.cf:

smtp_bind_address = ii.jj.xx.yy

Im Anschluss kann der Mailserver mit dem Befehl service postfix restart neu gestartet werden.

Sollte im Anschluss eine “DENIED ACCESS” Fehlermeldung wie die im folgenden dargestellt im Maillog erscheinen:

Dec 13 10:40:57 localhost amavis[6926]: (06926-06) DENIED ACCESS from IP ii.jj.xx.yy

muß im Anschluss die Amavis Konfiguration /etc/amavis/conf.d/50-user bearbeiten werden und die inet_acl um die IP-Adresse des Mailservers ergänzt werden.:

@inet_acl = qw( 127.0.0.1 ii.jj.xx.yy );

 

Kategorien
Forensik Linux security

Festplatten Netzwerk-Clon

Um eine Exakte Forensische Kopie einer Festplatte zu erstellen nutzen wir die Befehle dd und netcat. Bei beiden handelt es sich um Standard Unix bzw. Linux Werkzeuge welche auf den meisten Systemen zur Verfügung stehen sollten. Sollte das Netzwerk nicht vertrauenswürdig sein oder die Daten vertraulich nutzen wir alternativ cryptcat anstelle von netcat, somit werden die Daten verschlüsselt übertragen.

Zunächst wird netcat auf dem Zielsystem wartend auf Port 2000 lauschend gestartet und, so das die Kommunikation zwischen beiden Systemen sichtbar wird, pipebench zwischengeschaltet.

Pipebench dient nur der Kontrolle ob sich dort noch Daten bewegen, sollten Sie pipebench nutzen wollen jedoch nicht haben, habe ich es hier unter downloads als statische i386 Datei.

netcat -l -p 2000 -w 5 | pipebench > /mnt//image.dd

Fürder hin sollten wir das auslesen der Festplatte auf den Quellsystem Starten und die Daten via netcat an das Zielsystem senden welches bereits auf port 2000 auf die Daten wartet.

dd if=/dev/hdX conv=noerror,sync | pipebench | netcat 192.168.0.1 2000

Anschließend überprüfen wir noch das die Dateigröße der Kopie identisch zu der Größe der Quellsystem Partition ist.

ls -lh /mnt/Forensik/image.dd

Abschließend sollten noch, um sicher zu gehen das es sich bei Original und Kopie um die selben Daten handelt, diese mit md5 oder sha256sum verglichen werden.

sha256sum /dev/hda1
sha256sum /mnt//image.dd

 

Und unter Windows?

Für die Windows-ianer folgt die gleiche Anleitung ein wenig später nach 😉
vorerst nur der Link zu den Tools: http://www.gmgsystemsinc.com/fau/

Kategorien
Linux

Internetseiten weiterleiten

Eine Weiterleitung über die .htaccess Datei funktioniert über die Funktion Redirect.

Beispiel:
Redirect 301 /alte-seite.htm https://loteks.de/?p=32

Auf diese weise wird jeder der auf die Seite alte-seite.htm zugreift zu diesem Artikel weitergeleitet. Es lassen sich auch umleitungen von Unterverzeichnissen auf andere Domains einrichten.

Redirect 301 /ordner/index.html https://loteks.de

Diese art von Weiterleitungen ist auch für Suchmaschinen sichtbar, die Seite alte-seite.htm wird zumeist nicht länger im Index der Suchmaschine gehalten.

Kategorien
Forensik Linux security

Login versuche…

Es gibt auf jedem, offen im Internet zu erreichenden Server eine Unzahl von Login Versuchen mit den verscheidensten Benutzernahmen. Diese Bruteforce-Angriffe können einen Server auslasten und, im Schlimmsten Fall wird auch bei größter Vorsicht doch einmal ein Kennwort erraten.

Die SSH-Loginversuche lassen sich unter Linux mit den folgenden Snippets beobachten.:

cat /var/log/auth.log |grep "Failed password for invalid user "|cut -d' ' -f11|sort|uniq
cat /var/log/auth.log |grep "Failed password for invalid user "|cut -d' ' -f11|sort|wc -l

Um diese Bruteforce Passwort-Versuche zu unterbinden bietet es sich an im IPTABLES die Fehlerhaften Logins zu Monitoren und nach einigen Versuchen den Port 22, oder entsprechenden SSH-Port für einige Zeit zu sperren.

Im folgenden Beispiel wird eine Ausnahmeliste erszellt, bei diesen IP-Adressen wird nicht gesperrt, und im Anschluss nach 2 erfolglosen Loginversuchen ein Logeintrag gemacht und der Port 22 für 240 Sekunden gesperrt.

iptables -N SSH_WHITELIST
iptables -A SSH_WHITELIST -s 192.168.0.1 -m recent --remove --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 240 --hitcount 2 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 240 --hitcount 2 --rttl --name SSH -j DROP