KategorieWork @ Home

KVM/Dedi Proxmox und Hurricane Electric Free IPv6 Tunnel Broker in Gast @Home, FritzBox oder VPS

Problem

Nach wie vor gibt es viele Anbieter die für günstige KVM/Dedizierte Server kein IPv6 bereitstellen. Möchte man nun, aus welchen Gründen auch immer die VMs/Container native aus dem Netz erreichen kann man sich einen kostenlosten Tunnel von Hurricane Electric oder NetAssist zu nutze machen.

Ich gehe hier davon aus, dass euer Proxmox schon installiert ist. Es spielt keine Rolle ob dies native oder auf Debian installiert wurde.

Kernel Flags

Folgende Kernel Flags sind notwendig:

# /etc/sysctl.conf auf dem Proxmox Host

# IPv4 Traffic forwarden/routen
net.ipv4.ip_forward=1

# IPv6 Traffic forwarden/routen
net.ipv6.conf.all.forwarding=1

# IPv6 NDP weiterleiten
net.ipv6.conf.all.proxy_ndp=1

Ohne Systemneustart könnt ihr die settings wie folgt anwenden.

# In dem Shell des Proxmox Hosts als root ausführen
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
sysctl -w net.ipv6.conf.all.proxy_ndp=1

Um einen /64 Tunnel zu registrieren folgt diesen Schritten. Zuerst müsst Ihr auch registrieren und dann den Tunnel erzeugen:

Nachdem Ihr den Tunnel erzeugt habt, bekommt ihr automatisch alle Details, inklusiv des IPv6 Subnetzes.

Auf dem „Example Configurations“ Tab, könnt Ihr nun eine Grundkonfiguration für Debian herunterladen.

Leider funktioniert die Konfiguration nicht direkt, diese muss für Proxmox7/Debian11 noch angepasst werden und dann in die Datei /etc/network/interfaces eingefügt werden:

auto he-ipv6
iface he-ipv6 inet6 tunnel

        mode sit
        # IPv6 Tunnel Endpoints --> Client IPv6 Address
        address 2001:470:XXX:1c5::2
        netmask 64
        endpoint 216.66.84.46
        local 185.183.XXX.XXX
        ttl 255
        # IPv6 Tunnel Endpoints --> Server IPv6 Address
        gateway 2001:470:XXX:1c5::1

Im Anschluss muss noch eine neue Bridge angelegt werden. Diese Bridge wird eine IPv6 Only Bridge werden. Das bedeutet, wenn ihr eine VM/Container anlegt, müsste ihr 1x IPv4 und 1x IPv6 Netzwerk hinzufügen. Fügt bitte auch in /etc/network/interfaces die neue Bridge ein. Aktuell muss ich jede IPv6 Adresse als Proxy Neighbour händisch konfigurieren. Deshalb erzeuge ich immer eine ganze Liste. Im Beispiel sind es 6 Adressen.

auto vmbr2
iface vmbr2 inet6 static

        # Routed IPv6 Prefixes --> First routed ipv6 adress
        address 2001:470:XXY:1cb::1/80
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        comments6  ipv6 nat

        pre-up brctl addbr vmbr2
        post-down brctl delbr vmbr2
        post-up ip -6 neigh add proxy 2001:470:XXY:1cb::100 dev he-ipv6
        post-up ip -6 neigh add proxy 2001:470:XXY:1cb::101 dev he-ipv6
        post-up ip -6 neigh add proxy 2001:470:XXY:1cb::102 dev he-ipv6
        post-up ip -6 neigh add proxy 2001:470:XXY:1cb::103 dev he-ipv6
        post-up ip -6 neigh add proxy 2001:470:XXY:1cb::104 dev he-ipv6
        post-up ip -6 neigh add proxy 2001:470:XXY:1cb::105 dev he-ipv6

Nach einem Neustart des Servers können Ihr nun Container aufsetzten und ein Netzwerk konfigurieren. Auf dem Host sollte euer Netzwerk Tab ähnlich aussehen:

Es geht wieder los …

Nach nun einer längeren Pause habe ich wieder Zeit gefunden, meinen Blog weiter zu führen. In nächster Zeit werde ich über einige Themen wie „Privacy beim Surfen“, Virtualisierung, Netzwerktechniken und verschiedene Linux Topics wieder bloggen.

Ein großes Thema meiner Abstinenzzeit war auch das Thema – Hausautomatisierung. Hier habe ich mich speziell mit HomeAssistant, verschiedenen Arduino’s auseinander gesetzt.

Es gibt also viel zu berichten.

tar auf einen remote Server per ssh

Wie kann man per tar direkt auf einen remote Server schreiben? Warum möchte man direkt per tar auf einen remote Server sichern? Diese Fragestellung tritt speziell dann auf, wenn man auf den zu sichernden Server nur wenig verbleibende Disk-Kapazität hat. Typischerweise sind das dann Datenbankserver, oder wie in meinem Fall Webserver, die eine OwnCloud Instanz hosten. Da auch im Web der Festplattenspeicher teuer ist, nutze ich mein NAS zu Hause zu die Daten zu sichern. Hier steht ja in gewissem Maße unbegrenzter Speicherplatz zur Verfügung.

Also gut, dann erzeugen wir ein Archiv und pipen die Ausgabe direkt per SSH auf den Remote Speicher um.

tar zcvf - /var/www/ | ssh -p 22 root@nas.tschoerner.eu "cat > /media/backup/WebServer.tar.gz"

Nun wird das erzeugte Archiv direkt auf den SSH Server umgeleitet.

Müsst Ihr nun ein Backup wieder herstellen, so könnt Ihr das auch, ohne das Archiv kopieren zu müssen:

cd /
ssh -p 22 root@nas.tschoerner.eu "cat /media/backup/WebServer.tar.gz" | tar zxvf -

 

[HowTo] WordPress auf Hiawantha hosten

Kürzlich habe ich meinen WebServer umgestellt und betreibe einen Hiawantha Server. Um WordPress zu betreiben, setze ich mal voraus, dass der Server installiert ist (vergleiche hier), und ihr eine Datenbank angelegt habt.

Nun müsst ihr in der Datei /etc/hiawantha/hiawantha.conf die Rewrite-Rule einfügen:

UrlToolkit {
    ToolkitID = wp-multi
    Match ^/index\.php$ Return
    Match ^/([_0-9a-zA-Z-]+/)?wp-admin$ Redirect /$1wp-admin/
    RequestURI exists Return
    Match ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) Rewrite /$2
    Match ^/([_0-9a-zA-Z-]+/)?(.*\.php)$ Rewrite /$2
    Match .* Rewrite /index.php?$1
}

Jetzt legt Ihr noch ein vHost in der gleichen Konfig an:

VirtualHost {
        Hostname = XXX.tschoerner.eu,*.XXX.tschoerner.eu
        WebsiteRoot = /var/www/XXX.tschoerner.eu/public
        AccessLogfile = /var/www/XXX.tschoerner.eu/log/access.log
        ErrorLogfile = /var/www/XXX.tschoerner.eu/log/error.log
        StartFile = index.php
        TimeForCGI = 60
        UseFastCGI = PHP7 # --> PHP Version
        CustomHeader = X-Frame-Options: sameorigin
        CustomHeader = Vary: Accept-Encoding
        RandomHeader = 64
        UseToolkit = wp-multi # --> This loads the Rewrite Rule
        EnforceFirstHostname = yes
        PreventXSS = yes
        PreventCSRF = yes
        PreventSQLi = yes
}

Nun noch folgende Verzeichnisse anlegen:

mkdir -p /var/www/XXX.tschoerner.eu/log/
mkdir -p /var/www/XXX.tschoerner.eu/public
chown -R www-data:www-data /var/www/XXX.tschoerner.eu

Jetzt WordPress herunterladen:

cd 
wget https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
cd wordpress
mv * ../
cd ..
rm -rf wordpress
rm -rf latest.tar.gz
chown -R www-data:www-data /var/www/XXX.tschoerner.eu

Jetzt Hiawantha einmal neustarten, damit unser vHost erkannt wird.

/etc/init.d/hiawatha restart

Nun kann WordPress installiert werden. Hierzu könnt Ihr einfach eure URL aufrufen, in meinem Fall ist es http://XXX.tschoerner.eu

Wenn ihr WordPress von einem anderen Server umgezogen habt, vergleicht auf den fix der Permalinks.

OpenMediaVault/Debian Wheezy Kernel 4.6 ready to download

Heute habe ich die Zeit genutzt und den 4.6er Kernel für Debian Wheezy, respektive für OpenMediaVault kompiliert.

Bei dieser Version sind die USB Module fest im Kernel, somit könnt Ihr ohne Probleme von einem USB-Stick booten. Zusätzlich habe ich die e1000 Module in den Kernel kompiliert.

Hier könnt Ihr die Kernel herunterladen.

Installieren könnt Ihr die Kernel wie immer mit:

dpkg -i linux*.deb

Viel Spaß damit ….

[VIDEO-HOWTO] Windows 10 auf einem T60 mit ATI X1400 Mobility Grafikkarte

Heute gibt es ein Video von mir. Ich möchte Euch zeigen, dass Ihr auch auf alter Hardware immer noch Windows 10 laufen lassen könnt.  Im speziellen geht es um ein Thinkpad T60, welches die ungeliebte Grafikkarte ATI X1400 verbaut hat.

Hier könnt Ihr den gepatchen Treiber herunter laden. Bei der Installation müsst Ihr allerdings die Treibersignatur deaktivieren.

 

Falls Ihr, wie auch ich, Probleme nach dem Booten mit einem Schwarzen Bildschirm habt, müsst Ihr den „Fast Startup“ abschalten. Eine detaillierte an Anleitung gibt es hier.

Apache für LOW Memory VPS/Raspberry Pi optimieren

Apache und LOW Memory vertragen sich ja nicht so wirklich, deshalb eines Vorweg, man sollte wenn man nich unbedingt Apache braucht, auf Alternative wie nginx oder Lighttpd setzen. Ich betreibe eigentlich nur auf allen meinen kleineren Systemen (<2GB Ram) nur nginx und (<256MB Ram) lighttpd. Hier haben ich auch einen Link zu einer Low Memory LLMP Konfiguration.

Nichts desto trotz benötigt man manchmal unbedingt einen Indianer, und so kann man ihn auch auf einem Low Mem Server betreiben.

Also wie gesagt ist das größte Problem der Speicher den der Apache braucht. In der Konfigurationsdatei
/etc/apache2/apache2.conf kann man die Einstellungen tunen.

nano /etc/apache2/apache2.conf

In der Konfigurationsdatei dann folgende Konfiguration vornehmen:

<IfModule mpm_prefork_module>
    StartServers          1
    MinSpareServers       1
    MaxSpareServers       3
    MaxClients           10
    MaxRequestsPerChild 3000
</IfModule>
 
<IfModule mpm_worker_module>
    StartServers          1
    MinSpareThreads       5
    MaxSpareThreads      15 
    ThreadLimit          25
    ThreadsPerChild       5
    MaxClients           25
    MaxRequestsPerChild 200
</IfModule>

Des weiteren empfiehlt sich das Timeout zu reduzieren. KeepAliveTimeout sollte nicht mehr als 15 (Sekunden) betragen.

Nach diesen Einstellungen ist Apache schon wesentlich genügsamen. Jetzt sollte man noch nicht benötigte Module deaktivieren. Mit diesem Befehl seht Ihr alle Apache Module.

apache2ctl -M

Bildschirmfoto 2015-11-15 um 12.21.51

Um beispielsweise einen WordPress Blog zu hosten brauch man folgende Module (wie gesagt, WordPress läuft auch unter nginx & Lighttpd).

LoadModule dir_module modules/mod_dir.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule alias_module modules/mod_alias.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule rewrite_module modules/mod_rewrite.so

Um ein Modul zu deaktivieren kann man entweder die Konfigurationsdatei oder aber folgenden Befehl ausführen:

# Modul aktivieren
a2enmod module_name
#Modul deaktivieren
a2dismod module_name

Anschließend noch den Apache neu starten und Spaß haben.

samba4 als Backup DC für Windows Server 2012 R2

ubuntulogoWenn Ihr, wie auch ich, ein Active Directory zu Hause betreibt, liegt das Bedürfnis von Ausfallsicherheit Nahe. Gerade wenn es um die Zentrale Einrichtung von Benutzern und auch Passwörtern geht steht der Sicherheitsgedanke im Vordergrund. Egal ob der primäre Domainenkontroller auf Windows setzt oder auf Linux, so funktioniert das Setup des 2ten Domainkontrollers gleich.

Der Einfachheit halber gehe ich davon aus, dass die eingesetzte Distribution bereits ein Samba 4 mitbringt. Zu empfehlen it ein Samba > 4.2 da es sonst mit Windows 8/10 und dem Credential Manager zu Problemen kommen kann. Ich persönlich empfehle den Einsatz von Ubuntu oder aber Debian. Bei Debian ist Jessie (v8) oder aber Ubuntu 14.04/15.04/16.04 (Testing) zu empfehlen. Ist ein aktuelles Samba nicht verfügbar, so könnt Ihr in meinem Compileguide ein aktuelles Samba selbst kompilieren.

Nun geht es mit der Installation mit Samba los, hierzu benötigt Ihr natürlich root Rechte.

sudo apt-get update
sudo apt-get install samba

Anschließend entfernen wir die distributionseigene Konfiguration.

cd /etc/samba
mv smb.conf smb.conf.bak

Eigentlich ist die Arbeit jetzt erledigt, wir müssen jetzt nur noch der Domaine beitreten und unser Samba zum AD Controller promoten. Wenn alle DNS Einträge passen, geht es jetzt los:

sudo samba-tool domain join <Domain> DC -Uadministrator --realm=<FQD> --server=<running DC>

Example
samba-tool domain join home.tschoerner.eu DC -Uadministrator --realm=home.tschoerner.eu --server=frankfurt.home.tschoerner.eu

Wenn alles durchgelaufen ist, hat euer Linux nun folgende Rollen:

  • Backup AD Controller
  • DNS Server

Raspberry Pi Images auf SD brennen unter Linux/OSX

Aktuell liegen der Einfachheit halber die Raspberry Distributionen als Image vor. Häufig stellt man sich nun die Frage, wie bekomme ich das Image nun auf die SD-Karte. Unter Windows kann man einfach das Tool Win32-DiskImager nutzen, welches sich zu schreiben von Images als auch zu lesen eignet.

Unter OS X oder Linux findet man deutlich weniger Information zu diesem Thema, aber eigentlich geht es hier noch viel eifacher. Hat man das Image heruntergeladen, liegt es typischerweise als „.img“ Datei vor. Jetzt kann man das Image einfach mid dd auf die SD Karte schreiben. dd ist bereits bei OS X und auch bei Linux im minimal Umfang enthalten.

sudo dd bs=1M if=/home/felix/Downloads/2014-12-24-wheezy-raspbian.img of=/dev/mmcblk0