Опубликован: 21.11.2006 | Уровень: специалист | Доступ: платный
Лекция 16:

Поддержка удаленных клиентов

Настройка mgetty для автоматической поддержки РРР-соединений

Разрешение автоматического обслуживания удаленных клиентов на базе ОС Windows осуществляется в файле конфигурации mgetty. По умолчанию в операционной системе Linux это файл /etc/mgetty+sendfax/login.config. Если вы самостоятельно создавали выполняемый файл для mgetty из исходного кода, то местоположение файла конфигурации можно изменить.

Файл login.config указывает, как программа mgetty должна вести себя в той или иной ситуации при обнаружении попытки соединения с сервером. В листинге 16.4 представлен пример файла login.config.

1 # login.config
2 #
3 # This is a sample "login dispatcher" configuration file for mgetty
4 #
5 # Format:
6 # username userid utmp_entry login_program [arguments]
7 #
8 # Meaning:
9 # for a "username" entered at mgettys login: prompt, call
10 # "login_program" with [arguments], with the uid set to "userid",
11 # and a USER_PROCESS utmp entry with ut_user = "utmp_entry"
12 #
13 # username may be prefixed / suffixed by "*" (wildcard)
14 #
15 # userid is a valid username from /etc/passwd, or "-" to not set
16 # a login user id and keep the uid/euid root (needed for /bin/login)
17 #
18 # utmp_entry is what will appear in the "who" listing. Use "-" to not
19 # set an utmp entry (a must for /bin/login), use "@" to set it to the
20 # username entered. Maximum length is 8 characters.
21 #
22 # login_program is the program that will be exec()ed, with the arguments
23 # passed in [arguments]. A "@" in the arguments will be replaced with the
24 # username entered. Warning: if no "@" is given, the login_program has
25 # no way to know what username the user entered.
26 #
27 #
28 # SAMPLES:
29 # Use this one with my Taylor-UUCP and Taylor-UUCP passwd files.
30 # (Big advantage: tuucp can use the same passwd file for serial dial-in
31 # and top dial-in [uucico running as in.uucpd]). Works from 1.05 up.
32 #
33 #U* uucp @ /usr/lib/uucp/uucico -1 -u @
34
35 #
36 # Use this one for fide calls (login name /FIDO/ is handled specially)
37 #
38 # You need Eugene Crosser's "ifmail" package for this to work.
39 # mgetty has to be compiled with "-DFIDO", otherwise a fido call won't
40 # be detected.
41 #
42 /FIDO/ uucp fido /usr/local/lib/fnet/ifcico @
43
44 #
45 # Automatic PPP startup on receipt of LCP configure request (AutoPPP).
46 # mgetty has to be compiled with "-DAUTO^PPP" for this to work.
47 # Warning: Case is significant, AUTOPPP or autoppp won't work!
48 # Consult the "pppd" man page to find pppd options that work for you.
49 #
50 # NOTE: for *some* users; the "-detach" option has been necessary, for
51 # others, not at all. If your pppd doesn't die after hangup, try it.
52 #
53 # NOTE2: "kdebug 7 debug" creates lots of debugging info. If all works,
54 # remove those !
55 #
56 /AutoPPP/ - ppp /usr/sbin/pppd auth -chap +pap login modem crtscts lock
57 proxyarp
58
59 #
60 #
61 # An example where no login name in the argument list is desired:
62 # automatically telnetting to machine "smarty" for a given login name
63 #
64 #telnet-smarty gast telnet /usr/bin/telnet -8 smarty
65 #
66 # This is the "standard" behavior - *dont* set a userid or utmp
67 # entry here, otherwise /bin/login will fail!
68 # This entry isn't really necessary: If it's missing, the built-in
69 # default will do exactly this.
70 #
71 * - - /bin/login @
Листинг 16.4. Пример файла /etc/mgetty+sendfax/login.config

В строке 56 листинга 16.4 программе mgetty дается указание автоматически обнаруживать РРР-соединение. Все символы в файле конфигурации чувствительны к регистру, поэтому убедитесь в правильности задания заголовка /AutoPPP/ (он должен быть введен именно так, в противном случае mgetty не распознает его). Далее, как видите, эта строка содержит команду pppd в том виде, в котором она вводится при запуске из командной строки. Если до этого вы уже задали все необходимые параметры в файле конфигурации pppd, то здесь вы можете опустить их. Строка 71 является самой важной. В ней содержится инструкция о том, как поступать программе mgetty, если при установлении соединения не был принят сигнал, идентифицирующий РРР- или факсовое соединение. В этом случае mgetty решает, что это обычное терминальное соединение и передает управление программе login, которая выдает приглашение для входа в систему.

Следующим шагом к разрешению автоматического обслуживания РРР-соединений является обеспечение автоматической аутентификации с помощью идентификаторов пользователей и паролей. Возможно, вы уже обратили внимание, что в строке 56 листинга 16.4 для pppd задан параметр +pap. С его помощью программе mgetty указывается на необходимость использовать метод аутентификации РАР при установке РРР-соединения. Более детально этот метод аутентификации рассмотрен в "Протокол РРР" .

При применении аутентификации необходимо наличие файла паролей, где будут содержаться все имена и пароли пользователей, допущенных для входа на сервер электронной почты под управлением ОС Linux. По умолчанию это файл /etc/ppp/pap-secrets. Пример этого файла приведен в листинге 16.5.

1 # Secrets for authentication using PAP
2 # client server secret IP addresses
3 rich * guitar 192.168.1.100
4 barbara * aslsign 192.168.1.100
5 katie * boxcar 192.168.1.100
6 jessica * clifford 192.168.1.100
Листинг 16.5. Пример файла /etc/ppp/pap-secrets

В каждой строке файла описывается один пользователь системы. Формат записи в файле следующий:

client server secret addresses,

где client — имя пользователя, server — сервер, к которому производится подключение, secret — пароль, который вводится в приглашении программного обеспечения для работы с удаленным клиентом, а addresses — это IP-адрес, используемый клиентом во время сеанса. Наличие символа "звездочка" ( * ) говорит о том, что клиент может подключаться к любым серверам, используя данное имя пользователя. Эта функция используется в основном в ситуации, когда клиент регистрируется на разных серверах с одним и тем же именем пользователя, но с различными паролями. В поле, где указывается IP-адрес, вы также можете оставить пропуск, если заранее не известно, какой адрес будет назначаться тому или иному удаленному клиенту (например, если имеется несколько параллельных телефонных линий, по которым он может устанавливать соединение).

Valentin Diduk
Valentin Diduk
Украина, одесса, кпи, 2010
Евгений Олабин
Евгений Олабин
Беларусь, Гродно