Installation PAM-devel sous Debian

Installation PAM-devel sous Debian - Logiciels - Linux et OS Alternatifs

Marsh Posté le 16-02-2006 à 12:04:44    

Bonjour
 
Tout d'abord je recherche quelqu'un qui pourrait m'expliquer sommairement le fonctionnement de l'authentification via PAM.  
Ensuite j'aimerai pouvoir installer le paquet pam-devel sur mon poste, mais je n'arrive pas à le trouver. De plus j'ai l'impression que PAM fonctionne avec PERL... faut-il installé PERL sous ma debian, quoique je pense qu'il soit déjà installé par défaut.
 
Tout ceci étant dans le but de faire fonctionner une authentification cliente sous OpenVPN.
 
Je vous fournit ci-dessous le script qui permet de gérer cette authentification :
 
Merci de votre aide
 

Code :
  1. #!/usr/bin/perl -t
  2. # OpenVPN PAM AUTHENTICATON
  3. #   This script can be used to add PAM-based authentication
  4. #   to OpenVPN 2.0.  The OpenVPN client must provide
  5. #   a username/password, using the --auth-user-pass directive.
  6. #   The OpenVPN server should specify --auth-user-pass-verify
  7. #   with this script as the argument and the 'via-file' method
  8. #   specified.  The server can also optionally specify
  9. #   --client-cert-not-required and/or --username-as-common-name.
  10. # SCRIPT OPERATION
  11. #   Return success or failure status based on whether or not a
  12. #   given username/password authenticates using PAM.
  13. #   Caller should write username/password as two lines in a file
  14. #   which is passed to this script as a command line argument.
  15. # CAVEATS
  16. #   * Requires Authen::PAM module, which may also
  17. #     require the pam-devel package.
  18. #   * May need to be run as root in order to
  19. #     access username/password file.
  20. # NOTES
  21. #   * This script is provided mostly as a demonstration of the
  22. #     --auth-user-pass-verify script capability in OpenVPN.
  23. #     For real world usage, see the auth-pam module in the plugin
  24. #     folder.
  25. use Authen::PAM;
  26. use POSIX;
  27. # This "conversation function" will pass
  28. # $password to PAM when it asks for it.
  29. sub my_conv_func {
  30.     my @res;
  31.     while ( @_ ) {
  32.         my $code = shift;
  33.         my $msg = shift;
  34.         my $ans = "";
  35.         $ans = $password if $msg =~ /[Pp]assword/;
  36.         push @res, (PAM_SUCCESS(),$ans);
  37.     }
  38.     push @res, PAM_SUCCESS();
  39.     return @res;
  40. }
  41. # Identify service type to PAM
  42. $service = "login";
  43. # Get username/password from file
  44. if ($ARG = shift @ARGV) {
  45.     if (!open (UPFILE, "<$ARG" )) {
  46. print "Could not open username/password file: $ARG\n";
  47. exit 1;
  48.     }
  49. } else {
  50.     print "No username/password file specified on command line\n";
  51.     exit 1;
  52. }
  53. $username = <UPFILE>;
  54. $password = <UPFILE>;
  55. if (!$username || !$password) {
  56.     print "Username/password not found in file: $ARG\n";
  57.     exit 1;
  58. }
  59. chomp $username;
  60. chomp $password;
  61. close (UPFILE);
  62. # Initialize PAM object
  63. if (!ref($pamh = new Authen::PAM($service, $username, \&my_conv_func))) {
  64.     print "Authen::PAM init failed\n";
  65.     exit 1;
  66. }
  67. # Authenticate with PAM
  68. $res = $pamh->pam_authenticate;
  69. # Return success or failure
  70. if ($res == PAM_SUCCESS()) {
  71.     exit 0;
  72. } else {
  73.     print "Auth '$username' failed, PAM said: ", $pamh->pam_strerror($res), "\n";
  74.     exit 1;
  75. }

Reply

Marsh Posté le 16-02-2006 à 12:04:44   

Reply

Marsh Posté le 16-02-2006 à 13:51:39    

aptitude install libpam0g-dev
 
pour le reste, j'y connais pas grand chose, je laisse la réponse à d'autres

Reply

Marsh Posté le 16-02-2006 à 14:52:33    

Merci arghbis, je viens d'installer le packages, mais le script ne fonctionen toujours pas. Voilà l'erreur :  
 

Code :
  1. Can't locate Authen/PAM.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl) at ./sample-scripts/auth-pam.pl line 30.
  2. BEGIN failed--compilation aborted at ./sample-scripts/auth-pam.pl line 30.


 
Il ne trouve pas Authen/PAM.pm qui correspond à la ligne 30 du script, je sais pas où trouver ce Authen/PAM.pm ???  

Reply

Marsh Posté le 16-02-2006 à 15:58:08    

C'est bon mon script fonctionne, je n'est plus l'erreur, mais je ne comprends vraiment rien au fonctionnement de PAM. Il me semble qu'il faut configurer certain fichier dans /etc/pam.d mais je sais pas lequels...
 
Quelqu'un peut me donner un coup de main pour configurer tout ca ??

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed