File :
/etc/security/access.conf

Path:
/etc/pam.d/sshd

Added Library:
auth       required     pam_access.so

access.conf isimli dosya içerisinde bulunan kriterlerin aktif olabilmesi için pam’a gerekli library eklenir ve ssh servisi aşağıdaki şekilde reload edilir.

service sshd reload

access.conf isimli dosyaya yazılabilecek bir kaç kombinasyon aşağıda gösterilmiştir.SSHD servisi için yazılan kurallar access.conf dosyasında belirtilen kriterlere göre değerlendirilir.Eğer değerlendirme sonucu olumlu ise accept, olumsuz ise refuse edilir.

access.conf erişim yapısı:
permission:users:origins

Permission: “+”  ile başlayan karakter ilgili kullanıcıya belirtilen doğrultuda yetki verirken  “-” şeklinde bir negatif karakter ile kullanıcı yetkileri kısıtlanabilir.

Users: sistemde tanımlı olan (/etc/passwd) bir kullanıcı veya grup ismi olmalıdır.

Origins: Bir veya birden fazla tty tanımı yapılabilir. (host name,host adress, network adress with netmask)
ps -auxx | awk  {‘print $1,$7,$11′} | sort  (çalışan komutların hangi terminal ID’ye sahip olduklarını listeler.)

All: Tüm kriterler değerlendirilir.

Except: İstisna edilecek user,hostname ve network

Örnekler:

+ : ugurengin : 10.0.0.51 10.0.0.52 10.0.0.53
+ : ugurengin : 127.0.0.1
Tanımlı kullanıcılar sadece belirtilen host adreslerinden erişebilir.

+ : root : 10.0.0.
“.” ile network eşleştirmesi yapmak da mümkün. 10.0.0. şeklinde yapılan bir network tanımı, 10.0.0.0/24 veya 10.0.0.0/255.255.255.0 network adreslerini ifade eder.

+ : ugurengin : client01.ugurengin.com client02.ugurengin.com
+ : ugurengin : client03.ugurengin.com
Tanımlı  kullanıcılar sadece belirtilen host isimlerinden erişim sağlayabilir.

- : ugurengin : ALL
Tanımlı kullanıcı hiç bir sistem kaynağına erişemez.

+ : @white redhat : ALL
Eğer netgroup isimli servis aktif ise white grubu’nun bir üyesi olan redhat isimli kullanıcı, sistem kaynaklarının tümüne erişebilir.

-:ALL EXCEPT root:tty1
tty1 terminal degeri üzerinden root erişimleri kapatılır.

-:user01 user01 user03 :ALL
Belirtilmiş birden fazla kullanıcının tüm sistem kaynaklarına erişmelerini engeller.

Erişim testi örneği:

-:ugurengin:ALL

Tüm erişim yetkileri kısıtlanan yukarıdaki kullanıcı, shell alıp geçerli kullanıcı bilgileri ile erişim sağlamaya çalıştığı esnada access.conf’da belirtilen kritere takılarak sistem tarafından refuse edilir.İlgili aksiyonlar gerçekleştiği esnada  auditing servisi de  aşağıdaki şekilde olan bitenleri logluyor olacaktır.

tail /var/log/audit/audit.log

type=CRYPTO_SESSION msg=audit(1324694948.615:77): user pid=6996 uid=0 auid=0 msg=’op=start direction=from-server cipher=aes256-ctr ksize=256 rport=17979 laddr=10.0.0.99 lport=22 id=4294967295 exe=”/usr/sbin/sshd” (hostname=?, addr=10.0.0.51, terminal=? res=success)

type=USER_AUTH msg=audit(1324694982.330:78): user pid=6996 uid=0 auid=0 msg=’PAM: authentication acct=”ugurengin” : exe=”/usr/sbin/sshd” (hostname=10.0.0.51, addr=10.0.0.51, terminal=ssh res=failed)’

Spesifik bir kullanıcıya ait ssh failed logları, aureport isimli komut ile aşağıdaki şekilde tespit edilebilir.

[root@base01 ~]# aureport -ts today -au --failed

Authentication Report
============================================
# date time acct host term exe success event
============================================
1. 12/25/2011 03:03:52 ugurengin 10.0.0.10 ssh /usr/sbin/sshd no 14
Share on Facebook