Tutorial do Linux Pam

Tutorial do Linux Pam
Linux-pam é uma rica coleção de módulos compartilhados que autenticam interativamente um usuário a programas (ou serviços) em um sistema Linux. Linux-pam é um acrônimo para módulos de autenticação travável, que se desenvolveram a partir do design Unix-PAM. Ele combina numerosos módulos de autenticação de baixo nível com uma API de alto nível para fornecer autenticação dinâmica para aplicativos. Apesar do esquema de autenticação subjacente, isso permite que os desenvolvedores criem aplicativos que requerem autenticação. Linux-pam (também conhecido como "PAM") é frequentemente suportado por padrão em variantes contemporâneas de Linux.

A coisa mais crucial para um administrador do sistema entender é como os arquivos de configuração do PAM fornecem o link entre serviços e PAMs que realizam as atividades reais de autenticação. Você não precisa compreender o trabalho interno de Pam. Pam pode alterar significativamente a segurança do seu sistema Linux. Configurações incorretas podem proibir total ou parcialmente o acesso à sua máquina.

Interfaces de Linux-Pam no Ubuntu 20.04

Quatro grupos de gerenciamento diferentes lidam com as tarefas de autenticação PAM separadamente. Quando um usuário típico solicita um serviço restrito, esses grupos lidam com várias partes da solicitação:

  • Conta: Este módulo é usado para determinar se a conta fornecida é válida nas circunstâncias atuais. Vários fatores são verificados nesta categoria, incluindo expiração da conta, a hora do dia ou se o usuário tiver autorização para o serviço relevante.
  • Autenticação: Neste módulo, a identidade do usuário é validada quando todas as informações básicas foram verificadas como precisas. A identidade do usuário é verificada, permitindo que eles forneçam um login ou qualquer outra peça de dados em particular que apenas eles sejam obrigados a saber.
  • Senha: O módulo de autenticação deve funcionar em colaboração com este módulo, que auxilia o usuário a atualizar senhas. Ambas as ressonâncias fornecem a capacidade de aplicar senhas seguras.
  • Sessão: Este módulo descreve as atividades que devem ser realizadas no início e no final das sessões, e não é a menos importante dos módulos que compõem a ordem pela qual a estratégia geral do PAM conclui a tarefa desejada. A sessão começa quando o indivíduo se autenticou com sucesso.

Como validar um programa Linux-Pam no Ubuntu 20.04

Um aplicativo ou programa deve estar "ciente do PAM" ou expressamente construído e compilado para usar o PAM. Use o comando "LDD" para ver se um programa foi construído usando a biblioteca PAM para determinar se é "cedido de pam" ou não. Quando o comando "ldd /bin /su" é executado, o arquivo "libpam.Então ”é destacado na segunda linha que suporta a consulta. A validação é mostrada na captura de tela abaixo:

O diretório /etc /pam.d/ contém a configuração para Linux-pam. Vá para o diretório PAM inserindo o seguinte comando no terminal do seu sistema operacional Linux:

O instantâneo anterior mostra que se pode examinar o conteúdo inserindo o comando "LS" no diretório PAM. O servidor SSHD deve ser instalado se não estiver listado como um serviço que implementa Pam. O SSH, também conhecido como Secure Shell, é um aplicativo de rede que criptografa a transmissão de dados e permite que vários tipos e usuários de computador se conectem com segurança e remotamente em uma rede a vários sistemas. O comando a seguir adquire o pacote OpenSsh-Server:

Você pode então entrar novamente no diretório PAM, verificar os serviços e ver que o SSHD foi adicionado depois de terminar de instalar todos os arquivos. O serviço SSHD é destacado no “/etc/pam.diretório d ”.

Como configurar um programa Linux-Pam no Ubuntu 20.04

