tinc-VPN als sicheren Exit-Node

Guten Morgen,

nachdem der letzte Eintrag jetzt ja doch wieder ein Weilchen her ist (keine Sorge, ich habe auch die Artikelserie zum Thema Sicherheit nicht vergessen, ich bin nur aktuell 1. beschäftigt und 2. nicht sonderlich motiviert) habe ich hier mal wieder ein Goodie für euch:

Ein Script, das dafür sorgt, dass man seinen tinc-VPN-Server als Exitnode für einen Tunnel nehmen kann ohne sich dabei die Finger zu brechen.

Warnung: YMMV, ich habe alles auf der Konsole gemacht, ich habe keine Ahnung, ob sich das Script mit GUI-Foo wie z.B. dem network-manager verträgt.

Vorbereitung:

tinc installieren:

# apt-get install tinc

tinc.conf erstellen:

# echo "# Kurzname des Routers/Computers
Name = $NAME_DES_NODES
# Mit folgenden Computern versuchen zu verbinden
ConnectTo = $DEIN_SERVER
# Arbeitsweise des VPN
Mode = Router
# alternativen Port zu 655 verwenden
Port = 8656" > /etc/tinc/$DEIN_NETZWERK/tinc.conf

tinc-up erstellen:

# echo "#!/bin/sh
ip addr add dev $INTERFACE 1.2.3.4/24 broadcast 1.2.255.255
ip link set dev $INTERFACE up" > /etc/tinc/$DEIN_NETZWERK/tinc-up

tinc-down erstellen:

# echo "#!/bin/sh
ip route del default
ip route add default via $ORIGINAL_GATEWAY dev $INTERFACE" > /etc/tinc/$DEIN_NETZWERK/tinc-down

Dateien ausführbar machen:

# chmod +x /etc/tinc/$DEIN_NETZWERK/tinc-*

Keys erstellen:

# mkdir /etc/tinc/$DEIN_NETZWERK/hosts
# tincd -n $DEIN_NETZWERK -K

Dieser Befehl erstellt einen private- und einen public-key. Bitte beim private-key einfach mit Enter bestätigen und beim public-key
den Speicherort /etc/tinc/$DEIN_NETZWERK/hosts/$NAME_DES_NODES wählen.

Jetzt passt Du die host-Datei an

# vi /etc/tinc/$DEIN_NETZWERK/hosts/$NAME_DES_NODES

Folgende Eintragungen sind vor dem Key zu machen:

Address = $IP_DES_NODES
Address = $FQDN_DES_NODES_1
Address = $FQDN_DES_NODES_2
Port = 8656

Geh jetzt die gleichen Schritte auf Deinem Server nochmals durch. Du solltest jetzt auf Client und Server jeweils ein Exemplar der host-Datei haben, diese sollten natürlich unterschiedliche IPs haben und unterschiedliche Namen. Mein Laptop z.B. heißt loki, der Server heißt bifroest.

Jetzt kopierst Du die host-Datei von Deinem Client auf den Server und umgekehrt:

# scp /etc/tinc/$DEIN_NETZWERK/hosts/$NAME_DES_NODES root@server.

Wenn beide Dateien ausgetauscht sind sollten die beiden Rechner miteinander reden können:

# tincd -d 3 -n $DEIN_NETZWERK

startet den tinc-daemon mit log-level 3.

# tail -f /var/log/syslog

zeigt euch den Output. Wenn keine Fehlermeldungen aufblinken sollte es so weit tun.

Bis hierher ist das alles noch nichts besonderes, ihr habt jetzt also den ersten Schritt gemacht und könnt euren Server über ein VPN erreichen. So lange jetzt aber nicht alle Verbindungen über diesen Server geroutet werden, bringt euch das nicht wirklich weit.

Um sicherzustellen, dass das ganze Ding jetzt tut, was es soll, müsst ihr zunächst dem Server beibringen, das Richtige ™ zu tun.

Einsatz als Exitnode:

Dazu verbindet ihr euch mit dem Server:

$ ssh root@server.tld

und führt dort folgende Befehle durch:

# iptables -t nat --append POSTROUTING -i $DEIN_NETZWERK -j MASQUERADE
iptables -t nat --append POSTROUTING -j MASQUERADE
iptables -t nat --append PREROUTING -i $DEIN_NETZWERK -j ACCEPT
cat /proc/sys/net/ipv4/ip_forward

Das sorgt dafür, dass euer Server Verbindungen einfach durchschleift und sie nicht zwischendrin blockiert.

Wenn der Server so weit vorbereitet ist, könnt ihr das folgende Script auf dem Client ausführen:

#!/bin/sh
#I don't think that this is necessary but I'll do it anyway:
#License: CC
 
#define variables
 
GW="$(ip r get 8.8.8.8 | gawk '{print $3}')"
TUN="$IP_DES_SERVERS_IM_VPN"
INTERFACE="$(ip r get 8.8.8.8 | gawk '{print $5}')"
EXIT="$IP_DEINES_SERVERS/32"
 
# change routes
ip route del default
ip route add $EXIT via ${GW%0x*} dev ${INTERFACE%0x*}
ip route add $TUN dev $DEIN_NETZWERK
ip route add default via $TUN dev $DEIN_NETZWERK
echo 'nameserver 8.8.8.8' > /etc/resolv.conf
echo "routes established"
ip r show

Ja, das sind mindestens 2 dirty hacks: awk den Hex-Wert abgewöhnen und die resolv.conf überschreiben aber es funktioniert. Ich habe
das Script unter /etc/tinc/$DEIN_NETZWERK/tinc-route gespeichert. Außerdem habe ich ein weiteres Script angelegt:

# echo "#!/bin/sh
tincd -n $DEIN_NETZWERK" > /etc/tinc/$DEIN_NETZWERK/tinc-auto

Dieses dient dazu, beim Start der Netzwerkverbindung den tinc-daemon automatisch anlaufen zu lassen.

Meine /etc/network/interfaces habe ich angepasst wie folgt:

# dhcp-basiertes Kabelnetz
iface auto inet dhcp
pre-up "/etc/tinc/bifroest/tinc-auto"
post-up "/etc/tinc/bifroest/tinc-route"

Damit startet zunächst der tinc-daemon, dann bezieht das interface eine IP und dann werden die Routen angepasst.

Wenn ihr jetzt # mtr eingebt, sollte eure Route über euren Server verlaufen.

Fragen oder Anmerkungen wie immer jederzeit gern in den Kommentaren.

Kommunikationsverschlüsselung: GPG

Heute schreibe ich über E-Mails, deren latente Unsicherheit und wie man daraus noch etwas ordentliches macht.

Zunächst einmal sollte man wohl beim Thema E-Mails ansetzen. Eine E-Mail ist, wie der Name schon sagt, eine elektronisch versendete Nachricht. Die Einzelheiten dazu findet ihr hier und hier.

Die Besonderheit dabei ist, dass E-Mails mitnichten mit Briefen gleichzusetzen sind, wie allenthalben angenommen wird. Vielmehr sind E-Mails das digitale Äquivalent zur Postkarte: Billig, schnell und lesbar von jedem, der sie auf dem Weg vom Sender zum Empfänger in die Hände bekommt. Mit ein wenig Geschick sind sie sogar manipulierbar und bergen damit ein großes Potenzial für Misslichkeiten aller Arten.

Dagegen hilft nicht viel, die einzige Möglichkeit um aus einer Postkarte eine sichere (siehe dazu auch einen älteren Eintrag) Möglichkeit zur Kommunikation zu machen ist, sie in einen Umschlag zu stecken und den Umschlag zu versiegeln. Wird das Siegel gebrochen weiß der Empfänger, dass die Nachricht nicht mehr in dem Zustand ist, in dem sie den Sender verlassen hat.

Das gleiche kann man problemlos auch bei E-Mails tun: Umschläge und Siegel benutzen.

Dazu installiert man sich das FOSS-Programm GPG, mit dessen Hilfe man sich die Umschläge und das Siegel selbst bauen kann. In den meisten Linux-Distributionen zählt GPG als Bordmittel und ist dementsprechend vorinstalliert. Der Grund dafür ist, dass GPG weit mehr kann, als nur E-Mails verschlüsseln. Was das ist kann man bei Interesse auf der Projektwebsite nachlesen.

Im Interesse der Benutzerfreundlichkeit empfehle ich außerdem, das Programm „Mozilla Thunderbird“ sowie dessen Extension „Enigmail“ zu installieren. Beides ist in den Debian-Repositories hinterlegt.

Wenn alles installiert ist könnt ihr loslegen. Eine bebilderte Schritt-für-Schritt-Anleitung, die selbst der letzte n00b verstehen sollte findet ihr hier.

Ich möchte gar nicht viel zum eigentlichen Einrichten sagen, da ich finde, dass das die Jungs vom CryptoCD-Team verdammt gut gelöst haben.

Zur Benutzung möchte ich euch allerdings einige Hinweise an die Hand geben.

Stellt euch die Technik vor, als würdet ihr jedem, der euch eine Nachricht schicken möchte, einen Stapel Stahlkisten zuschicken. Jede dieser Stahlkisten hat ein Schloss, das nur mit einem bestimmten Schlüssel zu öffnen ist. Diesen Schlüssel habt ihr allein. Wenn ein Freund euch jetzt eine Nachricht schicken will, nimmt er eine dieser Stahlkisten von seinem Stapel und steckt die Nachricht hinein. Dann schlägt er die Tür zu. Ab jetzt kann die Kiste nur noch mit dem richtigen Schlüssel geöffnet werden. Jetzt setzt sich der Bote ans Steuer seines LKW und fährt die Kiste zu euch. Ihr macht die Kiste auf und  siehe da – die Nachricht hat euch erreicht, ohne, dass jemand anderes sie lesen oder verändern konnte. Und damit ihr sicher sein könnt, dass die Nachricht auch von eurem Freund kommt, hat der sie unterschrieben und sein Siegel auf der Nachricht hinterlassen. Für die Antwort nehmt ihr eine Stahlkiste vom Stapel, den er euch geschickt hat und los gehts.

Prinzip klar? Wunderbar.

Dann noch einige Sicherheitshinweise:

1. Erstellt ein Backup eures geheimen Schlüssels an einem sicheren Ort. Wenn der Schlüssel verloren geht könnt ihr alle damit verschlüsselten E-Mails abschreiben.

2. Gebt den Schlüssel nicht aus der Hand. Jeder, der Zugriff auf den Schlüssel hat, kann in eurem Namen E-Mails verschicken. Und eure E-Mails lesen.

3. Unterstützt das Web of Trust der GPG-Nutzer und geht zu Keysigning-Partys oder veranstaltet selbst welche. Wenn ihr Hilfe braucht meldet euch bei mir.

4. Verschlüsselt so viele Nachrichten wie möglich und helft so, den Umschlag als Standard zu etablieren und die Postkarte zur Ausnahme zu machen.

Falls noch Fragen offen sind meldet euch in den Kommentaren.

Anmerkung: Das Bild zeigt eine graphische Darstellung meines GPG-Web-of-Trust. Erstellt wurde die Darstellung mit sig2dot und springgraph, vielen Dank an Darxus für diese epischen Tools!

Sicherheit im IT-Bereich

Dies wird der Auftakt zu einer Artikelserie, in der ich euch erklären will, was man tun kann, um seine Sicherheit im Internet aber auch gegenüber physikalischen Zugriffen zu erhöhen.

Dies wird der Auftakt zu einer Artikelserie, in der ich euch erklären will, was man tun kann, um seine Sicherheit im Internet aber auch gegenüber physikalischen Zugriffen zu erhöhen.

Bitte beachtet dabei, dass Sicherheit im IT-Bereich genauso wie im echten Leben immer nur eine relative Sicherheit darstellen kann.

Jeder weiß, dass allein die Tatsache, dass eine Haustür vorhanden ist, keinen Einbrecher abhält. Sind dazu noch die Fenster vergittert, wird es zwar schon schwieriger, aber einen entschlossenen Gegner hält auch das nicht auf. Letztendlich kann es keine vollumfängliche Sicherheit geben. Man kann nur dafür sorgen, dass der zu erwartende Aufwand für den Einbrecher höher ist, als der zu erwartende Ertrag.

Genau das gleiche gilt für Computersicherheit. Wenn ihr dafür sorgt, dass der Zugriff auf eure Daten für jeden, den sie nichts angehen, so schwer wird, dass es sich nicht mehr lohnt habt ihr gewonnen.

Deshalb möchte ich euch in den folgenden Artikeln zeigen, wie ihr eure Zierhecken durch Betonmauern ersetzt, die Fenster vergittert und eine Stahltür einbaut.

Wenn ihr das geschafft habt machen wir mit Fallgruben, Selbstschussanlagen und ortsfesten Flammenwerfern weiter, um dafür zu sorgen, dass auch der Letzte die Lust verliert, jemals wieder an eure Besitztümer zu wollen.

Für sämtliche Artikel gilt: YMMV, ich übernehme keine Haftung und wenn jemand Verbesserungsvorschläge hat, nehme ich die gerne in den Kommentaren entgegen und pflege sie nach Prüfung ein. Sämtliche Artikel beziehen sich auf ein Debian GNU/Linux-System und ich werde keine Fragen zu anderen Betriebssystemen beantworten, da ich mich nur auf meinem Heimatsystem gut genug auskenne, um mir kompetente Hilfe zuzutrauen.

Die Reihenfolge wird sein:

Festplattenverschlüsselung: Warum?
Festplattenverschlüsselung: Wie? (Full-Disk-Encryption oder Container)
– Kommunikationsverschlüsselung: GPG
– Kommunikationsverschlüsselung: OpenVPN
– Kommunikationsverschleierung: Aufbau eines Darknet via Freenet
– Gegenangriff: Grundzüge eines erfolgreichen Gegenschlags

Bitte beachtet, dass die Artikel nach und nach erstellt werden. Wenn ihr konkrete Vorschläge zu einem noch nicht bearbeiteten Thema habt nehme ich diese sehr gern per E-Mail entgegen.

Viel Spaß beim Lesen und viel Erfolg beim Umsetzen der Maßnahmen.

Sicherheitslücke in Android

Heute wurde bekannt, dass es in Android eine Sicherheitslücke gibt, die das Auslesen und Manipulieren von Daten auf dem Smartphone ermöglicht.

Android LogoHeute wurde bekannt, dass es in Android eine Sicherheitslücke gibt, die das Auslesen und Manipulieren von Daten auf dem Smartphone ermöglicht.

Dieses Loch lässt sich recht einfach ausnutzen, wenn man sich in einem WLAN befindet. Dann nämlich können Hacker (ich mag den Begriff in diesem Zusammenhang nicht) Adressbuch und Kalenderdaten auslesen, Bilder herunterladen, und die Daten auch manipulieren.

Natürlich trifft es einen am ehesten in ungeschützten WLANs, wie sie oft in Cafés oder an Bahnhöfen angeboten werden. Aber auch in verschlüsselten WLANs ist man nicht sicher, wenn der Angreifer sich im gleichen Netzwerk befindet.

Wenn man unterwegs auf ein Netzwerk trifft, welches einen bekannten Namen hat, loggt sich Android je nach Einstellung automatisch dort ein, ohne dass der Hansybesitzer das mitbekommt. Das ist wohl die größte Gefahr dabei.

Google hat die Lücke mit Android Version 2.3.4 bereits geschlossen. Wie lange es nun dauert, bis die Hersteller der Handys das Update an die Kunden weiterreichen, steht in den Sternen. Für einige ältere Smartphones wird es wohl überhaupt kein Update mehr geben. Bisher gibt es das Update nur für das Google Nexus S, und einige Geräte mit Custom ROM.

Bis man das Update bekommt, gibt es einfache Abhilfe: Wenn man das eigene, sichere WLAN verlässt, die WLAN-Funktion am Handy abschalten. Positiver Nebeneffekt: Der Akku hält länger.

Weitere Infos zum Thema:

Programmtipps zum Thema Computer, Sicherheit und Internet …

An dieser Stelle möchte ich auf ein paar interessante Sendungen zum Thema Computer, Sicherheit, Internet & Co hinweisen, die wöchentlich stattfinden.
Fernsehen
c’t Magazin

An dieser Stelle möchte ich auf ein paar interessante Sendungen zum Thema Computer, Sicherheit, Internet & Co hinweisen, die wöchentlich stattfinden.



Fernsehen

  • c’t Magazin
    Jeden Samstag befassen sich die Moderatoren Mathias Münch und Georg Schnurer (der stellvertretende Chef-Redakteur der Computerzeitschrift c’t) mit aktuellen Themen aus den Bereichen Computer und Multimedia. Die Sendung wird jeden Samstag um 12:30 Uhr im Hessen-Fernsehen ausgestrahlt. Die Wiederholung kann man zum Beispiel um 13:30 Uhr auf Eins Plus und auf einigen anderen ARD-Sendern in den Abendstunden der Woche sehen.

  • neues
    Jeden Sonntag um 16:30 Uhr moderiert Yve Fehring eine aktuelle Ausgabe dieser Sendung auf 3sat. Eine Wiederholung kann man am darauf folgenden Dienstag im ZDF sehen. Übrigens gibt es auf der 3sat-Webseite auch einen entsprechenden Podcast zur Sendung.



Podcast

  • ComputerClub 2
    Jeden Montag kann ab ca. 20:00 Uhr der aktuelle Podcast auf der Homepage des ComputerClub 2 heruntergeladen werden. Die beiden Moderatoren Wolfgang Back und Wolfgang Rudolph (bekannt aus der ehemaligen TV-Sendung im WDR-Fernsehen) berichten dann wieder im gewohnten lockeren Stil über aktuelle Nachrichten aus dem IT-Bereich. Außerdem kann man im eigenen Forum auf kräftig mit den Moderatoren diskutieren. Seit kurzer Zeit wird auch die monatliche TV-Sendung auf DrDish-TV ausgestrahlt.


Sicherheits-Update

Ich habe soeben das noch nicht mal einen Monat alte WordPress 2.5 auf die Version 2.5.1 aktualisiert. Auf das Update wurde u.A, bei WordPress Deutschland hingewiesen. Dort ist auch zu lesen, dass es ein dringendst zu empfehlendes Sicherheitsupdate handelt, dass neben einer schweren Lücke noch 70 weitere Fehler beheben soll.

So soll es auch Verbesserungen in der Performance geben, insbesondere im ACP, und der Upload in der Mediathek soll jetzt funktionieren. Das werde ich noch mal antesten.

Ich habe das unter obigem Link zu findende Update-Pack geladen und installiert. Aber auf jeden Fall sollte man vor dem Update eine Komplettsicherung des Blogs, also Dateien und Datenbank machen!