Beiträge getagged mit tipps
tinc-VPN als sicheren Exit-Node
Verfasst von David unter freie Software, Hilfe, Sicherheit am 7. April 2012
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.
Kurztipp: Tooltipp im IceWM umplatzieren
Onli schreibt zum Tooltipp im IceWM folgendes:
Wenn ShowWorkspaceStatus an ist, wird in einer kleinen Nachricht der Name der aktuellen Arbeitsfläche angezeigt. Diese Nachricht liegt immer knapp über der Taskbar. Wird diese gar nicht angezeigt, z.B. weil ein Dock ihre Funktion übernimmt das von der Nachricht blöderweise fast verdeckt wird, bekommt man die Anzeige scheinbar nur dort weg, indem man die gesamte unsichtbare Taskbar per TaskBarAtTop=1 nach oben legt.
Da ich mich mit dem IceWM nicht wirklich auskenne, bedanke ich mich bei Onli, und übernehme ich das mal so wie es ist.
Neues Handy steht an
Bei mir steht in den nächsten Tagen der Kauf eines neuen Handys an, und es wird wohl ein HTC Desire. Ich habe mich schon im Vorfeld schlau gemacht, wie es mit der Zusammenarbeit mit dem Pinguin ausschaut.
Die einfachste Lösung dafür wird dann die sein, die ich dann auch nutzen werde: Synchronisation über mein Google-Konto.
Da das Desire ja mit Android als Betriebssystem läuft, welches bekanntlich von Google stammt, ist die Verwendung des Google-Kontos hier gleich eingebaut. So werde ich dann das Adressbuch mit Google Contacts und den Kalender mit dem Google Calendar abgleichen können, Mails sind über IMAP eh schon synchron gehalten.
Auf dem PC und dem Netbook, und jeweils in der Windows- und der Linuxinstallation, nutze ich Thunderbird für den Mailverkehr, und mit der Lightning-Erweiterung auch als Terminkalender. Hier habe ich schon lange auch die Extension „Provider for Google Calendar” im Einsatz, um den Onlinekalender aus meinem Google-Konto in Thunderbird einzubinden. Und das geht in beide Richtungen, sowohl lesend, als auch schreibend.
Gestern Abend dann habe ich die Erweiterung „Zindus” installiert, die das Adressbuch mit Google Contact abgleicht. Dadurch habe ich natürlich erst mal ein großes Durcheinander im Adressbuch, da ich Google Contacts kaum gepflegt habe. Somit standen da ne Haufen Mailadressen drin, mit denen ich irgendwann mal Kontakt hatte, und die stehen nun auch im Thunderbird-Adressbuch. Und sind etliche Dopplungen bei, die zuvor schon lokal sauber und Ordentlich mit Namen, Telefon-Nummern und Postadressen ausgefüllt waren.
Der Vorteil: Ich halte auch automatisch die Adressbücher auf allen Rechnern synchron. Dass ich die E-Mails auch hier über IMAP abrufe, brauche ich ja nicht zu erwähnen. Somit sind diese automatisch synchron gehalten.
Jetzt steht die Bereinigung des recht umfangreichen Adressbuches an, damit ich den doppelten Müll nicht auf das neue Handy ziehe. Das werde ich Montag oder Dienstag bekommen, wie es im Moment ausschaut, und dann will ich soweit vorbereitet sein.
Media-Streaming zur Playstation 3
Seit ein paar Tagen gibt es bei uns im Haushalt denn auch mal eine Spielkonsole: Eine Playstation 3 von Sony.
Nachdem ich mich ein bisschen mit den Möglichkeiten der PS3 beschäftigt habe, wollte ich die Option nutzen, auf meinem PC vorhandene Medien-Inhalte (Bilder, Musik, Videos) über die Konsole wiederzugeben.
Dazu musste natürlich als erstes mal eine Netzwerk-Verbindung her, und dafür bietet die Box auf der Rückseite einen LAN-Anschluss. Ich habe aber die Möglichkeit gewählt, die PS3 per WLAN ins Netz zu bringen. Die Verbindung zur FRITZ!Box war denn auch flux eingerichtet und aktiv. Schon gab es ein Software-Update über das Internet, und ich konnte die FRITZ!Box als Media-Server erkennen. Zum Rest des Beitrags »
The Gimp auf Deutsch
Ich hatte letztens mal erwähnt, dass die Grafik-Bearbeitung „The Gimp” nicht Deutsch mit mir reden wollte. Ich hatte aus älteren Installationen in Erinnerung, dass es eine eigene Lokalisierung für diese Software gab. Jetzt fand ich jedoch nur eine übersetzte Hilfedatei.
Nun, ich machte mich auf die Suche, und wurde in diversen Foren fündig: Installiere einfach das Paket „language-pack-gnome-de”, und alles wird gut.
Es widerstrebt mir zwar, die Übersetzung für den kompletten Gnome-Desktop nachzuladen und zu installieren. Die Alternative ist aber ein nicht lokalisiertes Gimp…
Auf jeden Fall funktioniert es so, The Gimp spricht Deutsch
