Archiv für Linux
Schneller Support
Auf dem CCWN-Server war die 2te Platte irgendwann diese Woche kaputt gegangen… Den größten Aufwand hat das Komplettbackup des Servers verursacht, läppische 5 Stunden.
Den eigentlichen Austausch der Platte hat Hetzner dann binnen einer halben Stunde erledigt, wobei ein Großteil der Zeit auf mein Greylisting zurückzuführen ist… Da muss man doch echt mal ein Lob aussprechen, sowas nenne ich erstklassigen Support!
Automatische inkrementelle Backups von OpenVZ VE
OpenVZ bietet von sich aus keine Methode um die Virtuellen Maschinen (VE) sinnvoll zu sichern. Allerdings sind die VEs vom Hauptsystem aus gesehen nichts anderes als “normale” Ordner. Sofern man die VE stoppt, kann man auf diesen Dateien auch ohne Probleme ein Backup starten.
Nun will man aber bekannterweise für ein Backup den Server nur kurz oder am Besten überhaupt nicht herunterfahren. Die optimale Lösung mit nicht herunterfahren war mir zu stressig, für das nur kurz herunterfahren war aber schnell die Lösung gefunden: rsync mit dem Parameter –link-dest. So muss ich nur einmal ein volles Backup ziehen und rsync erzeugt bei allen darauffolgenden Backups Hardlinks im Dateisystem und reduziert so ganz nebenbei auch noch den Platzbedarf für die Backups. Trotzdem sieht jeder Backupordner wie ein vollständiges Backup aus.
Um das ganze jede Nacht zu automatisch laufen lassen zu können, habe ich noch eine kleine Schleife um das eigentliche Backup gebaut, die die aktuell laufenden VEs automatisch findet und sichert. Aktuell nicht aktive VEs werden auch nicht gesichert, an ihnen werden ja auch keine Änderungen durchgeführt. Sollte also eine VE dazu kommen, so wird in der darauf folgenden Nacht automatisch ein Full-Backup der VE geschrieben und solange die VE aktiv ist diese auch automatisch inkrementell gesichert.
[CODE]
#!/bin/bash
DATUM=`date +%F`;
VZ_HOME=/vz/private
BKP_BASE=/backup/virtual
LAST_RUN=`cat $BKP_BASE/lastRun.date`
for veid in `ls $VZ_HOME`;
do
if [ `vzctl status $veid | awk '{print $5}'` == "running" ]; then
if [ ! -d $BKP_BASE/$veid ]; then
mkdir -p $BKP_BASE/$veid;
fi;
echo “Backing up VE $veid”;
BKP_PATH=”$BKP_BASE/$veid/$DATUM”;
vzctl stop $veid;
rsync -a –delete –link-dest=$BKP_BASE/$veid $LAST_RUN $VZ_HOME/$veid/ $BKP_BASE/$veid/$DATUM;
vzctl start $veid;
fi;
done;
echo $DATUM > $BKP_BASE/lastRun.date
[/CODE]
Was noch fehlt ist ein Script, dass die angelegten Daily Backups ausdünnt und so Monthly und Yearly Backups anlegt. Die Ordner der Daily Backups können einfach gelöscht werden, da verlinkte Dateien erst vom Dateisystem verschwinden, wenn der letzte Link gelöscht wurde…
OpenVZ und mounts
Da will man nur nen Ordner von ner anderen Platte in eine virtuelle Maschine mounten und scheitert mit mount –bind kläglich… Und dann ist die die Lösung einfach, dass man anstatt direkt in /vz/private/xxx zu mounten eben in /vz/root/xx mounten muss :wallbash
Roundcube RC1 einrichten
Offensichtlich kommen einige von euch über “Roundcube einrichten” per Google zu mir… Ich weiss zwar nicht warum man da so viel nachschlagen muss, aber hier mal für alle die danach suchen eine kleine Anleitung.
Zuerst braucht ihr natürlich die Sourcen von www.roundcube.net, hier einfach roundcubemail-0.1-rc1.1.tar.gz herunterladen. Das File ab auf den Server und per
tar -zxvf roundcubemail-0.1-rc1.1.tar.gz entpacken. Danach müsstet ihr ein Verzeichnis roundcubemail-xxx haben. (Wer keinen Shell Zugriff hat nehme Winzip oder 7Zip und entpacke damit, danach einfach das Verzeichnis auf den Server laden). In diesem Verzeichnis gibt es einen Ordner SQL. In diesen wechseln und folgendes ausführen:
mysql -u benutzername -h servername -p
use datenbankname;
source mysql5.initial.sql bzw. mysql.initial.sql;
je nach MYSQL-Version. Solltest du keinen Shell-Zugriff haben, das ganze per phpMyAdmin oder ähnlichem ausführen, diese Tools haben immer die Möglichkeit ein .sql-File hochzuladen und auszuführen.
Nun noch die config-Files anpassen. Im Ordner config befinden sich 2 gut kommentierte (wenn auch englische) Dateien: db.inc.php.dist und main.inc.php.dist. Zuerst die main.inc.php.dist und die db.inc.php.dist ind main.inc.php und php.inc.php umbennenen, danach erst bearbeiten (.dist Dateien kann man einfach so herunterladen…)
In der db.inc.php muss nur wenig geändert werden (die Configs sind gekürzt, also nicht einfach kopieren): Weiterlesen »
Terminals hinter Firewalls
Es hat mich schon immer gestört, dass man oft hinter Firewalls sitzt die alles abdichten und man nach aussen keinen Shell-Zugriff hat. Schwups, der Mailserver ist tot… Warten bis heute abend bevor ihn jemand neu starten kann…
Damit ist jetzt erstmal Schluß. Vor ein paar Monaten bin ich im Web über ajaxterm gestolpert und habe es mal zum Spass auf einer Testmaschine installiert. Hat mich mächtig beeindruckt was per Ajax da so alles möglich ist. Und unter debian ist das ganze auch noch schnell per apt-get install ajaxterm installiert. Aaaaaber: Ajaxterm hört erstmal nur auf 127.0.0.1, sicher ist sicher und das Terminal ist nunmal nicht sicher.
Also muss erst einmal sichergestellt werden, dass wir eine sichere Verbindung zum Terminal aufbauen können. Da es sich hier um http handelt bietet sich https als SSL-Verschlüsselte alternative geradezu an. Schwups ein a2enmod ssl und ein paar openssl Befehle und der Apache kann https. Das Zertifikat habe ich gleich mal bei CAcert.org zertifizieren lassen, hier gibt es wenigstens noch (geringe) Chancen dass das Root-Zertifikat endlich mal per default in den Browsern landet.
Jetzt kann also der Apache https… Aber das Terminal hat doch seinen eigenen “Webserver”… Also müssen wir Apache beibringen Proxy zu spielen (umgeht auch gleich das Problem mit 127.0.0.1:8022):
1 a2enmod http_proxy und 5 Zeilen in der Config später leitet /myterminal/ auf das lokale Ajaxterm um.
Was haben wir bis jetzt: Wir können uns SSL Verschlüsselt (https) an einem Terminal anmelden
Ist eigentlich fast sicher… Wobei, evtl. könnte ja das Python-Skript noch einen Fehler haben, der es ermöglich ohne Auth an eine Shell zu kommen… Also noch schwups nen htpasswd-Schutz davor legen und wir sind auch wirklich “sicher”. Spielereien mit OpenVPN und Konsorten würden die Sache mit der Firewall wieder erschweren, also bleiben wir beim aktuellen Schutzlevel mit htpasswd und SSL.
For all English speakers coming from Marcs Blog there is a good installation guide concerning security in the ajaxterm wiki.
Hätte ich mir das ajaxterm wiki früher angeschaut, dann hätte ich auch nicht jeden noch so kleinen Schritt in der Doku nachschlagen müssen, vor allem mod_proxy ist da nicht so toll…
Postgrey
Greylisting ist eine sehr tolle Erfindung… Das Spamaufkommen und damit die Load auf dem CCWN-Server ist seit gestern abend um 23:00 Uhr auf vielleicht 10% abgesunken… und das durch ein einfach apt-get install postgrey und einem Eintrag in die main.cf.


Debian Etch Template für OpenVZ
Jetzt ist es fertig, mein erstes Minimaltemplate für OpenVZ. Debian Etch wird ja dem CCWN weiterhin als Betriebssystem dienen, insofern war es nur eine Frage der Zeit bis ich ein Template bauen musste
Zum Download gibt es das ersteinmal hier. Bitte ersteinmal mit Vorsicht genießen, ich habe es bis jetzt nur in einer VMWare Installation getestet.
UPDATE: So, der erste Fehler ist auch schon gefunden… Entfernt in der Datei /etc/apt/apt.conf die letzte Zeile mit dem Proxyeintrag…
Die o.g. Version befindet sich übrigens inzwischen im Einsatz und macht (bisher) keine Probleme.
For English version read full version of article.
Weiterlesen »
