Artikel

Debian Squeeze: SSH zwei Stufenauthentifizierung mit google-authenticator

Ich habe vor ein paar Tagen mit dem Artikel „Google macht SSHD sicher“ über einen Artikel aus meinem Feedreader berichtet. Nun habe ich das ganze selbst ausgetestet und bin begeistert.

The Google Authenticator project includes implementations of one-time passcode generators for several mobile platforms, as well as a pluggable authentication module (PAM). One-time passcodes are generated using open standards developed by the Initiative for Open Authentication (OATH) (which is unrelated to OAuth).

These implementations support the HMAC-Based One-time Password (HOTP) algorithm specified in RFC 4226 and the Time-based One-time Password (TOTP) algorithm currently in draft.

Vorab zur Information:
– In den Sourcen des Modules für PAM gibt es keinerlei Kontaktaufnahme zu einem Google-Server
– Der einzige Aufruf befindet sich in der Datei ./google-authenticator.c um einen QR-Code zu generieren, dazu später mehr
– Die Androidapp nimmt kein Kontakt in das Netz auf, das einzige was sie möchte ist vibrieren.
– Wenn kein Zugang zu dem Smartphone besteht hat man noch Emergency Scratchcodes.
– Die Software ist eine Erweiterung der Sicherheit des sshd und es sollte nicht sonst ein passwortloser Login erlaubt werden

Ich gehe davon aus, dass der openssh-server und Compiler installiert sind.

root@xbmc:~/# mkcd ga
 root@xbmc:~/ga# aptitude install mercurial libpam0g-dev -y
 root@xbmc:~/ga# hg clone  google-authenticator
 cd google-authenticator/libpam/
 root@xbmc:~/ga/google-authenticator/libpam# make
 root@xbmc:~/ga/google-authenticator/libpam# make install

cp pam_google_authenticator.so /lib/security
 cp google-authenticator /usr/local/bin
 sudo chmod 755 /lib/security/pam_google_authenticator.so 
 /usr/local/bin/google-authenticator

Da wir uns nicht als root per ssh anmelden, so etwas gehört sich nicht, nehmen wir substitude user und wechseln den Account zur generieren des Codes:

root@xbmc:~/ga/google-authenticator/libpam# su seraphyn
 seraphyn@xbmc:/root/ga/google-authenticator/libpam$ google-authenticator
 https://www.google.com/chart?chs=200x200&chld=ETCETCETCETC
 Your new secret key is: BLABLABLABLA
 Your verification code is NUMBERSNUMBERSNUMBERS
 Your emergency scratch codes are:
 MORENUMBERS

Do you want me to update your "~/.google_authenticator" file (y/n) y

Do you want to disallow multiple uses of the same authentication
 token? This restricts you to one login about every 30s, but it increases
 your chances to notice or even prevent man-in-the-middle attacks (y/n) y
 seraphyn@xbmc:/root/ga/google-authenticator/libpam$ exit

Nicht vergessen die ganze Ausgabe abzuspeichern, denn die URL und vor allen die Codes werden später noch gebraucht.
Ich gehe nicht davon aus, dass auf einem Server eine GUI ist.

Jetzt müssen nur noch der SSH-Server und PAM konfiguriert werden um Google Authentication zu nutzen.
In der Datei /etc/pam.d/sshd muss noch pam_google_authenticator.so hinzugefügt werden:

# /etc/default/locale, so read that as well.
 auth required pam_env.so envfile=/etc/default/locale
 auth required pam_google_authenticator.so

und in der Datei /etc/ssh/sshd_config das Challenge-Response-Verfahren aktiviert werden:

# Change to yes to enable challenge-response passwords (beware issues with
 # some PAM modules and threads)
 ChallengeResponseAuthentication yes

Nach der Installation von Google Authenticator auf Android startet man diesen.
Wenn man die aus der Shell generiert URL in seinem Desktopbrowser aufruft bekommt man einen QR-Code, welcher mit dem auf Android installiertem Google Authenticator per Menü > Scan account barcode ausgelesen wird.
Der 6stellige Code generiert sich alle 30 Sekunden neu und man kann in Ruhe die App auflassen und sich davon überzeugen ツ
Auf der Maschine die nun pam-google-authenticator nutzt kann der SSH-Server neu gestartet werden.
Beim erneuten Einloggen erscheint nun:

Verification code:
 Password:

Als erstes soll man den auf dem Smartphone angegebenen Code eingeben, danach das normale Passwort.
Wenn nun das Smartphone nicht vorhanden ist, dann kann einer der 6 emergency scratch codes genommen werden.

Achtung: Falls der User keinen generierten Schlüssel in seinem $HOME hat (.google_authenticator) wird dieser nicht der Zweistufenauthenifizierung unterzogen.

Artikel

Da die vrms-Meme durch das Netz geht

werde ich auch mit meinem verbleibenden Debian-Thinkpad mitmachen:

