1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
|
<chapter id="callback">
<title
>Configurar o &kppp; para chamadas de resposta</title>
<para
>Este capítulo baseia-se no material fornecido por Martin Häfner, <email
>[email protected]</email
></para>
<sect1 id="unix-callback-server">
<title
>Servidor de chamadas de &UNIX; ou &Linux;</title>
<para
>Esta secção introduz as chamadas de resposta do &UNIX; (&Linux;), e como o &kppp; poderá ser configurado para se ligar a um servidor de resposta em &UNIX;, especialmente a um <link linkend="callback-resources"
>servidor de chamadas de resposta</link
> em &Linux;.</para>
<sect2>
<title
>Uma Introdução às Chamadas de Resposta</title>
<para
>Existem várias razões para pensar em usar as chamadas de resposta. Algumas delas são:</para>
<itemizedlist>
<listitem>
<para
>Aumentar a segurança da sua rede local</para>
</listitem>
<listitem>
<para
>Para reduzir as despesas dos trabalhadores externos</para>
</listitem>
<listitem>
<para
>Para controlar os custos telefónicos, onde as chamadas são consideradas despesas do negócio</para>
</listitem>
</itemizedlist>
<para
>Pense em alguém que liga para o seu número no servidor e arranja uma senha. Para quê manter uma 'firewall' para a sua ligação à Internet, se o acesso à sua rede é assim tão simples?.</para>
<para
>O 'software' de chamadas de resposta normalmente pede o seu nome e coloca então a linha suspensa. A partir daí, ele faz uma chamada de volta, normalmente para um número que se encontra registado numa base de dados <emphasis
>no servidor</emphasis
>. O cliente poderá então pegar na linha telefónica e continuar com a chamada, como se nada tivesse acontecido. O servidor aí pedirá o seu nome de utilizador e a sua senha, sabendo que você é quem disse que era e onde disse que estava, aquando da ligação. A ligação é estabelecida normalmente e o servidor <application
>pppd</application
> é iniciado.</para>
<para
>Agora a grande pergunta é: como dizer ao cliente para ligar o telefone quando o servidor lhe ligar de volta. Você precisa de algum programa especial, como o <application
>mgetty</application
>? A resposta é <emphasis
>não</emphasis
>, você não irá precisar de nenhum programa-cliente em especial, você até poderá usar um programa de terminal normal como o <application
>minicom</application
> para se ligar.</para>
<para
>A única que você terá de fazer é dizer ao seu modem para <command
>AutoAnswer</command
> (Responder Automaticamente) ao telefone quando for detectado um <computeroutput
>RING</computeroutput
> pelo modem. Isto é feito com o seguinte comando do modem:</para>
<screen
><userinput
><command
>AT&SO=1</command
></userinput
>
</screen>
<para
>Isto diz ao modem para atender o telefone depois de um <computeroutput
>RING</computeroutput
>.</para>
<para
>Assim como diversos programas, o &kppp; verifica se a ligação é fechada pelo servidor, e termina nesse caso a sessão actual, se for detectado um <computeroutput
>NO CARRIER</computeroutput
> (Sem Portadora). Este então será o problema real ao estabelecer a chamada de resposta. O <computeroutput
>NO CARRIER</computeroutput
> será obviamente detectado no momento em que o servidor de resposta suspende a linha. Alguns dos servidores irão necessitar de um programa de autenticação especial. Por isso, como é que você resolve este problema? Você irá indicar para o seu modem mostrar <computeroutput
>CARRIER UP</computeroutput
> (portadora activa) a toda a hora (o que não trará problemas se você indicar ao cliente para suspender a linha). Você poderá fazer isso com o seguinte comando do modem:</para>
<screen
><userinput
><command
>AT&C0</command
></userinput
>
</screen>
<para
>Se você quiser testar isto, você poderá usar primeiro um programa de terminal normal como o <application
>minicom</application
> e fazer uma chamada ao seu servidor de resposta, para ver o que acontece.</para>
</sect2>
<sect2>
<title
>A configuração do &kppp;</title>
<para
>Pronto, agora que viu a teoria em acção, como é que você irá configurar o &kppp; para tratar da ligação? </para>
<para
>O procedimento é relativamente simples, tal como se segue.</para>
<procedure>
<step>
<para
>Primeiro indique ao modem para aceitar as ligações e para não parar a negociação quando o servidor de chamadas de resposta suspender a linha da primeira vez. Você poderá indicar ambas as opções na página do <guilabel
>Modem</guilabel
> da configuração do &kppp;, adicionando à opção da <guilabel
>Mensagem de Chamada</guilabel
> o texto <command
>AT&C0S0=1DT</command
></para>
<para
>Não existem mais alterações na configuração do &kppp;. Se tiver problemas com a reinicialização do modem, veja a secção de <link linkend="callback-troubleshooting"
>Resolução de Problemas</link
> para mais informações.</para>
</step>
<step>
<para
>Pense no seu servidor por um momento. Lembre-se que os sistema operativos &UNIX;, &Windows; e Macintosh têm diferentes opiniões sobre como terminar uma linha num ficheiro de texto e, deste modo, o mesmo se aplica nos procedimentos de autenticação. Se você se estiver a ligar a um servidor em &Windows;, use o <userinput
>CR/LF</userinput
>, se se estiver a ligar a um servidor &UNIX;, use o <userinput
>CR</userinput
>, e, finalmente, se estiver a utilizar um servidor Macintosh server, use o <userinput
>LF</userinput
> </para>
</step>
<step>
<para
>Nós assumimos para estas instruções que você está a efectuar uma chamada a um servidor de &Linux; que usa uma autenticação normal (sem ser <acronym
>PAP</acronym
> ou algo do género).</para>
<para
>Configure o estilo da <guilabel
>Autenticação</guilabel
> na página de <guilabel
>Ligar</guilabel
> da configuração da conta para <guilabel
>Baseada num Programa</guilabel
></para>
</step>
<step>
<para
>Agora você terá de criar um 'script' ou um programa de autenticação. A edição destes programas é uma das funcionalidades muito jeitosas do &kppp; Você poderá aceder a esse editor no <guilabel
>Programa de Autenticação</guilabel
> da janela de <guilabel
>Editar a Conta</guilabel
>.</para>
<para
>Neste exemplo, o utilizador <systemitem
>utilizador_xyz</systemitem
> precisa de chamar o seguinte programa. O servidor de chamadas de resposta já conhece a tabela dos nomes e dos seus números de telefone respectivos, por isso você poderá seleccionar o número de telefone a usar com um nome alternativo, por razões de segurança.</para>
<para
>Para cada linha, escolha o critério na lista à esquerda da janela, e indique a acção no campo de texto à sua direita. Escolha o botão <guibutton
>Adicionar</guibutton
> para adicionar cada uma das linhas ao programa. Você poderá usar o botão <guibutton
>Inserir</guibutton
> para adicionar uma linha no meio do programa ou ainda o botão <guibutton
>Remover</guibutton
> para apagar uma linha se você cometer algum erro.</para>
<para
>O programa inteiro deverá ficar algo semelhante a isto (sem os comentários, que são mostrados aqui a começar com um #)</para>
<screen
>Expect ogin: <lineannotation
># lembre-se que fazemos uma autenticação de terminal normal</lineannotation>
ID "" <lineannotation
># o kppp envia o ID que configurou na janela principal</lineannotation>
Expect for utilizador_xyz: <lineannotation
># uma lista com os números disponíveis é mostrada e o utilizador deverá escolher um</lineannotation
>
Send casa-utilizador_xyz <lineannotation
># o utilizador deseja ser chamado de volta para o número da casa dele</lineannotation>
Expect ogin: <lineannotation
># O processo da chamada de resposta está agora em execução, com uma ligação e uma autenticação novas.</lineannotation>
ID
Expect assword: <lineannotation
># Envie agora a sua senha</lineannotation>
Expect > <lineannotation
># Espere pela linha de comandos (esta poderá variar)</lineannotation>
Send start_ppp <lineannotation
># Este comando inicia o pppd</lineannotation
>
</screen>
<para
>Depois de esperar pelo pedido de autenticação, o utilizador envia o seu identificador e espera por uma lista com os números de telefone disponíveis para esse utilizador. Ele poderá então indicar ao servidor qual dos números oferecidos é que ele gostaria de ser chamado em resposta. O &kppp; poderá então abrir uma janela para isso, se a sua localização varia com frequência, ⪚ se for um representante de vendas e se muda de hotel para hotel. Neste momento, o servidor está à espera do utilizador e da senha para a autenticação, mas entretanto o servidor suspende-se e chama o utilizador de volta. A informação de autenticação é enviada, e o &kppp; fica à espera de uma linha de comandos, iniciando então um pequeno programa (aqui chamado de <filename
>start_ppp</filename
>, o qual irá despoletar o <application
>pppd</application
> no servidor.</para>
<para
>O programa <filename
>start_ppp</filename
> poderá se assemelhar a algo do género:</para>
<programlisting
>#!/bin/sh
stty -echo
exec /usr/sbin/pppd -detach silent modem
</programlisting>
<para
>Claro que a configuração de um servidor de <acronym
>PPP</acronym
> não está no âmbito deste documento. Para informações mais detalhadas, veja as páginas de manual do <application
>pppd</application
>. Existe uma descrição excelente para um servidor de resposta em <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback"
> http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback</ulink
></para>
</step>
</procedure>
<para
>Todos os outros detalhes de configuração, como a configuração do <application
>pppd</application
> ou do <acronym
>IP</acronym
> funcionam de forma normal, e não é necessário nenhum programa em especial será necessário para atender a linha.</para>
<note>
<para
>As chamadas de resposta do &kppp; e dos outros programas como o <application
>mgetty</application
> ou outro 'faxgetty' poderão ser executados na mesma porta série. Não existem nenhuns problemas com o estabelecimento da ligação, dado que o &kppp; cria um ficheiro de bloqueio que irá indicar ao programa 'getty' que outra aplicação (neste caso, o &kppp;, como é óbvio) está a usar a linha nessa altura.</para>
</note>
</sect2>
<sect2 id="callback-troubleshooting">
<title
>Resolução de Problemas</title>
<para
>Existem alguns problemas conhecidos com o &kppp; no modo de resposta:</para>
<itemizedlist>
<listitem>
<para
>Logo que inicializa o modem para responder automaticamente, você terá de reinicializar o modem depois de a sua ligação terminar. Caso contrário, o seu modem irá continuar a atender a linha para si, o que não é uma boa ideia se a linha em questão for a sua linha telefónica principal.</para>
</listitem>
<listitem>
<para
>O &kppp; tem alguns pequenos problemas ao partilhar uma linha com outro programa, como o <application
>mgetty</application
>. Se o <application
>mgetty</application
> estiver em execução sobre a mesma linha de modem, o &kppp; não será capaz de inicializar o modem correctamente. </para>
</listitem>
<listitem>
<para
>O &kppp; não é capaz de perguntar por algum texto do utilizador durante uma autenticação baseada num programa. Infelizmente, ao usar o programa de exemplo acima, o &kppp; também irá perguntar pelo utilizador da segunda vez que o servidor de resposta lho pedir. Você poder-se-á ver livre disto se puser manualmente o nome do seu utilizador no programa de autenticação (nem é bom nem portável, mas funciona).</para>
</listitem>
</itemizedlist>
</sect2>
<sect2 id="callback-resources">
<title
>Recursos da Internet sobre o 'software' servidor</title>
<para
>Os pacotes de servidores de chamadas de resposta para &Linux; estão disponíveis em vários sítios.</para>
<para
>O famoso programa <application
>mgetty</application
> é bastante poderoso e consegue também efectuar chamadas de resposta. Uma descrição sobre como configurar o <application
>mgetty</application
> para este fim é mantida em <ulink url="http://www.dyer.demon.co.uk/slug/tipscrip.htm"
> http://www.dyer.demon.co.uk/slug/tipscrip.htm</ulink
>, por Colin McKinnon, <email
>[email protected]</email
>.</para>
<para
>Existe também um pacote pronto a usar para o &Linux; em <ulink url="http://www.icce.rug.nl/docs/programs/callback/callback.html"
> http://www.icce.rug.nl/docs/programs/callback/callback.html</ulink
>. Este pacote é mantido pelo Frank B. Brokken, <email
>[email protected]</email
>. Dado que a configuração, ainda que intuitiva, não é muito fácil, foi criada uma breve introdução sobre o mesmo em <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback"
>http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback/</ulink
>, local que contém também uma introdução mais geral para as chamadas de resposta.</para>
</sect2>
</sect1>
<sect1 id="nt-callback">
<title
>Chamadas de resposta de <acronym
>RAS</acronym
> do &Windows; NT</title>
<para
>O &Windows; NT utiliza uma aproximação completamente diferente da usada em cima. O NT necessita de uma extensão ao próprio protocolo <acronym
>PPP</acronym
>, chamada de <acronym
>CBCP</acronym
> (Call Back Control Protocol). O <application
>pppd</application
> tem o suporte para este protocolo, mas você terá de recompilar o <application
>pppd</application
>. Se alguém tiver experiência com ligações bem-sucedidas a um servidor de chamadas de resposta de NT, por favor contacte-nos.</para>
</sect1>
</chapter>
|