Perfide Masche um ein Trojaner / Virus unter zu jubeln

Gerade vorhin über Google-Images auf eine „Reported Attack Page!“ gekommen. Was ich hier gesehen habe, sprengt das bisher gesehene:

Block_Site1

Trotz „Reported Attack Page!“ Meldung, hat es die Seite geschafft ein JavaScript laufen zu lassen. Bricht man mit „Abbrechen“ ab, kommt folgende Meldung:

Block_Site2

Klickt man auf „OK“, ist man wieder bei der ersten Meldung. Es bleibt also nichts anderes übrig als den Firefox abzuwürgen.

Wichtiger Hinweis: Auf keinen Fall irgendein Programm aufgrund einer solchen Meldung updaten. Firefox updatet sich immer über die eigene Update-Funktion.

CMS Made Simple Versionen in Nagios monitoren

Vor längerem gab es mal einen Thread wie man am einfachsten den Versionsstand der verschiedenen Installationen überblicken kann.

http://forum.cmsmadesimple.org/index.php?topic=40691

Der User jfbs hat nun ein Plugin für Nagios geschrieben mit dem die Installationen überwacht werden können:
www.monitoringexchange.org/inventory/Check-Plugins/Software/Check-CMSms-%2528CMS-made-simple%2529-version

USB-HDD mit TrueCrypt verschlüsseln

Vor kurzem hat ein Lieferant bei uns eine HD bei uns vergessen. Im Anschluss darauf, dass er Sie wieder bekommen hat, habe ich mir überlegt, wie geschäftliche Daten geschützt werden sollten, damit diese nicht in falsche Hände geraten können.

TrueCrypt habe ich mir schon länger angeschaut, bisher jedoch nie wirklich ausprobiert. Nun habe ich zum testen eine USB HD in 2 Partitionen geteilt. Eine Partition von 4GB für den TrueCrypt Traveller und den schnellen Datentransfer und den Rest der HD als verschlüsselte Partition.

Eine Anleitung wie mit TrueCrypt eine Partition verschlüsselt oder ein verschlüsselter Container erstellt werden kann, gibt es zu hauf im Internet. Deshalb werde ich hier nicht nochmals das gleiche erzählen.

board.gulli.com/thread/674868-anleitung-tutorial-und-howto-truecrypt-verschluesselung/
http://stadt-bremerhaven.de/externe-festplatte-mit-truecrypt-verschlsseln/
stadt-bremerhaven.de/dropbox-und-truecrypt-verschluesselte-daten-in-der-cloud/

Einen grossen Nachteil hat das verschlüsseln einer Partition auf der USB-HD. So werden beide Partitionen angezeigt. Sowohl die normal lesbare, wie auch die verschlüsselte. Windows 7 fragt sofort nach dem einstecken der Platte, ob diese Formatiert werden soll, da die Partition nicht formatiert ist. Dies ist natürlich sehr unschön, da TrueCrypt die Partition unter einem anderen Laufwerk-Buchstaben einbindet.

Des weitern kann so natürlich die Festplatte versehentlich formatiert werden. (Gerade wenn sie Mobil eingesetzt wird)

Unter Windows gibt es die Möglichkeit eine Partition auszblenden, in dem man den Laufwerk-Buchstaben entfernt. Dies funktioniert jedoch nur auf dem Computer auf dem dies auch eingestellt wurde. Auf jedem anderem Computer wird das verschlüsselte Laufwerk wieder angezeigt.

Nach längerem Suchen habe ich nun die Lösung dafür gefunden. Mit dem Paragon Harddisk Manager kann man eine Partition verstecken (Hide Partition):

Hide Partition

Von einer Aktion her, hatte ich noch den Paragon Harddisk Manager 8.5 gespeichert. Mit diesem die gewünschte Partition selektieren und dann im Kontextmenü „Hide Partition“ wählen. Danach wird die Partition sowohl unter WinXP, WinVista, Windows7 und Mac OS X 10.6 nicht mehr angezeigt. Sie ist jedoch weiterhin problemlos per Truecrypt mountbar.

Möglicherweise geht dies auch mit dem Acronis Disk Director (Testversion)

Wenn jemand eine Freeware oder Open Source Software kennt, welche dies ebenfalls kann, gerne dies in den Kommentaren erwähnen.

WordPress robots.txt einrichten

Die robots.txt Datei dient dazu einer Suchmaschine zu sagen welche teile des Blogs indexiert werden sollen und welche nicht. Dadurch kann man z.B. auch vermeiden dass über Google nach exploits in Plugins gesucht werden kann, da der Plugin-Ordner über die robots.txt Datei ausgeklammert wurde.

Des weiteren kann man über die robots.txt eine Sitemap der Seite verlinken welche es den Suchmaschinen einfacher macht, die Seite zu indexieren.

Hier der Auszug aus der robots.txt. Diese muss im Hauptverzeichnis der Domain sein.


User-agent: *
Sitemap: https://www.camma.ch/sitemap.xml

# Nicht indexieren aller Dateien in folgenden Verzeichnissen
Disallow: /cgi-bin/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wpcontent/themes/
Disallow: /wp-content/plugins/
Disallow: /trackback/
Disallow: /*?*
Disallow: */trackback/

User-agent: Googlebot
# Unterbinden der Indexierung aller Dateien mit diesen Endungen
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$
Disallow: /*.gz$
Disallow: /*.cgi$
Disallow: /*.wmv$
Disallow: /*.png$
Disallow: /*.gif$
Disallow: /*.jpg$
Disallow: /*.cgi$
Disallow: /*.xhtml$
Disallow: /*.php*
Disallow: */trackback*
Disallow: /*?*
Disallow: /category/
Disallow: /tag/
Disallow: /archives/
Disallow: /feed/
Disallow: /wp-*
Allow: /wp-content/uploads/

# Google Image erlauben alle Bilder zu indexieren
User-agent: Googlebot-Image
Allow: /*

# Dem AdSense Bot erlauben die Seite zu indexieren
User-agent: Mediapartners-Google*
Disallow: /*?*
Allow: /wp-content/
Allow: /tag/
Allow: /category/
Allow: /*.php$
Allow: /*.js$
Allow: /*.inc$
Allow: /*.css$
Allow: /*.gz$
Allow: /*.cgi$
Allow: /*.wmv$
Allow: /*.cgi$
Allow: /*.xhtml$
Allow: /*.php*
Allow: /*.gif$
Allow: /*.jpg$
Allow: /*.png$

# Archivierung der Seite unterbinden
User-agent: ia_archiver
Disallow: /

# duggmirror unterbinden
User-agent: duggmirror
Disallow: /

Die sitemap.xml kann durch das Plugin Google XML Sitemaps erstellt werden.

Backup: 7-zip und batch dateien für ein automatisiertes Backup

Ab und zu schaut man sich nach besseren Backup Programmen um. Ein Blogeintrag von Caschy hat mich dazu animiert. Da alle „normalen“ Backupprogramme das sichern ganzer Laufwerke nicht zulassen, habe ich mich auf die Suche nach etwas schlauerem gemacht. Die Idee war ein Pendant zum bash-Backupscript von mir zu finden ohne die Welt gleich neu erfinden zu müssen (sprich selber schreiben).

Auf Loogans Site wurde ich fündig.

Dieses Backup kann full oder auch incrementelle Backups erstellen.

Das Script besteht aus 7 Teilen:

  • Backup.cmd, ist das Haupscript das die Backup Kommandos ausführt
  • Backupset.txt, eine Liste der Ordner und Files die gesichert werden sollen
  • CurrentSet.txt, hier steht der Pfad zum aktuellen FullBackup. Dieser wird für das incrementelle Backup benötigt
  • FullBackup.cmd, zum starten des FullBackup
  • FullBackupSettings.ini, alle Einstellungen des FullBackup
  • IncrementalBackup.cmd, zum starten des incrementellen Backups
  • IncrementalBackupSettings.ini, alle Einstellungen des incrementellen Backups

Das Scriptgebilde kann natürlich auch gestrafft werden. Durch den bestehenden Aufbau lassen sich die Einstellungen relativ einfach ändern und zur Ausführung des Scripts reicht ein ExecuteScript. Im folgenden sind hier alle Scripts aufgeführt:

Backup.cmd


@echo off

echo TRACE: Start

IF EXIST %1 GOTO Begin

echo Settings file does not exist
GOTO End

:Begin

echo TRACE: Read settings
for /f "eol=# tokens=1,2 delims==" %%i in (%1) do SET %%i=%%j

set varNewBackupSet=%varBackupLocation%\%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%-%TIME:~0,2%-%TIME:~3,2%-backup.%varFormat%

IF "%varBackupType%"=="full" GOTO CreateNewSet

echo TRACE: Load existing set
for /F %%i in (CurrentSet.txt) do set varOldBackupSet=%%i

IF EXIST "%varOldBackupSet%" GOTO ExecuteIncremental

echo Backup set does not exist!
GOTO End

:CreateNewSet
echo TRACE: Create new set
echo %varNewBackupSet% > CurrentSet.txt

:ExecuteFull
echo TRACE: Execute Full backup
"%var7zipPath%\7z" a -t%varFormat% "%varNewBackupSet%" @"%varFileList%"
GOTO End

:ExecuteIncremental
echo TRACE: Execute Incremental backup
"%var7zipPath%\7z" u -u- -u!"%varNewBackupSet%" -t%varFormat% "%varOldBackupSet%" @"%varFileList%"

:End
echo TRACE: Finished
pause

Das Backup Script lädt die Einstellungen aus dem Parameter 1, macht ein paar Prüfungen und startet danach 7Zip zum Backup. In den Konfigurations-Dateien wird definiert was wie und wo.

BackupSet.txt


D:\Guild Wars\Screens
D:\camma\Documents
D:\camma\Favorites
C:\Users\camma\Desktop
D:\Logaan\Saved Games
C:\Users\camma\AppData\Local\2DBoy
C:\Users\camma\AppData\Local\Ascaron Entertainment
C:\Users\camma\AppData\Local\id Software
C:\Users\camma\AppData\Local\Ironclad Games
C:\Users\camma\AppData\Local\Rockstar Games
C:\Users\camma\AppData\Roaming\EditPlus 3
C:\Users\camma\AppData\Roaming\FileZilla
C:\Users\camma\AppData\Roaming\Free Download Manager
C:\Users\camma\AppData\Roaming\Xfire

Dies Dateiliste wird an 7Zip übergeben. Einzige Einschränkung ist hier, dass der gleiche Ordner oder die gleiche Datei nicht doppelt aufgeführt werden dürfen. Wenn mehrere Ordner an verschiedenen Stellen gleich heissen, kann dies auch durch mehrere Scripts gelöst werden, welche gleichnamige Ordner auf verschiedene BackupSets verteilt.

CurrentSet.txt


D:\2009-08-15-17-16-backup.zip

Hier ist der Pfad zum zuletzt angefertigten FullBackup enthalten. Die incrementellen Backups lesen diesen aus uns benützen das FullBackup zum Updaten der Dateienlisten die gesichert werden müssen.

FullBackup.cmd


@echo off
Backup D:\camma\Documents\Tools\7ZipBackup\FullBackupSettings.ini

Dieses startet das Hauptscript mit den entsprechenden Einstellungen. Falls mehrere Sets mit verschiedenen Einstellungen ausgeführt werden sollen, muss folgender Code benutzt werden:


@echo off
call Backup D:\camma\Documents\Tools\7ZipBackup\FullBackupSettings.ini
call Backup D:\camma\Documents\Tools\7ZipBackup\FullBackupSettings2.ini
call Backup D:\camma\Documents\Tools\7ZipBackup\FullBackupSettings3.ini

FullBackupSettings.ini


# File path to the 7-zip executables
var7zipPath=C:\Program Files\7-Zip

# Backup format
varFormat=zip

# Target location for the backup
varBackupLocation=D:

# List file
varFileList=D:\camma\Documents\Tools\7ZipBackup\BackupSet.txt

# Mode
varMode=a

# Type
varBackupType=full

Die Konfigurationsdatei wird im Hauptscript eingelesen. Es enthält den Modus des Backups, die Pfad angaben sowie Einstellungen von 7Zip.

IncrementalBackup.cmd

@echo off
Backup D:\camma\Documents\Tools\7ZipBackup\IncrementalBackupSettings.ini

Analog der FullBackup Konfiguration für das incrementelle Backup

IncrementalBackupSettings.ini

# File path to the 7-zip executables
var7zipPath=C:\Program Files\7-Zip

# Backup format
varFormat=zip

# Target location for the backup
varBackupLocation=D:

# List file
varFileList=D:\camma\Documents\Tools\7ZipBackup\BackupSet.txt

# Mode
varMode=u

# Type
varBackupType=incremental

Viel Spass beim testen und benutzen des Scripts.

47 Massnahmen um eine Typo3 Installation sicher zu machen

Auf OpenMind wurde eine Liste mit 47 Massnahmen veröffentlicht um eine Typo3 Installation sicher zu machen.

http://www.workshop.ch/openmind/2009/10/07/typo3-security-checklist-47-massnahmen-um-eine-typo3-installation-sicherer-zu-machen/

Download der Security Checkliste

Die Liste wird immer wieder erweitert. Akutuelle Versionen sind auf dem Open Mind Blog zu finden.

SSH-Port absichern

Auf pro-linux.de ist ein interessanter Artikel zur Absicherung des SSH-Ports unter Linux veröffentlicht worden.

Zum Artikel SSH-Port absichern

Die Details in Kürze:

  • Für root keinen direkten Zugriff von aussen
  • Authentifizierungsverfahren auf Schlüsselbasis verwenden
  • Einen anderen Port als den Standardport 22 verwenden
  • IP-Adressen aufgrund einer Anzahl fehlgeschlagener Loginversuche mit fail2ban sperren
  • Freigabe von Ports erst nach einen Port-Knocking

CMS Made Simple 1.6.4 „Moindou“ erschienen

Mit dieser Version werden ein paar weitere Fehler behoben, die uns seit Veröffentlichung der Version 1.6 bekannt geworden sind. Davon sind insbesondere die erweiterten Optionen der Inhaltsseiten betroffen.

Da supportseitig nur noch die CMSms-Versionen 1.6.3 und 1.6.4 unterstützt werden, sind sollten Sie Ihre Webseiten so schnell als möglich auf die neueste Version aktualisieren.

Changelog: Version 1.6.4 – Moindou:

  • ein Problem mit der Option „Im Menü anzeigen“ behoben, die für andere Inhaltstypen nicht verfügbar war
  • ein Problem mit den Übersetzungen und dem erforderlichen Referenz-Operator behoben
  • ein Problem beim Erzeugen und Überprüfen der Prüfsummen behoben
  • ein Problem im DateiManager behoben – es wurde anstatt des Erstellungsdatums das Datum des letzten Zugriffs angezeigt
  • in den Webseiteneinstellungen eine Registerkarte für die Liste der auswählbaren Eigenschaften hinzugefügt
  • ein Problem mit 404er Fehlern behoben, die beim Verwenden von PrettyURLs und dem Hinzufügen von Parametern zur URL auftraten
  • ein Problem bei übergeordneten Seiten für Editoren mit beschränktem Zugriff behoben

CMS Made Simple 1.6.4 kann wie gewohnt von dieser Seite heruntergeladen werden:
http://dev.cmsmadesimple.org/project/files/6

Linux: tar.gz: tar.bz2: Fehlerhafte Archive reparieren

Es ist der Alptraum jedes Systemadministrators: Man hat ein Backup von wichtigen Dateien erstellt, will diese später wieder entpacken – aber das tar-Archiv ist aus unerfindlichen Gründen defekt …

Früher hatte ich dieses Problem mehrfach, als ich Backups meiner Daten erstellte und diese danach nicht mehr lesen konnte.
Auf der Suche nach einer Hilfe beim reparieren eines Archivs bin ich auf diese Seite gestossen:

http://oss.bestsolution.at/bash/repair_tar_archives.html.de

Bash Script zum erstellen eines File und MySQL Backup mit FTP Upload

Update 21.07.2009
– mysqldump angepasst, damit die dumps auch mit phpMyAdmin eingelesen werden können.
– durchgängige Benennung der Dateien (Zeitformat überall gleich)
– Problembehebung Zeitformat (19:22:20 hat zumindest Mac auf einem smb Share nicht gerne)
– DB information_schema wird nicht mehr mitgesichert
– Vor jeder File Erstellung wird die Zeit neu eingelesen. Dadurch hat man die genaue Übersicht des Backupzeitpunkts

Update 30.06.2009 – INCFILE Pfad angepasst. Nun wird das tar-inc-backup.dat File sicher im gleichen Ordner wie das Script abgelegt.

Gestern habe ich das für mich ultimative Script zum erstellen eines Backup via Bash Script entdeckt.


#!/bin/sh
# Website + MySQL backup script
# Full backup day - Sun (rest of the day do incremental backup)
# Copyright (c) 2005-2006 nixCraft
# This script is licensed under GNU GPL version 2.0 or above
# Modified June 2009 by BlatterTech Informatik www.blattertech.ch
#
# Restore Database Backup
# gunzip mybackup.sql.gzip
# mysql -u USER -p dbname < mybackup.sql # # Restore Files # You need to restore the last full backup first ($FULLBACKUP day) # followed by each of the subsequent incremental backups to the # present day in the correct order. # # --------------------------------------------------------------------- ### Backp Name ### BACKUPSET="Backup of Website xy" SHORTNAME="websitexy" ### System Setup ### DIRS="/home/path/to/files /home/path/to/other/files" BACKUP=/tmp/backup.$$ NOW=$(date +"%Y%m%d") SCRIPTPATH=`dirname $0` INCFILE="$SCRIPTPATH/$SHORTNAME-tar-inc-backup.dat" DAY=$(date +"%u") # 1=Mon, 2=Tue, 3=Wed, .. FULLBACKUP="2" ### MySQL Setup ### MUSER="mysqluser" MPASS="mysqlpassword" MHOST="localhost" MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" GZIP="$(which gzip)" ### FTP server Setup ### FTPD="/path/on/ftpserver" FTPU="ftpuser" FTPP="ftppassword" FTPS="your.ftpserver.com" NCFTP="$(which ncftpput)" ### Other stuff ### EMAILID="your@email.com" ### Start Backup for file system ### [ ! -d $BACKUP ] && mkdir -p $BACKUP || : ### See if we want to make a full backup ### i=$(date +"%Hh%Mm%Ss") if [ ! -f $INCFILE ]; then FTPD="$FTPD/full" FILE="$SHORTNAME-files-full-$NOW-$i.tar.gz" tar -g $INCFILE -zcvf $BACKUP/$FILE $DIRS elif [ "$DAY" == "$FULLBACKUP" ]; then FTPD="$FTPD/full" FILE="$SHORTNAME-files-full-$NOW-$i.tar.gz" tar -zcvf $BACKUP/$FILE $DIRS else FTPD="$FTPD/incremental" FILE="$SHORTNAME-files-i-$NOW-$i.tar.gz" tar -g $INCFILE -zcvf $BACKUP/$FILE $DIRS fi ### Start MySQL Backup ### # Get all databases name DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" for db in $DBS do if [ "$db" == "information_schema" ]; then continue fi i=$(date +"%Hh%Mm%Ss") FILE=$BACKUP/$SHORTNAME-mysql-$db.$NOW-$i.sql.gz $MYSQLDUMP -Q --opt --compact -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
# FILE=$BACKUP/$SHORTNAME-mysql-$db.$NOW-$(date +"%T").sql.bz2
# $MYSQLDUMP -Q --opt --compact -u $MUSER -h $MHOST -p$MPASS $db | bzip2 -cq9 > $FILE
done

i=$(date +"%Hh%Mm%Ss")
### Make md5 Sum ###
$(which md5sum) -b $BACKUP/* >$BACKUP/$SHORTNAME-backup$NOW-$i.md5

### Dump backup using FTP ###
#Start FTP backup using ncftp
#If ncftp not aviable, use ftp:
#ftp -inv $FTPS <$T
echo "Hostname: $(hostname)" >>$T
echo "Backup Set: $BACKUPSET"
echo "Backup failed" >>$T
mail -s "BACKUP FAILED" "$EMAILID" <$T rm -f $T fi

Das Script habe ich hier gefunden.

Auf der selben Seite gibt es einen Generator um das Script mit den eigenen Parametern abzufüllen.
http://bash.cyberciti.biz/backup/wizard-ftp-script.php

Ich habe das Script noch ein wenig aufgebohrt. So habe ich die Möglichkeit geschaffen beim Fehlermail mitzugeben welches Backup den Fehler verursacht hat. Zudem habe ich die Bezeichnung des Backuptages auf die Tagesnummer geändert. Somit ist das Script nicht von der Systemsprache abhängig.
Zu guter letzt, habe ich eine Prüfung eingebaut ob das tar.dat File vorhanden ist. Dieses wird für das incrementelle Backup verwendet. Falls dieses nicht existiert, wird ein Fullbackup gemacht.

Kunden von CeviNet können das Script einfach in Ihrem Webspace als Cronjob einbinden:

Cronjob einrichten

Cronjob einrichten