USB Belleğinizi Giriş Anahtarı Olarak Kullanın

Giriş

Aylar önce, Pardus-Linux.Org eDergi’nin Ekim 2009’da yayımlanan 13. sayısında, Pardus'ta ve dolayısıyla diğer GNU/Linux dağıtımlarında, yüz tanıma ile oturum açma işleminin nasıl yapılabileceğini ve o günlerin bir pazarlama stratejisi olan “yüz tanımalı bilgisayarın” nasıl kolayca elde edilebileceği paylaşılmıştı.

Bu yazıda ise, komut satırında sıkça kullanılan su ve sudo komutları ile oturum açma işlemlerinde, parola yerine USB belleğin, yetkilendirme esnasında nasıl kullanılabileceği, yani bir anahtar olarak nasıl görev yapabileceği paylaşılacak.

USB belleklerin bir yetkilendirme anahtarı olarak kullanılabilmesi için, GNU/Linux dağıtımlarında pam_usb ve pmount yazılımlarına ihtiyaç duyulmaktadır. Bu yazılımlar sayesinde, USB belleklerin çok az bir kısmı (yaklaşık 2KB) kullanılarak, bir yetkilendirme anahtarı oluşturulabilinmektedir.

Yazılımların Edinilmesi ve Kurulması

pam_usb ve pmount yazılımları, ne yazık ki Pardus depolarının herhangi birinde bulunmuyor. Bu nedenle yazılımların kaynak kodlarının edinilip, derleme yolu ile kurulması gerekiyor.

USB bellek ile yetkilendirme yapacak olan ana yazılım pam_usb’nin kaynak kodları, [1] adresindeki “Download” yani dosya indirme kısmından edinilebiliyor. Taşınabilir belleklerin, normal kullanıcı hesabı ile sisteme bağlanabilmesine olanak sağlayan ve aynı zamanda pam_usb uygulamaları tarafından ihtiyaç duyulan pmount yazılımının kaynak kodlarına ise, Debian’a ait olan [2] adresindeki pmount_x.y.z.orig.bz2 bağlantısından erişilebiliyor.

Pardus dışında, yaygın olarak kullanılan dağıtımlarda ise bu yazılımlar paket depolarında bulunmakta.

Bu yazılımların kaynak koddan derlenerek kurulması, şu şekilde gerçekleştirilebilir:

Öncelikle, hal-storage’ın kendisi ve geliştirme dosyalarını barındıran paketin kurulması gerekmektedir. Bu nedenle Pardus 2009’da hal, Pardus 2011’de ise hal-devel paketinin kurulu olması gerekmektedir.

pam_usb yazılımının kurulumu, indirilen tar arşivinin bir dizine açılmasının ardından, make, gcc gibi geliştirme paketlerinin kurulu olduğu bir sistemde, komut satırında

make
sudo make install

komutlarının verilmesi ile gerçekleştirilebilir.

pmount yazılımının kurulumu ise, yine indirilmiş olan pmount arşivinin bir dizine açılmasının ardından, komut satırında

./configure --prefix=/usr
make
sudo make install

komutlarının verilmesi ile gerçekleştirilebilir.

Bu işlemlerin ardından, herhangi bir bağımlılık eksiği yoksa veya herhangi bir hata ile karşılaşılmazsa, kurulum tamamlanmıştır.


Yapılandırma

USB belleğin bir anahtar olarak yapılandırılması için pam_usb tarafından sağlanan birtakım uygulamaların kullanılması gerekmekte. Bu uygulamaların ilki; pamusb-conf uygulaması.

Bir USB belleği, bir anahtar olarak atamak için yönetici yetkileriyle pamusb-conf --add-device <isim> komutunun verilmesi gerekmektedir. Bu komutta geçen <isim> değişkeni yerine, herhangi bir kelime yazılabilmektedir. Bu komutun verilmesinin ardından, şöyle bir çıktı kullanıcıyı karşılayacaktır:

# pamusb-conf --add-device anahtarim
Please select the device you wish to add.
* Using "TOSHIBA TransMemory (BELLEK_ADI_001FDGCC0C60E-0:0)" (only option)

Which volume would you like to use for storing data ?
* Using "/dev/sdb1 (UUID: 273FE3B75CBFEE39)" (only option)

Name : anahtarim
Vendor : TOSHIBA
Model : TransMemory
Serial : BELLEK_ADI_001FDGCC0C60E-0:0
UUID : 273FE3B75CBFEE39

Save to /etc/pamusb.conf ?
[Y/n] Y
Done.

Burada, anahtarim adı verilerek bir anahtar oluşturuldu. Sisteme bağlı olan tek bir USB bellek olduğundan, pamusb-conf, otomatik olarak bağlı olan belleği seçti ve kullanıcıyı bilgilendirdi. Ardından da kullanıcıdan “Y” cevabını alarak, USB belleği yapılandırma dosyasına ekledi.

USB belleği anahtar olacak kullanacak kullanıcıların belirlenmesi için ise pamusb-conf --add-user <kullanici> komutu verilir. Bu komutun verilmesinin ardından şöyle bir çıktı kullanıcıyı karşılayacaktır:

# pamusb-conf --add-user guDa
Which device would you like to use for authentication ?
Innocent toshi
1) anahtarim

[0-1]: 1

User : guDa
Device : anahtarim

Save to /etc/pamusb.conf ?
[Y/n] Y
Done.

Burada, guDa adındaki kullanıcının, önceden eklenmiş olan USB belleklerin birini kullanabilmesi için müracaat edildi ve karşılaşılan listeden, önceden hazırlanmış olan anahtarların biri seçildi. Son olarak da seçim, yapılandırma dosyasına kaydedildi.

Bu işlemlerin ardından, oluşturulan yapılandırma dosyasının çalışıp çalışmadığı, yine pam_usb tarafından sağlanan pamusb-check uygulaması ile denetlenebilir. pamusb-check <kullanici> komutu, ismi verilen kullanıcı için denetleme işlemini gerçekleştirecektir:

# pamusb-check guDa
* Authentication request for user "guDa" (pamusb-check)
* Device "anahtarim" is connected (good).
* Performing one time pad verification...
* Regenerating new pads...
* Access granted.

Burada, guDa adındaki kullanıcının, bağlı bulunan USB bellek ile yetkilendirmeyi aşabilmesi denetlenmiş bulunuyor. Bu çıktıda bulunan “* Access granted.” kısmı oldukça önemlidir. Zira, olumsuz olarak sonuçlanması, yapılandırmanın çalışmadığı anlamına gelmektedir.

Yapılandırma denetlemesinde, kimi zaman “Pad checking failed.” gibi bir hata ile karşılaşılabiliniyor. Bu hata genelde, ev dizininde bulunan .pamusb dizininin silinmesi ile onarılabilmekte.

Yapılandırma sağlıklı bir biçimde çalışıyorsa, artık sıra, sistemde bunun nasıl kullanılacağını öğrenmeye gelmiş demektir. Sistemde yetkilendirme için, öncelikli olarak, /etc/pam.d/system-auth dosyasının düzenlenmesi gerekmektedir. Bu dosya yönetici yetkileri ile açıldıktan sonra, dosya içerisinde bulunan

auth sufficient pam_unix.so likeauth nullok

satırının üstüne

auth sufficient pam_usb.so

satırının eklenmesi, yapılacak olan tüm düzenleme işleminin kendisidir.

 

Sonuç

Tüm yapılandırma ve düzenleme işlemlerinin ardından, sistem, anahtar görevi yapan USB belleğini kullanmaya artık hazır. su ve sudo ile verilen komutların tümü, USB bellek aracılığıyla yetkilendirilmeye çalışılacak. Eğer yetkilendirme başarısız olursa, parola sormaya devam edecektir:

guDa@baDibere ~ $ sudo uname -r
* pam_usb v0.4.2
* Authentication request for user "guDa" (sudo)
* Device "anahtarim" is connected (good).
* Performing one time pad verification...
* Access granted.

2.6.31.13-131-pae

guDa@baDibere ~ $ su
* No device configured for user "root".
Parola:

Çıktılardan da görüldüğü gibi, sudo için hemen USB ile yetkilendirme gerçekleştirildi. Ancak su için aynı durum söz konusu olmadı ve parola sordu. Bunun nedeni, su komutunun root kullanıcısını istemesi ancak root kullanıcısı için herhangi bir yapılandırma yapılmamış olmasıdır.

KDE oturumunun da USB bellek ile yetkilendirme yapılarak açılması istenirse, aslında ek olarak yapılması gereken birşey yok. Tek yapılması gereken, kullanıcı giriş ekranında, kullanıcı adının yazılıp “enter” tuşuna basılması. Eğer, kullanıcı adının yazılması yerine seçilmesi istenirse, Pardus’un öntanımlı KDM giriş ekranı olan Pardus-Air yerine, Oxygen temasının seçilmesi gerekiyor. Bu değişiklik, Sistem Ayarları’nın gelişmiş sekmesinde bulunan Giriş Yöneticisi’nden yapılabilir.

Son olarak, PAM_USB’nin bilgisayarlarda güvenlik açığı oluşturup, oluşturmadığı hakkında net bir bilgi yok. Ancak, şu söylenebilir ki, anahtar olarak kullanılan USB bellek içerisinde, yetkilendirme amacıyla oluşturulan ve GNU/Linux’un yapısı itibariyle gizli bir dizin olan “.pamusb” dizini ve bu dizinin içindeki dosya veya dosyaların, başka bir USB belleğe kopyalanması, dosyaların kopyalandığı USB belleğin anahtar olarak kullanılmasını sağlamamaktadır.

[1] http://pamusb.org
[2] http://packages.debian.org/sid/pmount



Bu yazının lisansı Pardus-Linux.Org eDergi 25. Sayı'daki lisansı ile aynıdır. Lisanslar hakkında bilgiyi lisanslar sayfamızda bulabilirsiniz.

Etiketler :

Yorumlar