Alternativer Heimnetzzugang

Da seit Freitag Morgen mein Unitiymedia Zugang gestört zu sein scheint (Kabelmodem bekommt bei der Frequenzsuche immer Timeouts) und Unitymedia natülich über das E-Mail-/Web-Formular nicht reagiert hat, konnte die Störung erst Freitag Nachmittag gemeldet werden. Da ich nicht davon aussgehe, das der Anschluß innerhalb der versprochenen 48 Stunden repariert wird, habe ich mich nach einem alternativen Netzzugang umgesehen. Da ich noch einen Linux Server laufen habe, der u.a DNS, DHCP, DB, IPv6-Tunnelendpunkt und Mediendaten hostet, lagt die Idee nah, diesen via UMTS ans Netz anzubinden und vorübergehend als Router zu nutzen, damit alle Geräte im Heimnetz wieder Netzzugang haben.

Die Anbindung des Mobiltelefons via USB-Tethering war äußerst einfach. Nachdem das Telefon, ein Xperia Pro mit CyanogenMod 10, USB-Tethering aktiviert hatte, wurde dieses als Netzwerkgerät an dem Debian Server erkannt (usb0). Um darüber ein Netzverbindung zu erhalten, muss dieses

  • mit DHCP aktivert konfiguriert,
  • die aktive Defaultroute deaktiviert und
  • Routing und Masquerading aktiviert werden.

Ganz Debian-Like kann man das in /etc/network/interfaces erledigen, wobei 10.0.7.1 die Gateway Adresse von eth0 ist, die normalerweise verwendet wird (genauer ist es die Adresse der FritzBox):

iface usb0 inet dhcp
        pre-up ip route del 0.0.0.0 via 10.0.7.1 || true
        up iptables -t nat -A POSTROUTING -j MASQUERADE
        up sysctl -w net.ipv4.conf.all.forwarding=1
        down sysctl -w net.ipv4.conf.all.forwarding=0
        down iptables -t nat -D POSTROUTING -j MASQUERADE
        post-down ip route add 0.0.0.0 via 10.0.7.1 || true

Mit

ifup usb0

fährt man die alternative Verbidung noch und mit

ifdown usb0

wieder runter.

Jetzt noch im DHCP-Server die Gatewayaddresse auf die Adresse des Servers ändern und schon haben (nach DHCP RENEWAL) alle Heimnetzgeräte wieder Netzzugang.


Leider war die Verbindung so gut, dass nach kurzer Zeit das Freivolumen des Mobiltelefons erschöpft war und nur noch als 56K Modem funktionierte, was wirklich nicht (mehr) sehr gut für eine Heimnetzanbindung taugt 🙂

Da ich aber noch über einen FONIC SurfStick mit Tagesflatrate besitze, muss dieser jetzt angebunden werden. Die Tagsflatrate hat ein Tageslimit von 500MB und ein Monatslimit von 5GB (und falls sich jemand zu einen Stick zulegt, kann er oder sie gerne meine Nummer „017678444083“ als Werbung angeben; damit erhalten beide Seiten je ein 5€ Guthaben).

Zurück zur Konfiguration. Der SurfStick verhält sich wie ein Modem also ist das Paket wvdial eine gute Wahl. Für die Enstsperrung der PIN, ist das Paket comgt eine Möglichkeit, meine Konfiuration kommt aber mitterweile ohne diese Pakt aus.

Die wvdial-Konfiguration liegt in /etc/wvdial.conf und sieht so aus

[Dialer SurfStick]
Modem = /dev/ttyUSB0
ISDN = off
Modem Type = USB Modem
Baud = 115200
Init = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","pinternet.interkom.de"
Init4 = AT^SYSCFG=2,2,3FFFFFFF,2,4
Init5 =
Init6 =
Init7 =
Init8 =
Init9 =
Phone = *99#
Phone1 =
Phone2 =
Phone3 =
Phone4 =
Dial Prefix =
Dial Attempts = 1
Dial Command = ATDT
Ask Password = off
Password = ppp
Username = ppp
Auto Reconnect = on
Abort on Busy = off
Carrier Check = on
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 0
Auto DNS = 0
Check DNS = 0

Da ich das Ganze aber nicht in der Shell starten und dann irgendwie mühsam in den Hintergrund legen möchte, wird diese Verbindung auch via interfaces aktiviert und deaktiviert. Hierzu sind die folgenden Eintragungen nötig:

iface ppp0 inet wvdial
        provider SurfStick
        pre-up ip route del 0.0.0.0 via 10.0.7.1 || true
        pre-up echo AT+CPIN=1111 > /dev/ttyUSB0
        up iptables -t nat -A POSTROUTING -j MASQUERADE
        up sysctl -w net.ipv4.conf.all.forwarding=1
        down sysctl -w net.ipv4.conf.all.forwarding=0
        down iptables -t nat -D POSTROUTING -j MASQUERADE
        post-down ip route add 0.0.0.0 via 10.0.7.1 || true

Dann kann man mit

ifup ppp0

