Autenticando usuários

Este artigo descreve como as informações de usuários e grupos são armazenadas e como os usuários são autenticados em um sistema Linux (PAM). Ele também descreve como tornar o sistema de autenticação de usuários seguro.

[ Hits: 56.045 ]

Por: Cristian Alexandre Castaldi em 22/09/2004


Autenticação segura de usuários



Muitas distribuições do Linux chegam com autenticação de usuários que não são adequadamente seguras. Esta seção discute como você pode tornar a autenticação de usuários mais segura em seu sistema.

Criando o arquivo de configuração /etc/pam.d/other


Como já sabemos, todos os arquivos do diretório /etc/pam.d/ possuem configurações para um serviço em particular. Porém, existem serviços que não possuem arquivos de configuração no diretório /etc/pam.d/. Por isso, criaremos um arquivo que terá todas as configurações para estes serviços. Por exemplo, se o serviço "xyz" fizer uma tentativa de autenticação, o PAM olharia para o arquivo /etc/pam.d/xyz, porém, ele não acha um arquivo "xyz", o PAM determina que a configuração do serviço possa estar no arquivo /etc/pam.d/other. Veremos dois tipos de configuração para o arquivo /etc/pam.d/other, uma para segurança máxima (paranoid) e outra mais simples.

Configuração para segurança máxima (paranoid)


# vi /etc/pam.d/other

auth      required   pam_deny.so
auth      required   pam_warn.so
account   required   pam_deny.so
account   required   pam_warn.so
password  required   pam_deny.so
password  required   pam_warn.so
session   required   pam_deny.so
session   required   pam_warn.so

Com esta configuração, sempre que um serviço desconhecido fizer uma tentativa de acesso de todos os quatro tipos de configurações o PAM negará a autenticação através do módulo pam_deny.so e gerará um syslog warning através do módulo pam_warn.so. Esta configuração é muito segura, porém deve-se tomar cuidado para não deletar a configuração de algum serviço no diretório /etc/pam.d/. Imagine se seu arquivo de configuração /etc/pam.d/login fosse deletado, simplesmente você não conseguiria fazer o login.

Vamos a prática, no diretório /etc/pam.d/ renomeie o arquivo de configuração ssh e depois configure o seu arquivo other com a configuração de segurança máxima.

# mv ssh testessh
# vi other

(entre com as configurações acima)

De outra máquina tente acessar a sua máquina usando o serviço ssh, você tentará umas três vezes e não conseguirá acessar o sistema, pois, para o sistema o ssh é um serviço desconhecido. Sacou a jogada? Podemos aumentar a segurança do sistema bloqueando as tentativas de acesso de serviços desconhecidos. Vamos verificar o arquivo de logs:

# tail /var/log/auth.log
Sep 1 12:09:34 debian PAM-warn[4408]: service: ssh [on terminal: NODEVssh]
Sep 1 12:09:34 debian PAM-warn[4408]: user: (uid=0) -> crildo [remote: ?nobody@172.16.10.1]
Sep 1 12:09:34 debian sshd[4408]: Failed password for crildo from 172.16.10.1 port 1028 ssh2

Configuração para o arquivo de segurança simples


# vi /etc/pam.d/other

auth       required   pam_unix.so
auth       required   pam_warn.so
account    required   pam_unix.so
account    required   pam_warn.so
password   required   pam_unix.so   md5
password   required   pam_warn.so
session    required   pam_unix.so
session    required   pam_warn.so

Esta configuração permite que serviços desconhecidos possam se autenticar através do módulo pam_unix.so, porém ela não permite mudanças de passwords de usuários. Ela também gera um syslog warning através do módulo pam_warn.so. Observe o arquivo de logs:

# tail /var/log/auth.log
Sep 1 13:47:36 debian sshd[5945]: Accepted password for crildo from 172.16.10.1 port 1058 ssh2
Sep 1 13:47:37 debian PAM_unix[5947]: (ssh) session opened for user crildo by (uid=1000)
Sep 1 13:47:37 debian PAM-warn[5947]: service: ssh [on terminal: /dev/pts/3]
Sep 1 13:47:37 debian PAM-warn[5947]: user: (uid=1000) -> crildo [remote: ?nobody@172.16.10.1]

Desabilitando logins de usuários com null passwords


Em muitas distribuições do Linux existem um número de dummy user accounts, ou seja, contas de usuários postiços, usadas para atribuir privilégios para certos tipos de serviços como ftp, webservers e email. Estas contas permitem que seu sistema fique mais seguro, pois, elas limitam os usuários a apenas os privilégios de acesso disponíveis para cada conta de dummy user's. Isso é bom, pois não temos a necessidade de rodar serviços com privilégios de usuário root.

Porém, permitindo o login dessas contas cria-se um risco de segurança, por que elas geralmente usam passwords em branco (null passwords). A opção de configuração que habilita passwords em branco é a nullok que é um module-argument. Temos que remover este argumento de todos os módulos do tipo auth dos serviços que permitem login. Podemos incluir nessa regra também os serviços de rlogin e ssh. Para desabilitar o login desses usuários teremos que editar a seguinte linha no arquivo /etc/pam.d/login:

auth   required   pam_unix.so   nullok

mude para:

auth   required   pam_unix.so

Desabilitando serviços sem uso


Olhe para o diretório /etc/pam.d/, provavelmente veremos arquivos de configuração de programas que nem estamos usando. Para desabilitar estes programas e eliminar o acesso indevido através deles, simplesmente renomeie o arquivo de configuração do serviço que não está sendo usado. Lembrem-se que quando renomeamos o arquivo de configuração ssh para testessh, desabilitamos a autenticação do serviço ssh restringindo o acesso de serviços desconhecidos através do arquivo /etc/pam.d/other.

Ferramentas quebradoras de senhas


Enquanto algumas ferramentas quebradoras de senhas (password-cracking tools) são usadas para atacar e comprometer um sistema, estas ferramentas também podem ser usadas por um Administrador de Sistemas como ferramentas pró-ativas para aumentar a segurança do seu sistema. A ferramenta mais comumente usada é o Jonh the Ripper, que pode ser obtida em:
Rode esta ferramenta no seu arquivo de passwords e terá uma surpresa.

Adicionalmente, existe um módulo PAM que utiliza bibliotecas de crack para checar a força dos passwords dos usuários sempre que estes são mudados.

Shadow e MD5 passwords


O sistema de sombreamento "shadow" e a utilização do algoritmo de hash MD5 nos passwords tornam seu sistema muito mais seguro. Durante a instalação de seu sistema lembre-se de instalar o MD5 e o shadow passwords. Podemos obter mais informações sobre o MD5 e o shadow passwords no arquivo Shadow Passwords HOWTO, que pode ser obtido em http://www.tldp.org.

Página anterior     Próxima página

Páginas do artigo
   1. Como as informações de usuário são armazenadas no sistema
   2. PAM (Pluggable Authentication Modules)
   3. Autenticação segura de usuários
   4. Bibliografia
Outros artigos deste autor

Instalando e configurando o servidor Samba

Criando, monitorando e terminando processos

Trabalhando com shell e variáveis de ambiente

Trabalhando com coringas, filtros e expressões regulares no shell

Servidor CVS: Instalando, configurando e gerenciando no Linux

Leitura recomendada

Gnome + Enlightenment = Enlightened Gnome

Configurando DHCP com DNS (Bind9) na rede local - Debian Linux

Guia de como se dar bem no Slackware sem recorrer a interface gráfica

Instalação do Gitlab e introdução ao Git

Configurando o Asterisk com autenticação LDAP

  
Comentários
[1] Comentário enviado por y2h4ck em 22/09/2004 - 10:12h

Bacana o artigo, so uma pequena correção,
vc disse no começo que o /etc/passwd contem a password criptografado do usuario sendo que é o shadow que contem, acho que vc escreveu um pensando no outro :)

mas fora isso ta show :)

[]s


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts