Диалапные радости рыбаков - Рулим модемом в собственной операционке

Andrushock

Xakep, номер #050, стр. 050-072-3


Позвони мне, позвони

Теперь настала очередь рулить нашим модемом. Для начала убедимся, что в системе присутствует устройство tun0:

# ls -l /dev/tun0

В случае отсутствия такового, создадим его:

# cd /dev; ./MAKEDEV tun0

Теперь проверим правильность подключения модема утилитой cu:

# cu -l /dev/cua00

и выполним, например, команду "ATZ". В ответ должны получить отклик "OK".

Следующим шагом будет добавление в /etc/syslog.conf строк для журналирования процессов ppp:

!ppp

*.* /var/log/ppp.log

Для того, чтобы syslogd перечитал свой конфигурационный файл, выполним команду:

# kill -s HUP `cat /var/run/syslog.pid`

Далее создадим учетную запись пользователя, который получит возможность устанавливать соединение:

# useradd -v -c "Dialup user" -m -d /home/dialer -g users -G network -u 77 -s /usr/local/bin/bash dialer

# passwd dialer

Примечание: пользователь обязательно должен входить в группу network.

И с помощью программы visudo, отредактировав файл /etc/sudoers, разрешим ему завершать созданные подключения:

# visudo

К примеру, пользователю dialer на хосте localhost разрешим выполнять команду kill:

dialer localhost = PASSWD: /bin/kill

Осталось указать параметры в файле /etc/ppp/ppp.conf для подключения к поставщику услуг интернета:

/* создаем пустую секцию default, чтобы не возникали предупреждения */

default:

/* создаем секцию provider для подключения к провайдеру */

provider:

/* указываем степень журналирования */

set log Phase Chat LCP IPCP CCP tun command

/* определяем, к какому порту подключен модем, в данном случае к COM1 */

set device /dev/cua00

/* выставляем скорость порта */

set speed 115200

/* задаем телефон модемного пула провайдера */

set phone 1234567

/* описываем параметры подключения */

set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDP\\T TIMEOUT 60 CONNECT"

/* логин и пароль */

set login "ABORT NO\\sCARRIER TIMEOUT 5 ogin:--ogin: логин word: пароль"

/* перерыв в 30 секунд между попытками установить соединение */

set timeout 30

/* получаем динамический IP-адрес */

set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0

/* определяем значение Maximum Transmission Unit */

set mtu 1500

/* добавляем стандартный маршрут в таблицу маршрутизации, если же стандартный маршрут уже существует, то перезаписываем его */

add! default HISADDR

/* отключаем IPv6 */

disable ipv6cp

/* указываем, что будем работать в режиме DNS-клиента */

enable dns

И в файле /etc/resolv.conf прописываем DNS-сервера провайдера:

domain mynetwork.net

nameserver 1.1.1.1

nameserver 1.1.1.2

Примечание: записей типа nameserver не должно быть более трех.

С очередным конфигом закончили. Теперь для упрощения создания и разрыва ppp-соединений предложу тебе вот такой нехитрый скрипт.

# vi /bin/myppp

#!/bin/sh

case "$1" in

"up")

if [ x"$2" != x ]; then

/usr/sbin/ppp -ddial $2

else

echo "Usage: $0 up provider"

fi;;

"down")

sudo /bin/kill -s QUIT `cat /var/run/tun0.pid`;;

Назад на стр. 050-072-2  Содержание  Вперед на стр. 050-072-4