From: Иван Песин <ipesin at post.Lviv.UA>
Newsgroups: Russian Linux Gazette
Date: Mon, 14 Jan 2004 14:31:37 +0000 (UTC)
Subject: Linux в качестве сервера доступа для клиентов Windows 9x/NT
Цель написания данной статьи -- комплексное описание настройки Linux
в качестве сервера доступа для клиентов Windows 9x/NT. При этом
предполагается, что читатель знаком с основами настройки Linux в
качестве маршрутизатора и пакетного фильтра.
Описание приводится для дистрибутива RedHat 6.2, но может быть легко
применено и к другим дистрибутивам.
2. Подготовка.
Для настройки сервера доступа вам понадобятся пакет с демоном ppp и
пакет mgetty. Для того, что бы узнать, установлены ли у вас указанные
пакеты, введите: $ rpm -q mgetty; rpm -q ppp
Если пакетов нет -- установите их с компакт диска :
# cd /mnt/cdrom/RedHat/RPMS; rpm -ivh mgetty*rpm; rpm -ivh ppp*rpm;
3. Настройка
Теперь можно переходить к настройке системы. В каталоге
/etc/mgetty+sendfax/ находятся файлы конфигурации программы mgetty.
Проверяем их содержимое:
* файл dialin.config должен быть пустой (все строки
закомментированы);
* файл login.config среди прочих, закомментированных строк, должен
содержать строки:
Первая строка указывает на то, что получив вызов от ОС Windows и
некоторых других), программа mgetty должна передать управление
демону PPP. Вторая строка разрешает в остальных случаях выдавать
приглашение (полезно при отладке, например).
* файл mgetty.config варьируется, и должен быть привязан к вашему
модему. У меня он выглядит вот так:
port ttyS0
speed 115200
data-only y
port ttyS1
speed 115200
data-only y
port ttyS2
speed 115200
data-only y
Следующим нашим шагом будет указание Linux, когда и как он должен
запускать программу mgetty Для этого в каталоге /etc находим файл
inittab и добавляем в него строки:
Здесь параметр "-n" указывает количество гудков до снятия трубки,
"-D" -- отключение режима факса, F115200 -- скорость обмена с модемом.
Возможно, вы заметили, что ключами дублируются параметры, указанные в
файле mgetty.conf. Конечно же, делать это не обязательно, можно
выбрать наиболее вам нравящийся вариант.
Теперь, чтобы процесс узнал о изменении файла конфигурации, выполняем
команду:
# init q
На модеме должна загореться лампочка "TR" (на некоторых модемах --
"MR"). Для пущей верности проверим, запустился ли mgetty, командой:
$ ps ax | grep mgetty
Очередь настраивать демон PPP. Для этого в каталоге /etc/ppp создаем
файл options.ttySX, где Х -- номер порта к которому подсоединен модем.
В него вносим следующие строки:
Где aaa.bbb.ccc.ddd -- адрес, присваиваемый интерфейсу сервера, адрес
eee.fff.ggg.hhh -- отдается клиенту, а kkk.lll.mmm.nnn -- адрес
DNS-сервера.
Важный момент с адресом клиента. Он либо будет принадлежать той же
сети, что и сервер, либо нет. В первом случае вам необходимо будет
добавить директиву proxyarp в файл options.ttySX, и тогда всем хостам
будет казаться, что клиент находится в Ethernet-сети. Во втором же
случае, будет необходимым указание маршрута к сети клиента либо к
самому хосту клиента.
Пройдемся по другим полезным опциям. Итак:
* idle n сообщает демону pppd о необходимости обрыва соединения, в
случае отсутствия в канале пакетов данных на протяжении n секунд.
* ktune разрешает демону настраивать переменные ядра. Например, если
в конфигурации указана директива proxyarp, то автоматически будет
разрешена маршрутизация пакетов.
* ms-wins <addr> указывает адрес сервера WINS для клиентов.
* noipx запрещает использование протоколов IPXCP и IPX
* show password опция, полезная при отладке: при протоколировании
пакетов, пароли будут представлены открытым текстом.
На очереди файл /etc/ppp/pap-secrets. В нем указывают пользователей,
которым разрешен доступ по dial-up, и где они должны проходить
аутентификацию. Вот пример:
dipuser1 -- имя пользователя,
myserver -- сервер аутентификации (имя вашего хоста)
"" -- означает, что пароль берется из /etc/passwd (/etc/shadow)
otherpass -- конкретно указанный пароль
* -- означает, что разрешен доступ с любого IP адреса
dfg.wer.cxv.sdf -- доступ только с указанного адреса.
Вот мы и настроили демон PPP. Для полного счастья нам осталось
разрешить форвардинг пакетов. Это делается командой:
# sysctl -w net.ipv4.ip_forward=1
Для того, что бы эта функция включалась автоматически при загрузке
системы, отредактируйте файл /etc/sysctl.conf так, чтобы в нем
значилось:
net.ipv4.ip_forward = 1
4. Заключение
Всё. Сервер Dial-IN уже работает. В качестве дополнительных
возможностей укажем настройку firewall, времени доступа и так
называемый callback. Документацию по настройке брандмауэра (firewall)
можно найти на любом сайте с документацией по ОС Линукс. Ограничение
времени доступа реализуется при помощи файла /etc/nologin.ttySX, когда
этот файл существует, доступ через указанный порт запрещен. В
простейшем случае в /etc/crontab добавляются строки:
результатом коих будет разрешение доступа к серверу с 8:30 до 20:30
на порт /dev/ttyS1 (COM2). Настройка callback является темой отдельной
статьи, которая будет опубликована в ближайшее время. Сложность такой
настройки обуславливается желанием не производить никаких дополнительных
действий на клиентах. Для этого существует специальный протокол CBCP,
который, к сожалению, не входит в бинарную поставку демона ppp, а
существует в виде патча, поставляемого с исходным кодом и требующим
компиляции.
В заключение хочу сказать, что в дистрибутиве RedHat 7.2 поставляется
демон ppp с ошибкой, потому вам будет необходимо либо понизить, либо
повысить версию демона.
Copyright (C) 2002 Иван Песин
627 Прочтений • [Linux в качестве сервера доступа для клиентов Windows 9x/NT (linux ppp modem dial-in dial-up)] [08.05.2012] [Комментариев: 0]