Você está na página 1de 19

PAM

PAM é o acrônimo em inglês para Pluggable Authentication


Modules. Seu desenvolvimento inicial aconteceu em 1996 pela Sun
Microsystems e atualmente é suportado nos sistemas operacionais
AIX, HP-UX, Solaris, Linux, FreeBSD, Mac OS X e NetBSD.

O propósito do do projeto PAM é separar a concessão de privilégios


nos aplicativos atrafvéz da aplicação de esquemas de autenticação
apropriados e seguros. Isto é realizado fornecendo-se uma
biblioteca de funções utilizada pelas aplicações para solicitar a
autenticação de usuários.
PAM
As bibliotecas PAM são confguradas no arquivo /etc/pam.conf ou
nos arquivos dentro do diretório /etc/pam.d/. Vale ressaltar que não
é possível utilizar as duas formas de confguração do LinuxPAM. Ou
um ou outro, não os dois ao mesmo tempo.!

Os arquivos de confguração utilizam módulos normalmente


localizados no diretório /lib/i386-linux-gnu/security/ e se comportam
como objetos carregáveis dinamicamente.

O PAM trabalha com gerenciadores e controles, e cada tipo de


módulo provê uma funcionalidade diferente dentro do sistema.
Vamos comentar primeiro os gerenciadores:
PAM
account: Verifca se a conta é valida no sistema, se a senha do
usuário expirou e se o usuário realmente tem direitos de acessar
aquele serviço.
auth (authentication): Verifca questões de autenticação, seja por
senhas ou impressões digitais (quando falamos de biometria). É
o módulo “authentication” que oferece a fexibilidade do PAM, já
que para cada método de autenticação criado, existe uma
biblioteca que será adicionada à este módulo.
password: Este módulo é responsável por cuidar dos aspectos
relacionados a tarefas envolvendo senhas, como atualização e
solicitação de nova senha de acesso no caso da troca da
mesma.
PAM
session: Responsável por tarefas pós autenticação, como montar
um compartilhamento de arquivos remotos que contém o
diretório “/home” do usuário em questão, por exemplo.

Além dos gerenciadores, existem também os controles:

required: Checa a existência do módulo solicitado. Caso esse


módulo falhe, somente depois de verifcar se todos os módulos
do mesmo tipo estão disponíveis é que o usuário será avisado.
requisite: Checa a existência do módulo solicitado e avisa o
usuário imediatamente caso este módulo falhe.
PAM
sufcient: Somente a verifcação do módulo é sufciente para a
autenticação, desde que nenhum módulo marcado como
required falhe.
optional: O sucesso ou a falha deste módulo não interfere no
processo de autenticação.

Verifque quais módulos do PAM estão instalados no sistema:


# ls /lib/x86_64-linux-gnu/security/

Podemos verifcar também quais serviços trabalham com o PAM


listando os arquivos do /etc/pam.d:
PAM
Podemos verifcar também quais serviços trabalham com o PAM
listando os arquivos do /etc/pam.d:
# ls -l /etc/pam.d

Para descobrir se algum software tem suporte no PAM


# ldd /bin/login

Vamos fazer um teste simples que serve para bloquear usuários


comuns. Abra o arquivo "/etc/pam.d/login"e visualize o módulo
"pam_nologin.so".
auth requisite pam_nologin.so
PAM
Para esse “módulo” funcionar ele necessita que o arquivo “nologin”
esteja criado dentro do diretório /etc. Execute:
# touch /etc/nologin

Feito isto, tente logar com o usuário analista em outro terminal.


Depois apague o arquivo /etc/nologin.

Para usar o PAM para gerenciar o login do root, vamos abrir o


arquivo /etc/pam.d/login e descomentar a linha 68:
# vim +68 /etc/pam.d/login
PAM
account requisite pam_time . so

Agora que ativamos o módulo pam_time.so, vamos negar o login do


root no terminal. Edite o arquivo “/etc/security/time.conf” e
acrescente na última linha:

# vim +31 /etc/securety/time.conf


login;*;root;!Al0000-2400

Abaixo temos as opções que podemos utilizar como permissão de


acesso:
PAM
O dia da semana é especifcado em duas letras, em inglês:

Mo - Segunda-feira
Tu – Terça-feira
We - Quarta-feira
Th - Quinta-feira
Fr - Sexta-feira
Sa - Sábado
Su - Domingo
Wd - Somente sábado e domingo (fm de semana)
PAM

Al - Todos os dias
"!- Neste caso especifca uma exceção.

A faixa de horas é especifcada após o dia no formato: HHMM-


HHMM.

Aproveitando o “gancho” , vamos deixar confgurada a negação de


acesso ao root via ssh. Mais uma camada de proteção, além da já
confgurada no arquivo de confguração do serviço ssh
(/etc/ssh/sshd_confg).
PAM
Abra o arquivo /etc/pam.d/sshd e inclua na linha 9:
account required pam_time.so

Abra o arquivo /etc/security/time.conf e adicione no fnal:


sshd;*;root;!Al0000-2400

Habilite os logs de su, descomente a linha 67 do arquivo login.defs:


# sed -i 67 s/^#// /etc/login.defs
PAM
Com o PAM, podemos limitar quais usuários poderão ter acesso a
utilizar ao comando “su”. Para isso, vamos criar um grupo chamado
“admins”
# groupadd admins

Agora vamos adicionar o usuário analista ao novo grupo. Com isto,


apenas o usuário analista poderá executar o comando “su”.
# gpasswd -a analista admins ; id dexterclem
PAM
Crie uma política que não possibilite o uso do “su”, exceto pelos
usuários do grupo “admins”. Abra o arquivo /etc/pam.d/su,
descomente a linha 15 e adicione ao fnal da linha group=admins
# vim +15 /etc/pam.d /su
auth required pam_wheel . so group=admins

Vamos falar agora sobre o “pam_limits”! Esse é um excelente


recurso para limitar praticamente todos os recursos da máquina a
cada usuário. Pode-se inclusive determinar o tempo de consumo de
CPU e memória RAM. Vejamos o módulo ativado no
/etc/pam.d/login:
PAM
# vim /etc/pam.d/login
session required pam_limits.so

Vamos realizar alguns testes. Primeiro iremos limitar o número de


terminais consecutivos que um usuário pode utilizar. Abra o arquio
/etc/security/limits.conf e insira a seguinte linha:

# vim /etc/security/limits.conf
@admins hard maxlogins 2
@admins hard nproc 200
PAM
# vim /etc/pam.d/login
session required pam_limits.so

Vamos realizar alguns testes. Primeiro iremos limitar o número de


terminais consecutivos que um usuário pode utilizar. Abra o arquio
/etc/security/limits.conf e insira a seguinte linha:

# vim /etc/security/limits.conf
@admins hard maxlogins 2
@admins hard nproc 200

Você também pode gostar