Installation vom Backup Exec Remote Agent für Linux (Ralus)

Wie hier schon das eine oder andere mal erwähnt haben wir im Geschäft einige Linux Server in einer virtuellen Umgebung. Bisher habe ich hier immer die ganze virtuelle Maschine gesichert, heute habe ich aber mal einen Versuch mit dem Symantec BE 2010 Client unter Linux gemacht und das scheint gut zu funktionieren.
Vor der Installation empfehle ich, die libstdc++5 zu installieren, da diese meistens nötig ist, damit der Client sauber läuft. Für Ubuntu und 64 bit gibts die Installationsdatei hier.
Installiert wird die Datei danach mit dem folgenden Befehl:
dpkg -i libstdc++5_3.3.6-18_amd64.deb

Der Linux Client vom BE 2010 heisst Ralus und ist auf der Installations-CD vom BE im Ordner LinuxUnixMac zu finden. Die Installationsdatei kopiert man nun auf den Linux-Server und entpackt sie idealerweise in einen neuen Ordner:
root@srvWEB01:~# mkdir ralus
root@srvWEB01:~# mv RALUS_RMALS_RAMS-4164.5.tar.gz ralus/
root@srvWEB01:~# cd ralus/
root@srvWEB01:~/ralus# tar -xvzf RALUS_RMALS_RAMS-4164.5.tar.gz

Nun führt man die Datei installralus aus.
root@srvWEB01:~/ralus# ./installralus

Nun folgt man einfach dem Installer. Man wird gefragt, auf welchen Servern man den Client installieren will und auch auf welchem Server (oder welchen Servern) das BE installiert ist. Wichtig ist halt, dass diese Adresse korrekt ist und der Server den Hostnamen auch auflösen kann.
Ist der Installer erfolgreich durchgelaufen kann man entweder den Server neustart oder einfach den Service starten:
root@srvWEB01:~/ralus# /etc/init.d/VRTSralus.init start

Im BE hat man nun bei den Auswahllisten unter "Favorite Resources -> Linux/Unix Servers" den Server drin und kann nach Eingabe der Benutzerdaten bequem die zu sichernden Ordner auswählen.
http://images.t-error.ch/blog/1462/ralus.jpg


Die langzeit Erfahrung mit diesem Service fehlt mir noch, aber das erste Backup ist sauber durchgelaufen. Bei Symantec gibts dazu übrigens noch eine englischsprachige Installationsanleitung.

VMware Tools unter Ubuntu installieren

Wer seine Server mit VMware virtualisiert hat, installiert auf den virtuellen Maschinen idealerweise die VMware-Tools. Auf Windows Maschinen ist das sehr simpel und auch auf Linux-Servern geht das recht einfach.
Dazu muss man zuerst im vSphere Client die Installation der VMware-Tools anstossen, damit dem Server die CD zur Verfügung gestellt wird.
http://images.t-error.ch/blog/1456/vmware_tools_01.jpg


Nun kann man das CD-Laufwerk mounten und die Installationsdatei (für Ubuntu die .tar.gz Datei) in einen anderen Ordner kopieren und das Laufwerk wieder unmounten.
root@srvWEB02:~# mount /dev/cdrom /media/cdrom/
root@srvWEB02:~# cp /media/cdrom/VMwareTools-4.0.0-261974.tar.gz /tmp
root@srvWEB02:/tmp# umount /media/cdrom/

Als nächstes wechselt man in den anderen Ordner und entpackt die Installationsdatei.
root@srvWEB02:~# cd /tmp/
root@srvWEB02:/tmp# tar -xvzf VMwareTools-4.0.0-261974.tar.gz

Jetzt ruft man die Installationsdatei auf und arbeitet sich durch alle Fragen durch. Bei mir haben alle Pfade schon gestimmt und ich musste nichts anpassen
root@srvWEB02:/tmp# vmware-tools-distrib/vmware-install.pl

Nachdem die Installation durchgelaufen ist, starten man den virtuellen Server noch neu und Voila: Die Tools sind installiert:
http://images.t-error.ch/blog/1456/vmware_tools_02.jpg

Knistern unter Linux

Seit meinem WK hatte ich mit meinem Linux das Problem, dass der Ton nicht mehr funktionierte. Anstelle von Musik kam nur noch ein komisches Knistert. Im Ubuntu-Forum habe ich nun die Lösung gefunden. In der Shell das folgende eingeben und den Computer danach noch neustarten und schon gehts wieder.
sudo /etc/init.d/alsa-utils reset

bittorrent unter Linux

Ich benutze regelmässig Bittorrent um grössere Dateien herunter zu laden. Nur meist nervt es mich, wenn der Bittorrent-Client dann die ganze Bandbreite benutzt, wenn ich surfen will, oder auch wenn ich den Computer laufen lassen muss, nur damit eine Datei herunter geladen werden kann. Für etwas habe ich ja meine alte Linux-Box, die diese Aufgabe ganz gut übernehmen kann. Schliesslich gibt es einen guten Bittorrent-Client für die Shell, welcher im Zusammenspiel mit screen sehr simpel zu bedienen ist.
Als erstes muss man dazu screen und bittorrent auf der Linux-Box installieren:
apt-get install screen
apt-get install bittorrent

Aus Sicherheitsgründen habe ich extra einen Benutzer namens bittorrent erstellt, unter welchem dann der Prozess läuft:
useradd -g users -d /home/bittorrent -s /bin/bash bittorrent

screen

screen ist ein praktisches Tool mit welchem man Programme starten kann, ohne dass sie bei eine Disconnect (ssh, telnet usw.) sofort beendet werden. Das heisst man startet mit screen eine Terminal-Session, startet darin das Programm (in diesem Fall bittorrent) und kann dann die Verbindung wieder trennen, ohne das das Programm beendet wird.
Erstellen tut man eine solche Session mit dem Befehl screen. Nun kann man in dieser Session ein Programm starten und die Session danach mit Ctrl-A-D wieder beenden. Mit screen -r wird eine bestehende Session wieder aufgerufen.
Das bedeutet, dass man am Anfang mit screen eine neue Session erstellt, darin den Bittorrent-Client startet und danach mit Ctrl-A-D die Session wieder beendet. Wenn man nun nach dem Status sehen will, öffnet man die bestehende Session mit screen -r wieder.
Allerdings ist screen nicht sonderlich einfach zu verstehen, aber darauf wird man im man-File auch hingewiesen:
A weird imagination is most useful to gain full advantage of all the features.

bittorrent

Nun zum eigentlichen Bittorrent-Client:
Ich verwende btlaunchmanycurses damit ist es möglich mehrere Downloads gleichzeitig am laufen zu haben und diese werden auch noch "schön" dargestellt. btmanycurses erwartet als Parameter einen bestimmen Ordner und überwacht diesen. Sobald man in diesem Ordner ein torrent abspeichert, wird das erkannt und heruntergeladen. Die heruntergeladenen Daten werden auch in diesem Ordner abgelegt. Das heisst man kann die torrent-Datei in diesen Ordner speichern und muss dann nur noch warten bis der Download komplett ist. Ich habe mir ein kleines Script geschrieben welches den Client mit den nötigen Parametern startet. Aber das ist reine Bequemlichkeit.
#!/bin/bash
/usr/bin/btlaunchmanycurses /home/bittorrent/

Schlussendlich muss man sich nur mit dem Benutzer bittorrent einloggen, dort einmalig mit screen eine Terminal-Session erstellen und darin das Script starten. Wenn der Bittorrent-Client nun läuft kann man die Dateien in den angegebenen Ordner kopieren und sie werden automatisch heruntergeladen. Den Status sieht man mit screen -r. In verbindung mit einem Samba, FTP usw. Server ist das eine sehr bequeme und einfache Art um torrents herunter zu laden.

Und so sieht das dann aus:
http://images.t-error.ch/blog/1073/bittorrent.jpg


Wichtig ist auch noch, dass man die TCP Ports 6881-9 auf den entsprechenden Computer weiterleitet.

Zusammenfassung

Wenn nun die benötigte Software installiert, der Benutzer und das Script erstellt wurden kann man folgendermassen vorgehen
erstmaliges Starten des Clients
screen
./bittorrent.sh
Ctrl-A-D
Status überprüfen
screen -r
Ctrl-A-D

Mails mit Attachment aus der Shell versenden

Mit einem kleinen Script und einem Cronjob mache ich im Geschäft täglich ein Backup meiner mySQL Datenbank und sende es per Mail an meine GMail-Adresse. Dort habe ich genug Platz und kann so auf ein tägliches Backup zurückgreiffen.
Wie man ein Backup einer Datenbank macht habe ich ja bereits beschrieben. Das Versenden der Datei erledigt bei mir Mutt schon seit einiger Zeit sehr zuverlässig:
echo "Text" | mutt -s "Betreff" -a filename.zip empfaenger@mail.ch

Lösung von CIFS VFS: server not responding

Seitdem ich bei meinem neuen Notebook unter Ubuntu 8.10 meine SMB-Shares wieder in der fstab eingetragen hatte, kam jedes mal beim herunterfahren die folgende Fehlermeldung, welche den Computer für etwa eine Minute blockierte.
CIFS VFS: server not responding
CIFS VFS: No response for cmd 50 mid 155


Nichts wirklich tragisches, aber doch nervig genug um der Sache nachzugehen. Glücklicherweise war ich nicht der einzige mit dem Problem. Das Problem ist, dass die SMB-Shares mit dem CIFS Daemon und nicht über den Kernel gemountet werden. Beim herunterfahren wird dann zuerst der Daemon gestoppt und danach sollen die Shares getrennt werden, was dann natürlich nicht mehr funktioniert. Die Lösung ist recht simpel, ein Script, welches die Shares trennt, bevor der Daemon gestoppt wird. Im Ubuntu-Forum findet man da eine gut funktionierende Lösung. Allerdings muss man sich kurz registrieren, damit man die Datei beziehen kann. Bei mir ist die Fehlermeldung nun verschwunden.

Dualscreen unter Ubuntu 8.10

Als ich vor etwa eineinhalb Jahren zum ersten mal auf dem Notebook Windows deinstallierte und Ubuntu installierte versuchte ich Ubuntu so zu konfigurieren, dass ich meine beiden Bildschirme benutzen konnte. Ich hatte damals Stunden im Internet gesucht, in der xorg.conf geschrieben, den Computer neugestartet usw. Alles ohne Erfolg.
Nun mit dem neuen 8.10: Ein Klick auf System -> Einstellungen -> Bildschirmauflösung, dort den Hacken bei "Bildschirme spiegeln" entfernen. Jetzt nur noch die Bildschirme richtig positionieren, die gewünschte Auflösung einstellen und schnell ab- und wieder anmelden. Und es funktioniert perfekt.
http://images.t-error.ch/blog/916/aufloesung.jpg

Webcam als Überwachungskamera mit Motion

Da mein neues Notebook nun eine integrierte Webcam hat, ich die ab nicht wirklich zum Chatten usw. brauche habe ich mich mich im Internet mal nach alternativen Nutzungsmöglichkeiten ungesehen.
Eine Möglichkeit ist das verwenden der Webcam als Überwachungskamera/Bewegungsmelder. Das Programm Motion kann so konfiguriert werden, dass es sobald sich etwas bewegt einen Film und/oder Bilder macht und diese auf der Festplatte ablegt. Mit einer integrierten Webcam macht das leider wenig Sinn, aber mit einer externen kann man sicher noch "interessante" Dinge anstellen.
Motion ist beim Ubuntu 8.10 schon im Repository dabei und kann so über apt installiert werden.
sudo apt-get install motion

Standardmässig nutzt Motion die Konfigurationsdate motion.conf im Ordner /etc/motion. Diese Datei ist für den Anfang schon recht gut und muss nicht mal gross abgeändert werden. Ich wollte zum Testen, dass Motion bei Bewegungen Fotos macht und diese auf der Festplatte ablegt, einen Film benötige ich nicht.

Darum habe ich in der motion.conf die folgenden Parameter angepasst:

Die Breite und Höhe der Webcam angeben:
width 480
height 320

Damit kein Foto geschossen wird, wenn das Licht ein- oder ausgeschaltet wird.
lightswitch 50

Videoaufnahme deaktivieren
ffmpeg_cap_new off

Den Pfad anpassen
target_dir /home/david/Motion


Gestartet wird nun mit dem Befehl motion in der Shell. Sobald das Programm läuft und man sich vor der Kamera bewegt, werden schon Bilder gespeichert:
[1] File of type 1 saved to: /home/david/Motion/01-20090119210732-00.jpg


Eine weitere praktische Sache ist, dass Motion standardmässig einen HTTP Server auf dem Port 8081 startet, auf dem man die Wercam beobachten kann. Aus Sicherheitsgründen kann man standardmässig aber nur vom Localhost darauf zugreifen.

CD-Image unter Linux mounten

Wenn man unter Linux ein CD-Image (.iso/.cue) usw. hat und darauf zugreifen will, muss man nicht unbedingt eine CD Brennen. Man kann das CD-Image ganz einfach mit dem zusätzlichen Parameter -o loop mounten und hat so den Inhalt in einem Ordner. Das sieht dann zum Beispiel so aus:
mount -o loop image.iso mount/

Linux mit Samba als Windows Domänenmitglied

Im Geschäft hatten wir eine USB-Festplatte, auf welcher wir sehr viele Bilder für die Katalogproduktion hatten. Das funktionierte recht gut, nur war es recht umständlich, da man die Festplatte immer wieder von einem Computer an den anderen anschliessen mussten. Die ideale Lösung ist also, wenn man die Bilder auf einem Server platziert, damit alle Leute darauf zugriff haben. Eine Bedingung ist, dass alle Leute die Bilder ansehen, aber nur bestimmte Mitarbeiter darauf zugreifen können.
Ich habe das ganze mit einem Linux-Server mit Samba gelöst, welcher an die Windows-Domain angeschlossen wurde. Hier nun eine kleine Anleitung, wie das bei mit funktioniert hat.

Ausgangslage

Domain: MUSTER.LOCAL
DNS-Server: 192.168.1.10

Domaincontroller
OS: Windows 2003 SP 2
Hostname: SERV01
IP: 192.168.1.10

Linux Server
OS: Ubuntu Linux 8.04 Server (2.6.24-16-server)
Hostname: SERV02
IP: 192.168.1.11

Software

Installiert werden muss Samba, Winbind und Heimdal. Bei mir in den folgenden Version (direkt über apt)
  • Samba 3.0.28a
  • Winbind 3.0.28a-1ubuntu4
  • heimdal-clients 0.7.1-1ubuntu3

Installation

Kerberos


Kerberos wird zur Authentifizierung am Windows-Server verwendet. Will sich also ein Benutzer am SERV02 anmelden, so sendet dieser die Anfrage an den SERV01 (PDC) weiter und erhält von dem die Nachricht, ob Benutzername und Passwort korrekt sind. So kann man direkt die Benutzer und Gruppen aus der Active-Directory verwenden, was die Benutzerverwaltung sehr vereinfacht. Kerberos ist im Packet Heimdal enthalten.
Konfigurieren muss man die Datei /etc/krb5.conf. Dazu muss man zuerst eine Realm (einen Bereich) konfigurieren und dort ein KDC (Kerberos Distribution Center) angeben und dann der Domain den Berich zuweisen. Wichtig ist hier, dass auf die Gross- und Kleinschreibung geachtet wird. Meine Konfigurationsdatei sieht so aus:
[libdefaults]
        default_realm = MUSTER.LOCAL
        clockskew = 300

[realms]
        MUSTER.LOCAL = {
                kdc = SERV01.MUSTER.LOCAL
        }

[domain_realm]
        .muster.local = MUSTER.LOCAL

[logging]
#       default = SYSLOG:NOTICE:DAEMON
        default = FILE:/var/log/krb/krb5libs.log
        kdc = FILE:/var/log/krb/kdc.log
        kadmind = FILE:/var/log/krb/kadmind.log

[appdefaults]
        pam = {
                ticket_lifetime = 1d
                renew_lifetime = 1d
                forwardable = true
                proxiable = false
                retain_after_close = false
                minimum_uid = 0
                debug = false
        }

Nun kann man mit dem Befehl kinit den Kerberos Client (Linux) am Server (Windows) authenifizieren. Dies funktioniert mit dem folgenden Befehl:
kinit Administrator@MUSTER.LOCAL

Wichtig ist wieder, dass auf die Gross- und Kleinschreibung geachtet wird und dass die Namensauflösung funktioniert. Ein ping auf serv01 sollte hier im Beispiel 192.168.1.10 zurückgeben.

Samba


Jetzt kann Samba über die Datei /etc/samba/smb.conf konfiguriert werden. Wichtig sind die Rot markierten Zeilen.
[global]
   workgroup = MUSTER
   server string =
   netbios name = serv02
   realm = MUSTER.LOCAL
   idmap uid = 10000 - 15000
   idmap gid = 10000 - 15000
   winbind separator = /
   winbind use default domain = yes
   password server = serv01.muster.local
   security = ADS
   client use spnego = yes
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   encrypt passwords = yes
   passdb backend = tdbsam
   obey pam restrictions = yes
   invalid users = root
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
   socket options = TCP_NODELAY

  • workgroup: Die Arbeitsgruppe. Sollte gleich dem Domänennamen sein
  • netbios name: Der Netbios Hostname des Servers
  • realm: Der Bereich. Gleich dem Bereich in der Kerberos Konfiguration
  • idmap uid: Bereich der genutzt wird um die Domänenbenutzer auf die Linux Benutzer zu mappen
  • idmap gid: Bereich der genutzt wird um die Domänengruppen auf die Linux Gruppen zu mappen
  • winbind seperator: Das Trennzeichen zwischen der Domäne und dem Benutzer
  • winbind use default domain: Definiert, ob Winbind auch mit dem Benutzernamen arbeitet, wenn keine Domäne angegeben wurde.
  • password server: Der Server, welcher die Passwörter validiert.
  • security: Definiert, dass Samba als ADS Mitglied arbeiten soll
  • client use spnego: Aktiviert SMB Singing

Nun muss man den Samba Server noch in die Domäne aufnehmen. Das macht man seit Samba 3.* nicht mehr mit smbpasswd sondern mit dem net Befehl:
net join -S serv01 -UAdministrator%password


Wenn alles geklappt hat muss man Linux noch mitteilen, dass Benutzeranfragen an winbind weitergeleitet werden sollen. Dies macht man in der Datei /etc/nsswitch.conf. Dort muss man die Zeilen passwd und group anpassen. Sie sollten schlussendlich so aussehen:
passwd:         files winbind
group:          files winbind


Nach einem Neustart von Samba und Winbind kann man prüfen, ob die Konfigurationsarbeit erfolgreich war. Die folgenden Befehle sollten alle Benutzer, bzw Gruppen der Windows Domäne anzeigen.
wbinfo -u
wbinfo -g

Shares einrichten

Sollte bisher alles funktioniert haben, kann man jetzt die Shares im Samba einrichten. Ich habe einen Share names Bilder gemacht, auf welchen alle Zugriff haben, aber nur eine bestimmte Gruppe schreiben kann.
[bilder]
   comment = Bilder
   path = /home/bilder
   public = yes
   read only = no
   guest ok = no
   browseable = yes
   valid users = @muster/alle
   admin users = @muster/abteilung, muster/user


Hier noch die Unterschiede zwischen Lokalen-/Domänenbenutzen-/Gruppen.
# lokaler user
valid users = user

# domain user
valid users = muster/user

# lokale gruppe
valid users = @group

# domain gruppe
valid users = @muster/group

Quellen


Im Internet gibt es schon einige Anleitungen dazu. Hier möchte ich diejenigen Auflisten, die mich am meisten weitergebracht haben:
  • http://www.pro-linux.de/work/server/samba3-domaene.html
  • http://www.administrator.de/Samba_in_Windows_Dom%C3%A4ne.html