die alternative Verbidung hochfahren und mit

ifdown ppp0

wieder runterfahren.

TimeMachine auf Debian squeeze mit netatalk 2.2

Beim Aufsetzen meines neuen Heimservers als Ersatz für das qnap TS-412 (mit dem ich aus verschiedenen Gründen unzufrieden bin) wollte ich die praktische TimeMachine-Funktion nicht verlieren und habe mich etwas schlau gemacht.

Unter Linux gibt es netatalk, mit dessen Hilfe AppleTalk etc. zur Verfügung steht. Mac OS (ab 10.7 alias „Lion“) verlangt nach mindestens Version 2.2, unter Debian squeeze gibt es diese Version aber noch nicht. Also habe ich sie kurzerhand selbst kompiliert. Folgendes sollten wir vorher machen, um die Dependencies zu installieren:

aptitude install avahi-daemon avahi-utils \
  libavahi-client-dev libcrack2-dev libgcrypt11-dev \
  libssl-dev libwrap0-dev libkrb5-dev libdb4.8-dev \
  db4.8-util libpam-cracklib

Nach dem Herunterladen der aktuellen netatalk-Version (bei mir 2.2.1) von http://netatalk.sourceforge.net/ und dem Entpacken wird das Paket dann mit folgenden Befehlen kompiliert und installiert:

./configure \
  --with-shadow \
  --with-pam \
  --enable-fhs \
  --enable-tcp-wrappers \
  --enable-timelord \
  --enable-overwrite \
  --with-pkgconfdir=/etc/netatalk \
  --enable-krb4-uam \
  --enable-krbV-uam \
  --with-cnid-dbd-txn \
  --with-libgcrypt-dir \
  --with-cracklib=/var/cache/cracklib/cracklib_dict \
  --enable-ddp \
  --enable-zeroconf \
  --enable-debian
make
make install

Die configure-Optionen habe ich aus dem Debian-Source-Päckchen der Version auf squeeze übernommen und sinngemäß ergänzt bzw. korrigiert, da sich die Optionen der neueren Version etwas unterscheiden.

Hier muss man unter Ubuntu 12.04 LTS einsteigen:

Anschließend ist noch etwas Konfigurationsarbeit zu tun. Zunächst sollte ein Verzeichnis oder vielleicht besser eine gemountete, eigene Partition für TimeMachine-Backups vorhanden sein. Anschließend aktivieren wir in der Datei /etc/default/netatalk folgende Optionen:

ATALKD_RUN=yes
ATALK_BGROUND=yes

Danach sollten wir noch folgendes tun:

echo "- -tcp -noddp -uamlist uams_dhx.so,uams_dhx2.so -nosavepassword -mimicmodel RackMac" >> /etc/netatalk/afpd.conf

echo "
# TimeMachine Volume
/opt/timemachine/$u TimeMachine options:tm,usedots,upriv allow:@users" >> /etc/netatalk/AppleVolumes.default

Letzteres sorgt dafür, dass /opt/timemachine/$u ($u = Username des vom Mac aus an dem Share angemeldeten Benutzers) als Volume „TimeMachine“ freigegeben wird. Erlaubt sind alle Benutzer, die Mitglied der Gruppe users sind (allow:@users).

Nun kann netatalk gestartet werden:

/etc/init.d/netatalk start

netatalk – genauer gesagt der atalkd – benötigt einige Zeit um zu starten. Der Start erfolgt im Hintergrund. Man sollte jetzt etwa eine Minute vergehen lassen vor dem Versuch, mit dem Mac eine Verbindung zum Volume herzustellen.

Damit das Ganze auch nach einem Neustart wieder funktioniert, müssen wir noch folgendes tun:

update-rc.d netatalk defaults

Aktuellerer Firefox/Iceweasel unter Debian Lenny mit Backports

Jetzt wird’s ja wirklich langsam mal Zeit für einen aktuelleren Firefox unter Debian Lenny, hab ich mir gedacht. Und dann hab ich den Timo gefragt und der hat mir erklärt, wie man’s mit Backports macht:

Als erstes muss man in der Datei /etc/apt/sources.list folgende Zeile für Debian Backports ergänzen, falls sie nicht schon drin steht:

deb http://www.backports.org/debian lenny-backports main contrib non-free

Dann aktualisiert man aptitude und installiert den Iceweasel ganz einfach so:

aptitude update
aptitude -t lenny-backports install iceweasel iceweasel-l10n-de

Das feine an dieser Methode ist, dass man aus Backports nur die absolut nötigen Pakete nach zieht. Der kleine, aber bei Firefox vergleichsweise leicht zu verschmerzende Nachteil ist, dass er sich so nicht automatisch aktualisiert.

Aber gerade beim Firefox bekommt man eigentlich relativ schnell mit, wenn da ein wichtiges Update kommt und kann dann von Hand (mit den gleichen Befehlen wie oben) einfach aktualisieren. Vorausgesetzt natürlich, die neue Version ist schon in den Backports! Die sind da nicht immer ganz so flott.