Pardus’ta AKIS Akıllı Kart İle Kimlik Doğrulama

Öncelikle, bu iş için PKCS#11 PAM(Pluggable Authentication Modules) modülü yüklenmiş olmalıdır. Bunun için aşağıdaki komutu kullanıyoruz:

$ sudo apt-get install libpam-pkcs11

Ayar dosyamızı yerleştirmek için bir dizin oluşturuyoruz:

$ sudo mkdir /etc/pam_pkcs11

Örnek ayar dosyasını, oluşturduğumuz dizin içerisine kopyalıyoruz:

$ zcat /usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example.gz | sudo tee /etc/pam_pkcs11/pam_pkcs11.conf

Sertifika otoritesinin sertifikalarını ve sertifika iptal listelerini koymak için oluşturduğumuz dizin içine yeni dizinler oluşturuyoruz:

$ sudo mkdir /etc/pam_pkcs11/cacerts /etc/pam_pkcs11/crls

Burada ben KAMU SM’nin sertifikalarını kullanıyorum. Nitelikli sertifika sağlayıcınız hangisiyse onun sertifika ve iptal listelerini ilgili klasöre indirmelisiniz. Öncelikle /etc/pam_pkcs11/cacerts altına aşağıdaki komutu kullanarak kök sertifikayı indiriyoruz:

$ wget http://depo.kamusm.gov.tr/nes/KOKSHS.V5.crt

/etc/pam_pkcs11/crls altına ise sertifika iptal listesini indiriyoruz:

$ wget http://depo.kamusm.gov.tr/nes/kokshs.v5.crl

Sertifikayı aşağıdaki komutla kontrol ediyoruz:

$ sha256sum KOKSHS.V5.crt

Çıktıyı KAMU SM’nin sitesindeki özet değerle karşılaştırınca aynı sonucu vermeli.

Kök sertifikanın olduğu klasöre girip( /etc/pam_pkcs11/cacerts) aşağıdaki komutu çalıştırıyoruz:

sudo pkcs11_make_hash_link

AKIS için en önemli kısım ayar kısmı. Örnek olarak kopyaladığımız pam_pkcs11.conf içerisinde değişiklik yapmamız gerekiyor. Tüm ayarlar pam_pkcs11 node’unun altında yapılıyor.

nullok = true;

şeklindeki satırı

nullok = false;

şeklinde değiştiriyoruz. Zira boş parolalara izin vermek istemiyoruz. Gerçi bizim durumumuzda AKIS zaten boş parolalara izin vermiyor.

Kullanacağımız pkcs11 modülünü belirtmemiz gerekiyor. Tabiki biz pkcs11 modülü olarak opensc değil AKIS PKCS#11 kullanacağız. AKIS modülünün ayarlarını bir node altında yapacağız şu an sadece ismini ekledik.

use_pkcs11_module = akis;

Şimdi node’u aşağıdaki gibi belgenin içine ekleyelim:

pkcs11_module akis {
module = /usr/lib/libakisp11
description = “AKIS”;
slot_num = 0;
support_threads = false; # AKIS multi-thread çalışmıyor.
ca_dir = /etc/pam_pkcs11/cacerts;
crl_dir = /etc/pam_pkcs11/crls;
cert_policy = ca,signature;
}

PAM modülü değişik türde mappers kullanır. Mapper’ların hepsi enable halde ayar dosyasına yazılmıştır:

use_mappers = digest, cn, pwent, uid, mail, subject, null;

Bunların hepsini kullanmayacağımızdan dolayı aşağıdaki hale getiriyoruz:

use_mappers = cn;

Yani cn mapper kullanacağız. Bu, GNU/Linux içerisinde kullanıcının Gecos alanındaki Full Name bilgisi ile sertifika içerisindeki Common Name’i karşılaştırır. İki bilgi birbirine eşitse login olunur. Common name’in değerine Akia uygulamasından bakabilirsiniz. Sertifikanın üzerine tıkladıktan sonra detaylarda, CN’yi görebilirsiniz.

Ayar dosyasında mapper’ın olduğu yeri de düzenliyoruz.

mapper cn {
debug = false;
module = internal;
module = @[email protected]/pam_pkcs11/cn_mapper.so;#yeri nerdeyse orayı gösterin
ignorecase = true;
mapfile = file:///etc/pam_pkcs11/cn_map; #aynı şekilde cn_map dosyası oluşturmak gerekiyor.
mapfile = “none”;
}

Ayar dosyasındaki düzenlemeler bitti.

cn_map dosyasının da yapısı aşağıdaki gibidir:

Certificate Subject -> login

Tüm sistemde kimlik doğrulama yaparken akıllı kart kullanmak için /etc/pam.d/common-auth dosyasını düzenlemek gerekiyor. Burada duruma göre dosyanın başına aşağıdaki satır eklenebilir.

auth sufficient pam_pkcs11.so

Eğer kimlik doğrulamada akıllı kartın kesinlikle kullanılmasını istiyorsanız aşağıdaki şekilde kullanabilirsiniz:

auth required pam_pkcs11.so

Sufficient etiketi parola veya akıllı kartla girişin yeterli olduğunu belirtir. Required olduğu zaman akıllı kartın mutlaka doğrulanması gerektiği anlaşılmalıdır.

Sonuç:

Not: Burada anlattığım bilgiler debian tabanlı tüm GNU/Linux dağıtımlarında standarttır.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir