Índice

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

Informações de Apoio

Configurar

Benefícios do gateway de SMS

Diagrama da rede e fluxo de tráfego

Configurações

ISE

Sufixo

Maildrop com Mailfilter

Kannel

Verificar

ISE

Sufixo

Maildrop

Mailfilter

Kannel

Telefone do convidado

Troubleshooting

ISE

Informações Relacionadas

Introdução

Este documento descreve como integrar soluções da aberta (sufixo, Maildrop, Kannel) com o Cisco Identity Services Engine (ISE) a fim entregar uma mensagem curto do serviço de mensagem (SMS) aos usuários com contas do convidado.

Pré-requisitos

Requisitos

A Cisco recomenda que você tenha conhecimento destes tópicos:

- Cisco ISE e acesso do convidado

- Linux e script de shell

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- Versão 1.2 ou mais recente de Cisco ISE

- Versão 2.10 do sufixo

- Versão 2.6.0 de Maildrop

- Versão 1.5.0 de Kannel

Note: Seja informado por favor que o sufixo, Maildrop, e Kannel são soluções da aberta, e Cisco não apoia este Produtos. Este exemplo de configuração apresenta simplesmente como o ISE pode ser integrado com o outro Produtos a fim entregar uma solução de ponta a ponta.

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.

Informações de Apoio

O ISE permite que você crie o convidado esclarece o acesso de rede temporária, tipicamente para convidados, visitantes, contratantes, consultantes, e clientes. Tais contas são criadas por usuários do patrocinador através do portal do patrocinador. Quando você cria a conta, é possível enviar uma senha de acesso dinâmico-gerada com SMS diretamente ao telefone celular do usuário convidado.

Cisco ISE pode enviar estas credenciais através do email com o Simple Mail Transfer Protocol (SMTP) ao gateway Mail2SMS. Este gateway é responsável para a entrega de SMS.

Configurar

Benefícios do gateway de SMS

Há umas soluções múltiplas do gateway Mail2SMS no mercado. Podem geralmente receber dados com o uso de protocolos diferentes, tais como o S TP, a mensagem curto peer-to-peer (SMPP), o FTP, HTTP (simple object access protocol (SABÃO), serviços de Web), e enviam uma mensagem de SMS ao telefone celular específico.

Pôde ser o melhor construir seu próprio gateway de SMS. Permite:

- Maior flexibilidade

- A capacidade para construir regras compostas sobre o roteamento (com base no período, com base em política, índice-baseado)

- Integração com bases de dados locais (por exemplo, políticas de roteamento diferentes para grupos diferentes do diretório ativo)

- Abaixe potencialmente custos operacionais (nenhuma necessidade de pagar por um serviço externo)

- A possibilidade para usar igualmente esta solução para os alertas da saúde gerados pelo ISE e enviados como email

Pôde ser de valor ter um desenvolvimento misturado - um gateway pessoal de SMS que fosse integrado igualmente com um serviço externo.

Diagrama da rede e fluxo de tráfego

Está aqui o fluxo:

1. O usuário do patrocinador cria uma conta do convidado com uma notificação de SMS, e fornece o número de telefone celular para o usuário. O ISE envia um email ao servidor SMTP configurado. O endereço de origem (de) pertence a um usuário específico do patrocinador, visto que o endereço de destino (a) é configurado globalmente no ISE (neste exemplo, sms@test-cisco.com). Todos os detalhes sobre o usuário recém-criado, tal como o nome de usuário e senha, são dentro do corpo desse email.

2. O email chega no server do sufixo, que é configurado com maildrop como um agente de entrega local. Imediatamente antes da entrega ao diretório do maildir do usuário de SMS, o maildrop procura pelo mailfilter no diretório home para o usuário. O script do mailfilter analisa gramaticalmente o email, e se todos os dados necessários são encontrados, usam o wget a fim enviar o pedido HTTP GET ao smsbox de Kannel. Que os pedidos HTTP GET contêm o mensagem de texto junto com o nome de usuário e senha, e o número de telefone celular do usuário. O smsbox de Kannel é a parte frontal de Kannel que é usado a fim aceitar todos os pedidos dos usuários a fim enviar SMS (para o passar ao bearerbox de Kannel).

3. O smsbox de Kannel envia esse pedido ao bearerbox de Kannel, que tem a responsabilidade enviar SMS.

4. Pôde haver umas regras múltiplas e uns centros de serviço de mensagem curtos (SMSCs) configurados no bearerbox. Este exemplo usa um server externo SMPP. A configuração para um telefone celular local-anexado é fácil e é apresentada mais tarde.

Cada módulo desta solução (smsbox do sufixo, do Kannel, e bearerbox de Kannel) pode ser instalado em um servidor separado. Para a simplicidade neste exemplo, é configurado no mesmo server.

Configurações

ISE

Termine estas etapas a fim configurar o ISE.

1. Configurar o usuário do portal do patrocinador. Neste exemplo, a configuração do padrão ISE é usada, e o usuário é colocado no grupo de SponsorAllAccount:

O email para o usuário do patrocinador pode ser configurado mais tarde do portal do patrocinador.

2. A fim poder enviar notificações de SMS, edite os privilégios padrão para o grupo de SponsorAllAccount:

À revelia, o privilégio de SMS da emissão é desabilitado.

3. Configurar o servidor SMTP, e certifique-se de que os ajustes DNS estão corretos.

Todas as notificações de e-mail são enviadas ao host de smtp.test-cisco.com. O ISE não tenta verificar os registros DNS MX para ver se há domínios configurados (este servidor SMTP é tratado como um relé).

4. Personalize o email que é enviado como a notificação de SMS.

5. Configurar o endereço email do destino, que é o único ajuste que não é deixado como o padrão. Todas as notificações são enviadas através de um servidor SMTP configurado mais cedo com ao conjunto de campo como sms@test-cisco.com.

Note: É possível configurar o ISE a fim enviar notificações de alerta através do email. Isto pode igualmente ser integrado com a solução proposta a fim enviar os alertas como SMS aos telefones celulares. Cisco recomenda que você usa uma conta separada no server do sufixo para esta (por exemplo, alert@test-cisco.com).

Sufixo

O sufixo é um servidor SMTP que receba email do ISE. A configuração padrão é usada à exceção de algumas alterações secundárias. Termine estas etapas a fim configurar-la.

1. Configurar o sufixo a fim ser o destino local para o domínio de test-cisco.com. É importante configurar igualmente um agente de entrega local: maildrop. Estão aqui as alterações necessárias no main.cf:

myhostname = smtp.test-cisco.com

mydomain = test-cisco.com

mydestination = $myhostname, $mydomain, localhost

local_transport = maildrop

2. A próxima etapa é ativar o maildrop no master.cf. Mude a linha correta no master.cf:

maildrop  unix  -       n       n       -       -       pipe

flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${user}
Porque é um desenvolvimento simples sem domínios virtuais, o parâmetro {do usuário} é usado em vez do parâmetro do padrão {receptor}.

3. Configurar a conta local SMS que é usada a fim receber os email:

neptun ~ # useradd sms

neptun ~ # passwd sms

New password:

BAD PASSWORD: it is too simplistic/systematic

Retype new password:

passwd: password updated successfully

neptun ~ # chown -R sms:sms /home/sms/

Agora, todos os email devem corretamente ser entregados ao usuário de SMS. A estrutura do maildir está criada automaticamente quando recebe primeiramente o email.

Maildrop com Mailfilter

Imediatamente antes da entrega, o maildrop procura por .mailfilter no diretório home para o usuário. Se esse arquivo é encontrado, o script está executado. Os privilégios para o arquivo devem ser limitados ao usuário somente:

neptun sms # touch /home/sms/.mailfilter

neptun sms # chmod go-rwx /home/sms/.mailfilter

Está aqui o índice do arquivo:

# Mailfilter script for parsing ISE SMS messages

# Author: Michal Garcarz at cisco.com

# Date: 1 Dec 2013

#DEFAULT="$HOME/.maildir/"

DATE=`date`

SHELL="/bin/bash"

# Our log file

logfile "/home/sms/maildrop.log"

# Our verbosity in the log file

VERBOSE="5"

log "-------------SMS MAILFILTER LOG-----------"

log "Email received at: $DATE"

if (/^Subject:.*Guest.*Text.*Notification.*/)

{

log "Email processed by script sending SMS via Kannel"

USERNAME=""

PASSWORD=""

TO=""

if (/^text:Username:(.*)/:b)

{

log "Username exists $MATCH1"

USERNAME=$MATCH1

}

if (/^text:Password:(.*)/:b)

{

log "Password exists $MATCH1"

PASSWORD=$MATCH1

}

if (/^to:(.*)/:b)

{

log "Mobile phone exists $MATCH1"

TO=$MATCH1

}

if ($USERNAME ne "" && $PASSWORD ne "" && $TO ne "")

{

log "Sending via HTTP to kannel username=$USERNAME password=$PASSWORD to=$TO"

DATA="ISE Guest portal Username: $USERNAME Password: $PASSWORD"

#also curl can be used instead of wget

xfilter "wget -O/dev/null \"http://192.168.112.100:13013/cgi-bin/sendsms?username=

tester&password=foobar&to=$TO&text=$DATA\" >> /tmp/maildrop-kannel.log 2>>

/tmp/maildrop-kannel.log"

}

#deliver to maildir (not used since xfilter returns !=0)

to $DEFAULT/

}

O script:

- Verifica se o assunto é o mesmo como o que é configurado no ISE

- Lê o nome de usuário e senha aos campos para o corpo de e-mail (o molde do padrão do ISE é usado)

- Chama um programa externo se todos os campos existem: wget a fim enviar HTTP GET ao smsbox de Kannel com todos os parâmetros. Observe que as credenciais específicas estão usadas na URL (username=tester&password=foobar). Estas são as credenciais do configurado pelo usuário em Kannel com os privilégios enviar SMS.

Há dois arquivos de registro aqui:

- /home/sms/maildrop.log - logs da execução do script

- /tmp/maildrop-kannel.log - logs da execução do wget

Kannel

O smsbox e o bearerbox podem ser configurados do arquivo único. Esta configuração usa o server externo SMPP para a entrega. É fácil encontrar serviços múltiplos na Web se você procura pela frase do provedor de serviços dos sms do smpp. A configuração é simples, porque não há nenhuma necessidade de receber e distribuir mensagens de SMS. Esta solução é somente enviando e usa um fornecedor SMPP.

Está aqui um trecho de /etc/kannel/kannel.conf:

#bearerbox

group = core

admin-port = 13000

admin-password = bar

smsbox-port = 13001

log-level = 0

log-file = "/var/log/kannel/kannel.log"

access-log = "/var/log/kannel/access.log"

# SMSC SMPP

group = smsc

smsc = smpp

host = ****.com

port = 1775

smsc-username = 4ljt7wi3

smsc-password = ******

system-type =

address-range =

# SMSBOX SETUP

group = smsbox

bearerbox-host = localhost

sendsms-port = 13013

sendsms-chars = "0123456789 +-"

global-sender = 12345

log-file = "/var/log/kannel/smsbox.log"

log-level = 0

access-log = "/var/log/kannel/access.log"

white-list =

black-list =

reply-couldnotfetch =

reply-couldnotrepresent =

reply-requestfailed =

reply-emptymessage =

# SEND-SMS USERS, this credentials has been used in wget script

group = sendsms-user

username = tester

password = foobar

user-deny-ip = "*.*.*.*"

user-allow-ip = "192.168.*.*"

# SMS SERVICE Default

# there should be default always (this is for receiving SMS messages - not used)

group = sms-service

keyword = default

text = "No service specified"

É possível anexar um telefone celular através do USB e configurar GS SMSC:

group = smsc

smsc = at                  #type = GSM

smsc-id = usb0-modem

my-number = 1234

modemtype = auto           #types: wavecom, siemens, siemens-tc35, falcom,

nokiaphone, ericsson

device = /dev/ttyUSB0      #phone device seen on server

Na maioria de telefones, igualmente exige-se para ativar a funcionalidade de modem; por exemplo, na versão 2.2 e mais recente de Android, é permitido nos ajustes/Tethering e em Hotspot/USB portátil que tethering.

Recorde executar o bearerbox e o smsbox. Aqui está um exemplo:

neptun ~ # /etc/init.d/kannel-bearerbox start

* Starting kannel bearerbox ...                                              [ ok ]

neptun ~ # /etc/init.d/kannel-smsbox start

* Starting kannel smsbox ...                                                 [ ok ]

neptun ~ # netstat -atcpn

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address     Foreign Address    State    PID/Program name

tcp        0      0 0.0.0.0:13013     0.0.0.0:*          LISTEN   24170/smsbox

tcp        0      0 0.0.0.0:13000     0.0.0.0:*          LISTEN   24151/bearerbox

tcp        0      0 0.0.0.0:13001     0.0.0.0:*          LISTEN   24151/bearerbox

Bearerbox deve ter pelo menos um SMSC configurado a fim começar.

Verificar

Use esta seção para confirmar se a sua configuração funciona corretamente.

ISE

A porta padrão para o portal do patrocinador é usada (8443). Os logs do patrocinador em https://ise.test-cisco.com:8443/sponsorportal/.

Certifique-se de que o patrocinador tem um endereço email atribuído em meus ajustes:

Crie a conta do convidado com uma notificação de SMS:

Você recebe a confirmação que a conta do convidado esteve criada com sucesso:

O ISE deve enviar um email ao servidor SMTP configurado.

Sufixo

O servidor SMTP recebe a mensagem e usa o maildrop a fim entregá-lo à conta local (sms@test-cisco.com). Está aqui um trecho de /var/log/messages:

Nov 30 22:39:47 neptun postfix/smtpd[18460]: connect from unknown[192.168.112.1]

Nov 30 22:39:47 neptun postfix/smtpd[18460]: 2B36030B32: client=unknown

[192.168.112.1]

Nov 30 22:39:47 neptun postfix/cleanup[18463]: 2B36030B32: message-id=

<563762958.941385847586377.JavaMail.root@ise2>

Nov 30 22:39:47 neptun postfix/qmgr[32658]: 2B36030B32: from=<sponsor@test-cisco.com>,

size=689, nrcpt=1 (queue active)

Nov 30 22:39:47 neptun postfix/pipe[18464]: 2B36030B32: to=<sms@test-cisco.com>,

relay=maildrop, delay=0.18, delays=0.14/0/0/0.04, dsn=2.0.0, status=sent (delivered

via maildrop service)

Maildrop

Antes que você envie o email a SMS, o diretório do maildir executa /home/sms/.mailfilter, que executa uma ação específica.

Está aqui um trecho do /home/sms/maildrop.log:

-------------SMS MAILFILTER LOG-----------

Email received at: Sat Nov 30 22:39:47 CET 2013

Email processed by script sending SMS via Kannel

Username exists  jsmith02

Password exists  t6ub79_6r

Mobile phone exists 4850xxxxxxx

Sending via HTTP to kannel username= jsmith02 password= t6ub79_6r to=4850xxxxxxx

Mailfilter

O script do mailfilter lê todos os dados e executa o xfilter, que chama o wget a fim passar todos os parâmetros a Kannel.

Está aqui um trecho de /tmp/maildrop-kannel.log:

--2013-11-30 22:39:47--  http://192.168.112.100:13013/cgi-bin/sendsms?username=

tester&password=foobar&to=4850xxxxxxx&text=ISE%20Guest%20portal%20Username:

%20%20jsmith02%20Password:%20%20t6ub79_6r

Connecting to 192.168.112.100:13013... connected.

HTTP request sent, awaiting response... 202 Accepted

Length: 24 [text/html]

Saving to: `/dev/null'

0K                                                       100% 1.14M=0s

2013-11-30 22:39:47 (1.14 MB/s) - `/dev/null' saved [24/24]

O pedido HTTP GET é aceitado.

Kannel

O smsbox de Kannel relata que recebeu um pedido do HTTP do wget e enviou esse pedido ao bearerbox a fim entregar SMS.

Está aqui um trecho de /var/log/kannel/smsbox.log:

2013-11-30 22:39:47 [18184] [5] INFO: smsbox: Got HTTP request </cgi-bin/sendsms>

from <192.168.112.100>

2013-11-30 22:39:47 [18184] [5] INFO: sendsms used by <tester>

2013-11-30 22:39:47 [18184] [5] INFO: sendsms sender:<tester:12345>

(192.168.112.100) to:<4850xxxxxxx> msg:<ISE Guest portal Username:

jsmith02 Password:  t6ub79_6r>

2013-11-30 22:39:47 [18184] [5] DEBUG: Stored UUID fd508632-9408-49e1-9eda-

3ce8d4b939d4

2013-11-30 22:39:47 [18184] [5] DEBUG: message length 57, sending 1 messages

2013-11-30 22:39:47 [18184] [5] DEBUG: Status: 202 Answer: <Sent.>

2013-11-30 22:39:47 [18184] [5] DEBUG: Delayed reply - wait for bearerbox

2013-11-30 22:39:47 [18184] [0] DEBUG: Got ACK (0) of fd508632-9408-49e1-9eda-

3ce8d4b939d4

O bearerbox de Kannel conecta ao server remoto SMPP e envia a mensagem com sucesso.

Está aqui um trecho de /var/log/kannel/kannel.log:

2013-11-30 22:39:47 [18165] [8] DEBUG: boxc_receiver: sms received

2013-11-30 22:39:47 [18165] [8] DEBUG: send_msg: sending msg to box: <127.0.0.1>

2013-11-30 22:39:47 [18165] [6] DEBUG: SMPP[SMPP:*****.com:1775/0:4ljt7wi3:]:

throughput (0.00,0.00)

2013-11-30 22:39:47 [18165] [6] DEBUG: SMPP[SMPP:*****.com:1775/0:4ljt7wi3:]:

Sending PDU:

2013-11-30 22:39:47 [18165] [6] DEBUG: SMPP PDU 0x2056bf0 dump:

2013-11-30 22:39:47 [18165] [6] DEBUG:   type_name: submit_sm

2013-11-30 22:39:47 [18165] [6] DEBUG:   command_id: 4 = 0x00000004

2013-11-30 22:39:47 [18165] [6] DEBUG:   command_status: 0 = 0x00000000

2013-11-30 22:39:47 [18165] [6] DEBUG:   sequence_number: 5 = 0x00000005

2013-11-30 22:39:47 [18165] [6] DEBUG:   service_type: NULL

2013-11-30 22:39:47 [18165] [6] DEBUG:   source_addr_ton: 2 = 0x00000002

2013-11-30 22:39:47 [18165] [6] DEBUG:   source_addr_npi: 1 = 0x00000001

2013-11-30 22:39:47 [18165] [6] DEBUG:   source_addr: "12345"

2013-11-30 22:39:47 [18165] [6] DEBUG:   dest_addr_ton: 2 = 0x00000002

2013-11-30 22:39:47 [18165] [6] DEBUG:   dest_addr_npi: 1 = 0x00000001

2013-11-30 22:39:47 [18165] [6] DEBUG:   destination_addr: "4850xxxxxxx"

2013-11-30 22:39:47 [18165] [6] DEBUG:   esm_class: 3 = 0x00000003

2013-11-30 22:39:47 [18165] [6] DEBUG:   protocol_id: 0 = 0x00000000

2013-11-30 22:39:47 [18165] [6] DEBUG:   priority_flag: 0 = 0x00000000

2013-11-30 22:39:47 [18165] [6] DEBUG:   schedule_delivery_time: NULL

2013-11-30 22:39:47 [18165] [6] DEBUG:   validity_period: NULL

2013-11-30 22:39:47 [18165] [6] DEBUG:   registered_delivery: 0 = 0x00000000

2013-11-30 22:39:47 [18165] [6] DEBUG:   replace_if_present_flag: 0 = 0x00000000

