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

A integração entre os meios de comunicação quarta geração e os modernos dispositivos de gerenciamento de dados pessoais deu origem aos smartphones. O módulo pam_blue permite a utilização desses dispositivos para autenticação de usuários.

[ Hits: 21.895 ]

Por: lourival araujo da silva em 01/07/2009


Configurando o módulo pam_blue



A instalação das bibliotecas e das ferramentas de gerenciamento dos dispositivos bluetooth cria os arquivos necessários ao gerenciamento do módulo pam_blue.

# ls -l /etc/bluetooth
total 20
-rw-r--r-- 1 root root 819 2008-10-26 21:27 audio.conf
-rw-r--r-- 1 root root 262 2008-10-26 21:27 input.conf
-rw-r--r-- 1 root root 912 2008-10-26 21:27 main.conf
-rw-r--r-- 1 root root 751 2008-10-26 21:27 network.conf
-rw-r--r-- 1 root root 297 2008-10-26 21:27 rfcomm.conf

As ferramentas de configuração proporcionam as informações necessárias para a configuração dos arquivos. Utilizamos as ferramentas 'hcitool' e 'hciconfig' para identificar os dispositivos existentes e para verificar as possibilidades de uso desses dispositivos. Como veremos em seguida:

# hcitool scan
Scanning ...
   00:23:45:99:F4:F8   T303

# hciconfig
hci0:   Type: USB
   BD Address: 00:09:DD:50:6F:23 ACL MTU: 310:10 SCO MTU: 64:8
   UP RUNNING
   RX bytes:8218 acl:24 sco:0 events:711 errors:0
   TX bytes:4037 acl:24 sco:0 commands:657 errors:0

# hciconfig -a hci0
hci0:   Type: USB
   BD Address: 00:09:DD:50:6F:23 ACL MTU: 310:10 SCO MTU: 64:8
   UP RUNNING
   RX bytes:7095 acl:24 sco:0 events:614 errors:0
   TX bytes:3558 acl:24 sco:0 commands:560 errors:0
   Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80
   Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
   Link policy: RSWITCH HOLD SNIFF PARK
   Link mode: SLAVE ACCEPT
   Name: 'prometeu-laptop-0'
   Class: 0x0a010c
   Service Classes: Networking, Capturing
   Device Class: Computer, Laptop
   HCI Ver: 2.0 (0x3) HCI Rev: 0xc5c LMP Ver: 2.0 (0x3) LMP Subver: 0xc5c
   Manufacturer: Cambridge Silicon Radio (10)

# /etc/init.d/dbus restart
# /etc/init.d/bluetooth restart


É fundamental lembrar de realizar o pareamento entre os dispositivos. O smartphone ou o celular dispõe do menu configurações (configurações / conectividade / bluetooth), variando um pouco conforme a marca e o modelo. Nesse menu devemos efetuar o pareamento entre o dispositivo móvel e o PC, inserindo uma senha a ser compartilhada pelos dispositivos e autorizando o PC a manter-se conectado, para que não seja necessário digitar a senha compartilhada a cada acesso.

O arquivo principal de autenticação (/etc/bluetooth/main.cf) inclui parâmetros genéricos para identificação de dispositivos, como podemos observar através da edição do mesmo:

# vi /etc/bluetooth/main.conf

1 [General]
2
3 # List of plugins that should not be loaded on bluetoothd startup
4 #DisablePlugins = network,input
5
6 # Default adapter name
7 # %h - substituted for hostname
8 # %d - substituted for adapter id
9 Name = %h-%d
10
11 # Default device class. Only the major and minor device class bits are
12 # considered
13 Class = 0x000100
14
15 # How long to stay in discoverable mode before going back to non-discoverable
16 # The value is in seconds. Default is 180, i.e. 3 minutes.
17 # 0 = disable timer, i.e. stay discoverable forever
18 DiscoverableTimeout = 0
19
20 # Use some other page timeout than the controller default one
21 # (16384 = 10 seconds)
22 PageTimeout = 8192
23
24 # Behaviour for Adapter.SetProperty("mode", "off")
25 # Possible values: "DevDown", "NoScan" (default)
26 OffMode = NoScan
27
28 # Discover scheduler interval used in Adapter.DiscoverDevices
29 # The value is in seconds. Defaults is 0 to use controller scheduler
30 DiscoverSchedulerInterval = 0

Os valores de configuração padrão podem ser modificados a partir do uso das ferramentas de verificação de dispositivos, mas normalmente atendem ao correto funcionamento.

O arquivo de configuração da comunicação serial (/etc/bluetooth.conf) pode ser editado com os valores correspondentes ao dispositivo bluetooth com o qual se deseje comunicar e, somente nesse caso, nós deveremos editá-lo com os valores retornados pelas ferramentas de configuração. Vejamos a configuração original do referido arquivo:

# vi /etc/bluetooth/rfcomm.conf

#
# RFCOMM configuration file.
#

#rfcomm0 {
#       # Automatically bind the device at startup
#       bind no;
#
#       # Bluetooth address of the device
#       device 11:22:33:44:55:66;
#
#       # RFCOMM channel for the connection
#       channel 1;
#
#       # Description of the connection
#       comment "Example Bluetooth device";
#}
# rfcomm1 {
#    bind yes;
#    device 00:07:E0:18:9A:02;
#    channel 1;
#    comment "treo";
#}

Esse arquivo não necessita sofrer alteração se o que se deseja é realizar somente autenticação via hardware, pois a comunicação serial é necessária nos casos em que a autenticação seja feita através de aplicação que necessite contato entre o servidor e o cliente bluetooth, ou no uso de sincronizadores entre o dispositivo móvel e o PC (aplicativo java, kmobile).

Utilizaremos o arquivo de configuração do módulo do pam_blue (/etc/security/bluescan.conf), no qual inseriremos as informações para a identificação do dispositivo e uma entrada para cada um dos usuários que realizarão autenticação:

# vi /etc/security/bluescan.conf

#
#   sample bluescan.conf configuration file
#   $Id: sample.conf 3 2004-04-18 23:32:18Z pfeifer $
#




general {
    # the normal timeout for scanning
    # watch out for a to tiny timeslot for scanning
    # values between 3 and 15 seconds are valid
    timeout = 3;
}

# configuration for user korzendorfer
# korzendorfer = {
#    
#    bluetooth device name
#    name    = tux;
#    
#    bluetooth mac address
#    bluemac = 54:34:34:34:34:34;
#
#    a seaparate timeout
#    timeout = 10;
#}

# pfeifer = {
#   name    = AIRBUS;
#    bluemac = 00:0E:07:3B:96:02;
#}

#@users = {
#    name    = AirbusA412;
#    bluemac = 54:34:34:34:34:34;
#    timeout = 10;
#}

# gast = {
#    bluemac = 54:34:34:34:34:34;
#}


@herois = {
    bluemac = 00:23:45:99:F4:F8;
    name    = T303;
    timeout = 5;
}

prometeu = {
    bluemac = 00:23:45:99:F4:F8;
    name    = T303;
    timeout = 5;
}

felipe = {
    bluemac = 00:23:45:99:F4:F8;
    name    = T303;
    timeout = 5;
}

O arquivo de configuração do módulo pam_blue trabalha com as variáveis necessários para habililitar os dispositivos de autenticação:
  • bluemac = endereço do dispositivo;
  • name = nome do dispositivo;
  • timeout = tempo de conexão;
  • @users e @herois = grupos criados no sistema e nos quais podemos incluir usuários para que possam se autenticar via bluetooth.

É importante lembrar que a conta com a qual o usuário vai acessar o sistema deve possuir um shell válido, do contrário não será possível o acesso.

Página anterior     Próxima página

Páginas do artigo
   1. Atualizando os módulos do sistema
   2. Configurando o módulo pam_blue
   3. Ajustando a pilha de autenticação
   4. Travando o console
Outros artigos deste autor

Servidor Samba "Autoservice"

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

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

Bom escudo não teme espada: o módulo pam_cracklib

Cliente "automágico" Linux logando no domínio NT/Samba

Leitura recomendada

Recuperando senhas de usuários

Gerar par de chaves com o GnuPG em 11 passos

Travando qualquer máquina Linux

Política de Segurança para Dispositivos Móveis

Implementação de NIDS com EasyIDS

  
Comentários
[1] Comentário enviado por dailson em 01/07/2009 - 14:02h

O Grande Lourival mais uma vez nos presenteando com artigos de excelente qualidade.
Parabéns!
Com certeza a maior biblioteca de artigos PAM do Brasil!

[2] Comentário enviado por araujo_silva em 01/07/2009 - 15:13h

Valeu professor !!!

Meu mestre do HLBr.
Pra mim é um privilégio poder estar compartilhando informação nesse espaço fantástico.
Um grande abraço.

Lourival

[3] Comentário enviado por kalib em 02/07/2009 - 09:55h

Show de bola.. ótima dica.
Parabéns pelo artigo.

[4] Comentário enviado por grandmaster em 02/07/2009 - 11:42h

Realmente muito bom, bom artigo.

--
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts