Biztonság oder paranoia?

Felmerült a fejemben egy ötlet, de kiderült, hogy nem én vagyok az első, akinek ez az eszébe jutott. – írta: sh4d0w, 11 éve

Az ötlet

Az ötlet a következő: mivel egyszer majd szeretném a blogomat saját webszerverről üzemeltetni, ezért szeretném annyira biztonságossá tenni, amennyire lehet.
Nyilván a blog üzemeltetéséhez felhasznált komponensek bármelyike sebezhető lehet, de úgy gondolom, amit meg tudunk, meg kell tennünk a védelem érdekében.

Így jutott eszembe, hogy a leendő blog alapját képező linux ssh-elérését kétlépcsőssé teszem, ugrókóddal. Ezen a ponton joggal merülhet fel a kérdés: minek marháskodok én itt egyéb megoldásokkal, mikor ott a kulcsos belépés lehetősége?
Nos, a kulcsos belépés akkor igazán kétlépcsős, ha a privát kulcs fizikailag is elkülönül az elérést inicializáló rendszertől, például pendrive-on van. Szerintem nem kell sorolnom ennek a megoldásnak a hátrányait, mindannyian fel tudtok sorolni legalább hármat.

A kétlépcsős megoldás kivitelezésében a Google volt segítségemre: a megoldás egyik fele egy Google Authenticator nevű alkalmazás, ami iOS-re, Blackberry-re és Androidra érhető el a cégtől, de készültek egyéb third-party megoldások is egyéb platformokra.

A megoldás másik fele a libpam-google-authenticator nevű PAM, amelyet használatba kell vennünk az ssh szerver konfigurációjában. A Google Authenticator-t itt lehet elérni a Play Store-ban, a libpam opensource modul Ubuntu 11.10-től elérhető repository-ban – ami azt is jelenti, hogy a jelenlegi stabil Debianban még fordítani kell.

Kivitelezés

Első lépésként a telefonunkra kerüljön fel a Google Authenticator alkalmazás, mert ebbe fogjuk importálni a PAM által generált kulcsot.

Ubuntu 11.10-től a telepítéshez semmi extra művelet nem kell, csak ennyi (ugyanez igaz a származtatott rendszerekre is, amelyek használják az Ubuntu tárolókat):

sudo apt-get install libpam-google-authenticator

Debianos bűvészkedés pedig így:

sudo apt-get install mercurial libqrencode3 libpam0g-dev - a függőségek telepítése
hg clone https://google-authenticator.googlecode.com/hg/ google-authenticator - a forrás beszerzése
cd google-authenticator/libpam
make
make install
cd ../..
rm -r google-authenticator/

Ezután terminálban adjuk ki a következő parancsot:

google-authenticator

Forrás: Tombuntu

Ekkor kapunk egy QR-kódot, egy OTP-s URL-t, egy titkos kulcsot, egy verification kódot és 5 darab scratch kódot, valamint néhány kérdést, amit értelemszerűen kell megválaszolni.

Mielőtt terminálból elérhetetlenné válna a QR-kód, indítsuk el a telefonunkon a Google Authenticatort és vegyünk fel egy új accountot. Itt tudunk barcode-ot scannelni is, így minden információ azonnal bekerül a telefonunkba, ha a QR-kódot megmutatjuk az alkalmazásnak.
Ha nem, egyesével kell minden szükséges információt megadni, a scratch kódokat pedig jól tegyük el, vész esetén ezek mindig be fognak engedni a rendszerbe, de ezek egyszer használatos kódok. Megtaláltam őket a ~/.google_authenticator fájlban, nem tettem kísérletet arra, hogy írjak bele másikat – még nem volt rá szükségem.

Nos, már csak meg kell mondanunk a PAM-nak, hogy van egy új modulunk, illetve az ssh-szervernek, hogy ezt az új modult is használja azonosításkor:

sudo vi /etc/pam.d/sshd

és illesszük be:

auth required pam_google_authenticator.so

sudo vi /etc/ssh/sshd_config

valamint keressük meg a ChallengeResponseAuthentication sort és állítsuk át yes-re, végül indítsuk újra az ssh-szervert.

A végeredmény:

sh4d0w@XXX:~$ ssh bla.bla.bla.bla
Password:
Verification code:
Welcome to Linux Mint 13 Maya (GNU/Linux 3.2.0-23-generic i686)
Welcome to Linux Mint
* Documentation: http://www.linuxmint.com
Last login: Thu Nov 22 13:59:05 2012 from XXX
sh4d0w@lmtest ~ $

Készen vagyunk. Ezután minden ssh belépéskor a jelszavunkon kívül az éppen érvényes időalapú kódot is meg kell adnunk.

Forrás: Google

Köszönettel tartozom O Nuno-nak és a HowToGeeknek.

Azóta történt

  • Burn, baby, burn!

    Aki azt hiszi, hogy optikai adathordozó írásáról lesz szó, attól előre elnézést kérek. Fő a biztonság!