Archive

Archive for the ‘debian’ Category

Miredo für Linux – IPv6 in 2 Minuten

May 31st, 2009

Auf MacOS X ist über Teredo IPv6 in zwei Minuten schaffbar. Wie sieht’s mit Linux aus?

The Teredo IPv6 tunneling protocol encapsulates IPv6 packets into UDP/IPv4 datagrams, to allow hosts behind NAT devices to access the IPv6 Internet.
Miredo is a Teredo client (as per RFC 4380): it can provide IPv6 connectivity to a dual-stack IPv6/IPv4 host even if it is located behind a NAT. It can also operate as a Teredo relay which forwards IPv6 packets between the IPv6 Internet and remote Teredo clients.

Miredo wird auf debianoiden Systemen per apt-get installiert und ist sofort nutzbar.

apt-get install miredo

Keine Konfiguration notwendig. Das schafft man in deutlich unter zwei Minuten :-)

% ip ad sh teredo
5: teredo:
 mtu 1280 qdisc pfifo_fast state UNKNOWN qlen 500
    link/[65534]
    inet6 2001:f:53aa:erfg:3447:asdf:261c:b068/32 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::ffff:ffff:ffff/64 scope link
       valid_lft forever preferred_lft forever
VN:F [1.4.6_730]
Rating: 9.3/10 (3 votes cast)

Sebastian IPv6, Software Empfehlungen, debian

OpenVPN per OpenSSL

February 17th, 2009

Wer von seiner preshared-key Infrastruktur weg möchte, dem sei gesagt: es geht auch viel schöner. Und wirklich so viel komplizierter ist dieser Weg auch nicht.

Leider sind gute Tutorials zu dieser Thematik recht selten, aber vielleicht hilft Euch ja das Folgende. Ich beziehe mich auf die aktuelle Version von OpenVPN aus Debian GNU/Linux. Das Prinzip ist allerdings bei jeder OpenVPN-Installation gleich.

Beginnen wir mit einem “leeren” Debian, und installieren als ersten Schritt die notwendigen Pakete.

apt-get update
apt-get install openvpn openssl

Debian wird den OpenVPN-Dienst direkt starten, welcher aber nicht wirklich weit kommen wird, daher beenden wir ihn per /etc/init.d/openvpn stop.

In /usr/share/doc/openvpn/examples/easy-rsa/2.0 finden wir die notwendigen Scripte um die Zerifikate für die Clients sowie den Server zu erstellen. Als erstes kopieren wir den Inhalt dieses Verzeichnises in /etc. (Wer noch kein Backup-System für /etc hat, dem sei etckeeper ans Herz gelegt – man sollte Backups machen. Wirklich.)

Die Datei vars enthält ein paar default Werte, die auf den persönlichen Geschmack geändert werden sollten, denn hier werden die Meta-Infos für die Zertifikate abgelegt. Sobald die Datei angepasst ist, den Inhalt “sourcen”.

. ./vars

Die zwei Punkte sind wichtig, kein Tippfehler. Da wir mit einer neuen Grund-Installation anfangen, übernimmt das Script clean-all etwas Aufräumarbeit für uns. Danach per

./build-ca

die Zertifizierungsstelle ins Leben rufen. Um bei vielen Zertifikaten nicht durcheinander zu kommen, empfiehlt es sich im Feld “common name” den FQDN des VPN-Servers oder ähnlich sinnvolle Inhalte anzugeben. Im nächsten Schritt erstellen wir das Server-Zertifikat, also das Zertifikat, welches später der OpenVPN-Dienst auf dem VPN-Server verwendet.

./build-key-server <Servername>

“common name” füllen wir wieder sinnvoll aus. Zeit den ersten Client-Schlüssel zu erstellen:

./build-key <Clientname>

Beim Client-Zertifikat soll sich bitte jeder selbst überlegen, ob ein “Challenge Password” Sinn ergibt oder nicht. Effektiv bedeutet das nichts anderes, als das der Benutzer ein Passwort eingeben muß um den Tunnel zu starten.

Als letzte Aktion vorerst, generieren wir noch die Diffie Hellman Parameter (nicht nachfragen – wer’s wirklich wissen will, Google hilft weiter.) und sind dann bereit für die OpenVPN-Config.

./build-dh

Im Unterverzeichnis keys finden sich nun die relavanten Dateien der Zertifkate, die wir an die richtige Stelle im Verzeichnisbaum kopieren.

cp ca.crt ca.key dh1024.pem <Servername>.crt <Servername>.key /etc/openvpn

Die Datei /etc/openvpn/openvpn.conf ist der nächste Schritt. Der Inhalt sollte in etwa so aussehen:

port 1194
proto tcp
dev tun
ca ca.crt
cert <Servername>.crt
key <Servername>.key
dh dh1024.pem
server 172.16.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
user nobody
group users
persist-key
persist-tun
status openvpn-status.log
verb 3
client-to-client

Wer verhindern möchte, daß die verbundenen Clients miteinander kommunizieren können, entfernt die letzte Zeile. Die Zeile server 172.16.0.0 255.255.255.0 enthält das Range an IP-Adressen, die den VPN-Clients ausgegeben werden (recht ähnlich zu DHCP). Hier bitte natürlich ein valides Subnetz eintragen.

Mit /etc/init.d/openvpn start starten wir den OpenVPN-Dienst, und ein beherztes ifconfig bzw. ip ad sh sollte uns ein tun0 Interface zeigen.

Nun zum Client.

Die OpenVPN-Config des Clients sollte in etwa diesen Inhalt haben:

client
dev tun
proto tcp
remote <Servername> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert <Clientname>.crt
key <Clientname>.key
comp-lzo
verb 3

Die Dateien ca.crt, <Clientname>.crt und <Clientname>.key müssen natürlich vorher vom Server auf den Client übertragen werden. Wenn der Client nun gestartet wird, sollte eine Verbindung zum VPN-Server aufgebaut werden. Falls nicht, Ruhe bewahren und Log-Dateien ansehen.

Was fehlt noch? Auf dem VPN-Server müssen wir noch IP-Routing aktivieren, um das VPN-Client Netz mit dem lokalen Netz zu verbinden. Auf Linux geht das recht simpel per:

echo 1 > /proc/sys/net/ipv4/ip_forward

Diese Zeile möchte man wohl in einem der init-Scripte oder im Firewall-Script verstecken, oder per post-up hook in der /etc/network/interfaces definieren.

Das war’s. Eigentlich einfach, oder? Soll ein weiteres Zertifikat für einen weiteren Client erstellt werden, einfach die Zeile ./build-key <Clientname> wiederholen. Es empfiehlt sich die Zertifikate nicht auf dem VPN-Server liegen zu lassen, also das ganze easy-rsa-Verzeichnis nach getaner Arbeit auf eine andere Maschine zu verschieben. Ebenfalls bitte regelmäßig Backups davon anfertigen.

Je nach Setup muß die Route in das VPN-Client Netz noch auf den anderen Maschinen gesetzt werden.

Auf Linux per route add -net 172.16.0.0/16 gw a.b.c.d und auf Windows per route -p add 172.16.0.0 mask 255.255.0.0 a.b.c.d.

VN:F [1.4.6_730]
Rating: 10.0/10 (2 votes cast)

Sebastian IPv4, PacketPro, VPN, debian, networking

Debian GNU/Linux 5.0 released

February 15th, 2009

Grade per Twitter erfahren.

The Debian Project is pleased to announce the official release of Debian GNU/Linux version 5.0 (codenamed Lenny) after 22 months of constant development.

[From Debian -- News -- Debian GNU/Linux 5.0 released ]

Wurde aber auch Zeit. :-)

So lasset die Update-Orgien beginnen…

VN:F [1.4.6_730]
Rating: 8.0/10 (2 votes cast)

Sebastian debian

OpenAFS 1.5.50 in debian/experimental

November 3rd, 2008

Debian-User, die keine Lust mehr auf den Client 1.4.7 haben, koennen einen Blick ins “experimental“-Archiv werfen, denn da wartet der 1.5.50er Client auf die Installation.

Die entsprechenden Sourcen muessen natuerlich bekannt sein:
/etc/apt/sources.list:
deb http://ftp.de.debian.org/debian/ experimental main contrib non-free
deb-src http://ftp.de.debian.org/debian/ experimental main contrib non-free

apt-get install
openafs-client/experimental openafs-krb5/experimental openafs-modules-source/experimental

Danach noch das Kernel-Modul neu bauen (der module-assistant hilft) und den 1.5.50er Client geniessen.

Getestet unter 2.6.26 sowohl i386 als auch AMD64 – funktioniert soweit ich das sehen kann wunderbar.

Hinweis:
Um nicht beim naechsten dist-upgrade auf experimental zu rutschen, bitte noch folgendes:
/etc/apt/apt.conf:
APT::Default-Release "stable";
bzw.
/etc/apt/apt.conf:
APT::Default-Release "testing";

VN:F [1.4.6_730]
Rating: 9.5/10 (2 votes cast)

Sebastian AFS, debian

Debian-Installation “clonen”

October 16th, 2008

Merkzettel:

Quell-Host:
dpkg --get-selections > selections

Ziel-Host:
apt-get update
dpkg --set-selections < selections
apt-get -u dselect-upgrade

VN:F [1.4.6_730]
Rating: 9.0/10 (2 votes cast)

Sebastian debian

Applikations-Menüs in e17

October 1st, 2008

Merkzettel für mich selbst:

apt-get install menu menu-xdg xdg-utils
ln -s /etc/xdg/menus/debian-menu.menu /etc/xdg/menus/applications.menu

VN:F [1.4.6_730]
Rating: 7.5/10 (2 votes cast)

Sebastian debian, e17

Dependencies von OpenAFS auf Debian

August 19th, 2008

Inspiriert von Anil habe ich mir die nötigen Pakete für OpenAFS genauer angesehen, speziell die Dependencies.

openafs-client:

openafs-fileserver

openafs-krb5

Soweit ja noch ganz überschaubar.

krb5-user

krb5-clients

“The resulting nodes will have several shapes; normal packages are boxes, pure provides are triangles, mixed provides are diamonds, missing packages are hexagons. Orange boxes mean recursion was stopped [leaf packages], blue lines are pre-depends, green lines are conflicts.”

[man apt-cache]

Erzeugen kann man solche Grafiken recht einfach mit dem graphviz-Paket.
apt-cache dotty Paket > /tmp/dotfile
dot -Tgif -o Paket.gif /tmp/dotfile

VN:F [1.4.6_730]
Rating: 10.0/10 (1 vote cast)

Sebastian AFS, debian