Felix Costa
"As falhas são o combustÃvel do sucesso"
"As falhas são o combustÃvel do sucesso"
Esta semana tive que restringir o acesso ao webmail de uma das empresas em que faço suporte. O Pessoal queria que apenas alguns colaboradores tivessem acesso ao webmail.
O webmail utiliza o protocolo IMAP para acessar as caixas postais e autenticar os usuários, o servidor utilizado é o Courier Imap que possui suporte a autenticação PAM.
O PAM (Pluggable Autentication Module) fornece um biblioteca para autenticar usuários em sistemas linux e outros sabores de *nix. Aplicações desenvolvidas com suporte ao PAM utilizam uma biblioteca de alto nÃvel para realizar rotinas de autenticação é as bibliotecas PAM de baixo nÃvel cuidam da interação com os diversos mecanismos de autenticação existentes (ldap, kerberos, etc…). Desta forma uma aplicação com suporte ao PAM poderá ser utilizada com diferentes mecanismos de autenticação e o programador só precisa se preocupar com as rotinas de alto nÃvel do PAM.
Voltando para o propósito deste texto que é o controle de acesso aos serviços de um servidor, tinha uma lista de 6 usuários que poderiam acessar o webmail.
O PAM possui um módulo chamado listfile.so que permite liberar ou bloquear um serviço baseado em informações obtidas de um arquivo.
O Courier Imap deste servidor está confrigurado com suporte a PAM, então o que tive que fazer foi adicionar uma linha ao /etc/pam.d/imap. No meu caso eu substitui a linha referente a autenticação do usuário (auth) por esta:
auth required pam_listfile.so onerr=fail item=user sense=allow file=/etc/webmail_access
Opções do pam_listfile.so
onerr – Que ação tomar caso alguma coisa errada aconteça. No meu caso o acessa vai falhar (fail) ou pode aceitar (suceed)
item – O que estará listado no arquivo. No meu caso será o nome dos usuários (user) mas pode ser também; tty,rhost,ruser,group,shell
sense – Qual ação tomar. No meu caso permitir (allow), pode ser também negar (deny).
file – Arquivo contendo um item por linha. Deverá ser um arquivo texto comum e não poderá ter permissão de escrita para todos.
Com a linha acima todos os usuários que terão acesso ao Webmail terão os nomes adiconados no arquivo /etc/webmail_access. Para os demais usuários o acesso será negado.
Para obter maiores informações sobre o PAM, veja o link logo abaixo.
http://www.ibm.com/developerworks/br/library/l-pam/index.html
É isso ai, espero que ajude e qualquer dúvida, crÃtica ou observação deixe um comentário.
Um abraço a todos!