Mai
5.

Raspberry Pi und Smart Metering

Fresh raspberriesIn unseren Beiträgen zum auslesen der Daten eines Wechselrichters und zweier Stromzähler ist bisher ein Netbook zum Einsatz gekommen. Leider hat sich die Hardware, im Zusammenspiel mit Windows XP, als sehr unzuverlässig erwiesen.Da auch der Stromverbrauch eines Netbook nicht zu vernachlässigen ist, haben wir uns für eine neue Lösung entschieden: Ein Raspberry Pi und Linux.

Warum gerade der “Raspberry Pi”, wo es doch auch andere, vielleicht bessere Hardware gibt?
Die wichtigsten Gründe für uns waren die große Community zum RPi und, vor allen Dingen, unterstützt die Hardware und das aktuelle Raspbian “Wheezy” die Profilic-Chips unserer USB2Serial Wandler für die seriellen Optokoppler.

Hier unsere kleine Einkaufsliste:

Die Scripts zum auslesen der Stromzähler haben wir von PHP auf Perl umgestellt. Dazu aber in einem späteren Beitrag mehr …

 

photo by: photofarmer
Mai
6.

Googles norwegischer Käse

Nein, das ist kein Scherz. Jarlsberg ist der Name eines Webservers von Google, der sicherheitsmäßig löchrig ist, wie ein Jarlsberg-Käse.

Sinn des ganzen ist es, die möglichen Sicherheitslöcher eines Servers, am lebenden Objekt, testen zu könne. Der Server steht für jeden Nutzer in einer eigenen Instanz zur Verfügung: Start Jarlsberg.

Es gibt auch einen Leitfaden, der alle möglichen Schwachstellen aufzeigt. Wer möchte, dann sich den Server auch downloaden, um alles lokal zu testen.

Viel Spaß beim hacken …

Sep
16.

Acer Revo R3600 als Server: Bacula Backup – Teil 3

Hier also nun die Beschreibung der bacula-dir.conf mit den einzelnen Sections:

1. Director

Diese Section definiert den Dienst selbst. Wie gehabt müssen der Name und der Secret-Key angepasst werden. Weiterhin sind hier Angaben zur Datenbank und Arbeitsverzeichnissen enthalten.

2. Console

Auch hier widerum Name und Secret-Key …

3. Client

Hier werden die einzelnen Clients definiert, die gesichert werden sollen. Diese Section kann mehrmals vorkommen (für jeden Client eine).
Bei jeder Installation eines Clients wird eine Datei computername-fd.conf erzeugt, deren Inhalt an diese Stelle kommt.

4. Storage

Definition des Storage Devices, zur computername-sd.conf.

5. Catalog

Definition des Datenbankkatalogs. Wir bleiben beim Standard MyCatalog.

6. Schedule

Hier kommen nun die unterschiedlichen Sicherungszeiten, die einzeln definiert werden können.

7. JobDefs

Jobdefinitionen sind Vorgaben für Jobs.

8. Pool

Angaben für den Medienpool.

9. Job

Der eigentliche Sicherungsjob. Hier wird angegeben, was, wann, wo gesichert werden soll.

10. FileSet

Die Angabe, was gesichert werden soll. Wichtig ist hier Enable VSS. Sollen Dateien gesichert werden, die im Standard geöffnet sind (z.B. Outlook-.pst-Files) kann hier mit Volumen-Schatten-Kopien gearbeitet werden.

11. Messages

Angaben darüber, wer, wann, was als Meldung per Mail versendet. Hier sind der Mailserver und die Adresse zu konfigurieren.

Wie ihr seht, sind die einzelnen Sections recht umfangreich und auf den ersten Blick verwirrend, hat man aber den Aufbau und die Abhängigkeiten erst einmal verstanden, werdet ihr feststellen, das Bacula sehr, sehr flexibel ist.

Zum Abschluss noch drei kleine Tipps:

  1. Nicht vergessen in der Firewall die Ports zu öffnen
  2. An der Konsole kann über den Befehl “reload” die bacula-dir.conf nach Änderungen neu geladen werden
  3. Vor der ersten Sicherung muss jedes Backupfile per “label” gelabelt werden. Bacula sendet hierzu ein Mail!

Und wie immer: Bei Fragen oder Unklarheiten sind wir über die Kommentarfunktion erreichbar!

Sep
14.

Acer Revo R3600 als Server: Bacula Backup – Teil 2

Nachdem wir in Teil 1 unseres kleinen Tutorials Bacula installiert haben, wollen wir nun alles weitere konfigurieren.

1. SQLite-datenbank anlegen

Zuerst muss eine SQLite-Datenbank angelegt werden. Hierzu gibt es ein CMD-File, in welchem die Pfadangabe angepasst werden muss:

H:\Bacula\bin\create_database.cmd

Zeile 5:

ECHO .databases | “H:\Bacula\bin\sqlite3″ %* “H:\Bacula\Work\bacula.db”

Nach dem speichern der Änderung kann das Batch-File aufgerufen werden und die Datenbank wird angelegt. Nun kann der Directory-Service gestartet werden.
Im Pfad Bacula\bin finden sich noch weitere CMD-Files, in denen die Pfadangaben zur Installation überarbeitet werden sollten.

2. Konfiguration der Services

bconsole.conf und bwx-console.conf

#
# Bacula User Agent (or Console) Configuration File
#

Director {
Name = computername-dir
DIRport = 9101
address = dns-adresse oder ip
Password = “secret-key”
}

Name: Name wie im Setup angegeben. Muss nicht geändert werden
address: Adresse im TCP/IP-Netzwerk
Password: secret-key, wie im Setup angegeben. Muss nicht geändert werden

bacula-sd.conf

Storage {
Name = computername-sd
SDPort = 9103
WorkingDirectory = “H:\\Bacula\\Work”
Pid Directory = “H:\\Bacula\\Work”
Maximum Concurrent Jobs = 10
}

Director {
Name = computername-dir
Password = “secret-key”
}
Director {
Name = computername-mon
Password = “secret-key”
Monitor = yes
}

Device {
Name = FileStorage
Media Type = File
Archive Device = “H:\\Backup”
LabelMedia = yes
Random Access = Yes
AutomaticMount = yes
RemovableMedia = no
AlwaysOpen = no
}
Messages {
Name = Standard
director = computername-dir = all
}

Name / director: Name wie im Setup angegeben. Muss nicht geändert werden
Password: secret-key, wie im Setup angegeben. Muss nicht geändert werden
bacula-fd.conf

#
# Default  Bacula File Daemon Configuration file
#

#
# “Global” File daemon configuration specifications
#
FileDaemon {
Name = computername-fd
FDport = 9102
WorkingDirectory = “H:\\Bacula\\Work”
Pid Directory = “H:\\Bacula\\Work”
Maximum Concurrent Jobs = 5
}

#
# List Directors who are permitted to contact this File daemon
#
Director {
Name = computername-dir
Password = “@client_password@”
}

#
# Restricted Director, used by tray-monitor to get the
#   status of the file daemon
#
Director {
Name = computername-mon
Password = “secret-key”
Monitor = yes
}

# Send all messages except skipped files back to Director
Messages {
Name = Standard
director = computername-dir = all, !skipped, !restored
}

Name / director: Name wie im Setup angegeben. Muss nicht geändert werden
Password: secret-key, wie im Setup angegeben. Muss nicht geändert werden

bacula-dir.conf

#
# Default Bacula Director Configuration file
#
#  The only thing that MUST be changed is to add one or more
#   file or directory names in the Include directive of the
#   FileSet resource.
#

Director {
Name = computername-dir
DIRport = 9101
QueryFile = “H:\\Bacula\\bin\\query.sql”
WorkingDirectory = “H:\\Bacula\\Work”
PidDirectory = “H:\\Bacula\\Work”
Maximum Concurrent Jobs = 1
Password = “secret-key”
Messages = Daemon
}

#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
Name = computername-mon
Password = “secret-key”
CommandACL = status, .status
}

# Client (File Services) to backup
Client {
Name = computername-fd
Address = ip / dns-adress
FDPort = 9102
Catalog = MyCatalog
Password = “@client_password@”      # password for FileDaemon
File Retention = 30 days            # 30 days
Job Retention = 6 months            # six months
AutoPrune = yes                     # Prune expired Jobs/Files
}

# Definition of file storage device
Storage {
Name = File
# Do not use “localhost” here
Address = dns-name
SDPort = 9103
Password = “secret-key”
Device = FileStorage
Media Type = File
}

# Generic catalog service
Catalog {
Name = MyCatalog
dbname = bacula; user = bacula; password = “”
}

#
# When to do the backups, full backup on first sunday of the month,
#  differential (i.e. incremental since full) every other sunday,
#  and incremental backups other days
Schedule {
Name = “WeeklyCycle”
Run = Level = Full sun at 20:00
Run = Level = Differential mon-sat at 20:00
}
Schedule {
Name = “WeeklyCycle-Daytime”
Run = Level = Full sun at 17:00
Run = Level = Differential mon-sat at 17:00
}
Schedule {
Name = “MonthlyCycle”
Run = Level = Full 1st sun at 20:15
Run = Level = Differential weekly sun at 20:15
}

###################################################################################
#
# computername
#
JobDefs {
Name = “computername-Std”
Type = Backup
Level = Differential
Client = computername-fd
Storage = File
Messages = Standard
Priority = 10
}

#
# computername – Users
#
Pool {
Name = computername-Users
Pool Type = Backup
Recycle = yes                       # Bacula can automatically recycle Volumes
AutoPrune = yes                     # Prune expired volumes
Volume Retention = 365 days         # one year
}
Job {
Name = “computername – Users”
Pool = computername-Users
JobDefs = “computername-Std”
FileSet = “computername – Users”
Schedule = “WeeklyCycle-Daytime”
Write Bootstrap = “H:\\Bacula\\Work\\computername – Users.bsr”
}
FileSet {
Name = “computername – Users”
Enable VSS = yes
Include {
Options {
signature = MD5
ignore case = yes
compression=GZIP
}
File = “C:/Users”
}
}

# Reasonable message delivery — send most everything to email address
#  and to the console
Messages {
Name = Standard
#
# NOTE! If you send to two email or more email addresses, you will need
#  to replace the %r in the from field (-f part) with a single valid
#  email address in both the mailcommand and the operatorcommand.
#
mailcommand = “\”H:\\Bacula\\bin\\bsmtp\” -h my.mailserver.com -f \”\(Bacula\) %r\” -s \”Bacula: %t %e of %c %l\” %r”
operatorcommand = “\”H:\\Bacula\\bin\\bsmtp\” -h my.mailserver.com -f \”\(Bacula\) %r\” -s \”Bacula: Intervention needed for %j\” %r”
mail = my.adress@domain.com = all, !skipped
operator = my.adress@domain.com = mount
console = all, !skipped, !saved
#
# WARNING! the following will create a file that you must cycle from
#          time to time as it will grow indefinitely. However, it will
#          also keep all your messages if they scroll off the console.
#
append = “H:\\Bacula\\Work\\log” = all, !skipped
}

#
# Message delivery for daemon messages (no job).
Messages {
Name = Daemon
mailcommand = “\”H:\\Bacula\\bin\\bsmtp\” -h my.mailserver.com -f \”\(Bacula\) %r\” -s \”Bacula daemon message\” %r”
mail = my.adress@domain.com = all, !skipped
console = all, !skipped, !saved
append = “H:\\Bacula\\Work\\log” = all, !skipped
}

Das Konfig-File bacula-dir.conf ist, wie auch der entsprechende Daemon, sind die “Steuerzentrale” von Bacula. Aus diesem Grund gehen wir ein wenig genauer auf die einzelnen Sections ein. Basis ist unsere Beispieldatei, die mit einigen Anpassungen lauffähig ist und die Userverzeichnisse auf C:\Users unter Win Vista sichert.
Die Erläuterungen hierzu folgen in Teil 3 unseres kleinen Tutorials …

</blockquote>
Sep
9.

Acer Revo R3600 als Server: Bacula Backup – Teil 1

Nach einer längeren Pause wollen wir uns einmal wieder um unseren Revo und seine Funktion als Server kümmern. Nun wollen wir eine Backup-Software für unser kleines Netzwerk kümmern. Wie immer nutzen wir Software aus dem Open-Source-Pool: Bacula®.
Bacula ist ein netzwerkfähiges Open Source Datensicherungsprogramm mit Client-/Server-Architektur  für heterogene Netzwerke.

Im wesentlichen besteht Bacula aus drei Services / Diensten:

  1. Bacula-dir: Der Directory-Dienst zur Verwaltung der Backups
  2. Bacula-sd: Der Storage-Daemon schreibt / liest die Sicherungsdaten vom / aufs Medium
  3. Bacula-fd: Der File-Daemon bzw. Client, der die Daten an den Storage-Daemon liefert.

Unsere Voraussetzungen: Raid-Festplattensystem als Sicherungsmedium (in unserer Konfiguration auf den Laufwerksbuchstben H: gemappt).

Ziel dieses Tutorials ist es, die Programm- und Konfigurationsdaten, sowie die Backupdaten auf das Raid-System zu legen. Hintergrund: Eigentlich werden die Programmdaten unter C:\Program Files\Bacula und die Konf-Daten unter “C:\Users\All Users\Bacula” abgelegt und müssen entsprechend mitgesichert werden. Um dies zu vermeiden, wird alles auf H: gelegt.

In diesem Teil kümmern wir uns um die eigentliche Installation. In den nächsten Teilen folgt die Konfiguration und der Betrieb.

1. Downloaden und starten des Setup

Laden des Windows-Setup von http://bacula.org/de/?page=downloads und aufrufen des Setup

Bacula Setup Bild 1

Bacula Setup Bild 2

Bacula Setup Bild 3

  • Den Installations-Typ “Custom” auswählen, damit der Server installiert werden kann

Bacula Setup Bild 4

  • “Storage Service” und “Director Service” aktivieren

Bacula Setup Bild 5

  • “Name” für den Storageserver prüfen. Normalerweise ist hier nichts zu ändern
  • “Start after install” deaktivieren

Bacula Setup Bild 6

  • “Name” für den Director und den Monitor prüfen. Auch hier muss nichts geändert werden
  • Mail-Server und E-Mail-Adresse für Nachrichten anpassen
  • “Start after install” deaktivieren

2. Installation anpassen

  • Das Verzeichnis “C:\Program Files\Bacula” auf Laufwerk H:\ verschieben
  • Das Verzeichnis “C:\Users\All Users\Bacula” auf Laufwerk H:\ verschieben

3. Services anpassen

Die Dienste müssen über die Registry angepasst werden. Änderungen erfolgen auf eigene Gefahr. Bei unsachgemässer Handhabung kann das Betriebsystem unbrauchbar werden.

Bacula-dir:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Bacula-dir

Schlüssel “ImagePath” ändern auf:

“H:\Bacula\bin\bacula-dir.exe” /service  -c “H:\Bacula\bacula-dir.conf”

Bacula-fd:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Bacula-fd

Schlüssel “ImagePath” ändern auf:

“H:\Bacula\bin\bacula-fd.exe” /service  -c “H:\Bacula\bacula-fd.conf”

Bacula-sd:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Bacula-sd

Schlüssel “ImagePath” ändern auf:

“H:\Bacula\bin\bacula-sd.exe” /service  -c “H:\Bacula\bacula-sd.conf”

Neustart des Rechners!

Das soll es für den 1. Teil gewesen sein.
Kurzer Hinweis: Da wir die SQLite-Datenbank für den Directory-Service noch nicht eingerichtet haben, startet “Bacula-dir” noch nicht ordnungsgemäß!