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

freiesMagazin 10/2009 erschienen

Heute ist die Oktoberausgabe von freiesMagazin erschienen.

Inhalte der Ausgabe 10/2009 sind

  • Grundbegriffe der Virtualisierung
  • Gefahren von Fremdquellen am Beispiel PPA
  • Der September im Kernel-Rückblick
  • Java, Teil 1 – Einführung in eine moderne Sprache
  • Ordnung ins Chaos mit Org-Mode
  • Kurztipp: Suchen und Finden mit Vim
  • grep – Eine kleine Einführung
  • Von der Schaltung zur fertigen Platine mit EAGLE
  • 41. DANTE-Mitgliedertagung in Esslingen
  • Veranstaltungskalender und Leserbriefe

Bash Scripte kompilieren

Auf der Suche nach einer Möglichkeit Bash Scripte zu kompilieren bin ich auf SHC gestossen. Man kann sich fragen warum ein bash Script kompiliert werden sollte: Ganz einfach, so kann nicht jeder den Inhalt lesen, was vorallem interessant ist, wenn das bash Script Passwörter enthält.

SHC wurde von Francisco Javier Rosales García entwickelt. Installiert wird SHC aus dem Repository oder kann direkt beim Entwickler heruntergeladen werden.


foobar:/home/camma# apt-get install shc

Das Bash Script kompiliert man so:
Zuerst muss ein Script erstellt werden:
linux:/home/camma# echo "#!/bin/sh" > meinbashscript.sh
linux:/home/camma# echo "echo \"Hallo Welt, ich bin kompiliert\" " > meinbashscript.sh

Nun muss getestet werden ob’s auch funktioniert.

linux:/home/camma# sh meinbashscript.sh
Hallo Welt, ich bin kompiliert

Nun kann das Script kompiliert werden:

linux:/home/camma# shc -f meinbashscript.sh

Kommt hier eine Fehlermeldung kann es sein, dass auf der Zeile 1 kein #!/bin/sh steht. Nun kann kontrolliert werden, ob das Script auch funktioniert.

linux:/home/camma# ./meinbashscript.sh.x
Hallo Welt, ich bin kompiliert

Es funktioniert. Der Compiler hängt jeweils am Schluss ein .x an den Dateinamen.

freiesMagazin 08/2009 erschienen

Gestern ist die Augustausgabe von freiesMagazin erschienen.

Inhalte der Ausgabe 08/2009 sind

  • Kurze Vorstellung der elften Fedora-Ausgabe
  • ZevenOS meets Debian Lenny
  • Der Juli im Kernel-Rückblick
  • Audio und Video in Firefox 3.5 „Shiretoko“
  • Über magische Tasten aus der Klemme – SysRQs
  • Magazinerstellung mit LaTeX – Das Layout
  • PDF-Betrachter im Test
  • Auf Klick folgt Schnitt: PDF Chain
  • VNUML – Ein Netzwerksimulator mit User-Mode-Linux
  • Panoramabilder erstellen mit hugin
  • NaturalDocs – Quelltexte natürlich dokumentieren
  • Linuxtag – Erlebte Community
  • freiesMagazin sucht Unterstützung!
  • Veranstaltungskalender

Die Augustausgabe kann hier heruntergeladen werden.

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

Linux: Exchange: Zarafa Community Edition

Vor längerem habe ich mich intensiv mit dem Thema eines eigenen Exchange-Servers auseinander gesetzt. Mircosoft ist hier für eine Lösung für 2 Personen eindeutig zu teuer. So machte ich mich auf die Suche im Linux Lager. Zwei Anbieter kamen dabei in die engere Wahl: Zarafa sowie Scalix. Zarafa begeisterte mich durch grössere Outlook Kompatibilität, war aber nicht günstig zu haben.

So habe ich ca 1/2 Jahr parallel zum normalen E-Mailverkehr einen Scalix-Server am laufen.

Folgende Gründe hielten mich jedoch danach davon ab, diese Lösung weiter zu benutzen: Stromverbrauch, Instabilität von Ubuntu auf dem alten Laptop auf dem das ganze lief sowie die Zeit dich ich für eine gute Wartung hätte investieren müssen. So bin ich nun bei einem Hosted Exchange gelandet.

Zeit kurzem ist nun vom Groupware-Server Zarafa,die Version 6.30 verfügbar. Seit September 2008 ist der Zarafa-Server als freie Software unter der GNU Affero GPLv3 verfügbar.

Das Community Paket wird für diverse Distributionen zum Download angeboten. Ich muss ehrlich sagen, es würde mich schon ein wenig reizen, einen eigenen Exchange mit Zarafa zu bauen.

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

Mac: sudo timeout verlängern

Wer Ubuntu kennt, wird mit sudo bereits einige Freundschaften geschlossen haben. Sudo wird dazu benutzt um auf dem Terminal für kurze Zeit root Rechte zu erhalten. Mac OS X kennt den sudo Befehl genauso. Nach der Eingabe von sudo bleiben die root Rechte für eine gewisse Zeit gespeichert.

Der Standard-Timeout nachdem eine erneute Eingabe des Passwortes erfolgen muss ist recht niedrig angesetzt und kann je nach Situation teilweise etwas nervig sein. Er lässt sich jedoch ganz einfach höher setzen. Dazu wird über das Terminal die Datei /etc/sudoers in einem Editor nach Wahl geöffnet:

$ sudo nano /etc/sudoers

Ich benutze dazu meist nano, manchmal auf vi. Um das Timeout zu ändern, muss folgende Zeile am Schluss der Datei eingefügt werden:

Defaults:user timestamp_timeout=7200

‚user‘ steht für den Systembenutzername. Dieser wird jeweils im Terminal vor dem $-Zeichen angezeigt. Die Zahl “7200″ gibt die Zeit in Sekunden für den Timeout an. So sind dies in diesem Fall 2h.

Ist die Arbeit als root beendet, kann die aktuelle sudo-Sitzung mittels sudo -k oder sudo -K beendet werden.

Ulteo veröffentlicht Open Virtual Desktop 1.0

Gestern auf pro-linux gelesen.

Open Virtual Desktop

Open Virtual Desktop

Ulteo hat den Open Virtual Desktop veröffentlicht. Diese Lösung ist eine Server-Clientlösung bei der auf der Clientseite nur ein Java fähiger Browser exisitieren muss. Auf der Server Seite braucht es einen Sitzungsserver sowie einen oder mehrere Anwendungsserver. Dabei können auch Linux und Windows Server kombiniert werden.

Weitere Informationen im pro-linux Artikel.

Portable Ubuntu auf Windows

Wer Ubuntu gleichzeitig mit Windows und ohne Administratorenrechte ausführen will, der wird sich für Portable Ubuntu interessieren.

Auf Basis von CoLinux wird ein Image von Ubuntu “Hardy Heron” 8.04 geladen, dass dann über ein internes Netzwerk Anwendungen per Xming auf dem Windows-Desktop darstellt.

Die Installation von Portable Ubuntu beschränkt sich auf den Download des rund 450 MB großen Archives. Dieses kann auch auf einen USB Stick gespeichert werden und danach auf einem x-beliebigen PC eingesetzt werden. Durch einen Klick auf die Datei run_portable_ubuntu.bat wird Portable Ubuntu gestartet. Zuerst wird das Linux im Windows Terminal geladen. Dabei müssen bei der ersten Ausführung eine Reihe von Netzwerkzugriffen über die Windows Firewall erlaubt werden. Anschliessend erscheint am oberen Bildschirmrand ein Gnome Panel.

Nun kann man wie mit einem normalen Ubuntu arbeiten. Man kann die deutschen Sprachpakete nachinstallieren und wie gewohnt über die Paketverwaltung weitere Programme installieren. Um sich sich gegenüber dem System zu authorisieren muss man den von Haus auf angelegten Benutzer pubuntu mit dem Passwort 123456 verwenden.

Mehrere PrintScreens dazu finden sich hier.