Опубликован: 21.11.2006 | Доступ: свободный | Студентов: 1811 / 140 | Оценка: 4.09 / 4.00 | Длительность: 38:34:00
Лекция 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-адрес, вы также можете оставить пропуск, если заранее не известно, какой адрес будет назначаться тому или иному удаленному клиенту (например, если имеется несколько параллельных телефонных линий, по которым он может устанавливать соединение).