Kategorien
Linux security

Paranoid?

Mit einer ausführlichen Erklärung was das hier soll wäre das ganze ja nicht halb so Paranoid! 🙂

wget http://ftp.gnu.org/gnu/bash/bash-3.1.tar.gz
tar zxfv bash-3.1.tar.gz
cd bash-3.1
wget http://dl.loteks.de/bash-paranoia.patch
patch -p0 < bash-paranoia.patch
autoconf
./configure --enable-paranoia --prefix=/usr
make
make install
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
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

 

Kategorien
Linux Postfix

Postfix und Courier Verschlüsselung

Postfix

in der Datei /etc/postfix/main.cf die folgenden Zeilen einfügen, bzw anpassen:

tls_random_source = dev:/dev/urandom
smtp_tls_cert_file = /pfad/zur/ssl.crt
smtp_tls_key_file = /pfad/zur/ssl.key
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_auth_only = no
smtpd_use_tls = yes
smtpd_tls_CAfile = /pfad/zur/ssl.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s

Courier

als erstes den SSL-Key in das Courier eigene pem Format wandeln.

cp /pfad/zur/ssl.crt /pfad/zur/ssl.pem
cat /pfad/zur/ssl.key >> /pfad/zur/ssl.pem
openssl gendh >> /pfad/zur/ssl.pem

Anschließend in der Datei /etc/courier/imapd-ssl (Zeile 156) die pem Datei eintragen:

TLS_CERTFILE=/pfad/zur/ssl.pem

Und in der Datei /etc/courier/pop3d-ssl (Zeile 134) ebenso:

TLS_CERTFILE=/pfad/zur/ssl.pem

Abschließend die EMail Server neu laden und die Verschlüsselung ist einsatzbereit.

/etc/init.d/postfix reload
/etc/init.d/courier-pop-ssl reload
/etc/init.d/courier-imap-ssl reload
Kategorien
Forensik Linux Postfix security

Postfix Mail-Queue wichtige Befehle

Die gesamte Mail-Queue löschen:

postsuper -d ALL

Alle Mails der Queue anzeigen:

mailq | less

Die entsprechende queue_id merken/kopieren

postsuper -d ID

Alle Emails von oder zu einer Adresse löschen:

mailq | tail +2 | awk 'BEGIN { RS = "" } / user@loteks\.de$/ { print $1 } ' | tr -d '*!' | postsuper -d -

alle Mails auf “hold” setzen:

postsuper -h ALL

Eine einzelne Mails auf “hold” setzen:

 postsuper -h ID

Alle Mails im Status “hold” ausliefern:

postsuper -H ALL

Eine einzelne Mails ausliefern:

postsuper -H ID

Auslieferung erzwingen:

postqueue -f