Posts mit dem Label Tipp werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Tipp werden angezeigt. Alle Posts anzeigen

28.02.2014

LTE-Empfangsqualität abfragen (Diagnose-Logfile)

Neulich hab ich mich beschwert, dass man beim alten Modell des LTE-Routers (Telekom LTE 1 bzw. Huawei B390s) nicht die Empfangsqualität abfragen kann.

Und es geht doch! Zwar ziemlich versteckt in den Tiefen der "Erweiterten Einstellungen", aber man kann es doch abfragen.

Wie üblich in Ihrem freundlichen Service-Blog auch gleich wieder die Möglichkeit, diese Daten automatisiert per Skript abzufragen und damit ggfs. regelmäßig zu protokollieren.

Der übliche Trick: mit dem ersten wget-Aufruf geschieht der Login, das Session-Cookie wird gespeichert, und mit dem zweiten Aufruf wird dann die interessante Seite abgerufen.
#!/bin/sh

PATH=/opt/bin:/opt/sbin${PATH:+:$PATH}

H=vodafonemobile.cpe
C=/tmp/cookies.txt
U1="http://"$H"/login.cgi"
U2="http://"$H"/diagnosis_export.cgi?configId=$(date +%s)&FileName=diagnosis.txt"

wget --save-cookies "$C" \
     --keep-session-cookies \
     -q --tries=1 \
     -O /dev/null \
     --post-data 'Username=admin&Password=yourpw' \
     "$U1"

wget --load-cookies "$C" \
     -q --tries=1 \
     -O - \
     "$U2" | \
awk '
{if (NR>=5&&NR<=42){print}}
'

rm -f "$C"
Der Output sieht dann in etwa so aus wie da unten.

Besonders interessant sind die Zeilen bei "RSRP" und "RSRQ". Mit den Werten -90dBm und -8 dB zeigt mir der Router 4 von 5 Balken an. Laut Telekom-Auskunft sind Werte bis -60/-2 möglich, das wäre super-super-optimal. Wenn man das Gerät in der Ausrichtung verändert, darf  RSRP ruhig etwas schlechter werden, falls man dadurch RSRQ verbessern kann. Optimal wäre, wenn beide Werte größer werden (-90 --> -60, -8 --> -2).

Auch sehr hübsch: man erfährt den Funkmast, mit dem der Router verbunden ist, und zwar mit dem Parameter "CellId".

~~~~~~Product Information~~~~~~
003    Model:               B390s-2                    PASS
004    Software Version:    V200R001C35SP12            PASS
005    Hardware Version:    B390-B390RW2A Ver.C        PASS
006    SN:                  4UA5TC1110400163           PASS
007    IMEI:                354637040077555            PASS
008    LAN MAC Address:     F4:C7:14:**:**:**           PASS
009    WLAN MAC Address:    F4:C7:14:**:**:**           PASS
010    Check AT-Port:        Available                  PASS

~~~~~~LTE State~~~~~~
011    Dialing Mode:                                   PASS
012    APN:                  internet.home              PASS
013    DNS:                  8.8.8.8                    PASS
014    PDN Type:             IPv4                       PASS
015    Service Status:       Normal Service            PASS
016    Connection Status:    LTE STATE CONNECTED       PASS
017    Frequency:            816000 kHz               PASS
018    Bandwidth:            10MHz                    PASS
019    CellId:               392                       PASS

020    IP Address:           2.162.**.***             PASS
021    RSRP:                 -90dBm                    PASS

022    RSSI:                 -66dBm                    PASS
023    RSRQ:                 -7dB                      PASS 

024    Roam:                  no                       PASS
025    Antenna State:        Built-In                  PASS

~~~~~~DHCP~~~~~~
026    Gateway IP Address:    192.168.42.1           PASS
027    DHCP Enabled:          false                  PASS
028    Subnet Mask:          255.255.255.0          PASS
029    DHCP_ip_pool_start:    N/A                    PASS
030    DHCP_ip_pool_end:     N/A                     PASS
031    DHCP_lease_time(s):    N/A                     PASS

~~~~~~SIM/PIN State~~~~~~
032    sim_state:             SIM Card detected       PASS
033    PIN code:             READY                    PASS
 

21.11.2013

So baut man ein aktuelles Komplettpaket Acrobat Reader X

Hilfsvariablen setzen


set D=C:\tmp\AR10
set S=C:\tmp\download
set MSI=AdbeRdr1000_de_DE.msi
set AR=ftp://ftp.adobe.com/pub/adobe/reader/win/10.x

Ordner erstellen

if exist %S%\nul rmdir /S /Q %S%
if exist %D%\nul rmdir /S /Q %D%
mkdir %S%
mkdir %D%
cd /D %S%

wget beschaffen

Bei sourceforge.net herunterladen und das ZIP auspacken. wget ist ein cooles Kommandozeilenwerkzeug zum Abrufen von URLs, sei es http, https oder ftp.

Dateien herunterladen

wget -nv -nc -N %AR%/10.0.0/de_DE/%MSI%
wget -nv -nc -N %AR%/10.1.8/misc/AdbeRdrUpd1018.msp

Patches in das Grundpaket integrieren

msiexec /a %S%\%MSI% /qb- TARGETDIR=%D%
msiexec /p %S%\AdbeRdrUpd1018.msp /a %D%\%MSI% /qb- TARGETDIR=%D%
Die Angabe /a führt eine reine "Administrator"-Installation durch, d.h. die Software wird nicht auf dem PC installiert, auf dem der Befehl aufgerufen wird, sondern es wird nur vorbereitet, dass die Software auf anderen PCs installiert werden kann. Mit /p werden die heruntergeladenen Patches in die Basissoftware integriert. Die Reihenfolge von /p und /a im letzten Befehl oben muss man einhalten, sonst klappt es nicht.

Recht angenehm: man muss nur den neuesten Patch für den Acrobat Reader herunterladen und nicht sukzessiv alle. Derzeit aktuell ist 10.1.8.

Der Ordner C:\tmp\download wird danach nicht mehr benötigt und kann gelöscht werden. Den vollständigen Ordner C:\tmp\AR10 kopiert man nun auf ein Netzlaufwerk, z.B. ein NAS oder eine Festplatte am DSL-/LTE-Router.

Installation

msiexec /i I:\win\adobe\AR10\AdbeRdr1000_de_DE.msi /qb-!
Natürlich muss man hier das Beispiel I:\win\adobe\AR10 entsprechend an die eigenen Verhältnisse anpassen.

Credits: das Prinzip und die Downloadlinks hab ich mir hier im heise-Forum abgeguckt.

11.10.2013

Der monatliche Patch-Tag

Hach ja, es ist mal wieder soweit. Nachdem Microsoft sich mit der Anzahl an Fehlerkorrekturen nicht lumpen lässt, ziehen auch Oracle und Adobe nach. Oracle ist schon ein bißchen her (10. September), aber dafür haben sie auch kräftig die Versionsnummer auf 40 erhöht.

Die Abkündigung von Windows XP im nächsten April ist ein willkommener Anlass für mich, eine Umstellung vorzunehmen, die ich schon länger plane: ich werde die PCs in der Praxis auf Linux umstellen und nur noch die altehrwürdige Praxis-Software, die meine Frau seit 10 Jahren gewöhnt ist, in einer VM laufen lassen. Da diese virtuelle Windows-Umgebung dann keinen Internet-Zugang haben wird, brauche ich mir um die Sicherheit dort keine Gedanken machen. Dazu später mehr.

Als freundliches Service-Blog für Updates noch ein paar Bequemlichkeiten zum einfachen Herunterladen und Installieren der Updates:

Windows- und Office-Updates

Hier empfehle ich das geniale Offline-Update
Damit kann man alle wichtigen Update-Dateien einmalig herunterladen und dann auf allen Rechnern verteilen. Die meisten neueren DSL- oder LTE-Router haben einen USB-Anschluss für eine externe Festplatte. Es bietet sich an, die Updates auf diese Festplatte zu werfen und dann auf allen PCs das Update zu starten. Das belastet dann den Monatsetat (sprich Downloadvolumen) nur einmal und nicht für jeden PC einzeln ;)

Das Offline-Update hat ein komfortables GUI, man kann aber natürlich die darunterliegenden Skripte auch einzeln aufrufen:

Download:
Je nach Vielfalt der heimischen Rechnerlandschaft müssen die Befehle unten ausgewählt werden, und den Proxy erwähne ich nur noch ganz kurz.

set P1=/includedotnet /nocleanup /skiptz /proxy http://192.168.100.100:3128/
set P2=               /nocleanup /skiptz /proxy http://192.168.100.100:3128/

call cmd\DownloadUpdates.cmd wxp deu %P1%
call cmd\DownloadUpdates.cmd w61-x64 glb %P1%
call cmd\DownloadUpdates.cmd w61     glb %P1%

call cmd\DownloadUpdates.cmd ofc     glb %P2%
call cmd\DownloadUpdates.cmd ofc     deu %P2%

call cmd\DownloadUpdates.cmd o2k3  deu %P2%
call cmd\DownloadUpdates.cmd o2k7  deu %P2%
call cmd\DownloadUpdates.cmd o2k10 deu %P2% 
Legende:
wxp = Windows XP
w60 = Windows Vista
w61 = Windows 7
w62 = Windows 8
o2k3 = Office 2003
o2k7 = Office 2007
o2k10 = Office 2010
 Installation:
@echo off
net use u: \\nas\update
cd /D U:\

client\cmd\DoUpdate.cmd /nobackup /updatecpp /instie8 /updatercerts /updatedx /updatetsc /instdotnet35 /instdotnet4 /instpsh /instofccnvs /instmssl
Diese Kommandozeile installiert fast alles, außer dem Update für den Media-Player. Auch hier gilt: Anpassen an das eigene NAS nötig.

Flash-Update für Windows

Auch hier bietet es sich an, einmalig die Updates herunterzuladen (für Internet Explorer und Firefox sind das immerhin mittlerweile auch zweimal 16 MB) und dann auf allen PCs zu installieren.

Download:
(wer einen Proxy verwendet, muss das "rem" entfernen und seine eigene Proxy-Adresse eintragen)
(in der "TO"-Zeile ggfs. den eigenen Netzwerkspeicher eintragen)

@echo off

rem set http_proxy=http://192.168.100.100:3128/
set V=11.9.900.117
set TO=\\nas\win\Adobe
set H=fpdownload.macromedia.com
set P=/get/flashplayer/current/licensing/win
set AX=install_flash_player_11_active_x.exe
set NP=install_flash_player_11_plugin.exe

wget http://%H%%P%/%AX% -O %TO%\flash-%V%_ax.exe
wget http://%H%%P%/%NP% -O %TO%\flash-%V%_np.exe

Installation:
@echo off
set V=11.9.900.117

set TO=\\nas\win\Adobe

%TO%
\flash-%V%_ax -install

%TO%\flash-%V%_np -install

Acrobat-Reader-Update für Windows

Diesen Monat gibt es "nur" ein Update für die Version XI; die behobenen Fehler (Regression, also: alter Fehler taucht erneut auf) scheint es in Version X nicht zu geben. Version X ist nach wie vor bei 10.1.8.

Download:
@echo off

rem set http_proxy=http://192.168.100.100:3128/
set TO=\\nas\win\Adobe
wget -O %TO%\
AdbeRdrSecUpd11005.msp ftp://ftp.adobe.com/pub/adobe/reader/win/11.x/11.0.05/misc/AdbeRdrSecUpd11005.msp
Installation:
msiexec /i %TO%\AdbeRdrSecUpd11005.msp /qb-!

Java-Update für Windows (32 bit)

Hier ist die Downloadseite von Java 7.

Installation:Für Windows 7 die erste Zeile mit "set TO=..." verwenden, für Windows XP die zweite.
wget http://download.oracle.com/otn-pub/java/jdk/7u40-b43/jdk-7u40-windows-i586.exe
set TO=%ProgramFiles(x86)%\jdk170
set TO=
%ProgramFiles%\jdk170
set EXE=jdk-7u40-windows-i586.exe
set OPT=INSTALLDIR=\"%TO%\" JAVAUPDATE=1 CUSTOM=1 ADDLOCAL=jrecore
"%EXE%" /s /v"/qb /norestart %OPT% IEXPLORER=1 MOZILLA=1 REBOOT=Suppress WEBSTARTICON=0 SYSTRAY=0 EULA=1 AUTOUPDATECHECK=0 RebootYesNo=No"
"%TO%\bin\javac" -version"%TO%\jre\bin\java" -version
Installation der JRE statt JDK:
genau wie oben, nur überall "jdk" durch "jre" ersetzen.
Wenn man das JDK haben will, z.B. für das Android SDK, braucht man natürlich die JRE nicht mehr zu installieren, die bekommt man mit dem JDK automatisch dazu.

Java-Update für Redhat Linux (32 bit)

wget http://download.oracle.com/otn-pub/java/jdk/7u40-b43/jdk-7u40-linux-i586.tar.gz
Java für Linux kann man entweder als rpm oder als .tar.gz herunterladen. Ich habe eine bestimmte Vorstellung davon, wo es installiert wird, deshalb verwende ich das .tar.gz und muss dann natürlich die Symlinks mit dem "alternatives"-Befehl ebenfalls von Hand setzen. Das sieht dann so aus (als root aufrufen):

#!/bin/sh -e

what=1.7.0
patch=40
jver=1.7.0_${patch}
cur=jdk$jver
sver=1700${patch}
curjre=/usr/java/$cur/jre
curjava=/usr/java/$cur/bin

rmold() {
    name="$1"
    oldver=$(alternatives --display "$name" | awk '/currently points to.*'"$what"'/{print$NF}')
    if [ -n "$oldver" ]
    then
        echo "Unregister $oldver"
        alternatives --remove "$name" "$oldver" 2>/dev/null
    fi
}

rmold java
alternatives --install /usr/bin/java   java   $curjre/bin/java   $sver \
--slave /usr/bin/ControlPanel ControlPanel $curjre/bin/ControlPanel \
--slave /usr/bin/keytool      keytool      $curjava/keytool \
--slave /usr/bin/policytool   policytool   $curjava/policytool \
--slave /usr/bin/rmid         rmid         $curjava/rmid \
--slave /usr/bin/rmiregistry  rmiregistry  $curjava/rmiregistry \
--slave /usr/bin/tnameserv    tnameserv    $curjava/tnameserv \
--slave /usr/lib/jvm/jre      jre          /usr/java/$cur

rmold javaws
alternatives --install /usr/bin/javaws javaws $curjre/bin/javaws $sver

rmold javac
alternatives --install /usr/bin/javac  javac  $curjava/javac      $sver

rmold jar
alternatives --install /usr/bin/jar    jar    $curjava/jar        $sver

if [ -f $curjre/lib/i386/libnpjp2.so ]
then
    rmold libjavaplugin.so
    alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so   libjavaplugin.so        $curjre/lib/i386/libnpjp2.so  $sver
fi

if [ -f $curjre/lib/amd64/libnpjp2.so ]
then
    rmold libjavaplugin.so.x86_64
    alternatives --install /usr/lib64/mozilla/plugins/libjavaplugin.so libjavaplugin.so.x86_64 $curjre/lib/amd64/libnpjp2.so $sver
fi

echo Checking ...
java -version  2>&1 | grep -q "$jver" && echo JRE $jver ok
javac -version 2>&1 | grep -q "$jver" && echo JDK $jver ok

15.09.2013

Portabler Apache-Webserver selbst gebaut

Heute hab ich mal wieder eine kleine Anleitung vorbereitet. Sozusagen aus aktuellem Anlass ;)

Ich habe mich vor kurzem bereit erklärt, als Aushilfe beim Förderverein der Wölfersheimer Schulen einzusteigen und den Webserver ein wenig zu betreuen, weil der edle Spender, der das aufgebaut und bisher betreut hat, beruflich viel um die Ohren hat.

Es geht aber natürlich nicht an, dass jemand direkt am produktiven System Änderungen durchführt, es muss also eine Testumgebung her, in der ich Dinge ausprobieren und auch sonst "herumspielen" kann. Idealerweise sollte es möglich sein, die Änderungen an den Vorstand des Vereins zu schicken, dort begutachten zu lassen, und dann die freigegebenen Änderungen auf den "Live"-Webserver zu überspielen.

Normalerweise ist es kein großes Problem, ein paar Webseiten zusammenzubauen und den Kollegen die Änderungen als Email zuzuschicken.

Das scheitert aber in dem Moment, wenn der Webserver aktive Inhalte ausliefert, wie z.B. Datenbankabfragen durchführt oder einfach nur aktive Seiten in Form von Python-Skripten oder JSP ausliefert. Soweit geht es zum Glück beim Förderverein nicht, es handelt sich "nur" um PHP-Skripte, die vom Apache ausgeführt werden und in HTML-Seiten resultieren, die beim Browser aufschlagen.

Also besteht die Testumgebung minimal aus einem Apache Webserver und dem PHP-Skriptinterpreter. Zusammen mit ein bißchen weiterem Kleinkram besteht der "PortableApache" aus knapp 40 MB Material. Das passt bequem auf den allerkleinsten USB-Stick, in ein Eckchen auf dem Smartphone oder MP3-Player zum bequemen Herumtragen.

Was braucht man nun? Das hängt vom Betriebssystem ab. Für Windows (weil die Vorstandskollegen Windows einsetzen) benötigt man die Installationsdateien von Apache httpd und ein PHP-Paket. Ein paar Bemerkungen zu den Windows-Paketen: es gibt verschiedene vorgefertigte Pakete, unter den Kategorien "VC9", "VC10", "VC11". Das sind Grundpakete von Microsoft (die sogenannte C-Runtime). Die Versionen 9 und 10 laufen mit Windows XP, Version 11 setzt mindestens Windows 7 voraus. Deshalb habe ich hier die Variante mit VC9 verlinkt.

Jetzt werden aus den ZIP-Dateien ein paar Dateien ausgepackt, man braucht gar nicht so viel ;)

Im Internet findet man viele Anleitungen, wie man einen portablen Apache Webserver zusammenbaut. Allen gemeinsam ist, dass sie die Verzeichnisstruktur für Apache beibehalten, es gibt also Verzeichnisse für Logfiles, Module, Konfigurationsdateien usw. Braucht man auf einem USB-Stick eigentlich nicht. Ich habe deshalb alles zusammengeworfen und ein Verzeichnis für Apache und ein Verzeichnis für PHP festgelegt. Das reicht ;)

Man beginnt mit einem Verzeichnis "PortableApache" und legt dort Unterverzeichnisse für "apache" und "php" an. Außerdem benötigt man noch ein Unterverzeichnis, in dem die Dokumente liegen, die ausgeliefert werden sollen. Im Beispiel unten ist dies das Verzeichnis "html", das parallel zu "apache" und "php" liegt. In der Konfigurationsdatei wird es dann als "../html" angesprochen. Auf diese Weise sind die Dokumente unabhängig vom Standort des Apache immer erreichbar.

In das Verzeichnis "apache" gehört nun folgendes:
  1. mod_mime.so
  2. mod_cgi.so
  3. openssl.cfg.cnf
  4. msvcr100.dll
  5. openssl.exe
  6. pcre.dll
  7. ssleay32.dll
  8. zlib1.dll
  9. htpasswd.exe
  10. httpd.exe
  11. libapr-1.dll
  12. libapriconv-1.dll
  13. libaprutil-1.dll
  14. libeay32.dll
  15. libhttpd.dll
  16. libxml2.dll
  17. httpd-ssl.conf
  18. magic
  19. mime.types
  20. httpd.conf
  21. mod_mime_magic.so
  22. mod_rewrite.so
  23. mod_setenvif.so
  24. mod_ssl.so
  25. mod_status.so
  26. mod_substitute.so
  27. mod_userdir.so
  28. mod_version.so
  29. mod_vhost_alias.so
  30. mod_alias.so
  31. mod_authn_core.so
  32. mod_authz_core.so
  33. mod_deflate.so
  34. mod_dir.so
  35. mod_env.so
  36. mod_headers.so
  37. mod_imagemap.so
  38. mod_include.so
  39. mod_info.so
  40. mod_log_config.so
  41. mod_log_debug.so
  42. mod_log_forensic.so
  43. mod_logio.so
  44. php5apache2_4.dll
Die Datei php5apache2_4.dll nimmt man aus dem PHP-Paket.

Im Verzeichnis "php" braucht man ein bißchen mehr Kram, je nachdem, welche  PHP-Funktionen den Skripten zur Verfügung stehen sollen. Wer sich mit PHP auskennt, kann hier natürlich brutal ausmisten, für Grundbedürfnisse kann man meinen Vorschlag noch deutlich verschlanken.

  1. glib-2.dll
  2. gmodule-2.dll
  3. icudt49.dll
  4. icuin49.dll
  5. icuio49.dll
  6. icule49.dll
  7. iculx49.dll
  8. icutest49.dll
  9. icutu49.dll
  10. icuuc49.dll
  11. libeay32.dll
  12. libenchant.dll
  13. libenchant_ispell.dll
  14. libenchant_myspell.dll
  15. libpq.dll
  16. libsasl.dll
  17. php-cgi.exe
  18. php-win.exe
  19. php.exe
  20. php.gif
  21. php.ini-development
  22. php.ini-production
  23. php5apache2_4.dll
  24. php5nsapi.dll
  25. php5ts.dll
  26. ssleay32.dll
Das Unterverzeichnis "php/ext" enthält folgende Dateien:
  1. php_bz2.dll
  2. php_curl.dll
  3. php_enchant.dll
  4. php_exif.dll
  5. php_fileinfo.dll
  6. php_gd2.dll
  7. php_gettext.dll
  8. php_gmp.dll
  9. php_intl.dll
  10. php_mbstring.dll
  11. php_openssl.dll
  12. php_shmop.dll
  13. php_sockets.dll
Um sicherzustellen, dass PHP funktioniert, sollte man nun an dieser Stelle eine Kommandozeile öffnen (Eingabeaufforderung, cmd.exe), in das Verzeichnis "PortableApache/php" wechseln und testen, ob der PHP-Interpreter sich meldet und seine Versionsnummer bekannt gibt:
H:\PortableApache\php>.\php -v
PHP 5.4.19 (cli) (built: Aug 21 2013 01:12:03)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies


Für diese veränderte Umgebung  muss man dann natürlich auf die Konfigurationsdateien beträchtlich anpassen, damit das Apache-httpd-Programm weiß, wo alle weiteren Module und Dateien zu finden sind.

Man braucht also eine httpd.conf, in der die Verzeichnisse alle aufgeführt sind. Wichtig ist, dass in dieser Konfigurationsdatei keine absoluten Verzeichnisnamen enthalten sind, sondern nur solche, die relativ zum Arbeitsverzeichnis des Webservers (des Prozesses httpd.exe) formuliert sind. Zur Verdeutlichung habe ich diese Stellen unten fett markiert.
Vom Standpunkt der Sicherheit aus gesehen ist diese Webserver-Datei natürlich absolut unvollständig, da fehlen noch einige Anweisungen, um Einbrüche von außen zu verhindern. Das ist aber nicht der Zweck eines "PortableApache". Diese Konfigurationsdatei da unten also bitte nicht als Vorlage für einen "echten" Webserver im Internet verwenden!

Listen 80
LoadModule alias_module mod_alias.so
LoadModule logio_module mod_logio.so
LoadModule log_config_module mod_log_config.so
LoadModule dir_module mod_dir.so
LoadModule mime_module mod_mime.so
LoadModule authn_core_module mod_authn_core.so
LoadModule authz_core_module mod_authz_core.so
LoadModule cgi_module mod_cgi.so
LoadModule env_module mod_env.so
LoadModule rewrite_module mod_rewrite.so
LoadModule setenvif_module mod_setenvif.so
LoadModule ssl_module mod_ssl.so
LoadModule php5_module php5apache2_4.dll
ServerName localhost:80
DocumentRoot "../html"
ServerAdmin you@yourdomain.de
# Include httpd-ssl.conf

ScriptAlias /cgi-bin/ "../cgi-bin/"
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog access.log common
ErrorLog  error.log
PidFile   httpd.pid

<IfModule php5_module>
  AddHandler application/x-httpd-php .php
  PHPIniDir "../php"
</IfModule>

<IfModule rewrite_module>
  RewriteEngine On
</IfModule>

<IfModule php5_module>
  DirectoryIndex index.php index.htm index.html
</IfModule>

<IfModule dir_module>
  DirectoryIndex index.html index.htm
</IfModule>

<IfModule mime_module>
  TypesConfig "mime.types"
  AddType application/x-compress .Z
  AddType application/x-gzip .gz .tgz
  AddType application/x-bzip2 .bz2 .tz2
</IfModule>

<IfModule ssl_module>
  SSLRandomSeed startup builtin
  SSLRandomSeed connect builtin
</IfModule>

<Directory "../html">
  AllowOverride All
</Directory>


Das Apache-Modul für "rewrite" brauche ich, damit ich solche Spielereien mit der Datei ".htaccess" in den Datenverzeichnissen machen kann:

RewriteEngine on
Options +FollowSymlinks
RewriteBase /

RewriteRule (.*)_(.*)_(.*).html$ /_start.php?cat=$1&id=$2&edit=$3
RewriteRule (.*)_(.*).html$ /_start.php?cat=$1&id=$2
RewriteRule (.*).html$ /_start.php?cat=$1


Ich habe da oben auch schon den Anfang einer SSL-Konfiguration angedeutet, aber natürlich funktioniert das nur, wenn man sich mit dem openssl-Programm ein eigenes Zertifikat baut, also einen private key. Dazu später vielleicht mal einen eigenen Artikel, wie man sich selbst zur root-CA-Instanz macht und dann für sich selbst Keys erzeugt und signiert.

Für eine erste Prüfung, ob diese httpd.conf auch wirklich funktioniert, ruft man "httpd.exe -t" auf (-t testet, ob eine Konfigurationsdatei einigermaßen funktionsfähig aussieht). Wenn man hier die Meldung "Syntax OK" erhält, kann man fast schon loslegen ;)

Für die bequeme Nutzung ist noch ein kleines Startskript vonnöten, das den Apache aufruft. Ich habe es "start.cmd" genannt und direkt in das Verzeichnis "PortableApache" gesteckt.

cd /D "%~dp0apache"
PATH %~dp0php;%PATH%
.\httpd.exe -f httpd.conf



