The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Linux в качестве сервера доступа для клиентов Windows 9x/NT (linux ppp modem dial-in dial-up)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: linux, ppp, modem, dial-in, dial-up,  (найти похожие документы)
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 Оригинал: http://gazette.linux.ru.net/rus/articles/TalePPP/taleppp.html Повесть о Linux и PPP Автор: (C) Иван Песин 1. Введение. Цель написания данной статьи -- комплексное описание настройки 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 среди прочих, закомментированных строк, должен содержать строки: /AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login * - - /bin/login @ Первая строка указывает на то, что получив вызов от ОС 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 и добавляем в него строки: S0:345:respawn:/sbin/mgetty -n 2 -D ttyS0 F115200 S1:345:respawn:/sbin/mgetty -n 2 -D ttyS1 F115200 S2:345:respawn:/sbin/mgetty -n 2 -D ttyS2 F115200 Здесь параметр "-n" указывает количество гудков до снятия трубки, "-D" -- отключение режима факса, F115200 -- скорость обмена с модемом. Возможно, вы заметили, что ключами дублируются параметры, указанные в файле mgetty.conf. Конечно же, делать это не обязательно, можно выбрать наиболее вам нравящийся вариант. Теперь, чтобы процесс узнал о изменении файла конфигурации, выполняем команду: # init q На модеме должна загореться лампочка "TR" (на некоторых модемах -- "MR"). Для пущей верности проверим, запустился ли mgetty, командой: $ ps ax | grep mgetty Очередь настраивать демон PPP. Для этого в каталоге /etc/ppp создаем файл options.ttySX, где Х -- номер порта к которому подсоединен модем. В него вносим следующие строки: lock login auth modem crtscts refuse-chap require-pap mtu 576 mru 576 aaa.bbb.ccc.ddd:eee.fff.ggg.hhh ms-dns kkk.lll.mmm.nnn Где 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 "" * dipuser2 myserver "" * dipuser3 myserver "otherpass" * dipuser4 myserver "" * dipuser5 myserver "yetanotherpass" * dipuser6 myserver "" dfg.wer.cxv.sdf dipuser7 myserver "" * где: 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 добавляются строки: 30 8 * * * root rm -f /etc/nologin.ttyS1 30 20 * * * root echo "disable" > /etc/nologin.ttyS1 результатом коих будет разрешение доступа к серверу с 8:30 до 20:30 на порт /dev/ttyS1 (COM2). Настройка callback является темой отдельной статьи, которая будет опубликована в ближайшее время. Сложность такой настройки обуславливается желанием не производить никаких дополнительных действий на клиентах. Для этого существует специальный протокол CBCP, который, к сожалению, не входит в бинарную поставку демона ppp, а существует в виде патча, поставляемого с исходным кодом и требующим компиляции. В заключение хочу сказать, что в дистрибутиве RedHat 7.2 поставляется демон ppp с ошибкой, потому вам будет необходимо либо понизить, либо повысить версию демона. Copyright (C) 2002 Иван Песин

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1.1, dm (?), 09:03, 26/02/2004 [ответить]  
  • +/
    интересно, зачем включать маршрутизацию,
    для того чтобы чужой дядя залез на ваш комп,
    по моему если сетевое пространство на PPP выделяется из тех же ip то работать и так все будет.
    А вот если есть другой сетевой интефейс с другим пространством, то net.ipv4.ip_forward = 1
    позволит между сетями свободно ходить и комуто делать пакости.
    Так что будьте осторожны читая подобные статьи,
    хотя в целом статья неплохая.
     
  • 1.2, Аскаров Д (?), 16:17, 06/04/2004 [ответить]  
  • +/
    Спасибо!, очень помогло!

     
  • 1.3, Player (?), 01:07, 13/06/2004 [ответить]  
  • +/
    Коннект вылетает с мессагой Имя пользователя или пароль недопустимы/
    В логах 06/13 00:25:38 yS1  waiting for ''OK'' ** found **
    06/13 00:25:38 yS1  waiting...
    06/13 00:26:49 yS1  wfr: waiting for ''RING''
    06/13 00:26:59 yS1  mdm_read_byte: read returned -1: Interrupted system call
    06/13 00:26:59 yS1  wfr: timeout waiting for RING
    06/13 00:26:59 yS1  huh? Junk on the line?
    06/13 00:26:59 yS1   >>> could be a dial-out program without proper locking - check this!
    Что делать?
     
  • 1.4, Vladimir (??), 20:56, 29/11/2004 [ответить]  
  • +/
    Всё сделал как сказано в статье, заработало. Спасибо! Но интернета у PPP клиентов нет. Oни свободно могут видеть сеть, делать пинг даже смежной сети на eth2, но интернета нет. Есть ли готовый рецепт сделать Маскарадинг через iptables?
     
  • 1.5, Джентельмен (?), 18:53, 26/05/2005 [ответить]  
  • +/
    а у меня почему то нихрена не заработало, стоит RedHat 6.0, зделал все как ниписано, прикол в чем, модем трубку снимает, но как только начинается проверка пользователя и пароля, модем на сервере обрывает линию...
    может кто че скажет че умное, как с этой фигней справится???
     
  • 1.6, DVE (?), 11:49, 02/10/2006 [ответить]  
  • +/
    У меня тоже авторизация не проходила, пока я не сделал
    chmod u+x ppplogin

    Теперь всё отлично... правда у меня почему-то только root имеет доступ к Dial-In server :)

     
  • 1.7, iron (??), 12:09, 07/04/2008 [ответить]  
  • +/
    Борюс с dial-in уже неделю, никак не выходит нормально подключиться, если при создании соединения на WinXP в свойствах соединения, выбираю "вызывать окно терминала", окно появляется, могу логироваться, могу работать в шелле, но само соединение ещё не устанавливается, когда выбираю "готово" , терминал естественно уходит, после нескольких секунд задержки вываливается еррор "обнаружено замыкание на себя" под разными юзерами пробовал войти и под теми у которых в passwd вместо шелла указан pppd и "простых" . Все настройки идентичны данным в  этой статье, перерыл уже несколько подобных мануалов, во всех вариантах исполнения у меня вываливается проблема с "замыканием на себя" Подскажите пожалуйста что я мог проглядеть.
     
  • 1.8, iron (??), 14:00, 07/04/2008 [ответить]  
  • +/
    ну хоть кто нибудь, подскажите. Дистрибутив у меня Debian Etch , ядро не трогал.
     
  • 1.9, iron (??), 12:27, 09/04/2008 [ответить]  
  • +/
    дааа, неверное легче потрендеть про то как патчить KDE под BSD, чем помочь делом нуждающимся.
     
  • 1.10, Аноним (-), 12:02, 15/05/2009 [ответить]  
  • +/
    >а у меня почему то нихрена не заработало, стоит >RedHat 6.0, зделал все как ниписано, прикол в >чем, модем трубку снимает, но как только >начинается проверка пользователя и пароля, >модем на сервере обрывает линию...
    >может кто че скажет че умное, как с этой фигней >справится???

    Та же фигня - кто-ниьт решил ее : )?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру