O que é o PAM (Pluggable Authentication Modules) no Linux?

4

O que é o PAM (Pluggable Authentication Modules) no Linux? Eu sei que é usado para autenticação, mas o que é bom isso? Como isso funciona?

Estou usando o CentOS 6.2.

    
por max 20.07.2012 / 08:36

3 respostas

8

Em poucas palavras, PAM os Módulos de autenticação plugáveis .

Como o próprio nome indica, ele usa uma arquitetura de estilo de plug-in. O PAM faz com que cada programa não tenha que implementar seu próprio mecanismo de autenticação. Em vez disso, apenas verifica a pilha do PAM.

Como o PAM é conectável, você pode configurar a pilha de autenticação da maneira que quiser. Autenticando-se contra LDAP, NIS, RADIUS, MySQL, Oracle, BerkelyDB, SQLite, tokens RSA, certificados x509, arquivos simples, senhas únicas, Google de dois fatores, fases da lua, etc. podem ser configurados em qualquer combinação. / p>

O PAM também pode acionar ações como montar sistemas de arquivos, criar diretórios, registros ou qualquer outra ação quando a pilha é ativada, falha ou é bem-sucedida.

O PAM é a autenticação do Canivete Suíço, dando infinita flexibilidade para customizar a autenticação sob medida de qualquer maneira necessária, para qualquer aplicação.

Sem ele, todo programa teria que suportar independentemente todos esses recursos, e isso seria realmente um mundo triste.

    
por 24.07.2012 / 23:06
7

talvez esta visão geral lhe dê tudo o que você quer saber ou um bom começo para ainda mais: link

Algumas citações:

Linux-PAM deals with four separate types of (management) task. These are: authentication management; account management; session management; and password management.

    Here is a figure that describes the overall organization of Linux-PAM:

  +----------------+
  | application: X |
  +----------------+       /  +----------+     +================+
  | authentication-[---->--\--] Linux-   |--<--| PAM config file|
  |       +        [----<--/--]   PAM    |     |================|
  |[conversation()][--+    \  |          |     | X auth .. a.so |
  +----------------+  |    /  +-n--n-----+     | X auth .. b.so |
  |                |  |       __|  |           |           _____/
  |  service user  |  A      |     |           |____,-----'
  |                |  |      V     A
  +----------------+  +------|-----|---------+ -----+------+
                         +---u-----u----+    |      |      |
                         |   auth....   |--[ a ]--[ b ]--[ c ]
                         +--------------+
                         |   acct....   |--[ b ]--[ d ]
                         +--------------+
                         |   password   |--[ b ]--[ c ]
                         +--------------+
                         |   session    |--[ e ]--[ c ]
                         +--------------+
    
por 20.07.2012 / 08:43
5

O PAM é uma estrutura que ajuda os aplicativos a executar o que chamarei de "atividades relacionadas à autenticação". As principais partes do PAM são uma biblioteca (libpam) e uma coleção de módulos PAM, que são arquivos de bibliotecas (.so) dinamicamente vinculados na pasta / lib / security.

OBSERVAÇÃO

1.Faça o backup de todos os dados e arquivos de configuração do PAM antes de qualquer modificação.

2. Tenha cuidado para executar a opção de configuração. Configuração incorreta pode bloquear todo o acesso de login, incluindo o acesso root.

3.Leia a sintaxe do PAM corretamente.

Abaixo estão alguns exemplos, tenha cuidado ao tentar isso.

Permitir que qualquer usuário su a raiz sem uma senha.

Para isso, edite o arquivo /etc/pam.d/su e comente todas as linhas relacionadas à pilha de autorização, substituindo-as por uma única linha:

auth sufficient pam_permit.so

Para testar esse login como um usuário normal e verifique se agora você pode usar su - para se tornar root sem fornecer uma senha.

[raj@avi ~]$ su -
[root@avi ~]#

Desativar login raiz direto

NOTA: Antes de fazer isso, verifique se você tem pelo menos uma conta que pode usar o su para se tornar root ou se bloqueará da máquina.

Para desabilitar logins root em terminais virtuais, edite o arquivo / etc / pam / d / login e adicione a entrada.

auth required pam_securetty.so

Este módulo impedirá o login root em dispositivos de terminal que não estão listados em / etc / securetty.

tty1
#tty2
#tty3
tty4
tty5

Se você comentar em # tty2 e # tty3, então a partir do terminal virtual tty2 e tty3 não é possível fazer login direto como root.

Evitar que usuários não-root encerrem o sistema

Tomando a configuração PAM do comando halt como exemplo, edite o arquivo /etc/pam.d/halt. assim

auth sufficient pam_rootok.so

auth required pam_deny.so

Para testar este login como um usuário normal e tentar o comando halt, você receberá um erro abaixo.

[test2@avi ~]$ halt
halt: Need to be root
[test2@avi ~]$

Estes são apenas alguns exemplos.

fonte original

    
por 26.07.2012 / 10:21