Introdução ao 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.3.
Informação do Pacote
Transferências Adicionais
Dependências do Linux PAM
Opcionais
libnsl-2.0.1, libtirpc-1.3.6, rpcsvc-proto-1.4.4, Berkeley
DB (obsoleto), libaudit e
libeconf
Opcionais (Para construir a Documentação e Páginas de Manual)
docbook-xml-5.0, docbook-xsl-ns-1.79.2, fop-2.10 (para o
formato PDF), libxslt-1.1.42 e Lynx-2.9.2 (para o
formato de texto simples)
Nota
Shadow-4.17.3 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.
Configuração
do Núcleo
Para o módulo PAM pam_loginuid.so
(referido pelo arquivo de configuração PAM system-session
, se elogind-255.17 for construído
posteriormente) funcionar, um parâmetro de configuração do núcleo
precisa ser configurado ou o módulo simplesmente não fará nada:
General setup --->
[*] Auditing support [AUDIT]
Instalação do Linux PAM
Se você tiver instalado docbook-xml-5.0, docbook-xsl-ns-1.79.2, libxslt-1.1.42 e Lynx-2.9.2 e desejar
gerar o formato de texto simples das documentações, modifique
meson.build
para usar Lynx-2.9.2 em
vez de W3m ou Elinks que o BLFS não fornece:
sed -e "s/'elinks'/'lynx'/" \
-e "s/'-no-numbering', '-no-references'/ \
'-force-html', '-nonumbers', '-stdin'/" \
-i meson.build
Compile e vincule o Linux PAM
executando os seguintes comandos:
mkdir build &&
cd build &&
meson setup .. \
--prefix=/usr \
--buildtype=release \
-D docdir=/usr/share/doc/Linux-PAM-1.7.0 &&
ninja
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 ninja install sobrescreve os
arquivos de configuração em /etc/security
, assim como em /etc/environment
. Se você tiver modificado
esses arquivos, 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 ninja test. Certifique-se de que
os testes não produziram erros antes de continuar a instalação.
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
:
ninja install &&
chmod -v 4755 /usr/sbin/unix_chkpwd
Agora remova um diretório desnecessário como root
:
rm -rf /usr/lib/systemd
Se você não tiver as dependências opcionais instaladas para
construir a documentação e baixou a documentação opcional pré
construída, novamente como o(a) usuário(a) root
:
tar -C / -xvf ../../Linux-PAM-1.7.0-docs.tar.xz
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 permissíveis. O Guia Linux-PAM do(a)
Administrador(a) do Sistema em /usr/share/doc/Linux-PAM-1.7.0/Linux-PAM_SAG.txt
é recomendado para informações adicionais.