Verschlüsselung
SSH Zertifikat erstellen
Erstellt am Samstag, dem 15. Januar 2011, geändert am Samstag, dem 15. Januar 2011
Wie erstellt man ein SSH-Zertifikat um sich sicher mit einem Linux-Server zu verbinden? Das geht ganz einfach – mit Abstrichen. Folgendes als root über die Konsole/Putty auf dem Server ausführen:
ssh-keygen -t rsa -b 2048
Damit werden der private und öffentliche Schlüssel mit RSA und 2048 Bit erzeugt. Für weitere Einstellungsmöglichkeiten siehe Handbuch. Jetzt wird zuerst gefragt, wo man die Dateien speichen möchte. Wenn nichts angegeben wird, werden die Dateien unter /root/.ssh/ als id_rsa und id_rsa.pub gespeichert. Wenn für einen anderen Nutzer SSH-Schlüssel angelegt werden sollen, dann muss man mit diesem die Schritte ausführen. Dabei werden die Dateien in dem entsprechenden Home-Verzeichnis (/home/$username/.ssh/) angelegt. Danach wird nach einer Passphrase gefragt, welche die Sicherheit natürlich nochmals erhöht – kann aber auch einfach leer gelassen werden.
Als nächstes muss die Datei authorized_keys im selben Verzeichnis angelegt werden. Dieser muss über folgenden Befehl der öffentliche Schlüssel hinzugefügt werden:
cat id_rsa.pub >> /root/.ssh/authorized_keys
Damit sind die Arbeiten, soweit man nicht die Konfigurationsdatei unter /etc/ssh/sshd_config weiter anpassen möchte, auf dem Server abgeschlossen. Weiter gehts auf dem PC. Doch zuvor muss der private Schlüssel auf diesen, bspw. über WinSCP, runtergeladen werden. Der öffentliche bleibt auf dem Server.
Wer jetzt denkt, dass man den Schlüssel einfach in Putty angibt, wird mit der Meldung begrüßt, dass Putty damit nichts anfangen kann. Man muss zuerst den Schlüssel in ein Format konvertieren, was Putty versteht.
Dazu braucht man PuttyGen. Zuerst muss der Schlüssel in das Programm geladen werden, dazu wird, falls bei der Generierung eine angegeben wurde, nach der Passphrase gefragt. Danach speichert man den privaten Schlüssel ab und gibt diesen dann in Putty an. Und schon klappt die sichere Verbindung zum Server.
Optional kann in der Konfigurationsdatei die Anmeldung per Passwort verboten werden, oder dass ein anderer Port verwendet wird, was Angriffe verringert.
Zum Artikel Kommentar schreiben
TrueCrypt
Erstellt am Montag, dem 10. Januar 2011, geändert am Montag, dem 10. Januar 2011
TrueCrypt ist eine kostenlose Open Source Software zum Verschlüsseln von Dateien. TrueCrypt funktioniert unter Windows (XP, Vista, 7), Mac OS X und Linux. Neben der einfachen Dateiverschlüsselung können sogar ganze Datenträger, einschließlich der Boot-Festplatte (unter Windows), verschlüsselt werden. Die Verschlüsselung von Dateien erfolg in so genannten Kontainern, welche über das Programm dann als Datenträger in das System eingebunden werden.
Die on-the-fly Verschlüsselung erlaubt es, dass der eingebundene Kontainer genau wie jede andere Festplatte/Partition benutzt werden kann. Für besondere Sicherheit kann sogar ein versteckter Bereich erzeugt werden.
Bsp.: Man erzeugt eine Kontainerdatei mit insgesamt 1 GB an Kapazität. Davon erhält der normale Bereich 800 MB und der versteckte 200 MB. Nun füllt man die 800 MB mit belanglosen/unwichtigen Daten auf und den versteckten mit seinen wichtigen/geheimen Daten. Wenn man nun mal, aus welchen Gründen auch immer, sich gezwungen sieht sein Passwort zu verraten, nennt man einfach das für den normale Bereich und hällt somit seine privaten Daten für sich, da man von außen nicht siehen kann ob ein Kontainer einen versteckten Bereich enthält oder nicht.
Natürlich können auch portable Festplatten und Flash-Speicher (USB-Sticks) verschlüsselt werden. Für die Entschlüsselung wird natürlich auch TrueCrypt auf den Computern benötigt, wo der Stick zum Einsatz kommt. Der Kontainer kann mit einem Passwort, einer Schlüsseldatei oder mit beidem zusammen geschützt werden.
Zum Artikel Kommentar schreiben
Passwortdatenbank Keepass
Erstellt am Mittwoch, dem 17. November 2010, geändert am Donnerstag, dem 25. November 2010
Mit der KeePass Passwortdatenbank braucht man sich nicht mehr alle seine Passwörter zu merken und legt sie zudem auch noch, im Gegensatz zu einer Textdatei, sicher ab. Der große Vorteil daran ist, dass man sich nur noch ein Passwort und zwar das zur KeePass-Datenbank merken muss (dieses sollte möglichst lang und schwer zu erraten sein). Die darin gespeicherten Passwörter sind mit AES 256 verschlüsselt und können zusätzlich auch noch mit einer Schlüsseldatei, welche dann für das Öffnen der Datenbank benötigt wird, gesichert werden. Doch das ist noch nicht alles. KeePass speichert zu dem auch noch einen eventuellen Benutzernamen, sowie URL‘s, Kommentare und Dateien ab. Die angelegten Passwörter können hierarchisch in Ordner sortiert werden. Ein Passwortgenerator, der sich beliebig konfigurieren lässt, ist auch noch dabei. Jetzt kann man auch lange, komplizierte und cryptische Passwörter benutzen ohne Gefahr zu laufen sie zu vergessen. Ein Backup der Keepass-Datenbank sollte aber in regelmäßigen Abständen durchgeführt werden.
Wer auf die schnelle einfach nur ein paar gute Passwörter braucht ist mit dem Passwortgenerator auf dieser Seite gut bedient.
Zum Artikel Kommentar schreiben
SSL Zertifikat
Erstellt am Montag, dem 12. Juli 2010, geändert am Freitag, dem 16. Dezember 2011
In diesem Artikel wird beschrieben wie man ein SSL-Zertifikat erstellt und unter Apache 2.x auf Debian 5 installiert. Zuerst erzeugt man mit OpenSSL den Private-Key.
Falls OpenSSL noch nicht installiert ist, wird dies mit diesem Befehl nachgeholt:
apt-get install openssl
Erstellen eines SSL-Zertifikats
Einen 1024 Bit RSA Private-Key erzeugt man über:
openssl genrsa -out /pfad/zum/private-key/dateiname.key 1024
Natürlich kann auch ein anderer Verschlüsselungsalgorithmus, bspw. DSA, oder eine andere Verschlüsselungsstärke, bspw. 2048 Bit (zwingend erforderlich für Extended-Validation-Zertifikate), gewählt werden.
Nun wird das CSR (Certificate Signing Request) erzeugt. Dazu bitte folgende Zeile in die Konsole eingeben:
openssl req -new -key /pfad/zum/private-key/dateiname.key -out /pfad/zur/csr-datei/dateiname.csr
Nun werden ein paar Informationen abgefragt die man wahrheitsgemäß angegeben sollte.
Country Name (2 letter code) [AU]: (Zweistelliger Ländercode, bspw. DE für Deutschland)
State or Province Name (full name) [Some-State]: (Vollständiger Name des Bundeslandes/Staates, bspw. Schleswig-Holstein)
Locality Name (eg, city) []: (Vollständiger Name der Stadt, bspw. Berlin)
Organization Name (eg, company) [Internet Widgits Pty Ltd]: (Vollständiger Firmen-/Personenname)
Organizational Unit Name (eg, section) []: (Vollständiger Abteilungs-/Bereichsname)
Common Name (eg, YOUR name) []: (Vollständiger Domainname, bspw. www.example.com, subdomain.example.com)
Email Address []: (Gültige E-Mail-Adresse)
A challenge password []: (Optional: Passwort)
An optional company name []: (Optional: Zusätzlicher Firmen-/Personenname)
Auf die unter dem Common Name angegebene Domain wird das Zertifikat validiert und gilt ausschließlich nur für diese Adresse. Es kann jedoch auch ein sogenanntes Wildcard-Zertifikat ausgestellt werden, indem man anstatt der Subdomain (www ist auch nur eine Subdomain) einfach ein Sternchen (*) angibt. Bspw:
Common Name (eg, YOUR name) []: *.example.com
Dieses Zertifikat würde dann für alle Subdomains gelten. Wenn Sie bei A challenge password ein Passwort eintragen, kann der Apache nach der Einbindung des Zertifikats nur noch nach Eingabe des Passworts gestartet werden.
Das CSR überprüft man mit folgendem Befehl:
openssl req -noout -text -in /pfad/zur/csr-datei/dateiname.csr
Wenn das CSR die vollständig richtigen Angaben enthält, können Sie dieses nun an eine Zertifizierungsstelle weitergeben. Bei normalen Zertifikaten erfolgt dann eine E-Mail-Validierung. Das bedeutet, es wird eine E-Mail an die im CSR angegebene Adresse geschickt, welche einen Link zu Bestätigung enthält. Hat man das Zertifikat bestätigt, bekommt man selbiges von der Zertifizierungsstelle zugesand und kann es anschließend in den Apache integrieren. Kostenlose Zertifikate werden z. Bsp. von StartCom angeboten. Dafür ist eine Anmeldung und die Angabe der persönlichen Daten, wie Name und Anschrift notwendig.
Sollte man kein offizielle Zertifikat benötigen, bspw. für eine Entwicklungsumgebung, kann man es auch selbst signieren. Selbstsignierte Zertifikate erzeugen bei den meisten Browsern eine Warnung und der Besucher muss eine Ausnahme hinzufügen, um die Seite verschlüsselt ansehen zu können.
So signiert man ein 1 Jahr gültiges Zertifikat selbst:
openssl x509 -req -days 365 -in /pfad/zur/csr-datei/dateiname.csr -signkey /pfad/zum/private-key/dateiname.key -out /pfad/zum/zertifikat/dateiname.crt
Man kann natürlich den Zeitraum auch verkürzen oder verlängern.
Nun wird das CSR nicht mehr benötigt und kann gelöscht werden. Vom Private-Key sollte man nun ein Backup erstellen, damit bei Verlust oder Umzug ohne Probleme ein neues Zertifikat erstellt werden kann.
Einrichten eines SSL-Zertifikats
Es wird davon ausgegangen, dass eine Konfiguration für einen (virtuellen) Host bereits existiert und dieser nun zusätzlich noch über SSL erreichbar gemacht werden soll. Dazu muss lediglich die Konfigurationsdatei kopiert und folgende Änderungen umgesetzt werden:
NameVirtualHost *
<VirtualHost *:80> [wird zu] <VirtualHost *:443>
ServerName www.exampl.com [wird zu] ServerName www.exampl.com:443
Das Sternchen kann natürlich durch eine IP ersetzt werden. Optional können, für eine bessere Zugriffsübersicht, separate Log-Dateien angelegt werden.
Nun werden der Pfad zum Private-Key, zum Zertifikat, sowie die Aktivierung des SSL-Modus hinzugefügt.
SSLEngine on
SSLCertificateKeyFile /pfad/zum/private-key/dateiname.key
SSLCertificateFile /pfad/zum/zertifikat/dateiname.crt
Abschließend muss nur noch der Apache neu gestartet bzw. die Konfiguration neu geladen werden. Das geschieht über folgenden Befehl:
/etc/init.d/apache2 reload
Sollten die Einstellungen nicht übernommen worden sein wiederholen Sie den Befehl, ersetzen aber reload durch restart.
Als Hinweis ist noch zu sagen, dass pro Domain/Zertifikat eine IP erforderlich ist. Ein Wildcard-Zertifikat gilt nur für alle Subdomains einer Domain.
Zum Artikel Kommentar schreiben