Introdução a Linux PAM
O pacote Linux PAM contém Módulos
Plugáveis de Autenticação usados pelo(a) administrador(a) local do
sistema para controlar como os aplicativos autenticam usuários(as).
Esse pacote é conhecido por construir e funcionar corretamente
usando uma plataforma LFS 12.1.
Informação do Pacote
Transferências Adicionais
Dependências do Linux PAM
Opcionais
libnsl-2.0.1, libtirpc-1.3.4, rpcsvc-proto-1.4.4, Berkeley
DB (obsoleto), libaudit,
libeconf e Prelude
Nota
Shadow-4.14.5 precisa ser reinstalado e reconfigurado depois de
instalar e de configurar o Linux
PAM.
Com o Linux-PAM-1.4.0 e superior, o módulo pam_cracklib não é
instalado por padrão. Use libpwquality-1.4.5 para impor senhas
fortes.
Instalação do Linux PAM
Primeiro, evite a instalação de um arquivo desnecessário do
systemd:
sed -e /service_DATA/d \
-i modules/pam_namespace/Makefile.am &&
autoreconf
Se você baixou a documentação, [então] desempacote o tarball
emitindo o seguinte comando.
tar -xf ../Linux-PAM-1.6.0-docs.tar.xz --strip-components=1
Compile e vincule o Linux PAM
executando os seguintes comandos:
./configure --prefix=/usr \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--libdir=/usr/lib \
--enable-securedir=/usr/lib/security \
--docdir=/usr/share/doc/Linux-PAM-1.6.0 &&
make
Para testar os resultados, um arquivo de configuração adequado
/etc/pam.d/other
precisa existir.
Reinstalação ou Atualização do Linux PAM
Se você tiver um sistema com Linux PAM instalado e funcionando,
seja cuidadoso(a) ao modificar os arquivos em /etc/pam.d
, pois seu sistema possivelmente se
torne totalmente inutilizável. Se você deseja executar os testes,
[então] não precisa criar outro arquivo /etc/pam.d/other
. O arquivo existente pode ser
usado para os testes.
Você também deveria estar ciente de que make install sobrescreve os
arquivos de configuração em /etc/security
, assim como em /etc/environment
. Se você tiver modificado
esses arquivos, [então] certifique-se de produzir uma cópia de
segurança deles.
Para uma primeira instalação, crie um arquivo de configuração
emitindo os seguintes comandos como o(a) usuário(a) root
:
install -v -m755 -d /etc/pam.d &&
cat > /etc/pam.d/other << "EOF"
auth required pam_deny.so
account required pam_deny.so
password required pam_deny.so
session required pam_deny.so
EOF
Agora execute os testes emitindo make
check. Certifique-se de que os testes não
produziram erros antes de continuar a instalação. Observe que os
testes são muito longos. Redirecione a saída gerada para um arquivo
de registro, de forma que você possa inspecioná-lo completamente.
Para uma primeira instalação, remova o arquivo de configuração
criado anteriormente emitindo o seguinte comando como o(a)
usuário(a) root
:
rm -fv /etc/pam.d/other
Agora, como o(a) usuário(a) root
:
make install &&
chmod -v 4755 /usr/sbin/unix_chkpwd
Explicações do Comando
--enable-securedir=/usr/lib/security
:
Essa chave configura o local de instalação para os módulos
PAM.
chmod -v 4755
/usr/sbin/unix_chkpwd: O bit setuid para o
aplicativo auxiliar unix_chkpwd precisa ser ativado,
de forma que processos não root
possam acessar o arquivo de sombra.
Configurando Linux-PAM
Arquivos de Configuração
/etc/security/*
e /etc/pam.d/*
Informação de Configuração
A informação de configuração é colocada em /etc/pam.d/
. Aqui está um arquivo de amostra:
# Início /etc/pam.d/other
auth required pam_unix.so nullok
account required pam_unix.so
session required pam_unix.so
password required pam_unix.so nullok
# Fim /etc/pam.d/other
Agora, crie alguns arquivos genéricos de configuração. Como o(a)
usuário(a) root
:
install -vdm755 /etc/pam.d &&
cat > /etc/pam.d/system-account << "EOF" &&
# Inicia /etc/pam.d/system-account
account required pam_unix.so
# Termina /etc/pam.d/system-account
EOF
cat > /etc/pam.d/system-auth << "EOF" &&
# Inicia /etc/pam.d/system-auth
auth required pam_unix.so
# Termina /etc/pam.d/system-auth
EOF
cat > /etc/pam.d/system-session << "EOF" &&
# Inicia /etc/pam.d/system-session
session required pam_unix.so
# Termina /etc/pam.d/system-session
EOF
cat > /etc/pam.d/system-password << "EOF"
# Inicia /etc/pam.d/system-password
# Use resumo 'yescrypt' para encriptação; use sombra e tente usar
# qualquer token de autenticação previamente definido (senha escolhida)
# configurado por qualquer módulo anterior.
password required pam_unix.so yescrypt shadow try_first_pass
# Termina /etc/pam.d/system-password
EOF
Se você deseja ativar o suporte a senhas fortes, [então] instale
libpwquality-1.4.5 e siga as instruções
naquela página para configurar o módulo PAM pam_pwquality com
suporte a senhas fortes.
Em seguida, adicione um arquivo de configuração /etc/pam.d/other
restritivo. Com esse arquivo,
os aplicativos que reconhecem o PAM não serão executados, a menos
que exista um arquivo de configuração específico para esse
aplicativo.
cat > /etc/pam.d/other << "EOF"
# Início /etc/pam.d/other
auth required pam_warn.so
auth required pam_deny.so
account required pam_warn.so
account required pam_deny.so
password required pam_warn.so
password required pam_deny.so
session required pam_warn.so
session required pam_deny.so
# Fim /etc/pam.d/other
EOF
A página de manual do PAM
(man pam) fornece
um bom ponto de partida para aprender a respeito dos diversos
campos e entradas permitidas. O
Guia do(a) Administrador(a) do Sistema Linux-PAM é
recomendado para informação adicional.