Denis Kolesnichenko
-
Установка программного обеспечения
-
Настройка mgetty
-
Настройка ppp
-
Включение IP Forwarding
-
Второй вариант настройки
-
Если что-то не работает...
-
Настройка Windows-клиентов
-
Литература
Шаг 1. Установка программного обеспечения
Операционная система: Linux
Нам потребуются ppp-2.3.x (желательно по-новее) и mgetty-1.1.x.
mgetty доложен быть собран с опцией -DAUTO_PPP, если это не так, нужно
пересобрать
Я использую ppp-2.4.0-3mdk.i586.rpm и mgetty-1.1.22-2mdk.i586.rpm (Linux
Mandrake 7.2)
Если вы используете RedHat/Mandrake, установить ppp и mgetty можно с
помощью команд:
# mount -t iso9660 /dev/hdd /mnty/cdrom
#cd /mnt/cdrom/Mandrake/RPMS
#rpm -Uvh mgetty*
#rpm -Uvh ppp*
Некоторые замечания:
-
CDROM является устройством /dev/hdd (Secondary Slave)
-
Используется Linux Mandrake (при использовании RedHat пакеты находятся
в /mnt/cdrom/RedHat/RPMS)
-
Не используется supermount (если у вас supermount активен, первую команду
вводить не нужно)
-
Третья и четвертая команды устанавливают все семейство mgetty и ppp. При
использовании такого подхода устанавливаются все файлы - и никакой заботы!
Вы же можете установить только то, что вам нужно.
Шаг 2. Настройка mgetty
При корректной сборке/установке mgetty у вас должны быть файлы
/etc/mgetty+sendfax
dialin.config
login.config
mgetty.config
/etc/ppp
auth-up
auth-down
chap-secrets
ip-up
ip-down
options
pap-secrets
Если их нет, нужно самостоятельно найти где они находятся. При самосборке
смотрите что и куда
проинсталлировалось. В крайнем случае, необходимые файлы нужно создать
вручную.
/etc/mgetty+sendfax/dialin.config - обычно пустой (все закомментировано).
/etc/mgetty+sendfax/login.config - должен содержать строчку
/AutoPPP/- a_ppp /etc/ppp/ppplogin
Убедитесь, что эта строчка не закомментирована. Если вы хотите, чтобы
имена пользователей
записывались в log-файлы, отредактируйте эту строку так:
/AutoPPP/- -
/etc/ppp/ppplogin
Затем создайте /etc/ppp/ppplogin
mesg n
tty -echo
/usr/sbin/pppd silent auth -chap +pap login
В некоторых версиях ppp вместо -chap нужно писать refuse-chap, а вместо
+pap - require-pap
Сделайте /etc/ppp/ppplogin исполняемым
# chmod +x /etc/ppp/ppplogin
В нашем примере мы используем PAP аутентификацию с использованием пароля
из /etc/passwd файла (см. ниже)
/etc/mgetty+sendfax/mgetty.config - должен такой:
# For US Robotics Sportster 28.8 with speaker off
port ttyS0
speed 28800
data-only y
debug 3
init-chat "" ATZ OK AT&F1M0E1Q0S0=0 OK
answer-chat "" ATA CONNECT c r
# For Practical Peripheral 14.4 with fax disabled and prolonged
# carrier wait time (90 sec)
port ttyS1
speed 14400
data-only y
debug 3
init-chat "" ATZ OK AT&F1M0E1Q0S0=0S7=90+FCLASS=0 OK
answer-chat "" ATA CONNECT c r
# For USRobotics V.Everything
port ttyS2
speed 57600
data-only y
debug 3
init-chat "" AT OK ATS7=50S0=1+S62=3+S64=2S39=10 OK
Для ZyXEL U336E можно использовать такие параметры:
init-chat "" ATZ OK AT&F1M0E1Q0S0=0S OK
answer-chat "" ATA CONNECT c r
Теперь нужно изменить /etc/inittab
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
#added by me
S0:2345:respawn:/sbin/mgetty -x 3 ttyS0
S1:2345:respawn:/sbin/mgetty -x 3 ttyS1
S2:2345:respawn:/sbin/mgetty /dev/ttyS2
S0,S1,S2 - просто идентификаторы - вы можете использовать любое имя.
Нужно назначить
отдельное имя для каждого порта. S0-S2 я использовал для наглядности.
Теперь нужно запустить mgetty (перед выполнением этой команды включите
модемы)
# init q
Если при выполнении этой команды модем(ы) не подключены или выключены,
в /var/log/mesages вы получите много ругательств от mgetty по этому поводу.
Если на модеме загорелась лампочка TR, то все настройки выполнены правильно
и mgetty подхватил модем.
Шаг 3. Настройка ppp
Обычно для каждого порта в каталоге /etc/ppp создается файл options.ttySx,
где x - номер порта.
lock
login
auth
netmask 255.255.255.0
modem
crtscts
refuse-chap
require-pap
mtu 576
mru 576
proxyarp
myhost:ppp01
ms-dns CCC.CCC.CCC.CCC
Общие настройки для всех портов можно вынести в файл /etc/ppp/options.
myhost следует заменить на реальное имя вашего Dial-In сервера.
ppp01- произвольно выбранное имя виртуального узла абонента (вы можете
использовать другие имена,
например, igor, denis и т.д.).
Имена узлов должны быть уникальными, т.е. если вы используете ppp0
в options.ttyS0, то в options.ttyS1
нужно использовать ppp01 и т.д.
ms-dns определяет DNS-сервер для клиентов Microsoft. Укажите IP DNS-сервера
вашей сети.
Нам нужно использовать опцию proxyarp, т.к. мы будем назначать
IP-адреса внутри broadcast наших сетевых карт локальной сети. При этом
pppd будет делать вид будто бы виртуальный хост находится внутри нашего
сегмента ethernet.
Вместо "refuse-chap" можно писать "-chap", а вместо "require-pap" -
"+pap"
Теперь отредактируем файл /etc/ppp/pap-secrets
# Secrets for authentication using PAP
# client server
secret IP addresses
*
*
""
192.168.0.11
*
*
""
192.168.0.12
*
*
""
192.168.0.13
В нашем примере используется три модема для входящих звонков, поэтому
нужно сделать три записи.
Пароли мы будем брать из /etc/passwd (или /etc/shadow)
Вносим изменения в наш /etc/hosts
192.168.0.11 ppp01 ppp01.mydomain.com
192.168.0.12 ppp02 ppp02.mydomain.com
192.168.0.13 ppp03 ppp03.mydomain.com
mydomain.com нужно заменить на реальное имя домена.
При желании эти записи можно внести также и в локальную зону DNS.
Шаг 4.
Делаем /usr/sbin/pppd программу setuid "rood"
# chmod u+s /usr/sbin/pppd
Шаг 5.
Включаем IP Forwarding
Разрешение пересылки IP устанавливается в /etc/sysconfig/network
файле, примерно так:
FORWARD_IPV4=yes
Ваше ядро должно быть скомпилировано для поддержки IP_FORWARD
Введите команду
# echo "1" > /proc/net/ip_forward
Теперь вы готовы к работе!
Второй вариант настройки ppp
Этот вариант может оказаться даже более простым, чем первый.
Настроки файлов /etc/options и /etc/options.ttySx остаются прежними,
кроме
myhost:pp01
нужно заменить на
Server_IP:Client_IP
Например,
192.168.0.1:192.168.0.11
Нужно изменить содержание файла /etc/ppp/pap-secrets
#
user1 сервер.домен "" *
user2 сервер.домен "" *
#
user1 - имя пользователя, зарегистрированного в системе
сервер.домен - замените на реальное имя сервера входящих звонков
"" - пароли брать из /etc/passwd (/etc/shadow)
* - абонент может аутентифицироваться с любого IP.
При желании можно назначить другой пароль. В этом случае (если этот
сервер используется также
и в качестве почтовика) для dial-up'a и POP-сервиса будут использоваться
различные пароли.
Внимание! Пароли в /etc/ppp/pap-secrets содержатся в открытом виде,
а не кодируются с помощью
MD5 (или DES) как в файле /etc/shadow (/etc/passwd)
Файл /etc/hosts править не нужно.
Вот и все.
Если что-то не работает...
Лучший совет - смотрите /var/log/messages - там много всего интересного.
Если у вас появляются сообщения вида:
modprobe: can't locate module char-major-24
то надо прописать в /etc/conf.modules
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate
Настройка Windows-клиентов
Обыкновенное удаленное соединение, информацию об IP и DNS брать у провайдера.
Тип сервера: PPP
Дополнительные параметры: только "Программное сжатие данных"
Допустимые протоколы: только "TCP/IP"
Литература
PPP-HOWTO
DNS-HOWTO
NET3-HOWTO
Учет времени работы пользователя
с помощью tacacs
--------------------------------------------------
http://www.linux.org.ru/view-message.jsp?msgid=815260&back=&nocache=34458068>
У меня модем courier v 34 fax with v32 bit V.Everything
debug 6
fax-id 00 00 000000 (просто содрал у кого то)
speed 57600 ( скорость модема пробовал и ниже и выше)
direct NO ( вродиб если поставить галочку Y ставить незя)
blocking NO (тоже не знаю зачем она)
port-owner uucp (владелец модема)
port-group uucp (группа модема)
port-mode 0660 ( это похоже прова доступа к модему)
toggle-dtr YES (незнаю что)
toggle-dtr-waittime 500 (незнаю что )
data-only YES (передает только данные)
fax-only NO (запрет на факсы отвечать)
modem-type auto (помоему авто определение настроек)
init-chat "" ATS0=0 OK (в связке с пред идущей строкой говорит что строка иницыализации прошита в сам модем)
modem-check-time 3600 (помоему проверка на повис или нет модем)
rings 1 (трубку брать с первого звонка)
answer-chat "" ATA CONNECT c r (точно незнаю но помему это команда авто ответа)
answer-chat-timeout 80 (сколько времени на ответ дать)
autobauding NO (незнаю но судя по смыслу
исправление ошибок программно
закрыто чтоб модем сам все исправлял)
ringback NO (мол ненадо мне перезванивать сразу
подключайся)
ringback-time 30 (через какое время)
ignore-carrier false
issue-file /etc/issue
prompt-waittime 500
login-prompt @!login: (ненаю что эти строки значат)
login-time 240 (время на логин есле не подключился то
отбрасывает)
diskspace 1024 (место на винте под мою сессию)
notify faxadmin
fax-owner uucp
fax-group modem
fax-mode 0660 (незнаю зачем писал всеравно факс
отключен выше)
_________________________________________________________________
options тут вообще незнаю что для чего
asyncmap 0
modem
proxyarp
debug
lock
noccp
login
crtscts
require-pap
refuse-chap
passive
idle 1000
mtu 1200
mru 1200
lcp-max-configure 180
lcp-echo-interval 30
lcp-echo-failure 4
netmask 255.255.255.0
ms-dns 192.168.11.11
ms-wins 192.168.11.10
__________________________________________________________________
options.tts0
-detach
192.168.11.12:192.168.11.13
___________________________________________________________________
ppplogin
mesg n
tty -echo
/usr/sbin/pppd silent auth -chap +pap login debug
рар chap я не использую, пароли беруться, из системы.
toggle-dtr-waittime 500 поставли 150
modem-check-time 3600 поставил 1500
answer-chat-timeout 80 поставил 50
ringback-time 30 отключил
prompt-waittime 500 слелал 150
login-time 240 300
подключаться стал чаще, и быстрее, но всеравно переодически
косяки остаются...