Server

Bitlbee

Seit heute betreibe ich meinen eigenen Bitlbee Server. Was ist Bitlbee? Nun Bitlbee ist ein IRC Server welcher als Gateway für verschiedene Chatprotokolle dient. Darunter Oscar (ICQ), Jabber (Facebook), MSN, Yahoo und weitere. Somit ist es möglich über das IRC Protokoll auf Accounts mit den anderen Protokollen zuzugreifen. Heißt man ist auf dem IRC Server und kann mit Leuten aus, zum Beispiel, ICQ reden.

 Das ist recht praktisch, ich habe einen IRC Client immer am laufen und benötige so nicht noch ein Programm welches läuft. Auch verbraucht das ganze weniger Bandbreite da IRC nur Text basierend ist. Des weiteren habe ich einen Bouncer1 online gesetzt und bin so 24/7 online. Ist zwar sinnfrei aber ist doch recht nett.

Nutzen könnt ihr ihn auch, meldet euch einfach bei mir und ich erstelle einen Account für euch. Man kann sich nicht selber am IRC Server registrieren da der Server dies vorerst nicht zulässt. Schaut es euch einfach an und entscheidet dann ob es sinnvoll für euch ist ;)

Achja, Bitlbee unterstützt natürlich auch Gruppen, Gruppenchat und Statusnachrichten. So bleiben eure Gruppen welche ihr zum Beispiel in ICQ angelegt hat in Bitlbee bestehen. Recht praktisch da ich alle Kontakte eh in Gruppen aufteile.

Server Backup mit SpiderOak

Die meisten Administratoren wissen das Backups sehr wichtig sind. Vor allem dann wenn etwas schief läuft und man eine frühere Version wiederherstellen muss. Daher legt man in Intervallen Backups an und hofft dass diese nicht verschwinden.
Ich habe das vorher so gelöst dass ich wichtige Dateien und Datenbank in ein Archiv packe und dann auf dem Server speichere. Natürlich als CronJob, natürlich auch unsicher. Denn ich musste immer per Hand diese Datei auf meinem Laptop herunterladen und sichern. Bestimmt kennen von euch auch viele die Situation wenn man seinen PC neu aufsetzt. Man hat formatiert und vorher natürlich alle wichtigen Dateien gesichert. Aber Moment. Da war doch noch der eine Ordner. Oh mist!

Ich habe nun im großen WWW nach Lösungsmöglichkeiten gesucht und fand dabei das:
Automated Cloud Backups with SpiderOak
Ein wirklich praktisches Script, jedoch nehmt die neueste Version bei GitHub, nicht die Version welche in dem Beitrag steht. Sie hat ein paar kleinere Fehler.

Ich möchte hier nun erklären wie ihr SpiderOak zum laufen bekommt da es nicht ganz so einfach ist. Die Anleitung bezieht sich auf Linux Debian squeeze. Read More…

DKIM bei Mailadressen

Ich habe nun bei meinem Server DKIM eingerichtet, ausgehende Nachrichten werden nun mit einem Hash versehen wenn sie gesendet werden. Dabei liegt beim DNS auch noch ein TXT eintrag mit dem öffentlichen Key. Bekommt nun ein Server diese Mail und unterstützt er DKIM prüft er die beiden Hashes, sobald er dann eine Übereinstimmung berechnet hat ist die Mail ‘passed’. Was bringt das nun? So kann der Server, welcher die Mail empfängt, überprüfen ob auch die Mailadresse wirklich zu dem absendenden Server gehört und auch von da abgesendet wurde. Das beugt zum Beispiel vor dass die eigene Mail für Spam missbraucht wird, denn wie einfach ist es denn das From einer Mail abzuändern.

Ich habe dazu folgende Anleitung befolgt: http://workaround.org/ispmail/squeeze/postfix-smtpd-restrictions

Was ich noch festgestellt habe ist dass man beim DNS Eintrag die Parameter v und g weglassen sollte. v dient zum festlegen der Version, jedoch melden viele Server dass dieser Eintrag unbekannt ist. Bei g wird meist g=* benutzt, ein * ist aber zum Beispiel bei Hosteurope ein ungültiger Eintrag für einen TXT Record. Standardmäßig ist g eh auf * gesetzt, wenn ihr also bei g nichts anderes eintragen wollt dann lasst es einfach weg.

Auch übt euch in Geduld, bis der Cache bei den DNS Servern erneuert ist vergeht einige Zeit. Oder setzt die TTL auf einen geringeren Wert, sofern es euer Anbieter zulässt. 

Ich habe nach mehreren schlaflosen Nächten es endlich geschafft einen Mailserver auf meinem VServer einzurichten. Dabei benutze ich Debian squeeze, Postfix und Dovecot. Ich setze dabei auf virtuelle Domains und Benutzer da ich auf die VServer IP mehrere Domains zugewiesen habe.

Das was mich noch stört sind die fehlenden Signaturen zu vorhandenen Zertifikaten. Ich habe sie derzeit selber signiert, jedoch meckern da natürlich die Browser und Mailclients wieder rum da man keine Signatur von großen Firmen nimmt. Ich finde die Preise bei so manchem Anbieter auch etwas übertrieben um seine Keys signieren zu lassen.

Nunja, es läuft nun alles einwandfrei. Ich brauche nur noch einen DKIM Eintrag beim DNS für die Domain dann bin ich ganz zufrieden.

Als nächstes steht dann wohl Tunneling an :)

Auf Debian Server SSH einstellen

Heute erkläre ich wie man SSH auf seinem Debian Server so einstellt dass man einen korrekten Schlüssel braucht um sich anzumelden. Auch werden wir die normale Benutzername -> Passwort Anmeldung und den Root Login deaktivieren.
Ich gehe von einem frisch installierten Debian minimal System aus und wir benutzen Putty. Desweiteren wird Puttygen.exe und pageant.exe später benötigt.

Als erstes loggen wir uns auf unseren Server als root ein, dazu geben wir einfach die IP zu ihm im IP Eingabefeld ein, den Port lassen wir so wie er ist. Dies ist der Standardport für SSH. Nun sollten wir nach einem Klick auf Open mit dem Server verbunden sein. Login als root, und dann das Passwort eingeben welches ihr für euren root Account habt. Nun legen wir einen neuen Benutzer an den wir fortan zum Login benutzen.

 Bash |  copy code |? 
1
adduser markus

In meinem Beispiel nehme ich meinen Vornamen als Benutzernamen. Nun wird man noch nach dem UNIX Passwort (legt euer Passwort hier fest) und nach zusätzlichen Informationen wie der volle Name, Raumnummer usw. gefragt. Bis auf das Passwort könnt ihr den Rest freilassen. Bestätigt dann mit y und Enter. Startet nun eine neue Session in Putty und gebt bei ‘login as’ euren eben erstellten Benutzer ein, dann noch das eben gewählte Passwort und ihr seid nun angemeldet.

Startet nun puttygen.exe und klickt auf ‘Generate’, bewegt die Maus im Puttygen Fenster etwas herum, euer Schlüssel ist nun generiert. Unter ‘Key comment’ könnt ihr eure Mailadresse eintragen oder auch das Feld frei lassen. Unter ‘Key passphrase’ tragt ihr nun ein sicheres Passwort ein, wiederholt es im Feld darunter. Merkt euch das Passwort! Nun klickt auf ‘Save public key‘ und speichert das als .txt-Datei ab. Dann noch auf ‘Save private key‘ und als .ppk-Datei an einem Ort auf eurem PC abspeichern der sicher ist. Merkt euch wo ihr das gespeichert habt! Kopiert nun das was oben im Feld steht (komplett). Nun gebt in dem Putty Fenster, bei dem ihr als neuer Benutzer (nicht root) angemeldet seid. Gebt nun folgendes ein:

 Bash |  copy code |? 
1
mkdir ~/.ssh/ # erstellt in eurem /home/ Verzeichnis den Ordner .ssh
2
chmod 700 ~/.ssh # Gibt für .ssh Schreibrechte
3
nano ~/.ssh/authorized_keys2 # öffnet die Datei authorized_keys2

Nun fügt den kopierten Inhalt von puttygen.exe hier rein (einfach Rechtsklick in das Fenster, nicht STRG+V). Speichert es mit STRG+O (es muss nun ‘Wrote 1 line‘ unten angezeigt werden, der Key muss in einer Zeile sein). Schliesst nano nun mit STRG+X. Gebt folgendes ein:

 Bash |  copy code |? 
1
chmod 600 ~/.ssh/authorized_keys2 # nimmt die Schreibrechte

Schliesst nun das Putty Fenster mit eurem privaten Benutzer. Nun öffnet wieder putty.exe und klickt im Reiter Connection auf SSH dann auf AUTH. Unten ist nun eine Eingabezeile, klickt auf Browse uns wählt eure vorher gespeicherte .ppk-Datei. Klickt nun auf Open (vergewissert euch dass ihr die IP auch eingegeben habt). Nun gebt euren Benutzernamen ein (in meinem Fall markus). Es sollte nun dastehen dass der Key benutzt wird. Gebt nun das Passwort für den Key ein (nicht für den Account auf eurem Server). Ihr seid nun eingeloggt. Wechselt zu eurem Fenster in dem noch die Anmeldung für root läuft. Gebt folgendes ein:

 Bash |  copy code |? 
1
nano /etc/ssh/sshd_config

Nun ist die Konifguration für ssh in nano geöffnet. Sucht die Zeile für Port, ändert den Port beliebig, jedoch beachtet dass manche Ports schon benutzt werden. Wählt zB.: 777. Scrollt mit der Pfeiltaste nun nach unten bis zur Zeile PermitRootLogin yes, ändert yes zu no. Nun kann man sich beim System nicht mehr als root anmelden (beim herstellen einer Verbindung). Scroll weiter runter bis #PasswordAuthentication yes, unkommentiert diese Zeile (# entfernen) und macht yes zu no. Nun kann man sich nur noch mit der Key Authentifizierung anmelden. Ändert bei UsePAM den Eintrag auch noch zu no. Abspeichern und folgendes eingeben:

 Bash |  copy code |? 
1
/etc/init.d/ssh restart # startet ssh neu und übernimmt die neuen Einstellungen

Nun öffnen wir pageant.exe und öffnen darin unseren Key, gebt nun das Passwort für euren Key ein. Nun schliesst Putty (lasst das root Fenster aber noch offen falsch was schief läuft und ihr etwas ändern müsst, ansonsten kann es sein dass ihr euch gar nicht mehr anmelden könnt). Öffnet ein neues Putty Fenster und gebt eure IP ein, nun gebt euren gewählten Port ein (den ihr vorhin die Config geschrieben habt). Geht nun wieder auf Connection -> SSH -> Auth und öffnet wieder euren Key. Nun geht auf Connection -> Data und gebt bei Auto-Login username euren privaten Benutzernamen ein (in meinem Fall markus). Speichert nun die Einstellungen (Session Reiter, gebt auch einen Namen für die Einstellung ein). Klickt auf Open und ihr solltet nun automatisch bei eurem System angemeldet werden. Warum? Weil pageant.exe automatisch für den jeweiligen Key das Passwort überträgt (solange pageant.exe läuft). Um nun root zu werden gebt das ein:

 Bash |  copy code |? 
1
su root

Ihr werdet nun nach dem root Passwort gefragt, gebt es ein und ihr seid wieder root.

Man kann sich also nicht mehr direkt als root anmelden und man braucht einen Key zur Anmeldung, nicht nur das Passwort. Somit ist euer System einen kleinen Schritt sicherer. Klar, es ist jetzt nicht die top Lösung. Jedoch als erster Schritt schon mal ein guter Anfang. Bitte zerfleischt mich nun nicht, ich weiß es gibt weitere und evtl. bessere Lösungen. Es gibt jedoch schon genug Flamewars darüber im Internet.

Als weitere Lektüre empfehle ich euch diese Seite.

 Scroll to top