HowTo: ASIX AX88179 USB 3.0 Gigabit Ethernet unter Ubuntu 13.10

Vor kurzem habe ich einen Digitus USB 3.0 Gigabit Ethernet Adapter bekommen. Bei diesem ist ein AX88179 Chip von ASIX verbaut. Er wurde unter Ubuntu Linux 13.10 mit einem 3.11er Kernel problemlos erkannt, funktionierte aber nicht wirklich.

Ursache dafuer scheint das Kernelmodul zu sein, was fehlerhaft ist. Es gibt zwei Wege den Adapter dennoch zum Laufen zu bekommen:

1. Drosseln auf 100Mbit:

sudo ethtool -s eth0 speed 100 duplex full antoneg off

2. Kernel Modul von Herstellerseite herunterladen und kompilieren:

cd /tmp
wget http://www.asix.com.tw/FrootAttach/driver/AX88179_178A_LINUX_DRIVER_v1.9.0_SOURCE.tar.bz2
aptitude install build-essential linux-headers-$(uname -r)
tar -xjf AX88179_178A_LINUX_DRIVER_v1.9.0_SOURCE.tar.bz2
cd AX88179_178A_LINUX_DRIVER_v1.9.0_SOURCE/
make
sudo make install

Mit der letzteren Loesung funktioniert der Adapter bei mir problemlos auch auf Gigabit.

Unix Timestamp vs. Java Timestamp

Wer als Sysadmin mit Java Entwicklern zu tun hat und beide wie selbstverstaendlich ueber Timstamps reden, dann gibt es doch einen entscheidenen Unterschied. Beide Timestamps geben die Zeit seit dem 01.01.1970 00:00:00h wieder. Unix Timestamps jedoch in Sekunden, Java Timestamps in Millisekunden.

Fuer die Praxis:

  • 01.01.2014 00:00:00 als Unix Timestamp:
    user@host:~$ date -d "2014-01-01 00:00:00" "+%s"
    1388530800
    user@host:~$
  • 01.01.2014 00:00:00 als Java Timestamp:
    usaer@host:~$ echo $(date -d "2014-01-01 00:00:00" "+%s")*1000 | bc
    1388530800000
    user@host:~$

HSTS – Was es ist, wie es funktioniert und wie man es in Apache einrichtet

HSTS steht für HTTP Strict Transport Security und ist ein HTTP-Header bei dem der Webserver dem anfragenden Browser mitteilt, das alle Verbindungen nur ueber SSL/TLS aufgebaut werden sollen.
HSTS soll „Man-in-the-middle“ Attacken abwehren oder erschweren. Das Angriffsszenario besteht darin, dass Nutzer in der Regel nie

https

in den Webbrowser eingeben, sondern immer nur

example.net

Die Weiterleitung von http:// zu https:// macht der Webserver. Das sieht dann zum Beispiel so aus:
ohne_hsts

Man kann sehen, dass die erste GET Anfrage mit einem HTTP 302 Weitergeleitet wird und die zweite dann ein 200 OK zurueck liefert. Der Webserver ist in diesem Fall so konfiguriert, das alles was per HTTP reinkommt, automatisch auf HTTPS umgeleitet wird:

<VirtualHost *:80>
        ServerAdmin webmaster@jan-von.de
        ServerName mail.jan-von.de
        DocumentRoot /var/www/empty
 
        RewriteEngine on
        RewriteCond %{HTTP:X-Forwarded-Proto} !https
        RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
 
        CustomLog /var/log/apache2/mail.jan-von.de-access.log combined
</VirtualHost>

Genau hier liegt auch das Problem. Man kann sich in einem fremden Netz befinden, zum Beispiel einem unbekannten oeffentichen WLAN, dort kann die HTTP Anfrage abgefangen und der HTTPS Aufruf auf einen alternativen Server weitergeleitet werden.

Hier kommt HSTS ins Spiel. Der Server teilt dem Webbrowser mit, dass er sich bitte fuer eine bestimmte Zeit (zum Beispiel ein Jahr) daran erinnern soll, das diese Webseite nur noch ueber HTTPS aufgerufen werden soll.

In Apache muss dafuer das Headers-Modul aktiviert sein:

a2enmod headers

und anschliessend fuegt man in den HTTPS vhost die folgende Zeile ein:

Header always set Strict-Transport-Security "max-age=31556926"

Der Parameter max-age wird in Sekunden gesetzt. 31556926 Sekunden sind 365 Tage. Ein weiterer Parameter den man optional noch mit Komma Semikolon separiert dahinter haengen kann ist includeSubDomains. Dafuer muss aber sichergestellt sein, dass auch alle Subdomains per HTTPS erreichbar sind.
Weiter muss man aufpassen, dass die entsprechenden vhosts auch die angegebene Zeit, also zum Beispiel ein Jahr lang per HTTPS erreichbar sind, ansonsten kann es zu Fehlermeldungen kommen.

Wenn man dann HSTS aktiviert hat und eine Webseite aufruft die es unterstuetzt, dann kann man schoen sehen, wie der Browser gleich HTTPS nimmt und gar nicht erst HTTP probiert.

mit_hsts

Weiteres zu dem Thema z.B. unter:

Snippets: Postfix canonical mit regex; Samba alternatives disk free command

Vor einiger Zeit hatte ich Dokumentiert, wie man bei Postfix Absender umschreiben kann, es geht auch mit regex und dadurch generischer und einfacher:

  1. In die /etc/postfix/main.cf folgendes eintragen
    sender_canonical_maps = regexp:/etc/postfix/canonical.regexp
  2. /etc/postfix/canonical.regexp anlegen mit Eintraegen wie z. B.:
    /^(.*)@bastel.fritz.box$/               bastel-${1}@example.org
  3. Postfix neu starten:
    service postfix restart

Der zweite Punkt ist, dass man in Samba ein alternatives Kommando zur Berechnung des freien Speichers geben kann. Dieses ist seit 3.0.21 per Share moeglich. Die Ursache wofuer wir das brauchten ist zu kompliziert um es auf die schnelle zu notieren, deswegen nur fix:

  1. Fuer den gewuenschten Share die folgende neue Option konfigurieren
    dfree command = /usr/local/bin/samba-dfree
  2. Folgendes Skript unter /usr/local/bin/samba-dfree ablegen
    #!/bin/bash
     
    #df $1 | tail -1 | awk ´{print $(NF-4),$(NF-2)}´
    df /mnt/disk1/ |tail -1 | awk '{print $(NF-4),$(NF-2)}'
  3. Samba neu starten
    service smbd restart

 

Weil mein Arbeitskollege seinen Blog erst nach vermutlich 5 Jahren wiederbeleben moechte, notiere ich es jetzt hier mit Credits an Ihn, er hat beides rausgesucht.