PPP HOWTO: Установка PPP сервера

Next Previous Contents

26. Установка PPP сервера

Как уже упомянуто, имеется много способов это сделать. Как я говорил, имеется способ, которым это делаю я (использование многопортовой платы Cyclades) и циклический пулл телефонных линий.

Если вам не нравится способ, который я представляю здесь, пожалуйста, не стесняйтесь идти собственным путем. Мне бы хотелось включить дополнительные методы в будущие версии HOWTO. Так что, пожалуйста, вышлите мне ваши комментарии и способы!

Пожалуйста, обратите внимание, что этот раздел касается только установки Linux в качестве PPP сервера. Я (даже) не предполагаю включать информацию о установке специальных терминальных серверов итп.

Также я все-таки экспериментирую с теневыми паролями (но сделаю так когда-нибудь).

Информация в настоящее время не представлена, и следовательно никакие звоночки и свистки, которые требуются для shadow suite, не включаются.

26.1 Компиляция ядра

Примените все ранее высказанные комментарии о компиляции ядра и версиях ядра и соответствующих версий pppd. В этом разделе предполагается, что вы читали предыдущие разделы этого документа!

Для PPP сервера, Вы ДОЛЖНЫ включить IP forwarding в вашем ядре. Вы можете также захотеть включить другие возможности (типа IP fire wall, учета пользователей и т.д и т.д).

Если вы используете многопортовую последовательную плату, то вы очевидно также включили необходимые драйверы в ваше ядро!

26.2 Краткий обзор серверной системы

Мы предлагаем аккаунты коммутируемого PPP (и SLIP) и shell, использующие одну и ту же пару имени/пароля пользователя. Это имеет те преимущества (для нас), что для пользователя требуется только один аккаунт и можно использовать это для всех типов связей.

Поскольку мы - образовательная организация, мы не надзираем за доступом нашего персонала и студентов, и также не должны волноваться за учет пользователей и проблемах поддержки.

Мы эксплуатируем firewall между нашим сайтом и Интернетом, и это ограничивает некоторым пользователям доступ к телефонным линиям изнутри нашим (Интернет) firewall'ом (по довольно очевидным причинам, подробности наших других firewall'ов не рассматриваются и несоответствуют в любом случае).

Процесс, который пользователь проходит для установки PPP связи с нашим сайтом (конечно, если только ему разрешен доступ):

  • Позвонить на наш циклический пулл (это единственный номер телефона, который соединяется с банком модемов - при звонке включается первый свободный модем).
  • Вход в систему, если имя и пароль пользователя указаны правильно.
  • В командной строке shell выдать команду ppp, чтобы запустить PPP на сервере.
  • Запуск PPP на их PC (будь это Windows, DOS, Linux MAC OS или еще что) является проблемой пользователя).
Сервер использует индивидуальные файлы /etc/ppp/options.ttyXX для каждого модемного порта, который устанавливает динамический удаленный IP адрес. Сервер использует proxyarp маршрутизацию для удаленных клиентов (установлено соответствующей опцией pppd). Это устраняет потребность в routed или gated.

Когда пользователь "бросает трубку" на своем конце, pppd обнаруживает это и заставляет модем тоже "положить трубку", одновременно закрывая связь PPP.

26.3 Состав программного обеспечения

Вы нужно будет следующее программное обеспечение:

  • Linux, правильно скомпилированный, чтобы были включены необходимые опции.
  • соответствующая версия pppd для вашего ядра.
  • программа 'getty', которая интеллектуально обрабатывает модемную связь.

    Мы используем getty_ps2.0.7, но вроде mgetty лучше. Я понимаю, что mgetty может обнаружить звонок, который использует pap/chap (pap - стандарт для Windows95) и вызвать pppd автоматически, но однако я должен исследовать это.

  • Функционирующий сервер доменных имен (DNS), который доступне вашим модемным пользователям.
Вы действительно должны запустить собственный DNS, если это возможно ...

26.4 Установка стандартного (доступ через shell) коммутируемого доступа.