2013-11-30 22:39:47 [18165] [6] DEBUG:   data_coding: 0 = 0x00000000

2013-11-30 22:39:47 [18165] [6] DEBUG:   sm_default_msg_id: 0 = 0x00000000

2013-11-30 22:39:47 [18165] [6] DEBUG:   sm_length: 57 = 0x00000039

2013-11-30 22:39:47 [18165] [6] DEBUG:   short_message:

2013-11-30 22:39:47 [18165] [6] DEBUG:    Octet string at 0x205ec70:

2013-11-30 22:39:47 [18165] [6] DEBUG:      len:  57

2013-11-30 22:39:47 [18165] [6] DEBUG:      size: 58

2013-11-30 22:39:47 [18165] [6] DEBUG:      immutable: 0

2013-11-30 22:39:47 [18165] [6] DEBUG:      data&colon; 49 53 45 20 47 75 65 73

74 20 70 6f 72 74 61 6c   ISE Guest portal

2013-11-30 22:39:47 [18165] [6] DEBUG:      data&colon; 20 55 73 65 72 6e 61 6d

65 3a 20 20 6a 73 6d 69    Username:  jsmi

2013-11-30 22:39:47 [18165] [6] DEBUG:      data&colon; 74 68 30 32 20 50 61 73

73 77 6f 72 64 3a 20 20   th02 Password:

2013-11-30 22:39:47 [18165] [6] DEBUG:      data&colon; 74 36 75 62 37 39 11 36

72                        t6ub79.6r

2013-11-30 22:39:47 [18165] [6] DEBUG:    Octet string dump ends.

2013-11-30 22:39:47 [18165] [6] DEBUG: SMPP PDU dump ends.

2013-11-30 22:39:47 [18165] [6] DEBUG: SMPP[SMPP:******.com:1775/0:4ljt7wi3:]:

throughput (1.00,0.00)

2013-11-30 22:39:47 [18165] [6] DEBUG: SMPP[SMPP:******.com:1775/0:4ljt7wi3:]:

throughput (1.00,0.00)

2013-11-30 22:39:47 [18165] [6] DEBUG: SMPP[SMPP:******.com:1775/0:4ljt7wi3:]:

Got PDU:

2013-11-30 22:39:47 [18165] [6] DEBUG: SMPP PDU 0x2056bf0 dump:

2013-11-30 22:39:47 [18165] [6] DEBUG:   type_name: submit_sm_resp

2013-11-30 22:39:47 [18165] [6] DEBUG:   command_id: 2147483652 = 0x80000004

2013-11-30 22:39:47 [18165] [6] DEBUG:   command_status: 0 = 0x00000000

2013-11-30 22:39:47 [18165] [6] DEBUG:   sequence_number: 5 = 0x00000005

2013-11-30 22:39:47 [18165] [6] DEBUG:   message_id: "4128473611307259"

2013-11-30 22:39:47 [18165] [6] DEBUG: SMPP PDU dump ends.

2013-11-30 22:39:47 [18165] [6] DEBUG: SMPP[SMPP:******.com:1775/0:4ljt7wi3:]:

throughput (1.00,0.00)

Observe que o endereço de origem está ajustado como 12345. Este ajuste não importa. As reescritas externos do server SMPP que avaliam. É possível comprar o serviço adicional a fim ser apresentado diferentemente.

Telefone do convidado

O usuário convidado recebe SMS:

Troubleshooting

Esta seção fornece a informação que você pode se usar a fim pesquisar defeitos sua configuração.

ISE

Você pôde encontrar este erro quando você cria uma conta do convidado: Incapaz de enviar um mensagem de texto aos seguintes usuários convidado: xxxx. Você deve adicionar seu endereço email à página dos ajustes. Se você recebe esse Mensagem de Erro, verifique o endereço email do patrocinador.

Informações Relacionadas

- Cisco Identity Services Engine - Guia de usuários 1.2

- Documentação de Kannel

- Documentação do sufixo

- Suporte Técnico e Documentação - Cisco Systems