Category Archives: Computers

Everything that has to do with, guess what, computers. :-)

Bitlocker: How to require Startup PIN

A lot of people use Bitlocker for full-disk encryption of their hard drives. For extra security you might want to be prompted for a PIN when you unlock your hard drive, because allowing attackers to boot your system without authentication might open up extra attack vectors. Setting a PIN can be easily accomplised if you know how… 🙂

The below instructions are exact for Windows 10, but they are very similar in Windows 7, too.

Launch the Local Group Policy Editor by typing gpedit.msc into your Windows search, then when it has been found right-click on it and select Run as administrator from the pop-up menu. Then maneuver to the following path in the left “folder” pane:

Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components > Bitlocker Drive Encryption > Operating System Drives.

This is what it looks like if you did it correctly:

Bitlocker_Group_PolicyThen double-click on the setting Require additional authentication at startup, and you see the following dialog:

Bitlocker_PINNow change option Configure TPM startup PIN to read:

Require startup PIN with TPM

Then reboot. Now you can right-click on your system drive and select Set Bitlocker PIN or Change Bitlocker PIN (I forgot to take a screenshot of this last step, so I’m not 100% how exactly this looked like, but it should be obvious) from the pop-up menu.

You’re done. Wasn’t that easy?

Please leave a message if this was helpful.

Attention changing BIOS Settings with Bitlocker

The Problem

If your laptop has been set up to use Bitlocker, by your company or yourself, you should be very cautious when playing with your BIOS settings.

Bitlocker considers BIOS settings changes a potential security breach, as somebody could e. g. change boot order to boot from an external media to try to fiddle with the boot mechanism set up on your hard drive or SSD. This is why when you change something in the BIOS or just boot from an external drive, such as a thumb stick, Bitlocker will prompt you for your recovery code.

The Solution

To prevent this you just have to disable the so-called “protector” for your boot drive. Only then should you change BIOS settings or boot from a drive other than your normal boot drive.

You do so using the manage-bde tool which is part of Windows:

manage-bde –protectors –disable <Drive>

Don’t forget to re-enable the protector after you’re done:

manage-bde –protectors –enable <Drive>

If this helped, I’d appreciate a comment from you here on my blog.

Genexis FiberTwist-P2410 dissected

By chance I got an early hands-on on a fiber network terminator (NT)/broadband gateway (such a device will soon be installed for my FTTH line provided by “Deutsche Glasfaser.”) I don’t know how it happened, but it suddenly fell apart, so I had a brief look under the hood… 😀

IMG_0673
Genexis FiberTwist-P2410 inside view

The SoC is a Lantiq PXB 4369 EL V2.1 (GRX300), which is a Gigabit Ethernet Router/Gateway SoC with int. 2×2 WiFi. There aren’t any antennas, though, and it seems you can’t add any either. The device is from the GRX 300 series, which is a “CPE Network Processor with integrated WiFi.”

A Russian web site states that its actually the GRX369 series, and that the SoC is clocked with 600 MHz. (Update: The CPU is a MIPS 34Kc V5.6 clocked at 600 MHz, 397.82 BogoMIPS.)

The device can be simply twisted on the wall junction box which is the provider’s fiber hand-over point (“fiber management unit,” FMU.)

On the WAN side we have a Mentech FGE20-N9C-35S as the optical transceiver module (2×5 form factor) for single-mode fiber in passive optical networks (PON). Optical wavelength division multiplexing (WDM) is used so a single fiber can be used for both downstream and upstream data. The maximum data rate this transceiver can handle is 1.25 Gbit/s (which suggests we’re talking EPON, 802.3ah-2004 here…). The reach without intermediate amplification is 20 km(!). Wavelengths of 1,310 nm (upstream)/1,490 nm (downstream) are used.

For LAN connectivity the gateway has 4 Gigabit Ethernet ports, driven by two FPE LG48204DH 2-port LAN transformer modules in a DIP-48 package.

The transceiver is a Marvell 88E1512-NNp2 out of the “Alaska” series, 10/100/1000 BASE-T single-port PHY (so it seems that all fiber/Ethernet ports are on the same switch), supporting Energy Efficient Ethernet (EEE) and Advanced Virtual Cable Tester functionality.

Update: The switch seems to be a Lantiq VRX318 (or compatible).

Firmware is stored in a Elite Semiconductor (ESMT) F59L1G81LA-25T single-level serial (SPI) NAND flash chip in a TSOP48 package. It operates with 3.3V at a clock of 25 ns and has a flash density of 1 Gbit and a bus width of 8 bits. The total memory size is 128 MByte.

RAM is provided by a Winbond W971GG6SB-25 chip, which is a DDR2-800 (5-5-5) SDRAM chip with a size of 128 MByte, operating at transfer rates of 800 Mbit/s per pin with a power supply of 1.8 V. (Update: The RAM is actually clocked at 300 MHz.)

It seems that the broadband gateway is equipped with a serial-console connector.

Here’s another photo that shows where the key components are located:

Genexis FiberTwist-P2410 with key components
Genexis FiberTwist-P2410 with key components

Please let me know if this in any way helps you, or you can contribute to this post.

uhttpd with a certificate chain

To secure access to my router I wanted to use SSL encryption to access LuCi, so I obtained a certificate issued by a well-known CA. The server certificate was not issued directly off the CA, but there was a certificate chain in between.