Der Inhalt dieses kleinen Webservers wird nun angezeigt, wenn man mit einem Browser die URL "http://localhost" oder "http://127.0.0.1" aufruft.

22.07.2013

Sicherheit beim electronic banking

In den letzten Tagen ging eine einigermaßen spektakuläre Meldung durch die Presse: beim electronic banking wurden über 40.000 Euro gestohlen. Ursprünglich ging es wohl um mehr als 100.000 Euro, von denen aber ein Teil von den Banken zurückgebucht werden konnte.

Unabhängig vom Verlauf dieser Aktion und der Frage, wer nun zu welchem Zeitpunkt einen Fehler gemacht hat, will ich mal zusammen sammeln, wie man das electronic banking und generell seinen PC "sicher" machen kann, wenn man das Internet benutzen will.

Vorweg: absolute Sicherheit gibt es nicht. Die Bösewichte werden immer einfallsreicher. Es läuft auf ein Hase-und-Igel-Wettrennen hinaus. Wie beim Absichern der eigenen Wohnung gegen Einbrecher: es muss nicht perfekt sein, aber es muss den Bösewicht so viel Mühe kosten, dass er von seinem schändlichen Tun ablässt (und sich ein leichteres Opfer sucht).

Nun konkreter zum Absichern von electronic banking. Die meisten der Ratschläge sind allgemein verwendbar, aber man sollte sie unbedingt beherzigen, wenn man via Internet seine Bankgeschäfte erledigen will.

Viele der folgenden Tipps überschneiden oder ergänzen sich. Wenn Sie mehrere davon für sich einsetzen, sollte das Ihre Sicherheit deutlich steigern.

  • Nicht Windows verwenden. Windows ist so weit verbreitet, dass es sich für Bösewichte ganz besonders lohnt, hierfür Schadprogramme zu entwickeln. Dieser Ratschlag ist nicht ideologisch gemeint, sondern eine statistische Tatsache. Verwenden Sie Linux oder Apple mit einem passenden ebanking-Programm. Für browserbasiertes ebanking geht sogar ein "browser-only" Netbook mit Googles ChromeOS, z.B. von Samsung.
  • Verwenden Sie einen separaten PC nur für das ebanking. Vermeiden Sie dort die Installation von unnötiger Software, wenn es für das ebanking nicht unbedingt nötig ist. Surfen Sie nicht mit diesem PC. Verwenden Sie den PC wirklich nur für das ebanking. Rufen Sie mit diesem PC keine anderen Webseiten auf. Erledigen Sie mit diesem PC nicht Ihre Email.
    Kaufen Sie z.B. ein kleines Netbook gebraucht bei ebay, das sollte für unter 100 Euro möglich sein. Man bekommt für diesen Betrag einen kleinen PC mit intel Atom, 1 GB RAM, Festplatte ist vollkommen unwichtig (20-40 GB reichen völlig, am bequemsten wäre natürlich SSD statt einer mechanischen Festplatte). Löschen Sie den PC komplett und richten Sie ihn selbst neu ein, selbst wenn der Verkäufer ein "neu installiertes Windows" anbietet.
  • Verwenden Sie zum ebanking ein separates Betriebssystem, das Sie von einer CD oder von einem schreibgeschützten USB-Stick starten. Die c't bietet hierzu kostenlos die Linux-Variante "Bankix" an.
  • Verwenden Sie niemals ein öffentliches WLAN für Ihre Bankgeschäfte. Mag sein, dass die Funkstrecke mit WPA2 gesichert ist, aber ab der Basisstation ist es ungeschützt und kann belauscht werden.
  • Achten Sie auf Warnungen im Browser, dass die Website, die Sie besuchen wollen, "unbekannt" ist oder das Zertifikat ungültig oder abgelaufen ist. Dies sind Anzeichen dafür, dass Sie nicht die gewünschte Website besuchen, sondern Ihnen ein anderes Ziel "untergeschoben" wurde. Lesen Sie den Sicherheitshinweis genau durch. Im Zweifelsfall fragen Sie die Hotline Ihrer Bank und gehen nicht weiter.
  • Installieren Sie in Ihrem Browser "Add-Ons" oder "Extensions", die einige der Sicherheitsprobleme umgehen, indem bestimmte Funktionen abgeschaltet oder nur bei zugelassenden Websites aktiviert werden ("whitelist"). Zugegeben: damit wird das Surfen umständlicher, aber definitiv sicherer. Ich empfehle "uBlock origin" "Adblock Plus Edge", "NoScript" bzw. "NotScripts", "Secure Login" und "Better Privacy". Genauer erklärt habe ich das hier schon mal. Blättern Sie bis zu der Frage "Was kann man dagegen machen?"
  • Achten Sie darauf, wenn Sie Mitteilungen bekommen, dass sich an einem Zugang zu einem Dienst im Internet etwas geändert hat. Google, PayPal etc. verschicken Emails, wenn jemand das Passwort ändert. Schalten Sie diese Benachrichtigungsfunktion nicht ab! Wenn Sie die Änderung nicht selbst veranlasst haben, ist höchste Alarmstufe! Dann hat jemand einen Ihrer Online-Zugänge geknackt. Versuchen Sie, so schnell wie möglich den eigenen Zugang wiederzuerlangen. Meistens ist ein Angriff auf das Emailkonto der erste Schritt zum Online-Finanzbetrug und -Kontomissbrauch! Wer die Email kontrolliert, kann bei anderen Diensten Passwörter, Handynummern etc. ändern und die Warnungen darüber abfangen.
  • Verwenden Sie unterschiedliche Passwörter für jeden Internetdienst. Niemand kann sich alle Passwörter merken, das ist auch gar nicht schlimm. Verwenden Sie einen Passwortgenerator oder Passwortsafe, der komplizierte, zufällige Passwörter erzeugen kann. Die üblichen Programme für diesen Zweck können das Passwort automatisch in den Browser übertragen, so dass Sie es nicht umständlich abtippen müssen. Alternativ können Sie Ihre Passwörter aufschreiben oder speichern (ich nehme eine Tabellenkalkulation dafür und speichere die Passwortdatei verschlüsselt auf einen USB-Stick ab).
    Ein paar ganz gute Ratschläge finden sich beim BSI oder mit dieser Google-Suche.
  • Öffnen Sie in Ihrer Email keine Dateianhänge, wenn Sie keine Zusendung von Anhängen erwarten. Sprechen Sie mit dem Absender, ob er Ihnen wirklich einen Anhang zugeschickt hat, bzw. sprechen Sie vorher ab, dass Ihnen Dateien geschickt werden.
  • Klicken Sie in Ihrer Email nicht auf WWW-Adressen (URLs).
  • Schalten Sie in Windows die Anzeige von Dateiendungen ein. Windows unterdrückt normalerweise diese Anzeige, aber dadurch übersieht man häufig, dass man z.B. kein PDF anklickt, sondern eine Datei, die Rechnung.PDF.EXE heißt (doppelte Dateiendung).
    Speichern Sie Dateianhänge ab. Dabei kann der Virusscanner die Datei überprüfen. Beachten Sie die Warnungen, falls welche angezeigt werden.
  • Verwenden Sie unübliche Programme. Die haben normalerweise nicht die gängigen Sicherheitslücken (vielleicht andere, aber unübliche ;) ).
    Nehmen Sie z.B. Foxit statt Acrobat Reader oder lesen Sie PDF in den neueren Versionen von Firefox oder Google Chrome.
    Verzichten Sie auf Flash. Das ist derzeit noch ein wenig schmerzhaft, aber Youtube z.B. setzt zunehmend mehr auf Videos in HTML5-Technik. Flash ist eigentlich nur eine Ansammlung von Sicherheitslücken. Allein im Februar gab es drei Notfall-Updates.
  • Mißtrauen Sie prinzipiell jeder Email, in der es um Geld geht oder um eine Firma, die Ihnen androht, dass eines Ihrer Online-Konten gesperrt wird, wenn Sie nicht umgehend dort Ihr Passwort und eine TAN eingeben (oder sinngemäß ähnlich). Ihre Bank, ebay oder Paypal schicken prinzipiell keine Emails, dass Ihr Konto gesperrt wird.
  • Achten Sie zeitnah auf die Installation sämtlicher Fehlerkorrekturen für das Betriebssystem und die ebanking-Software.
  • Achten Sie auch auf Updates für den Browser, für Oracle Java Runtime, Acrobat Reader und Flash (nicht Zutreffendes streichen ;) ).
  • Schalten Sie in allen Programm die automatische Update-Funktion ein, soweit möglich.
  • Ein Virenscanner nutzt nur, wenn er verhaltensbasiert überwachen kann. Viren und Trojaner ändern sich erfahrungsgemäß im Stundentakt. Wenn ein Antivirus-Programm Schadprogramme nur anhand ihrer "Kennungen" (Signaturen) erkennen kann, ist es immer im Nachteil. Insbesondere bemerken die Programmierer von Schadprogrammen, wenn ein Antivirus-Hersteller neue Kennungen veröffentlich, und passen dann sofort ihre Schädlinge an.
    Achten Sie darauf, dass das Antivirus-Programm mindestens täglich ein Update der Viruskennungen bekommt. Je mehr, desto besser.
  • Die meisten Schädlinge verbreiten sich über infizierte Webseiten. Die meisten Betreiber von Webseiten wissen das nicht einmal. Über eine Sicherheitslücke dringen Hacker in den Webserver ein und ergänzen die regulären Webseiten um "unsichtbaren" Inhalt, der über eine Sicherheitslücke im Browser oder in Flash/Java dann den eigenen PC infizieren kann. Deshalb: verwenden Sie Linux oder Apple oder einen unüblichen Browser.
  • Verwenden Sie nicht die browserbasierte ebanking-Variante, die Ihre Bank anbietet. Der Browser ist prinzipiell unsichere Software. Installieren Sie eine spezielle ebanking-Software, die mit HBCI arbeitet (z.B. das kostenlose Hibiscus, das es für Windows, Apple und Linux gibt). HBCI ist entweder mit einer speziellen Bankkarte möglich (sieht so aus wie eine Giro-/Kreditkarte mit Chip) oder mit Verschlüsselung über einen Datenträger (nannte sich früher "Diskette", geht mit USB-Stick genausogut). Die meisten Banken lassen sich HBCI mit Chipkarte jährlich bezahlen, HBCI mit Schlüsseldiskette ist i.a. kostenlos. Der Aufwand bei der Einrichtung ist etwas höher (man muss postalisch mit der Bank Verschlüsselungsinformationen austauschen, die sog. "öffentlichen Schlüssel").
  • Falls Sie eine HCBI-Karte haben, benötigen Sie einen Kartenleser. Nehmen Sie nicht das billigste Modell, sondern eines mit eigenem Display und eigener Tastatur (von Kobil oder ReinerSCT). Ansonsten kann ein Trojaner auf dem PC die Eingabe Ihrer PIN zur Karte abfangen - das ist natürlich nur dann ein Risiko, wenn die Originalkarte gestohlen wird. Achten Sie darauf, dass der Kartenleser mit Ihrem PC zusammen arbeitet (nicht jeder Kartenleser funktioniert mit Apple oder Linux).
  • Wenn es denn doch ebanking mit dem Browser sein soll, verwenden Sie nicht das TAN-Verfahren (auch wenn es iTAN oder mTAN ist). Derzeit vernünftig ist ein Verfahren, bei dem Sie von der Bank ein zusätzliches Gerät ("Token") bekommen, das eine Geheimnummer für jeden Vorgang erzeugt. Dieses Gerät dürfen Sie natürlich nicht verlieren oder in fremde Hände geben. Auch das Zusenden von TANs per SMS ist eine schlechte Idee, GSM, UMTS und LTE sind nicht sicher und können relativ problemlos abgehört werden. Außerdem könnte sich ein wirklich bösartiger, gewiefter Mensch eine doppelte SIM-Karte beschaffen und die SMS abfangen. Bis Anfang Juli gab es das bei unserer örtlichen Volksbank als Sonderaktion sogar kostenlos.
  • Das Verfahren mit einem zusätzlichen Gerät, das Geheimnummern erzeugt, bietet auch PayPal für kleines Geld an. Wenn Sie PayPal verwenden: unbedingt benutzen! Alternativ gibt es die Möglichkeit, diese Geheimnummern mit einer Android-App zu erzeugen. Das halte ich für fast genauso gut (wenn das Smartphone nicht infiziert wird).
  • Schalten Sie bei Google ebenfalls die zweistufige Authentisierung ein! Die Geheimnummern zur Anmeldung kommen dann entweder per SMS auf Ihr Handy, oder Sie verwenden die App Google Authenticator. Damit wird es deutlich schwerer, Ihr Google-Email-Konto zu kapern. Klicken Sie dazu in irgendeiner Google-App (Mail, Kalender, Google Plus etc.) auf Ihr Profilfoto rechts oben, dann auf "Konto", danach auf "Sicherheit" und dann auf "Bestätigung in zwei Schritten".
  • Den o.g. "Google Authenticator" kann man auch verwenden, um die zweistufige Anmeldung bei DropBox durchzuführen!
  • Richten Sie für alle Fälle eine zweite Emailadresse bei einem anderen Anbieter ein. Verwenden Sie diese Emailadresse zur Wiederherstellung Ihres "Erstkontos", wenn der schlimmste Fall eintrifft und jemand das Passwort irgendwie herausbekommen hat. Lassen Sie alle Benachrichtigungen über Passwortänderungen parallel auch an diese zweite Emailadresse senden!
  • Richten Sie zur Kontowiederherstellung Ihre Handynummer ein, so dass der Anbieter Ihnen eine SMS schicken kann. Dies geht nur vorbeugend, bevor das Kind in den Brunnen gefallen ist!
  • Ein exotischer Ratschlag, der eher für das berufliche Umfeld gilt: stecken Sie keine "gefundenen" oder fremden USB-Sticks in Ihren PC. Manche Firmennetze wurden auf diese Weise schon infiltriert, auch wenn die Firewalls noch so gut sind. Manche "USB-Sticks" sind komplette kleine PCs, die Ihr Opfer gezielt angreifen können und dort Schadsoftware einschleusen.
  • Wenn Sie ein Smartphone für Bankgeschäfte verwenden wollen, achten Sie auch hier auf die o.g. Sicherheitsvorkehrungen. Installieren Sie keine unbekannte Software.
  • Bei Android:
    * schalten Sie den USB-Debugging-Mode aus, wenn Sie ihn nicht brauchen.
    * Schalten Sie "Software aus unbekannten Quellen" aus.
    * Installieren Sie ein vertrauenswürdiges Antivirus-Programm, z.B. von Kaspersky, Sophos, Norton, AVG, Avast.
    * Installieren Sie keine Apps, die unnötige Rechte beanspruchen.
    * Verwenden Sie ein Kontrollprogramm wie SRT AppGuard.
  • Für Profis: lesen Sie den heise-Newsticker und die Mailingliste Full Dosclosure. Wenn Sie hier einige Wochen mitgelesen haben und immer noch gut schlafen können, sind Sie wirklich ein Profi! ;)
[Update 20130722: Tippfehler, Adblock Plus durch Adblock Edge ersetzt]
[Update 20180710: Adblock Edge durch uBlock origin ersetzt]

08.02.2013

Java JDK/JRE silent install Änderung mit 7u13

Kleine Überraschung mit Sun JDK 7u13.

Silent install funktioniert plötzlich nicht mehr wie bisher.

Mein Skript fliegt auf die Nase, und stattdessen kommt der Hilfebildschirm von msiexec ;(


Kommandozeile bislang:
jdk-bla.exe /S /V"InstallDir=bla usw."

Lösung: /V" ... " weglassen und den ganzen Schwanz von Parametern direkt in die Kommandozeile schreiben. Also:

jdk-bla.exe /S
InstallDir=bla ... usw.

So steht's geschrieben bei http://goo.gl/PaMz4