歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 訪問控制大師,使用pam來支持login的訪問控制

訪問控制大師,使用pam來支持login的訪問控制

日期:2017/3/6 15:47:36   编辑:關於Unix
這裡我們需要使用pam_access。pam_access是pam中處理用戶訪問控制的模塊,沒有使用pam前,linux對用戶的所有訪問控制都是借助hosts.allow, hosts.deny文件,實現所有服務的訪問控制,再加上usertty就是對用戶登陸控制(專門是針對login)。但是,隨著pam的應用
  這裡我們需要使用pam_aclearcase/" target="_blank" >ccess。pam_access是pam中處理用戶訪問控制的模塊,沒有使用pam前,linux對用戶的所有訪問控制都是借助hosts.allow, hosts.deny文件,實現所有服務的訪問控制,再加上usertty就是對用戶登陸控制(專門是針對login)。但是,隨著pam的應用,usertty已經不再使用了,雖然login的man裡還會提到。
  
  現在我們看看如何利用pam_access對個別用戶進行登陸訪問控制(對所有使用login的都有效),首先,我們需要的是訪問控制的配置文件,這個文件在/etc/security/access.conf。整個文件的格式都是: 權限:用戶(可多個並用空格隔開):源訪問點。下面對每個區域簡單說明:
  權限(permission) 這一位可以是+/-。其中+表示允許訪問,-表示禁止訪問;
  
  用戶(users) 這是指定用戶名,用戶組名或網絡用戶組名,指定的是多個要用空格隔開。對於指定網絡用戶組名時,網絡用戶組名應指定用戶組所在的源訪問點並用@和用戶組名分開。除此以外,還可以用ALL指定所有的和EXCEPT指定特殊例外的用戶。
  
  源訪問點(Origins) 這是指定用戶域中原訪問點。這裡可指定用戶訪問的ttyname,hostname,domainname或ip。其中domainname是指以.開頭的主機名,例如,.downsky.net就是指定downsky.net這個域。在這裡可以使用ALL和EXCEPT的關鍵字,也也指定LOCAL。
  下面我們看看一些例子,如果你先限制一些用戶在某些主機的登陸權限,我們提供登陸服務的主機叫linux,下面我們看看access.conf的配置情況:
  
  1. # access.conf file
  2. -:ALL:.foo.com .hacker.org
  3. -:ALL EXCEPT root: tty1
  4. +:ALL EXCEPT root:192.168.1.
  5. +:root user:.downsky.net
  6. -:chase:192.168.2.
  7. -:ALL:ALL
  
  從以上的配置文件可以看到,第二行拒絕所有從域名.foo.com和.hacker.org的登陸訪問;第三行拒絕除root以外的用戶從控制台登錄訪問;第四行允許除root外所有的用戶從192.168.1.的網段登錄訪問。第五行允許root和user用戶組中的成員從downsky.net登錄訪問。第六行拒絕用戶chase從192.168.2網段的登錄訪問,第七行拒絕其它的登錄訪問...
  現在我們只要在/etc/pam.d/login的文件裡加上下面一行
  
  account required /lib/security/pam_access.so
  就可以使login使用pam_access來對用戶進行登陸訪問控制了。整個login的文件如下
  auth requisite /lib/security/pam_unix.so nullok #set_secrpc
  auth required /lib/security/pam_securetty.so
  auth required /lib/security/pam_nologin.so
  #auth required /lib/security/pam_homecheck.so
  auth required /lib/security/pam_env.so
  auth required /lib/security/pam_mail.so
  account required /lib/security/pam_unix.so
  account required /lib/security/pam_access.so
  password required /lib/security/pam_pwcheck.so nullok
  password required /lib/security/pam_unix.so nullok use_first_pass use_authtok
  session required /lib/security/pam_unix.so none # debug or trace
  session required /lib/security/pam_limits.so
  
  如果被拒絕的用戶登陸本主機的話就會出現下面的輸出結果
  linux login: chase
  Password:
  Permission denied
  Connection closed by foreign host.
  
  我們還可以從/var/log/messages得到pam_access的日志,對應上面的情況我們從message得到如下的日志:
  
  Apr 25 12:50:25 linux pam_access[13916]: access denied for user `chase' from `192.168.2.78'
  Apr 25 12:50:25 linux login[13916]: Permission denied
  
  

Copyright © Linux教程網 All Rights Reserved