Настройка PPP сервера

Для запуска pppd в роли сервера достаточно добавить соответствующую опцию в командную строку. Рекомендуется создать специальный аккаунт, например, "ppp", и присвоить этому аккаунту скрипт или программу в качестве оболочки для входа в систему, который будет вызывать pppd с нужными опциями. В качестве примера, можно добавить следующую строку в /etc/passwd:

ppp:*:500:200:Public PPP Account:/tmp:/etc/ppp/ppplogin

Разумеется, вместо указанных uid и gid можно использовать другие. Также необходимо установить пароль для данного аккаунта с помощью команды passwd.

Скрипт ppplogin может выглядеть следующим образом:

#!/bin/sh
# ppplogin - скрипт для запуска pppd при входе
mesg n
stty -echo
exec pppd -detach silent modem crtscts

Команда mesg блокирует возможность другим пользователям отправлять сообщения на tty, например, с использованием команды "write". Команда stty отключает отображение символов на экране. Это нужно, чтобы пир не отправлял все символы на экран. Особенно важной является опция -detach для pppd, так как она предотвращает его отсоединение от управляющего tty. Без этой опции скрипт завершил бы выполнение, что привело бы к зависанию. Опция "silent" говорит pppd ожидать блока данных от пира перед началом отправки. Это нужно для предотвращения таймаутов, если пир медленно реагирует на PPP. Опция "crtscts" включает аппаратное управление потоком.

Кроме упомянутых опций, можно настроить определенный тип аутентификации, добавив, например, опцию "auth" в командную строку pppd или в глобальный файл опций. В документации также описаны более специфичные опции для включения или отключения отдельных протоколов аутентификации.