Прежде, чем вы сможете установить ваш PPP сервер, ваш Linux box должен быть способен обрабатывать стандартный доступ по коммутируемым линиям.

Этот howto не покрывает установку этой системы. Пожалуйста см. документацию по выбранному вами getty и Serial-HOWTO для информации об этом.

26.5 Установка файлов PPP опций

Вам нужно будет установить полный /etc/ppp/options с общими опциями для всех портов, принимающих внешние звонки. Опции, которые мы используем:

  ______________________________________________________________________
  asyncmap 0
  netmask 255.255.254.0
  proxyarp
  lock
  crtscts
  modem
  ______________________________________________________________________

Примечание - мы НЕ используем (очевидную) маршрутизацию - и в частности, там нет опции defaultroute. Причина этого в том, что все, что вам (как PPP серверу) требуется сделать, это направить пакеты от внешнего ppp клиента через ваш LAN/INTERNET и маршрутизации пакетов клиента вашей LAN наружу.

Все, что для этого нужно - чтобы хост маршрутизировал клиентскую машину и использование опции pppd 'proxyarp'.

Опция 'proxyarp' устанавливает (сюрприз) прокси ARP запись в ARP таблице PPP сервера, которая в основном говорит 'посылать все пакеты, предназначенные для PPP клиента ко мне'. Это самый простой способ установить маршрутизацию одному PPP клиенту, но вы не сможете использовать его, если вы маршрутизируете две LAN - вы должны добавить соответствующие сетевые маршруты, которые не могут использовать прокси ARP.

Вы наверняка пожелаете обеспечить динамическое распределение IP адресов для ваших модемных пользователей. Вы можете сделать это распределением IP адресов для каждого порта входящего модемного соединения. Теперь, создайте /etc/ppp/options.ttyXX для каждого порта входящего модемного соединения.

В них просто поместите локальный (серверный) IP адрес и IP адрес, который должен использоваться для этого порта. Например

______________________________________________________________________

kepler:slip01
______________________________________________________________________

В частности, обратите внимание, что вы можете использовать допустимые главные имена машин в этом файле (я нахожу, что напрмер я помню IP адреса только критических машин и устройств в моих сетях - имена легче запомнить)!

26.6 Настройка pppd, чтобы он был (успешно) доступен пользователям для запуска

Так как запуск ppp связи подразумевает конфигурирование устройства ядра (сетевого интерфейса) и управление ядром, таблицы маршрутизации, требуются специальные привилегии - фактически полные привилегии root.

К счастью, pppd был разработан достаточно 'безопасным' для выполнения установки uid в root. Так что вам нужно будет сделать

______________________________________________________________________

chmod u+s /usr/sbin/pppd
______________________________________________________________________

когда вы выведете список файлов, то должно появиться

______________________________________________________________________

-rwsr-xr-x   1 root     root        74224 Apr 28 07:17 /usr/sbin/pppd
______________________________________________________________________

Если вы не сделаете это, то пользователи не смогут установить связь по ppp.

26.7 Установка глобального псевдонима для pppd

Для того, чтобы облегчить работу нашим модемным PPP пользователям, мы создадим глобальный псевдоним (в /etc/bashrc) так, чтобы одна простая команда запускала ppp на сервере, как только они регистрируются в системе.

Это выглядит примерно так

______________________________________________________________________

alias ppp="exec /usr/sbin/pppd -detach"
______________________________________________________________________

Что это значит

  • exec : это означает заменить запущенную программу (в этом случае shell) программой, которая указана.
  • pppd -detach : запустить pppd, и НЕ переводить в фоновый режим.
Это гарантирует, что когда pppd завершит работу, то не останется никаких других процессов.

Когда пользователь регистрируется по этому способу, при выполнении команды 'w' он появляется как

  ______________________________________________________________________
    6:24pm  up 3 days,  7:00,  4 users,  load average: 0.05, 0.03, 0.00
  User     tty       login@  idle   JCPU   PCPU  what
  hartr    ttyC0     3:05am  9:14                -
  ______________________________________________________________________
И это - все ... Я рассказал вам о простом, основном PPP сервере!
Next Previous Contents