webCalendar: a agenda e o PAM

Procuramos no presente artigo integrar a autenticação web por meio de módulos da infra-estrutura do PAM. Utilizamos como referência para esse procedimento a aplicação webCalendar e os módulos libapache2-mod-auth-pam e libapache2-mod-auth-sys-group com a finalidade de proteger a área de execução de script cgi do servidor web.

[ Hits: 36.216 ]

Por: lourival araujo da silva em 23/10/2008


Fechando janelas



Os módulos do PAM proporcionam a necessária restrição de acesso aos vários catálogos de compromissos agendados.

Editamos o arquivo de configuração do apache (/etc/apache2/sites-enabled/000-default) para que suporte autenticação via módulos do PAM no diretório a ser protegido.

Criamos um grupo no qual incluiremos os usuários com permissão de acesso à agenda:

# groupadd agenda
# vi /etc/group


agenda:x:1012:teste2,teste3,araujo_silva

Acrescentamos a conta do usuário do servidor web no grupo shadow, dando acesso à leitura das senhas dos usuários cadastrados:

# adduser www-data shadow

Modificamos a configuração do diretório dos scripts cgi e realizamos os testes correspondentes com o módulo PAM:

# /etc/apache2/sites-enabled/default

<Directory /var/www/apache2-default/cgi-bin>
  
  Options ExecCGI
  AllowOverride None
  Orderallow,deny
  allow from all
  RedirectMatch ^/$ /apache2-default/
  
  AuthPAM_Enabled On
  AuthType Basic
  AuthUserFile shadow
  AuthName "RESTRITO"
  require group agenda

</Directory>

# /etc/init.d/apache2 restart

O teste do controle de acesso deve ser feito em função do parâmetro "require", no diretório estabelecido para as aplicações que utilizam CGI. Esse parâmetro pode adquirir três valores:
  • "require user teste2", que dá acesso somente ao usuário teste2;
  • "require valid user", que dá acesso aos usuários válidos para o sistema onde se encontra o servidor web e de acordo com a configuração do arquivo correspondente (/etc/pam.d/apache2);
  • "require group agenda", que dá acesso aos usuários cadastrados no grupo agenda, exclusivamente.

Os retornos de erro podem ser acompanhados pelos logs específicos (/var/log/apache2/error.log). Devemos lê-los a cada tentativa de acesso:

# tail /var/log/apache2/error.log
user teste5: authentication failure for "/cgi-bin/wcal/wcal.pl": Password Mismatch
user teste6 no found: /cgi-bin/wcal/wcal.pl
GROUP: teste not in require group(s).

# tail /var/log/apache2/access.log
::1 - teste3 [21/Oct/2008:13:15:59 -0300] "GET /cgi-bin/wcal/wcal.pl HTTP/1.1" 200
2255 "http://localhost/" "Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5
(like Gecko) (Debian)"

Os testes de restrição de acesso poderão ser realizados com o pamtester a fim de avaliar a conformidade com os parâmetros escolhidos:

# pamtester apache2 teste3 authenticate
Password: xxxxxx
pamtester: successfull authenticated

# pamtester apache2 teste authenticate
Password: xxxxxx
pamtester: User not known to the underlying authentication module

Lembramos que a proteção do ambiente onde se trabalha com os scripts cgi não interfere na transferência de senhas através da rede. É importante que se instale o suporte a ssl ou a tls.

Abraços e boa sorte!

Página anterior    

Páginas do artigo
   1. Preparando o terreno para o webCalendar
   2. Ajustes iniciais
   3. Cadastrando o administrador
   4. Passeando pelos menus do webCalendar e divulgando compromissos
   5. Fechando janelas
Outros artigos deste autor

Mudança de hábito: autenticando usuários em base de dados MySQL

Cliente Linux no servidor LDAP

Configuração "automágica" de servidor Linux PDC Samba

Servidor Samba "Autoservice"

Autenticação via hardware: o módulo pam_blue

Leitura recomendada

ClamAV, o kit de ferramentas antivírus

Segurança em Software de Código Aberto

Administrando Linux via web (parte 1)

OpenVPN se comportando como PPTP

Engenharia Social - Fios de telefone

  
Comentários
[1] Comentário enviado por dailson em 23/10/2008 - 15:52h

Grande Lourival!!!
Parabéns por mais um artigo!
Este está show, vou ver se arrumo tempo para testar e lhe dou um retorno ;)

[2] Comentário enviado por araujo_silva em 24/10/2008 - 00:43h

Valeu professor !!!

Sou seu fã !!!!

Abraços.

[3] Comentário enviado por __FERNANDO__ em 28/10/2008 - 16:28h

Boa tarde!

Fiz o procedimento acima, porem meu Debian continua não abrindo arquivo .pl
Quando clico em um link onde direciona para uma pagina .pl me aparece uma mensagem dizendo se quero abrir ou salvar o arquivo.

O que eu faço ?

grato.

Fernando.

[4] Comentário enviado por araujo_silva em 28/10/2008 - 18:59h

Caro Fernando,

Peço desculpas por não haver documentado o arquivo de configuração do apache.
Verifique no arquivo de configuração do seu servidor web, se ele está configurado para executar script cgi e pl. Descomente a linha equivalente da que se segue ou modifique-a:

/etc/apache2/apache2.conf

#AddHandler cgi-script .cgi .pl

Caso persistar, verifique o log e informe.

Abraço,

Lourival


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts