Kategorien
IPTables Linux security

IP Filter…

Um Dienste von dem Zugriff durch bestimmte IP-Adressen zu sperren oder bestimmte IP Ports zu verbieten bietet sich ein IPTables Block an.

iptables -N block-enemy
iptables -A block-enemy -j DROP

Ziel-Port in die Blockliste aufnehmen

iptables -I INPUT 1 -p tcp --dport 3306 -j block-enemy
iptables -I INPUT 1 -p tcp --dport 8080 -j block-enemy

Eine IP-Adresse in die Liste Aufnehmen:

iptables -I INPUT 1 -p tcp --source 190.17.238.139 -j block-enemy

Eine Anwendung (MySQL Standartport) die Liste Aufnehmen:

iptables -I INPUT 1 -p tcp --dport 3306 -j block-enemy

Entfernen lässt sich der Inhalt des Blocks wieder mit:

iptables --flush block-enemy
Kategorien
Linux security

Spamassassin in die Datenbank

Spamassassin schreibt die Informationen zu den Spam EMails meistens in Dateien. Solche Daten können jedoch deutlich effizienter verwaltet werden wenn wir sie in eine MySQL Datenbank schreiben.
Wenn auf dem Server sowieso eine MySQL-Datenbank läuft haben diese Informationen in Dateien nichts zu suchen, besonders die Bayes Datenbank und das Whitelisting, da auf diese sehr entsprechend nach Informationen suchen.

Bayes Daten in die MySQL Datenbank

/etc/spamassassin/local.cf
bayes_auto_expire 0
bayes_expiry_max_db_size 150000

Ich gehe jetzt im weitern Verlauf davon aus, dass MySQL bereits läuft. Dennoch muss die Perl-Schnittstelle für den MySQL Datenbankzugriff zumeist noch Installiert werden. Das geht entwender per MCPAN und in Debian Systemen auch mit apt-get:

  • Vorraussetzungen
perl -MCPAN -e shell
install DBD::mysql
apt-get install libtie-cache-perl libdbd-mysql-perl
  • Nun wird die notwendige DB angelegt
mysqladmin -p create spamassassin_db -u root
  • Vergabe der Rechte für einen speziellen User
grant all privileges on spamassassin_db.* to spamassassin_usr@localhost identified by 'password';
  • anlegen der notwendigen Tabellen
mysql -u spamassassin_usr spamassassin_db -p < /usr/share/doc/spamassassin/sql/bayes_mysql.sql
  • /etc/spamassassin/local.cf um die SQL-DB Einträge erweitern
bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:spamassassin_db:localhost
bayes_sql_username spamassassin_usr
bayes_sql_password password
bayes_sql_override_username spamassassin

Dabei müssen Sie darauf achten, dass der Zugriff auf die alten bayes-Dateien deaktiviert wurde.

# bayes_path /var/spool/bayes_db/bayes
# bayes_file_mode 770

Eine Änderung der Konfiguration der bayes-DB merkt Spamassassin i.d.R. sofort. Starte Sie dennoch den Dienst neu:

/etc/init.d/spamassasin restart

Um zu prüfen, ob die bayes Einträge auch korrekt abgelegt werden reicht es, sich den Inhalt einer der Tabellen anzuschauen. Steht unter Count eine Zahl > 0 sind bereits Datein gespeichert worden:

mysql -u root -p
mysql> use spamassassin_db;
mysql> select COUNT(*) FROM bayes_vars WHERE username ='spamassassin';
+----------+
| COUNT(*) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)

Um die alten bayes Einträge zu übernehmen, können diese mittels sa-learn ex-/importiert werden:

sa-learn --backup > bayes.db
sa-learn --restore bayes.db

Whitelisting

  • Vorraussetzungen
perl -MCPAN -e shell
install DBD::mysql
apt-get install libtie-cache-perl libdbd-mysql-perl
  • Nun wird die notwendige DB angelegt
mysqladmin -p create spamassassin_db -u root
  • Vergabe der Rechte für einen speziellen User
grant all privileges on spamassassin_db.* to spamassassin_usr@localhost identified by 'password';
  • anlegen der notwendigen Tabellen
mysql -u root spamassassin_db -p < /usr/share/doc/spamassassin/sql/awl_mysql.sql
  • /etc/spamassassin/local.cf um die SQL-DB Einträge erweitern
use_auto_whitelist 1
user_awl_dsn DBI:mysql:spamassassin_db:localhost
user_awl_sql_username spamassassin_usr
user_awl_sql_password Passwort
user_awl_sql_table awl

Dabei müssen Sie darauf achten, dass der Zugriff auf die alte autowhiteliste deaktiviert wurde

#auto_whitelist_path /var/spool/spamassassin/auto-whitelist #auto_whitelist_file_mode 0666

eine Änderung der Konfiguration der bayes-DB merkt Spamassassin i.d.R. sofort. Starte Sie dennoch den Dienst neu:

/etc/init.d/spamassasin restart

Um zu prüfen, ob die bayes Einträge auch korrekt abgelegt werden reicht es, sich den Inhalt einer der Tabellen anzuschauen. Steht unter Count eine Zahl > 0 sind bereits Datein gespeichert worden:

mysql -u root -p
mysql> use spamassassin_db;
mysql> select count(*) from awl;
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.01 sec)

Ein Blick in die Log-Datei von Spamassassin schadet auf keinen Fall. Wo diese liegt, kann man der Datei /etc/default/spamassassin entnehmen

Kategorien
Linux security Workstation

todo, Gedächtnisstütze für den Administrator…

todo nennt sich ein kleines Programm, welches dabei hilft mit den Notizen zu administrativen Aufgaben nicht immer wieder den gesamten Schreibtisch zu vermüllen.

Bei dem Wechsel in das entsprechende Verzeichniss sieht das ungefär wie folgt aus:


1.Script zum löschen gelöschter E-Mail-Konten korrigieren.

2.Logfile Analyse!

[schranz@server:/var/www/]>

zuerst todo installieren:

apt install devtodo

anschließend dafür sorgen das das todo auch beim wechsel in das Verzeichniss angezeigt wird:
echo ‘export PROMPT_COMMAND=”todo”‘ >> ~/.bashrc

jetzt kann in jedem beliebigen Verzeichniss mit todo -a ein neues Memo angelegt werden, mit todo -e 1 lässt sich das Memo 1 bearbeiten und mit todo -d 1 auch als erledigt markieren.

Kategorien
Allgemein security Spiele

Teamspeak2 Streiche

Es gibt zwei einfache Wege wie schlecht informierten Admins die Rechte im Teamspeak streitig gemacht werden:

  • Klick mich an und Drücke die Taste “e” – der Benutzer logt sich aus, kehrt zurück und ist Admin.
  • Der Benutzer wählt einen namen gefolgt von (U SA) oder (SA) wodurch sich ein Administrativer Benutzer gezwungen sieht dem Nutzer die vermeintlichen Rechte zu nehmen, und somit zu geben.
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 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
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
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/