歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

深入分析PAM在口令保護中的應用

PAM是pluggable authentication modules系統的一個實現,它最初有sun 開發 ;很快被 linux 社區的接受,並且開發了更多的模塊。其目標是提供一套可用於驗證用戶身份的函數庫,從而將認證從應用程序開發中獨立出來。下面是一些PAM在口令保護中的簡單例子。 使
  PAM是pluggable authentication modules系統的一個實現,它最初有sun開發;很快被linux社區的接受,並且開發了更多的模塊。其目標是提供一套可用於驗證用戶身份的函數庫,從而將認證從應用程序開發中獨立出來。下面是一些PAM在口令保護中的簡單例子。
  使用pam-tally.so
  pam-tally.so是一個PAM模快,用於監視用戶登陸失敗次數並該值超過特定值時做出反映。例如用戶在登陸3次失敗後,其帳號會被鎖定一段時間,或永久鎖定(或到聯系到系統管理員)。將下面行添加到/etc/pam.d/login:
  aclearcase/" target="_blank" >ccount required /lib/security/pam-tally.so deny=3 no-magic-root
  這行配置pam-tally.so ,使之在用戶連續3次登陸失敗後鎖定其帳號。這樣攻擊者就只有3次猜測口令的機會,之後就會被剔出。
  pam-cracklib.so 是alec muffett編寫的PAM版本的cracklib庫,用於檢查口令的強度,他首先調用cracklib例程來測試口令是否能被破解。在通過這個測試後再進行如下測試:
  。 口令是否回文?
  。 新口令是不是舊口令的大小寫變換版本?
  。 新口令和舊口令是否非常相似?
  。 口令是否太短?
  。 新口令是不是舊口令的移位版本?
  要以此測試每個新口令。只需要在/etc/pam.d/passwd文件中用如下行替換原來pam-unix.so模塊;
  password required pam-cracklib.so retry=3
  password required pam-unix.so use-authtok md5
  這樣就給用戶三個機會來選擇合適的健壯口令。也可以強制口令的長度:
  password required pam-cracklib.so retry=3 minlength=10
  password required pam-unix.so use-authtok md5
  強制MD5散列 有些linux發布默認配置下使用DES散列,而非MD5散列。要想強制所有新口令都以MD5散列方式保存,只需直接把md5添加到/etc/pam.d/passwd文件的pam-unix.so 行中:
  password required pam-unix.so use-authtok md5
  下面這段perl代碼可用來生成強口令
  #!/usr/bin/perl -w
  #passwd-generator.pl
  use strict;
  my @chars=(33..91,93..126);
  my $num-chars=@chars;
  my $length;
  my $punt='! "#$%&'()*+,-./:;<=>?@[\\]^{|}~ ';
  print "enter number of characters in your passwd:"
  chmop($length=<STDIN>);
  die "length must be greater than 6!" if $length<=5;
  while(1){
  my $password=' ';
  foreach (1..Slength){
  Spassword.=chr(Schars[int(rant(Snum-chars))]);
  }
  if($passwd=~/[a-z]/ and $passwd=~/[A-Z]/ and
  $passwd=~/[0-9]/ and $passwd=~/[$punt]/ {
  print Spassword, "\n" ;
  exit;
  }
  }

Copyright © Linux教程網 All Rights Reserved