Cada chamada de cada módulo PAM resulta em sucesso ou falha. O resultado é tratado por Pam usando sinalizadores de controle. Os sinalizadores de controle especificam a importância relativa do sucesso ou falha de cada módulo com o objetivo geral de estabelecer a identidade do usuário com o serviço, e os módulos podem ser empilhados em uma determinada ordem. Existem quatro sinalizadores de controle pré -configurados disponíveis:

  • Necessário: Para a autenticação avançar, a resposta do pacote deve ser bem -sucedida. O usuário não será alertado se a tentativa falhar nesta fase até que todos os testes de embalagem testem seu uso, essa interface terminou de executar suas descobertas.
  • requisito: de acordo com os argumentos, se isso quebrar, tudo o mais também. Pam também será encerrado e um aviso de falha será entregue.
  • suficiente: se este módulo for bem -sucedido e todos os módulos exigidos anteriores também serão bem -sucedidos, nenhum módulo necessário é chamado.
  • Opcional: indica que o módulo não é essencial para se a solicitação de serviço do usuário é bem -sucedida ou sem sucesso. Seu valor é considerado apenas na ausência de sucessos conclusivos ou erros de módulos empilhados anteriores ou posteriores.
  • Inclua: Quando o parâmetro correspondente é correspondido, todas as linhas no arquivo de configuração são recuperadas por este sinalizador de controle.

Basta digitar o seguinte comando dentro do diretório PAM:

Como você pode ver, o termo das bandeiras de controle, que descrevemos anteriormente no seguinte arquivo PAM:

A diretriz geral a seguir deve ser usada ao escrever a configuração principal:

  • Serviço: o nome verdadeiro do programa
  • Tipo: interface/contexto/tipo de módulo
  • Flag Control: Se o módulo não concluir sua tarefa de autenticação, o sinalizador de controle determina como o PAM-API se comportará
  • Módulo: O nome do nome do caminho absoluto ou relativo do PAM
  • Módulo-Argumentador: Os parâmetros do módulo são uma lista de tokens que podem ser usados ​​para afetar a funcionalidade do módulo

Se você deseja impedir que os usuários root se conectem a qualquer sistema sobre o SSH, deve restringir o acesso ao serviço SSHD. Além disso, o acesso aos serviços de login deve ser restrito.

Vários módulos limitam o acesso e os privilégios concedidos, mas podemos utilizar o módulo incrivelmente adaptável e rico em recursos/Lib/Security/Pam ListFile.então. Vá para o /etc /pam.D/ Diretório, abra o arquivo do serviço de destino e faça as alterações necessárias da seguinte forma:

O regulamento a seguir deve ser inserido no arquivo:

Anteriormente, o tipo de módulo é auth (ou contexto). A bandeira de controle indica que, apesar de quão bem os outros módulos estão executando, se o módulo for utilizado, ele deve ter sucesso ou o resultado geral será uma falha. Um meio de ativar ou negar serviços com base em qualquer arquivo é fornecido pelo Pam ListFile.então módulo. orerr = sucesso é um argumento para o módulo. O item = usuário é um argumento do módulo que descreve o conteúdo do arquivo que precisa ser verificado. A opção Sense = Negar Module indica a ação a ser tomada se o item estiver localizado no arquivo. Caso contrário, o curso de ação oposto é solicitado. O arquivo com um item por linha é especificado pelo arquivo de opção do módulo =/etc/ssh/netiedusers.

A raiz do nome deve ser adicionada ao arquivo/etc/ssh/netiedusers após a criação:

Depois de fazer as permissões necessárias, salve as modificações e feche o arquivo:

Com a regra anterior em vigor, Pam será instruído a verificar o/etc/ssh/netiedusers e impedir que todos os usuários listados usem os serviços SSH e Login que avançam.

Conclusão

Programas que dependem da autenticação podem garantir que apenas aplicativos autorizados estejam em um sistema operacional Linux devido à API de alto nível robusta conhecida como PAM. Tem muito poder, mas também é bastante difícil de compreender e operar. Para aplicativos e serviços em execução no Linux, o PAM oferece suporte a autenticação dinâmica. O desempenho de um módulo pode ser avaliado usando qualquer um dos sinalizadores de controle listados neste manual. O PAM é frequentemente usado em muitos sistemas seguros, porque é mais amigável e confiável do que o mecanismo de autenticação de senha e usuário convencional.