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: 22.398 ]

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

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

Servidor Samba "Autoservice"

Cliente Linux no servidor LDAP

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

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

Leitura recomendada

Aquisição Estática de Dados em Computação Forense

Slackware vs PAM

Bloqueio de repetidas tentativas de login ao seu Linux

Backup de sua instalação em .iso bootável

Detectando vulnerabilidades com o Nessus

  
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