Categories
Communications Networking

VPN-Probleme bei CGN/NAT444?

Diesen Artikel habe ich ursprünglich für unsere “Bürgerinitiative PRO Glasfaser” geschrieben. Da das Thema von allgemeinem Interesse sein dürfte veröffentliche ich ihn in leicht abgewandelter Form auch hier auf meinem Blog.


Uns haben mehrfach besorgte Interessenten angesprochen die von angeblichen “Problemen mit VPN beim Deutsche Glasfaser-Setup” gehört hatten.

Wir haben daraufhin selbst recherchiert und keine grundsätzlichen Probleme erkennen können, die auf Grund des Designs des DG-Setups zu erwarten sind.

Es handelt sich dabei um ein NAT444-Setup: Private IPv4-Adresse im Heimnetz (LAN), private IPv4-Adresse zwischen CPE (Router) und CGN sowie öffentliche IPv4-Adresse zwischen CGN und IPv4-Internet-Host. Es handelt sich nicht um Dual Stack-lite, da keine private IPv4-Adresse im LAN über IPv6 durch das CPE zum CGN getunnelt wird!

Solange “die IPv6-Migration” nicht beendet ist — sprich: Jeder Client weltweit kann IPv6 nutzen und jeder Host bietet seine Dienste ebenfalls per IPv6 an — sind Transitions-Techniken wie NAT444 von globaler Bedeutung. Daher gibt es einen eigenen RFC zu dem Thema “Einfluss von CGN auf Netzwerk-Anwendungen”: RFC-7021. Dieser RFC gibt keinerlei Hinweise dass es ein grundsätzliches Problem mit gängigen VPN-Anwendungen (NAT444-Szenario, VPN-Client im LAN, VPN-Gateway ausschließlich erreichbar über IPv4, aufgestellt in einer DMZ) geben könnte.

Wenn man (per Google) nach NAT444 sucht stößt man an prominenter Stelle auf diese Seite (die vor mehr als 4 Jahren erstellt wurde, also mittlerweile völlig veraltet ist!). Schon nach damaligem Stand ist die Seite als “dubios” zu bezeichnen.

Nach Aussage des Autors macht NAT444 “VPN” und “SSL” kaputt oder beeinträchtigt diese zumindest. In dieser Pauschalität ist die Aussage nicht sehr fundiert. Zum einen ist VPN nicht gleich VPN, es gibt diverse unterschiedliche Verfahren, die mit Sicherheit — wenn überhaupt — nicht alle gleichermaßen betroffen sind. Zum anderen ist SSL einfach nur eine Encryption Layer, die im Prinzip auf beliebige TCP-Ströme angewendet werden kann (das Protokoll bleibt aber TCP!). Wieso dieser TCP-Strom durch NAT444 beeinträchtigt werden soll erschließt sich mir nicht. Der Autor widerspricht sich mit seiner Aussage übigens selbst da er angibt, dass “Web” und “Mail” ohne Beeinträchtigung über NAT444 funktionieren sollen. Da aber auch bei Web-Anwendungen (HTTPS) und Mail-Anwendungen (SMTPS und POP3S/IMAP4S) “SSL” zum Einsatz kommt stellt sich die Frage wie das zusammen passt…

Um die Frage abschließend zu beleuchten besuchte ich am 26.06.2015 die “Deutsche Glasfaser”, um vor Ort in Heinsberg-Dremmen die beiden verbreiteten VPN-Protokolle “IPSec” (Cisco VPN Client mit XAuth) und SSL-VPN (Cisco AnyConnect) zu testen. Erwartungsgemäß konnte ich keinerlei Probleme mit den beiden o. g. VPN-Protokollen feststellen. Siehe auch diesen Artikel für weitere Infos über meinen Besuch.

Categories
Networking WTF

AVG can’t get DNS Setup right

It seems that antivirus company AVG can’t get their DNS Setup right.

Today I spotted the below in syslog:

DNS format error from 204.193.144.47#53 resolving crashportal.avg.com/AAAA for client 127.0.0.1#34590: Name avg.com (SOA) not subdomain of zone crashportal.avg.com -- invalid response

So the AVG updater tried to contact via IPv6, as a record type of AAAA was requested, a host called crashportal.avg.com. To do so it had to “resolve” that hostname crashportal.avg.com to an IP address in order to submit a crash dump for a recent crash of their virus scanner (very trustworthy!), and the DNS resolver failed to resolve the IP address. So why is this?

Let’s see:

# dig -t AAAA crashportal.avg.com

; <<>> DiG 9.9.5-9-Debian <<>> -t AAAA crashportal.avg.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 21322
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

Huh? We can’t resolve this because our server failed? Let’s see what’s going on…

# dig -t SOA avg.com

; <<>> DiG 9.9.5-9-Debian <<>> -t SOA avg.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42124
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;avg.com.                       IN      SOA

;; ANSWER SECTION:
avg.com.                1160    IN      SOA     ns.grisoft.cz. domainadministration.avg.com. 2015061601 86400 3600 1209600 10800

;; AUTHORITY SECTION:
avg.com.                172607  IN      NS      a11-66.akam.net.
avg.com.                172607  IN      NS      a20-66.akam.net.
avg.com.                172607  IN      NS      a13-65.akam.net.
avg.com.                172607  IN      NS      a26-67.akam.net.
avg.com.                172607  IN      NS      a1-182.akam.net.
avg.com.                172607  IN      NS      a6-67.akam.net.

Ok, so the above quoted Akamai nameservers should be able to help… Let’s see:

# dig -t AAAA crashportal.avg.com @a11-66.akam.net.

; <<>> DiG 9.9.5-9-Debian <<>> -t AAAA crashportal.avg.com @a11-66.akam.net.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63788
;; flags: qr rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 3, ADDITIONAL: 4
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;crashportal.avg.com.           IN      AAAA

;; AUTHORITY SECTION:
crashportal.avg.com.    300     IN      NS      gtm-atl.avg.com.
crashportal.avg.com.    300     IN      NS      gtm-self.avg.com.
crashportal.avg.com.    300     IN      NS      gtm-tnt.avg.com.

;; ADDITIONAL SECTION:
gtm-atl.avg.com.        3000    IN      A       204.193.144.47
gtm-tnt.avg.com.        3000    IN      A       173.245.115.70
gtm-self.avg.com.       3000    IN      A       212.96.161.252

So the server was not authoritative to answer the request and pointed us to a different set of servers.

Note that the IP address from my error message (204.193.144.47) belongs to one of the nameservers mentioned above!

Ok, let’s ask that server:

# dig -t AAAA crashportal.avg.com @204.193.144.47

; <<>> DiG 9.9.5-9-Debian <<>> -t AAAA crashportal.avg.com @204.193.144.47
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47390
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;crashportal.avg.com.           IN      AAAA

;; AUTHORITY SECTION:
avg.com.                60      IN      SOA     gtm-tnt.avg.com. hostmaster.gtm-tnt.avg.com. 2015052909 10800 3600 604800 60

Why does the nameserver respond with an SOA record even though it’s supposed to be authoritative and was asked for AAAA? It’s not a delegation as — and this is exactly the error message — avg.com is not a subdomain of crashportal.avg.com. Duh!

In my humble opinion it is very disappointing if an IT security company cannot even get the basics right, such as DNS.

This issue reminded me of another similar issue I observed a while ago: Avira can’t get their DNS Setup right. And guess what? This was an antivirus company, too…

Categories
English Networking Security WTF

Avira can’t get their DNS Setup right

Since many months I’m seeing the following issue with Avira‘s DNS setup, and I’m thinking it’s extremely embarassing for a company working in IT Security not to even get the basics right… 🙁

This is what I’m seeing:

named[2597]: DNS format error from 89.146.248.46#53 resolving dl4.pro.antivir.de/AAAA for client 127.0.0.1#52127: Name avira-update.net (SOA) not subdomain of zone antivir.de -- invalid response

So what does that mean?

Let’s have a look at which nameservers Avira are using anyway:

$ dig -t ns antivir.de

;; ANSWER SECTION:
antivir.de.        3600    IN    NS    ns13.avira-ns.net.
antivir.de.        3600    IN    NS    ns10.avira-ns.de.
antivir.de.        3600    IN    NS    ns9.avira-ns.net.
antivir.de.        3600    IN    NS    ns12.avira-ns.de.
antivir.de.        3600    IN    NS    ns14.avira-ns.de.

;; ADDITIONAL SECTION:
ns10.avira-ns.de.    86400    IN    A    80.190.154.111
ns12.avira-ns.de.    86400    IN    A    89.146.248.46
ns14.avira-ns.de.    86400    IN    A    74.208.254.45

Ok, so 89.146.248.46 in the error message quoted above is indeed one of the nameservers for domain antivir.de.

So let’s look up the IPv6 address record (AAAA) for dl4.pro.antivir.de on the given nameserver:
$ dig @89.146.248.46 -t AAAA dl4.pro.antivir.de

;; AUTHORITY SECTION:
avira-update.net. 3600 IN SOA ns1.avira-ns.net. domains.avira.com. 2015010301 10800 3600 2419200 3600

WTF?!

Why are they returning a domain name that is not a subdomain of the original domain?! That’s an error.

And it’s especially embarassing as this is the update URL for Avira’s AntiVir product. Again remember we’re talking about a security firm here!

Categories
Datenschutz Security Storage