seraphyn@takeshi:~$ vrms -e
Non-free packages installed on takeshi

ion3                                tiling tabbed window manager designed for keyboard use
ion3-dev                        Ion3 development files
opera                             The Opera Web Browser
rar                                  Archiver for .rar files
sun-java6-bin               Sun Java(TM) Runtime Environment (JRE) 6 (architecture
sun-java6-jre                Sun Java(TM) Runtime Environment (JRE) 6 (architecture
sun-java6-plugin          The Java(TM) Plug-in, Java SE 6
unrar                             Unarchiver for .rar files (non-free version)
  Reason: Modifications problematic

  8 non-free packages, 0.7% of 1225 installed packages.

Mir stellt sich nur die Frage, warum die bösen w32codecs nicht moniert werden. Komische Sache und führt IMO vrms absurdum.

Artikel

Lebst Du nahe am GNU, vermeide das Buzzword

Buzzwords, ich liebe diese Idiotie der aus dem Keller geholten BWLer mit welchen damals Niemand essen wollte. WTH, ich meine das Ernst, wer hat diesen Blubberblasenbildern nur diese Macht gegeben einem Administrator zu erklären, welche Software, natürlich durch einen Verkäufer auf das Auge gepresst, er braucht? Diese Aktionen waren in meinem Falle, und mir bekannten Fällen, öfters zu einem Scheitern verurteilt, als alles andere was ich bis dahin mitbekommen habe. Ich kann immer nur bitten “ Schuster bleibe bei Deinen Leisten„. Ihr macht Euren, ich meinen Job. Egal, nicht wirklich, sonst würde das Internet nicht so viele Bullshitgeneratoren anbieten.
Faszinierender Weise hat sich auf Gnu.org eine Seite erstellt, welche genau dieses Thema behandelt „Some Confusing or Loaded Words and Phrases to Avoid (or use with care)„.
Bsp:

„Cloud Computing“
The term „cloud computing“ is marketing buzzword with no clear meaning. It is used for a range of different activities whose only common quality is that they use the Internet for something beyond transmitting files. Thus, the term is a nexus of confusion. If you try to use it in your thinking, your thinking will be vague.

Die Seite ist definitiv einen Besuch wert und unterstützt in dem Sinne jeden GNUler mit ein paar Tips. Wir wollen ja Ernst genommen werden, oder?

Artikel

Links: 070509

Debian is switching to EGLIBC
I have just uploaded Embedded GLIBC (EGLIBC) into the archive (it is currently waiting in the NEW queue), which will soon replace the GNU C Library (GLIBC).

Bundestag-TV: Die Zensursula-Debatte
Heute fand im Bundestag die erste Lesung zum Zensursula-Gesetz statt. Phoenix hat die Debatte übertragen und dank eines Mitschnittes stehen jetzt alle Redebeiträge schon auf Youtube.

Ein Schock für das System (Wolfgang Back) ComputerClub²
Ich erinnere mich noch an die erste Mail, bei der ich kollegial befragt wurde, wie es denn mit der Helligkeit meines Vaios im Freien bestellt sei. Ich konnte nur mit „bestens geeignet“ zurückschreiben. Der Schreiber hat nämlich bei seinem Gerät größte Schwierigkeiten, den Bildschirm im Freien zu nutzen.
Ein Schock für die Hardware, langsam frage ich mich schon, wie Dumm manche Firmen sind, oder für wie Dumm sie Ihre Kunden halten…

Duke Nukem Developer 3D Realms Shuts Down
3D Realms webmaster Joe Siegler has commented on the shut down,stating:“It’s not a marketing thing. It’s true. I have nothing further to say at this time.“
Ja, aber … Hurd :)

I Just Logged In As You: How It Happened
In my previous post I Just Logged In As You, I disclosed that someone was logging in as me — specifically because they discovered my password. But how?
Programmers are the enemy.

Office intruder ’steals‘ data
Staff unwittingly give usernames to someone posing as IT support
Weil es so schön zu den oberen Link passt und weil ich mal eine Abmahnung von einem ehemaligen Arbeitgeber bekam, als ich eine unbekannte, sich nicht ausweisend könnende und auch nicht anderen Personen bekannte Person aus dem Büro schmiss…

How to build your own Linux distro
Since Manchester University’s Owen Le Blanc released MCC Interim Linux (generally agreed to have been the first Linux distribution), way back in 1992, there have been hundreds of ways to get the world’s favourite free software operating system on to a computer. The diversity of alternatives reflects the diversity in the development community, with distros split along technical, functional, linguistic and even ideological lines.
Mir fehlt da irgendwie SuSEStudio, das wirklich gut gemacht ist und das sagt Jemand der Debian-Fan ist.

20 CSS Short Hands You’ll Love
Sollte man als Minimum Wissen um sein Blog und weiteres artgerecht zu hacken