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

Ядро
Ядро должно быть собрано с поддержкой ppp и COM* портов.
Или если вы предпочитаете модули - проверьте наличие модулей
в Linux (проверьте файл /proc/devices если там есть устройства
serial и ttySX, то загрузку модулей ppp, COM упускаем)
ppp /lib/modules/linux-2.X.X/net/ppp.o
COM ports /lib/modules/linux-2.X.X/misc/serial.o
Загрузить модуль можно командой insmod [имя модуля]
Во FreeBSD это делаеться командой kldload
Но лучше соберите ядро с опциями (FreeBSD)

device sio0 at isa? port IO_COM1 flags 0x10 irq 4 #Первый
device sio1 at isa? port IO_COM2 irq 3 #и второй COM порты
options INET #Поддержка IP
options INET6 #Поддержка IPV6
pseudo-device loop #loopback device
pseudo-device tun #tunnel driver
pseudo-device bpf #Berkeley packet filter
pseudo-device ppp 2 #поддержка ppp
pseudo-device gif 4 #как то связано с трансляцией IP>IPV6 и наоборот
pseudo-device faith 1 #тоже
options PPP_BSDCOMP #ppp BSD compression
options PPP_FILTER #ppp фильтр..(bpf обязательно)

Это даст вам поддержку ppp & IP&IPV6, так же первого и второго COM портов

Или вот так - если вы под Linux
Эти опции вы должны включитьь в ядро

CONFIG_MODULES=y #Разрешить создание модулей (требуется для PPP)
CONFIG_NET=y #Разрешить работу с сетью
CONFIG_INET=y #
CONFIG_PPP=m #Поддержка протокола PPP
CONFIG_SERIAL=m #Драйвер для ком порта
CONFIG_IPV6=(Y/M/N) #поддержка протокола IpV6

Если у вас Linux
COM1 /dev/ttyS0
COM2 /dev/ttyS1
Если FreeBSD
COM1 /dev/cuaa0
COM2 /dev/cuaa1

отредактируйте /etc/resolv.conf
пример

nameserver 195.110.60.130 #впишите IP адрес вашего ns сервера

и поставьте на него chmod 0644
проверьте существует ли файл /etc/ppp/options и имеет ли он атрибуты доступа 0644
если он не существует, если он отсутстсвует - создайте пустой c chmod 0644.

настройка звонилки.
в директории /usr/doc/pppd(Linux) /usr/share/examples/ppp(*BSD) вы найдете примеры скриптов
для соединения с интернетом, переносим их директорию /etc/ppp/ подредактируем в соответсвии
с со своими данными, и командой chmod 500 изменим атрибуты файлов ppp-on, ppp-off, ppp-on-dialer.
(скрипту ppp-on нужно иметь право запуска файла ppp-on-dialer)

пример моего скрипта ...

#!/bin/sh
TELEPHONE=6797588 # номер дозвона
ACCOUNT=paulbar # paulbar это логин
PASSWORD=gracie # gracie это пароль
LOCAL_IP=0.0.0.0 # локальный ип адресс если я увас динамический то оставляйте 0.0.0.0
REMOTE_IP=0.0.0.0 # адрес вашего диалап шлюза - если не знаете, поставьте в нули.
NETMASK=255.255.255.0 # маска сети
export TELEPHONE ACCOUNT PASSWORD
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400 \
# /dev/ttyS0 (это com порт на котором живет модем) 38400 (это скорость на которой работает
тот ком порт) .
asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT

пример скрипта ppp-on-dialer

#!/bin/sh
exec chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 30 \
OK ATDT$TELEPHONE \
CONNECT '' \
ogin:--ogin: $ACCOUNT \
assword: $PASSWORD

1 Замечание если у вас внутренний модем с своим COM портом то он может не поддерживать скорость в 115200 kbit .
2 Софтверные модемы не поддерживаются UNIX системами, исключение, только в линуксе появились не так давно для них драйвера.
Но эта тема для отдельного документа ...