Remove sensitive files from Synology debug.dat

Sometimes Synology support ask that you support a debug log. This can be done by launching the Support Center application. Then go to Support Services > Log Generation > push button “Generate logs”.

If you are concerned that you might give them sensitive information you can clean up the debug.dat file and remove the sensitive files from it.

I wrote a quick shell script that should runs under Mac OS X, but should also run under Linux. Here it is:

#!/bin/bash

DEBUG_FILE="$1"
NEW_FILE="$2"
if [ -z "${DEBUG_FILE}" -o -z "${NEW_FILE}" ]; then
    echo "You must specify the path to the debug AND to the new file, quitting..."
    exit 1
fi

if [ -z "$TMPDIR" ]; then
    TMPDIR="/var/tmp"
fi

PROG="`basename $0`"

if [ ! -r "${DEBUG_FILE}" ]; then
    echo "Debug file ${DEBUG_FILE} is unreadable, quitting..."
    exit 1
fi

if [ -f "${NEW_FILE}" ]; then
    echo "New file ${NEW_FILE} already exists, quitting..."
    exit 1
fi

EXCLUDE_PAT="`mktemp -t ${PROG}`" || exit 1

cat >"${EXCLUDE_PAT}" <<EOF
volume1/@tmp/SupportFormAttach28229/dsm/etc/application_key.conf
volume1/@tmp/SupportFormAttach28229/dsm/etc/shadow*
volume1/@tmp/SupportFormAttach28229/dsm/etc/ssl/*
EOF

tar cfz "${NEW_FILE}" -X "${EXCLUDE_PAT}" @"${DEBUG_FILE}"

rm -f ${EXCLUDE_PAT}

If this is helpful for anybody, please let me know by commenting on this article.

Categories
Storage TV

Terratec Cinergy Hybrid XE not working on Synology

Even on the latest 5.1-5021 version of Synology‘s DSM I couldn’t get my Terratec Cinergy Hybrid XE working on my Synology NAS — the corresponding kernel module tm6000 would always generate a general protection fault on my DS414.

Today I upgraded to a DS415+ (with a completely different CPU), and the module still crashes.

So it seems it’s a real bug in the driver, not just a defect on a single platform (which can happen e. g. due to compiler bugs).

Update 2015-06-19:

Unfortunately Synology seem not very interested in this kind of problems. I repeatedly reported this issue, but all they replied is “Thanks for your report, we’re looking into this.” Even in the latest DSM release 5.2 the issue is still present.

Categories
Computers Linux

vzlogger 0.3.9 for Raspbian with microhttpd included

I had a hell of a time compiling vzlogger 0.3.9 for Raspbian with microhttpd included — in the end the resulting binary lacked that functionality.

After a lot of trial-and-error and “forced” the code to be included by hard-coding the following define into as follows:

#define LOCAL_SUPPORT 1
#ifdef LOCAL_SUPPORT
#include "local.h"
#endif /* LOCAL_SUPPORT */

As a convenience to those who want that functionality I’ve attached a ready-made package to this post. Let me know if this helps.

Update 2014-12-28: Version 0.4.0 package with uhttpd support available here.

Update 2015-01-05: Version 0.4.0 package based on Git source with SHA d16c0c4c8d83ab9c13f65eb51d931897e7462bc9 available here.

 

Categories
Computers WTF

USB device draws too much power, PC will shut down

My dad in law recently asked me about a problem he had with his PC since a couple of days. When he switched on the PC he got an error message as follows:

A USB device is drawing too much power, the PC will shut down in 15 seconds.

Which it did. 😉

I asked him: “What did you do?” He: “Nothing.” Me: “Really?! Nothing at all?!” He: “Well, just connected a USB stick to copy over some pictures.” I: “Huh, so nothing… Let’s see…”

First thing I did is disconnect all USB devices (because I thought he might have done something else he couldn’t remember or didn’t want to tell ;-)). The error still prevailed.

So I inspected the front USB ports. And when I saw that I didn’t know whether I should laugh or be angry. He complete destroyed one of the USB sockets, obviously by trying to force in the USB stick the wrong way. The plastic was broken (and removed!!!), and the contacts were smashed against the “cage” of the sockets, obviously causing a shortcut (and thus this “phantom” device drew too much power ;-))

I opened the case to see whether I could disconnect just the single front USB port from the motherboard. But the two ports were connected to the motherboard with a single 10-pin connector block. I could have tried identifying the wires that led to the damaged port, but I was not in the mood for it, so I just used a screwdriver with a small flat blade to “stretch out” the contacts out of the metal cage and make sure that they don’t cause any shortcuts anymore. I then “sealed” the port with sticky tape, so that he wouldn’t use the port anymore.

Afterwards the PC booted up again as usual.

