Ключевые слова:pppoe, ppp, linux, vpn, (найти похожие документы)
From: dark705
Newsgroups: email
Date: Mon, 4 Feb 2008 14:31:37 +0000 (UTC)
Subject: Простейшая установка и настройка PPPoE сервера под Linux
Простейшая установка и настройка PPPoE сервера под Linux
Исправление ошибки LCP Config Request
Протестировано на:
* Fedora Core 8, Red Hat 9.0
* ppp 2.4.4
* rp-pppoe 3.8
1. Установка ppp
На момент написания данного документа на всех системах от Red Hat,
pppoe отказывался работать в режиме демона (по поводу kernel mode
ничего сказать не могу потому как не пробовал). Ошибка кроется в
демоне ppp, который отказывается посылать ответы на клиентские запросы
LCP Config Request.
Признаком такой ошибки является остановка подключения к серверу на
этапе проверки имени пользователя и пароля.
В /var/log/messages можно наблюдать такие ошибки:
Jan 30 03:24:51 Dark-server pppd[1979]: LCP: timeout sending Config-Requests
Jan 30 03:24:51 Dark-server pppd[1979]: Connection terminated.
Jan 30 03:24:51 Dark-server pppd[1979]: Modem hangup
Для устранения данной ошибки необходимо исправить файл main.c из
комплекта pppd. После чего ppp надо заново откомпелировать и
установить.
1.1 Качаем ppp 2.4.4 , распоковываем, заходим в дирректорию pppd,
правим файл main.c:
Строки 1567-1572
if (errfd == 0 || errfd == 1)
errfd = dup(errfd);
closelog(); ## ДОБАВЛЯЕМ СТРОКУ!!!
/* dup the in, out, err fds to 0, 1, 2 */
if (infd != 0)
dup2(infd, 0);
Строки 1575-1581
if (errfd != 2)
dup2(errfd, 2);
## УДАЛЯЕМ СТРОКУ!!!!
if (log_to_fd > 2)
close(log_to_fd);
if (the_channel->close)
(Скачать патч и более подробно о данной проблеме можно прочитать
сдесь: https://bugzilla.redhat.com/show_bug.cgi?id=222295)
1.2 Выясняем где распологается старая версия:
whereis pppd
pppd: /usr/sbin/pppd
Т.е. Станая версия находится в /usr/sbin/
1.3 Запускаем скрипт конфигурации ppp, указывая параметр "prefix",имея
в виду, что установка должна выполняться заменяя предидущую версию.
Компелируем, устанавливаем:
/configure --prefix=/usr
make
make install
2. Установка pppoe
Тут всё довольно тривиально и обычно.
2.1 Качаем rp-pppoe 3.8, распоковываем, запускаем скрипт
./go
По идеи если не будет не каких ошибок, то на этом установка завершена.
2.2 Редактируем файл опций /etc/ppp/pppoe-server-options, это самый
обычный файл конфигурации ppp. Пример файла который работает у меня:
name pppoe
logfile /var/log/log.pppoe
require-pap
require-chap
require-mschap
require-mschap-v2
lcp-echo-interval 20
lcp-echo-failure 3
ms-dns 212.188.4.10
ms-dns 195.34.32.116
netmask 255.255.255.0
nobsdcomp
lock
2.3 Заводим пользователей в файлах /etc/ppp/pap-secrets и
/etc/ppp/chap-secrets
Приведу пример такого файла:
# Secrets for authentication using CHAP
# client server secret IP addresses
"testlogin" * "testpass" *
Т.е. Именем пользователя будет testlogin а паролем testpass
2.4 Запускаем сервер:
pppoe-server -I eth0 -L 192.168.0.1 -R 192.168.0.2
Где:
eth0 - имя интерфейса на котором запущен сервер
192.168.0.1- IP адрес сервера
192.168.0.2 - начальный IP адрес клиентов
Всё, сервер запущен и работает, теперь к нему можно подсоединяться.