Using a certificate chain with OpenWrt’s uhttpd is really easy, although as of today this is not yet even documented to be possible on the OpenWrt web site.

I’m using uhttpd_2015-11-08 from a trunk build (r48648) of “Designated Driver”, and certificate chains can be used here without problems.

I didn’t even have to convert from PEM to DER, I just concatenated the server cert and intermediate certs into a single file:

cat /root/server.crt /root/1_root_bundle_1.crt /root/1_root_bundle_2.crt >uhttpd.crt

Hope this helps. If it does please leave a message, thank you.

Brother MFC-7840w “Internet Fax” über DUS.net

Seit einigen Tagen habe ich einen “IP-only”-Telefonanschluss, so dass ich nicht mehr wie bisher mit meinem Brother MFC-7840w-Multifunktionsgerät über einen a/b-Terminaladapter an einem ISDN-Anschluss faxen kann.

Beim Suchen nach Alternativen stieß ich auf dieses Wiki im IP-Phone-Forum, welches mir sehr weiter geholfen hat.

Zunächst musste ich ein Firmware-Update für mein Faxgerät flashen, was die benötigte Internet-Fax-Funktionalität  (T.37-Protokoll) implementiert.

Weiterhin musste ein Anbieter gefunden werden, der dieses Protokoll unterstützt. DUS.net, welches auch im obigen Wiki erwähnt wird, war mir ohnehin schon bekannt, weil ich auf der Suche nach einem guten SIP-Provider bin. Also wollte ich gerne DUS.net als Fax-Provider nutzen, jedoch gibt es da ein prinzipielles Problem:

Um das Dus.net mail2fax Gateway anzusprechen, müssen Zugangsdaten > 50 Zeichen im Betreff-Feld übertragen werden. Die Brother-Firmware (4.0) speichert aber nur 41 Zeichen ab.

Meine Lösung sieht nun so aus: Continue reading Brother MFC-7840w “Internet Fax” über DUS.net

Monitor DrayTek Vigor 130 Line Status

I recently got myself a new DSL modem, namely a DrayTek Vigor 130, as I switched from ADSL2 to VDSL2-Vectoring, so that I couldn’t use my Allnet ALL0333CJ Rev. C any longer.

As I monitor about everything (just kidding) with Nagios, I certainly wanted to implement a check of the modem’s line status.

Here’s what I came up with:

# ARG1: community
define command{
        command_name    snmp_modem_status
        command_line    /usr/lib/nagios/plugins/check_snmp -H '$HOSTADDRESS$' -C '$ARG1$' -o SNMPv2-SMI::transmission.94.1.1.3.1.6.4 -P 2c -r "53 48 4F 57 54 49 4D 45"
        }
define host {
        host_name       dslmodem
        address         192.168.0.1
        use             generic-host-internal
        parents         gw
}

Nagios is running on my intranet server. The next hop when seen from Nagios is my Internet gateway (host “gw”, my router), and from there the next hop is the DSL modem (host “dslmodem.”)

Hope this helps someone… If it does please leave a quick message here in this blog, thanks…

Vodafone VDSL-100 mit diskretem Modem und Router

Heute war endlich “der große Tag” gekommen — mein alter Arcor/Vodafone Annex.B-Anschluss (ISDN/ADSL) sollte umgestellt werden auf IP-only in Form von Vodafone VDSL-100, d. h. VDSL2-Vectoring mit einer Geschwindigkeit von 100 MBit/s für den Downlink, 40 MBit/s für den Uplink.

Bei uns kann Vodafone diesen Anschluss noch nicht basierend auf eigener Infrastruktur anbieten, sondern muss ihn als Bitstream-Produkt von der Telekom einkaufen. Das ist mir aber egal, Hauptsache es funktioniert… 😉

Aus verschiedenen Gründen mag ich keine “All-in-One”-Produkte, insbesondere keine von den Netzbetreibern angebotene:

  • Man muss bei “All-in-One”-Produkten in der Regel immer Kompromisse machen. Wenn ich “diskrete” Komponenten kaufe, d. h. ein separates Modem, einen Router, ein SIP-Gateway, einen Intranet-Server, dann kann ich mir genau die Geräte aussuchen, die meinen Vorstellungen am nächsten kommen.
  • Tritt ein Defekt bei einem “All-in-One”-Produkt auf, dann geht gar nichts mehr. Bei diskreten Geräten bleibt ein Teil der Funktionalität erhalten.
  • Ich bin nicht darauf angewiesen, dass mir der Netzbetreiber (insb. sicherheitsrelevante) Updates (zeitnah) zur Verfügung stellt, da ich mir die jeweiligen Updates jederzeit selbst beschaffen und installieren kann, insbesondere wenn ich auf Open Source-basierende Komponenten setze.
  • Andererseits kann mir der Netzbetreiber auch keine Einstellungen oder Updates “aufzwingen” und damit womöglich meinen Anschluss oder bestimmte Funktionalitäten lahm legen.
  • Netzbetreibergeräte sind oft in den Funktionen beschnitten. Bei Unitymedia z. B. muss man für die Aktivierung des WLANs extra bezahlen!

Daher setze ich folgende diskrete Geräte ein: Continue reading Vodafone VDSL-100 mit diskretem Modem und Router

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.

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…