That was a 20 min. measure and cost nothing at all. I bet a computer repair shop would at least have sold him a new motherboard, if not even a new board plus CPU and RAM (since the combo is already 4 years old or something…), plus work of course.

Hope this helps people with similar issues.

Categories
deutsch Networking Routers WTF

Router blockiert SMTP-Server-Port(s)

Vor einige Tagen kontaktierte mich eine Bekannte, deren Domain ich auf meinem Root-Server hoste. Sie sei gerade umgezogen und könne nun plötzlich keine Mails mehr senden, wohl aber abholen. Der Mailclient meldete “Kann den Server nicht kontaktieren”. Und nein, sie habe in ihrem Mailclient definitiv nichts umgestellt. 😉

Da “klingelte” es gleich bei mir. Ich frug sie, ob sie auch einen neuen Router erhalten hätte, was sie bejahte. Meine Vorahnung ging also möglicherweise direkt in die richtige Richtung.

Was meine Vorahnung war? Nun, wenn plötzlich nach Verwendung eines neuen Routers das Versenden von Mails nicht mehr möglich ist, das Abholen aber sehr wohl noch, dann liegt der Verdacht nahe dass der Router diese Verbindungen blockt. Allerdings war mir zunächst nicht klar wieso der Router dies tun könnte.

Bevor ich weitere Untersuchungen durchführte stellte ich zunächst einmal sicher, dass mein Exim-SMTP-Server auch tatsächlich ordnungsgemäß funktioniert. Danach verschaffte ich mir Remote-Zugriff auf ihren PC mit Hilfe des kostenlosen und sehr empfehlenswerten TeamViewer.

Zum Test der Verbindung wollte ich “händisch” per Telnet eine Verbindung zu meinem SMTP-Server herstellen. Der Telnet-Client war noch nicht installiert, so dass ich ihn erst nachinstallieren musste. Dann führte ich in einem Command Prompt folgenden Befehl aus:

telnet <Mailserver-Hostname> 587

Es gab eine Fehlermeldung der Art “Connection timed out.”

Das war für mich der Beweis, dass meine Theorie richtig war. Ich verschaffte mir also per Webbrowser Zugang zur Administrationsoberfläche des (Telekom-) Routers und fand dort auf Anhieb einen Bereich, in dem ausgehende Mailserver eingetragen werden können. Die Mailserver der großen Mailprovider waren dort bereits eingetragen. Ich fügte also meinen Mailserver hinzu, und unmittelbar nach Anwenden der geänderten Konfiguration konnte die Verbindung zu meinem Mailserver wieder hergestellt werden.

Warum aber sperrt der Router unbekannte SMTP-Server? Als ich die Liste mit explizit konfigurierbaren Mailserver sah, war es mir auf Anhieb klar, obwohl ich sowas bisher nicht gesehen hatte. Der Router versucht Spambots daran zu hindern, von infizierten Rechnern aus Mail zu versenden.

An sich ja keine schlechte Idee, aber warum wird der Besitzer nicht deutlich (z. B. durch einen roten Einleger im Karton) darauf hingewiesen, dass diese Sicherheitsfunktion standardmäßig aktiv ist und welche Wirkung sie hat? Ist das womöglich auch ein Versuch, kleine Provider zu sabotieren?!

Wie auch immer, der “Einsatz” dauerte etwa eine Viertelstunde, danach war meine Bekannte wieder glücklich. Vielleicht hilft dieser Artikel ja dem einen oder anderen, ein vergleichbares Problem zu lösen. Über Feedback würde ich mich freuen.

Categories
Development WTF

Order in Google Play before Unix Epoch ;-)

Just noticed something funny: There’s a purchase in the “My Orders” list that supposedly happened before Unix Epoch:

Screenshot from Google Play showing one specific order -- with a date of   December 31, 1969
Screenshot from Google Play showing one specific order — with a date of
December 31, 1969

Maybe for some reason they don’t have the order date, and therefore set the date to “-1” (so a second before Unix Epoch, which is 1970-01-01)… Just guessing…

Anyway, I thought it’s funny enough to share it with you…

Categories
Storage TV

MSI Mega Sky 580 DVB-T Stick Support dropped by Synology

MSI Mega Sky 580 DVB-T stick users beware:

With DSM 5.0-4493 Update 4 for my DS414 Synology suddenly deliberately disabled support for my MSI Mega Sky 580 DVB-T stick.

I did not immediately notice this, since Synology do not warn you that you device has been disabled. So I missed a couple of programmes I wanted to record for my kid — thank you so much, Synology! 🙁

I downgraded to DSM 5.0-4493 and then installed Update 3 again, and my stick is still working.

Let’s see how Synology react to my complaint. If they will not enable my stick again I will complain to Amazon where I bought the device from — let’s see how they will respond…