Чтиво: установка сервера часть 018
Что ж, сейчас я подключу модем и выйду в инет. На ходу я его подрубать
не буду, поэтому сначала компьютер выключу.
$ su
$ shutdown -h now
После того как компьютер выключен, я подсоединяю к нему внешний модем и
включаю компютер. При загрузке выскакивает окно программы kudzu,
которое сообщает, что у меня "обнаружено новое устройство" ;) "U.S.
Robotics 56K FAX EXT", я нажимаю на кнопку настроить и дальше система
продолжает загружаться дальше.
Сразу скажу, что неплохая дока по настройке соединения с интернетом
через модем на русском языке есть на:
http://linuxdoc.ru/HOWTO/html/PPP-HOWTO.html
http://sysoev.ru/pppd/
http://linux.webclub.ru/dialup/ppp.html
За соединение с интернетом через модем отвечает протокол PPP (Point to
Point Protocol). За сетевую работу через этот протокол отвечает, в свою
очередь, демон PPP. Здесь я как раз опишу настрйку этого демона.
Что еще следует сказать. Серевер выходит в инет, дозваниваясь до
провайдера только по одному телефону, ему динамически выделяется
ip-адрес (т.е. все время разный), при аутентификации используется
механизм PAP (Password Autentificaion Protocol) в котором участвует
аутентификационная пара: login и password.
Все конфигурационные файлы находятся в каталоге /etc/ppp
Итак, сначала, настроим опции подключения в файлике /etc/ppp/options
begin options # Указывает, что pppd должен использовать lock в стиле UUCP на
# последовательное устройство, чтобы исключить одновременый доступ к
# устройству
lock
# Использовать линии управления модемом. На Ultrix эта опция означает
# управление потоком данных, как опция crtscts. (Эта опция не полностью
# выполняется)
modem
# Использовать аппаратное управление потоком данных (напр., RTS/CTS),
# чтобы управлять потоком данных на последовательном порту
crtscts
# async карта символов -- 32-bit hex; каждый бит - символ, который надо
# представить в виде escape-последовательности, чтобы pppd мог его
# принять.
# 0x00000001 - это маска для '\x01', а 0x80000000 - маска для '\x1f'.
asyncmap 0
# Установить максимальное число передач LCP configure-request в <n> (по
# умолчанию 10). Некоторые PPP сервера долго стартуют. Вам может
# понадобиться увеличть эту величину, если вы получаете ошибки 'serial
# line looped back' и вы УВЕРЕНЫ, что корректно регистрируетесь и PPP
# должен запускаться на сервере.
lcp-max-configure 20
# Показывать пароль при журналировании содержимого PAP пакетов, при
# отмене можно использовать hide-password
show-password
# Необходим для отладки ppp-драйвера ядра. Позволяет включить
# расширенное журналирование соединения. 0 -отключено, 1 - основные
# отладочные сообщения, 2 - выводить полученные пакеты, 4 - выводить
# отправленные пакеты. Возможно комбинирование.
kdebug 0
# Если у Вас на компьютере есть хотя бы один сетевой интерфейс с
# каким-либо IP-адресом, то при установлении соединения, pppd пытается
# использовать этот адрес в качестве качестве своего локального адреса.
# Это не всегда нужно, поэтому параметр noipdefault пресекает подобные
# попытки. Если же у Вас на компьютере нет сетевых интерфейсов, то Вы
# можете не использовать этот параметр.
noipdefault
# После установления соединения адрес провайдера будет использоваться в
# качестве маршрута по умолчанию (default route), то есть, говоря
# по-русски, на этот адрес будут отправлятся все пакеты, которые
# Ваш компьютер не знает, куда отправить.
defaultroute
end options подробнее об опциях можно узнать из man pppd
Сейчас отредактируем файл инициации подключения /etc/ppp/ppp-on
begin ppp-on #!/bin/sh
# В скрипт должны поступать 2 параметра:
# первый - номер телефона дозвона
TELEPHONE=$1
# второй - login учетной записи подсоединения
ACCOUNT=$2
# остальные параметры
# Локальный IP-адрес. Если динамический, то 0.0.0.0
LOCAL_IP=0.0.0.0
# Удаленный IP-адрес. Можно указать 0.0.0.0
REMOTE_IP=0.0.0.0
# Соответсвующая маска, если нужно
NETMASK=255.255.255.0
# Полный путь до скрипта, который используется для установки соединения
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
# Экспортируем переменную, чтобы была возможность ее
# использовать DIALER_SCRIPT
export TELEPHONE
# Команда инициации соединения. Параметры передаваемые pppd, в
# принципе, можно указывать в options.
exec /usr/sbin/pppd -d debug /dev/modem 57600 $LOCAL_IP:$REMOTE_IP \
user $ACCOUNT netmask $NETMASK connect $DIALER_SCRIPT
end ppp-on Позднее я, наверное, действительно уберу неизменяемые параметры из
строки инициации в файлик options, а пока оставлю так. Кроме того, этот
файл нужно сделать запускаемым:
$ chown root:root /etc/ppp/ppp-on
$ chmod 755 /etc/ppp/ppp-on
Тогда теперь нужно создать скрипт для установки соединения /etc/ppp/ppp-on-dialer
begin ppp-on-dialer #!/bin/sh
# Для удобства разделено на 2 столбца: чего ждем и как реагировать.
# Т.е. если модем выдал ответ "LEFT", то послать в него строку "RIGHT"
# Для управления существуют зарезервированные слова: ABORT и TIMEOUT
# ABORT - указывается строка, после которой работа завершится
# TIMEOUT - сколько ждать и если ничего не произошло также завершить
# работу.
exec /usr/sbin/chat \
ABORT "ERROR" \
ABORT "NO DIALTONE" \
TIMEOUT 5 \
"" "AT" \
"OK"-"+++"-"" "ATH0" \
"OK" "ATZ" \
"OK" "ATS7=45" \
"OK" "ATS19=1" \
ABORT "BUSY" \
ABORT "NO ANSWER" \
ABORT "NO CARRIER" \
"OK" "ATDT$TELEPHONE" \
TIMEOUT 30 \
"CONNECT" ""
end ppp-on-dialer ppp-on будет запускать этот файл, значит надо выставить соответствующие
права:
$ chown root:root /etc/ppp/ppp-on-dialer
$ chmod 755 /etc/ppp/ppp-on-dialer
Файлик для разрыва соединения возьмем стандартный, предоставляемый
вместе с дистрибутивом:
$ cp /usr/share/doc/ppp-2.4.2/scripts/ppp-off /etc/ppp/
Нужно, чтобы была возможность и его запускать
$ chown root:root /etc/ppp/ppp-off
$ chmod 755 /etc/ppp/ppp-off
Осталось только описать нашу учетную запись для авторизации по PAP в
файлике /etc/ppp/pap-secrets
begin pap-secrets # login server's name password
mylogin * mypassword
end pap-secrets На этот файл нужно установить права 600, а владелец и группа-владельца
root:
$ chown root:root /etc/ppp/pap-secrets
$ chmod 600 /etc/ppp/pap-secrets
Теперь, чтобы установить соединение нужно набрать
$ /etc/ppp/ppp-on 351992 mylogin
Приверяем наличие соединения
$ ping 213.59.72.68
Чтобы можно обращаться к ресурсам Инета по имени, нужно дабавить в
файлике /etc/resolv.conf строчку с IP-адресом DNS-сервера провайдера:
begin resolv.conf search netgate
nameserver 213.59.72.72
end resolv.conf Тогда теперь можно пинговать:
$ ping www.ya.ru
Устновленный маршрут по умолчанию можно посмотреть с помощью
$ /sbin/route -n
Также можно посмотреть, что активен ppp-интерфейс
$ /sbin/ifconfig
Когда все закончилось, нужно разорвать установленное соединение
$ /etc/ppp/ppp-off
Хочу заметить, что пока мы можем запускать pppd только от root.
C уважением, Kolotov Alexandr (aka mr. Эбола)
отвечать: myscri***@e*****.ru
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.kirovlug-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.kirovlug&email=
http://subscribe.ru/ mailto:ask@subscribe.ru