Translation by Artem Sereda with my minor changes
[kde-ru.git] / docs / kdenetwork / kppp / callback.docbook
blobb996f265d95baa806b9a900c87ad47fad16041d2
1 <chapter id="callback">
2 <title
3 >Настройка &kppp; на режим обратного звонка</title>
5 <para
6 >Материал для этой главы предоставил Martin H&auml;fner, <email
7 >mh@ap-dec717c.physik.uni-karlsruhe.de</email
8 ></para>
10 <sect1 id="unix-callback-server">
11 <title
12 >Сервер обратного звонка под управлением ОС &UNIX; или &Linux;</title>
14 <para
15 >В этом разделе рассказывается об обратном звонке в ОС &UNIX; (&Linux;) и о том, как &kppp; должна быть настроена для соединения с сервером обратного звонка под управлением ОС &UNIX; особое внимание уделяется ОС &Linux; и ее <link linkend="callback-resources"
16 >серверу обратного звонка</link
17 > на основе скриптов.</para>
19 <sect2>
20 <title
21 >Что такое Обратный звонок</title>
23 <para
24 >Для использования Обратного звонка есть несколько причин. Вот некоторые из них:</para>
26 <itemizedlist>
27 <listitem>
28 <para
29 >Для увеличения безопасности вашей локальной сети</para>
30 </listitem>
31 <listitem>
32 <para
33 >Для сокращения расходов ваших сотрудников, звонящих извне</para>
34 </listitem>
35 <listitem>
36 <para
37 >Для контроля стоимости телефонных звонков, по статье организационных расходов:</para>
38 </listitem>
39 </itemizedlist>
41 <para
42 >Представьте себе, что некто дозвонился на ваш сервер входящих звонков и взломал пароль доступа. Зачем же, в таком случае, конфигурировать брандмауэр для вашей сети, если можно таким простым способом получить к ней доступ?</para>
44 <para
45 >Программное обеспечение обратного звонка запрашивает ваше имя, а затем разъединяется. Далее производится звонок по вашему номеру, который хранится в базе данных <emphasis
46 >на сервере</emphasis
47 >. Клиент поднимает трубку и продолжается процедура установления соединения, если не возникло сбоев. Сервер запрашивает ваше имя пользователя и пароль, зная, что звонили вы (согласно вашему звонку), или же зная, откуда вы звонили. Устанавливается соединение и запускается демон <application
48 >ppp</application
49 >.</para>
51 <para
52 >Вопрос: как указать клиенту поднять трубку, когда сервер перезванивает ему. Нужна ли специальная программа типа <application
53 >mgetty</application
54 >? Ответ: <emphasis
55 >нет</emphasis
56 >, вам не понадобится специальная программа. В общем, любой клиент может быть использован при соединении с обратным звонком, вы можете использовать даже обыкновенную терминальную программу: <application
57 >minicom</application
58 >, к примеру.</para>
60 <para
61 >Вам только надо отдать модему команду <command
62 >Ответить автоматически</command
63 > на телефонный звонок при поступлении сигнала <computeroutput
64 >RING</computeroutput
65 >. Для этого задайте модему следующую команду:</para>
67 <screen
68 ><userinput
69 ><command
70 >AT&amp;SO=1</command
71 ></userinput
73 </screen>
75 <para
76 >Эта команда указывает модему поднять трубку после одного звонка (<computeroutput
77 >RING</computeroutput
78 >).</para>
80 <para
81 >Подобно большинству других программ-клиентов, &kppp; проверяет, не прекращено ли соединение сервером, а затем закрывает текущую сессию, если определен сигнал <computeroutput
82 >NO CARRIER</computeroutput
83 >. Это является настоящей проблемой при настройке обратного звонка. Сигнал <computeroutput
84 >NO CARRIER</computeroutput
85 >, конечно, будет получен в момент прекращения соединения сервером обратного звонка. Некоторые серверы используют специальные программы логина. Так как решить эту проблему? Укажите модему всегда показывать <computeroutput
86 >CARRIER UP</computeroutput
87 > (это не вызовет проблем при указании клиенту повесить трубку). Вы можете осуществить это следующей командой модему:</para>
89 <screen
90 ><userinput
91 ><command
92 >AT&amp;C0</command
93 ></userinput
95 </screen>
97 <para
98 >Если вам хочется проверить, как все это работает, используйте обыкновенную терминальную программу, например, <application
99 >minicom</application
100 >, позвоните на ваш сервер обратного звонка и посмотрите, что произойдет.</para>
102 </sect2>
104 <sect2>
105 <title
106 >Настройка &kppp;</title>
108 <para
109 >Теперь, когда вы увидели применение теории на практике, как настроить &kppp; для осуществления соединения? </para>
111 <para
112 >Как показано, процедура весьма несложная.</para>
114 <procedure>
115 <step>
116 <para
117 >Сперва укажите модему принимать входящие соединения, а не прерывать сессию установки соединения при разъединении с сервером обратного звонка при первом звонке. Обе эти опции можно добавить на вкладке <guilabel
118 >Модем</guilabel
119 > в настройках &kppp;, добавив в опцию <guilabel
120 >Строка дозвона</guilabel
121 > следующее: <command
122 >AT&amp;C0S0=1DT</command
123 ></para>
124 <para
125 >Более никаких изменений в &kppp; не потребуется. Если у вас возникнут проблемы с инициализацией и сбросом установок модема, обратитесь к разделу <link linkend="callback-troubleshooting"
126 >Устранение неисправностей</link
127 > для получения более детальных сведений.</para>
128 </step>
129 <step>
130 <para
131 >Не забудьте о сервере. Помните, что ОС &UNIX;, &Windows; и Macintosh по-разному обрабатывают концы строк в текстовых файлах и, таким образом, и в процедурах логина. Если вы подключаетесь к серверу под управлением ОС &Windows;, используйте <userinput
132 >CR/LF</userinput
133 >, для сервера под управлением ОС &UNIX; используйте <userinput
134 >CR</userinput
135 >, а при подключении к серверу Macintosh используйте <userinput
136 >LF</userinput
137 > </para>
138 </step>
139 <step>
140 <para
141 >Следующие инструкции применимы к случаю дозвона на сервер обратного звонка под управлением ОС &Linux; с использованием обычной авторизации (не <acronym
142 >PAP</acronym
143 > или ей подобной).</para>
144 <para
145 >Установите стиль <guilabel
146 >Авторизация</guilabel
147 > во вкладке <guilabel
148 >Дозвон</guilabel
149 > в конфигурации соединения в положение <guilabel
150 >На основе скрипта</guilabel
151 ></para>
152 </step>
153 <step>
154 <para
155 >Сейчас вам надо создать скрипт логина. Редактирование скрипта логина являетсяодной из наиболее приятных функций программы &kppp;. Эта опция доступна на вкладке <guilabel
156 >Скрипт логина</guilabel
157 > в диалоге <guilabel
158 >Редактирование соединения</guilabel
159 >.</para>
161 <para
162 >В этом примере пользователь <systemitem
163 >userxyz</systemitem
164 > должен вызвать следующий скрипт. Серверу обратного звонка уже задана таблица имен и соответствующие телефонные номера, в целях безопасности создать псевдоним для соответствующего вам номера телефона.</para>
166 <para
167 >Для каждой строки выберите критерий из раскрывающегося списка в левой стороне диалога и введите действие в поле справа. Нажмите на кнопку <guibutton
168 >Добавить</guibutton
169 > для добавления строки в скрипт. Кнопкой <guibutton
170 >Вставить</guibutton
171 > добавляйте строки в середину скрипта, а кнопкой <guibutton
172 >Удалить</guibutton
173 > удаляйте строку, если в ней допущена ошибка.</para>
175 <para
176 >Полностью скрипт будет выглядеть примерно так (без комментариев, начинающихся здесь с символа #)</para>
178 <screen
179 >Expect       ogin:           <lineannotation
180 ># помните, что это обыкновенный теминальный логин</lineannotation>
181 ID           ""              <lineannotation
182 ># kppp отправляет имя пользователя, установленное в
183 главном экране</lineannotation>
184 Expect       for userxyz:    <lineannotation
185 ># отображается список доступных номеров,
186 пользователь должен сделать выбор</lineannotation
188 Send         userxyz-home    <lineannotation
189 ># пользователь хочет, чтобы ему перезвонили
190 по домашнему номеру</lineannotation>
191 Expect       ogin:           <lineannotation
192 ># выполняется процесс обратного дозвона,
193 новое соединение и новый логин.</lineannotation>
195 Expect       assword:        <lineannotation
196 ># отправить пароль</lineannotation>
197 Expect       &gt;            <lineannotation
198 ># ожидать приглашения (оно
199 может отличаться)</lineannotation>
200 Send         start_ppp       <lineannotation
201 ># эта команда запускает демон ppp</lineannotation
203 </screen>
205 <para
206 >После появления запроса на вход, пользователь отправляет свое имя пользователя и ожидает появления списка доступных этому пользователю телефонных номеров. Эатем он указывает серверу, по какому из предложенных номеров нужно произвести звонок. Для этого &kppp; может создать диалог, если вы часто переезжаете, к примеру, если вы являетесь агентом по продажам и переезжаете из гостиницы в гостиницу. Теперь сервер ожидает имя пользователя и пароль для авторизации, тем временем, сервер прерывает соединение и перезванивает пользователю. Данные для авторизации отправлены, &kppp; ожидает приглашения системы и запускает небольшой скрипт (здесь <filename
207 >start_ppp</filename
208 >), который запускает демон <application
209 >ppp</application
210 > на сервере.</para>
211                                               
212 <para
213 >Скрипт <filename
214 >start_ppp</filename
215 > выглядит примерно так, как показано ниже:</para>
216                                               
217 <programlisting
218 >#!/bin/sh
219 stty -echo
220 exec /usr/sbin/pppd -detach silent modem
221 </programlisting>
222                                               
223 <para
224 >Конечно, настройка <acronym
225 >PPP</acronym
226 >-сервера выходит за рамки этого документа. Детальные сведения находятся на man-странице демона <application
227 >ppp</application
228 >. Замечательное описание сервера обратного звонка доступно по адресу: <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback"
229 > http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback</ulink
230 ></para>
231 </step>
232 </procedure>
234 <para
235 >Все остальные настройки, такие как настройка демона <application
236 >ppp</application
237 > или настройки <acronym
238 >IP</acronym
239 >-протокола будут работать нормально, и для дозвона вам не понадобятся другие программы.</para>
241 <note>
242 <para
243 >Обратный звонок в &kppp; и другие программы типа <application
244 >mgetty</application
245 > или же faxgetty могут выполняться на одном последовательном порте. Проблем с дозвоном быть не должно, так как &kppp; создает файл блокировки и указывает программе getty, что другое приложение (в этом случае &kppp;) использует порт.</para>
246 </note>
248 </sect2>
250 <sect2 id="callback-troubleshooting">
251 <title
252 >Устранение неисправностей</title>
254 <para
255 >Известные проблемы с программой &kppp;, работающей в режиме обратного звонка:</para>
257 <itemizedlist>
258 <listitem>
259 <para
260 >Так как вы инициализируете модем для ответов на звонок, после разъединения нужно сбросить установки модема в начальное состояние. Иначе модем продолжит отвечать на звонки, что не так уж и хорошо, если рассмотренная телефонная линия является основной для вас.</para>
261 </listitem>
262 <listitem>
263 <para
264 >У &kppp; есть мелкие недостатки, когда она использует одну линию наряду с другой программой, такой как <application
265 >mgetty</application
266 >. Если <application
267 >mgetty</application
268 > в процессе выполнения использует ту же линию, то &kppp; не может правильно инициализировать модем. </para>
269 </listitem>
270 <listitem>
271 <para
272 >&kppp; не в состоянии запросить некоторый тип ввода во время логина на основе скрипта. К сожалению, при использовании примера скрипта, приведенного выше, &kppp; также запрашивает имя пользователя второй раз, при запросе сервера обратного звонка. От этого можно избавиться, если прописать ваше имя пользователя в скрипт логина (неудобно и некрасиво, зато срабатывает).</para>
273 </listitem>
274 </itemizedlist>
276 </sect2>
278 <sect2 id="callback-resources">
279 <title
280 >Ресурсы Интернета о серверном программном обеспечении</title>
282 <para
283 >Программное обеспечение для сервера обратного звонка под управлением ОС &Linux; доступно во многих местах.</para>
285 <para
286 >Хорошо известная мощная программа <application
287 >mgetty</application
288 > способна работать с соединениями по принципу обратного звонка. Описание настройки <application
289 >mgetty</application
290 > для этой цели находится по адресу <ulink url="http://www.dyer.demon.co.uk/slug/tipscrip.htm"
291 > http://www.dyer.demon.co.uk/slug/tipscrip.htm</ulink
292 >, написанное Colin McKinnon, <email
293 >colin@new.co.uk</email
294 >.</para>
296 <para
297 >Существует готовый к использованию пакет для ОС &Linux;: <ulink url="http://www.icce.rug.nl/docs/programs/callback/callback.html"
298 > http://www.icce.rug.nl/docs/programs/callback/callback.html</ulink
299 >. Этот пакет поддерживает Frank B. Brokken, <email
300 >frank@icce.rug.nl</email
301 >. Так как настройка, несмотря на прямолинейность, весьма сложна, то я написал короткое вступление для нее: <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback"
302 >http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback/</ulink
303 >, в котором также содержатся более подробные сведения об обратном звонке.</para>
305 </sect2>
306 </sect1>
308 <sect1 id="nt-callback">
309 <title
310 >Обратный звонок службы <acronym
311 >RAS</acronym
312 > в ОС &Windows; NT</title>
314 <para
315 >В ОС &Windows; NT используется подход, совершенно отличный от описанного выше. NT требует наличия расширения к протоколу <acronym
316 >PPP</acronym
317 >, поз названием <acronym
318 >CBCP</acronym
319 > (Протокол контроля обратного звонка). У демона <application
320 >ppp</application
321 > есть поддержка этого протокола, но вам придется перекомпилировать демон <application
322 >ppp</application
323 >. Если кому-нибудь удалось успешно соединиться с сервером обратного звонка под управлением NT, просьба дать нам знать об этом.</para>
325 </sect1>
326 </chapter>