Ключевые слова:linux, dial-in, dialup, mgetty, modem, ppp, (найти похожие документы)
From: Sergij Marchenko <makar@ua.fm>
Newsgroups: http://makar.netfirms.com
Date: Mon, 4 Jul 2002 13:01:37 +0000 (UTC)
Subject: Настройка сервера удаленного досупа в Linux
Оригинал: http://makar.netfirms.com/isp.htm
(C) 2002 Sergij Marchenko, MakarSoftware, <makar@ua.fm>, GPL
Имеем следующее:
RED HAT 7 (или любой совместимый, например ASPLinux 7.X)
Сетка 172.16.0.0/24, выделенка на ttyS0, MOXA с портами cum0 - cum7
Провайдер (FreeBSD) дает на выделенку автоматически IP, DNS; логин и пароль не
проверяет.
Хотим:
провайдить локалу и удаленных клиентов.
Решение:
Инсталлируем mgetty. Допустим, у нас есть
mgetty-1.1.25-2.asp.i386.rpm, тогда делаем rpm -ivh
mgetty-1.1.25-2.asp.i386.rpm
Редактируем /etc/mgetty+sendfax/login.config
Тут должны быть только 2 строчки:
/AutoPPP/ - - /etc/ppp/ppplogin
* - - /bin/login @
В /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
# Это добавить:
7:2345:respawn:/sbin/mgetty cum0
8:2345:respawn:/sbin/mgetty cum1
9:2345:respawn:/sbin/mgetty cum2
10:2345:respawn:/sbin/mgetty cum3
11:2345:respawn:/sbin/mgetty cum4
12:2345:respawn:/sbin/mgetty cum5
13:2345:respawn:/sbin/mgetty cum6
14:2345:respawn:/sbin/mgetty cum7
В /etc/hosts пишем:
172.16.0.100 hus0
172.16.0.101 ppphost0
172.16.0.102 hus1
172.16.0.103 ppphost1
172.16.0.104 hus2
172.16.0.105 ppphost2
172.16.0.106 hus3
172.16.0.107 ppphost3
172.16.0.108 hus4
172.16.0.109 ppphost4
172.16.0.110 hus5
172.16.0.111 ppphost5
172.16.0.112 hus6
172.16.0.113 ppphost6
172.16.0.114 hus7
172.16.0.115 ppphost7
В /etc/ppp/options пишем:
modem
crtscts
asyncmap 0
Создаем /etc/ppp/options.cum0
passive
172.16.0.1:172.16.0.101
proxyarp
ms-dns 195.5.62.1
ms-dns 195.5.62.3
debug
ms-dns нужны только для Windows-клиентов (других, наверно и не будет :-) Это
наши ДНС-сервера нашего провайдера.
Создаем /etc/ppp/options.cum1 и дальше по аналогии до /etc/ppp/options.cum7
passive
172.16.0.1:172.16.0.103 потом 105, потом 107...
proxyarp
ms-dns 195.5.62.1
ms-dns 195.5.62.3
debug
В /etc/ppp/pap-secrets пишем:
# Secrets for authentication using PAP
# client server secret IP addresses
makar * парольмакара 172.16.0.101
user * парольюсера 172.16.0.102
makarj * парольмакаровогобратана 172.16.0.103
shmit * парольхакерашмита 172.16.0.104
IP-адреса будут ввыдаваться персонально каждому юсеру. Чтобы они дозванивались,
после добавления юсера в систему нужно его добавить в /etc/ppp/pap-secrets
Таким образом, мы избавляемся от т.н. "Сиамских близнецов"
Создаем /etc/ppp/ppplogin
#!/bin/sh
mesg n
tty
/usr/sbin/pppd noauth noccp -chap +pap kdebug 4 login
и делаем его исполняемым
Создаем /etc/ppp/resolv.conf
195.5.62.1
195.5.62.3
Это наши ДНС. Не знаю, может это и не нужно. Я просто у провайдера спросил.
Вот и все, что нам нужно, чтобы к нам звонили. На клиентских машинах создаем
дозвон, оставляем только TCP-IP, остальное оставляем по умолчанию. В свойствах
IP-протокола указываем шлюз на наш сервер 172.16.0.1
Теперь нам нужно, чтоб наша выделенка автоматически звонила провайдеру:
ppp-on, ppp-off, ppp-on-dialer берем с /usr/share/doc/ppp-2.4.0/scripts и
катаем в /etc/ppp
Правим ppp-on:
#!/bin/sh
#
# Script to initiate a ppp connection. This is the first part of the
# pair of scripts. This is not a secure pair of scripts as the codes
# are visible with the 'ps' command. However, it is simple.
#
/bin/masq #Эту байду нужно добавить, потом объясню зачем
# These are the parameters. Change as needed.
TELEPHONE=1 # The telephone number for the connection
ACCOUNT="" # The account name for logon (as in 'George Burns')
PASSWORD="" # The password for this account (and 'Gracie Allen')
LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0
REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0
#NETMASK=0.0.0.0 # The proper netmask if needed
#
# Export them so that they will be available at 'ppp-on-dialer' time.
export TELEPHONE #ACCOUNT PASSWORD - у меня мой провайдер паролей не спрашивает.
Если у Вас спрашивает - надо раскомментировать
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400 \
asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
noipdefault persist holdoff 5 defaultroute connect $DIALER_SCRIPT
/bin/masq #Эту байду нужно добавить, потом объясню зачем
Правим ppp-on-dialer:
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
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 \
'' ATA \ # У меня ATA, потому, что мой модем не звонит, а берет трубку
CONNECT '' \
# ogin:--ogin: $ACCOUNT \
# assword: $PASSWORD Я же говорил, что меня провайдер пароль не спрашивает
ppp-off оставляем без изменений
Правим /etc/rc.d/rc.local
Последнюю строчку ставим:
sh /etc/ppp/ppp-on
Создаем файл /bin/masq
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/ipchains -A forward -i ppp0 -s 172.16.0.0/24 -d ! 172.16.0.0/24 -j MASQ
и делаем его исполняемым. Эта штука будет нам маскарадить клиентов в интернет
Для съема статистики рекомендую getstatd - http://www.opennet.dev/getstatd/
Очень крутая, но простая в использовании штука. Дает пользователю возможность
через веб-интерфейс узнать статистику за любой период, а администратору -
статистику на всех юсеров.
Может чего и упустил, в случае чего мыльте. В качестве оплаты принимаю
виртуальное пиво ;-)
Оригинал: http://makar.netfirms.com/isp1.htm
(C) 2003 Sergij Marchenko, MakarSoftware, <makar@ua.fm>, GPL
Эта дока рассказывает, как сделать маленький диалап-сервер у себя дома
Значит так. Для начала тот комп, на который дозваниваются, будет
сервер, а тот, который звонит, будет клиент.
Допустим, на сервере стоит модем на com1
Инсталлируем mgetty. Допустим, у нас есть
mgetty-1.1.25-2.asp.i386.rpm, тогда делаем rpm -ivh
mgetty-1.1.25-2.asp.i386.rpm
Редактируем /etc/mgetty+sendfax/login.config
Тут должны быть только 2 строчки:
/AutoPPP/ - - /etc/ppp/ppplogin
* - - /bin/login @
В /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
# Это добавить:
7:2345:respawn:/sbin/mgetty ttyS0
В /etc/hosts пишем:
172.16.0.100 hus0 - это типа сервер
172.16.0.101 ppphost0 - это типа клиент
В /etc/ppp/options пишем:
modem
crtscts
asyncmap 0
Создаем /etc/ppp/options.ttyS0
passive
172.16.0.100:172.16.0.101
proxyarp
ms-dns 172.16.0.100
ms-dns 172.16.0.100
debug
В /etc/ppp/pap-secrets пишем:
# Secrets for authentication using PAP
# client server secret IP addresses
user * парольюсера 172.16.0.101
Создаем /etc/ppp/ppplogin
#!/bin/sh
mesg n
tty
/usr/sbin/pppd noauth noccp -chap +pap kdebug 4 login
и делаем его исполняемым
Создаем /etc/ppp/resolv.conf
172.16.0.100
172.16.0.100
Теперь после kill -1 1 или после перезагрузки твой модем дожен брать
трубку после первого звонка. Он полностью готов к работе как настоящий
сервер дозвона.
Чтобы кидаться файлами, лучше всего использовать FTP. Самый простой
способ - проинсталлировать wu-ftpd. Например, если у нас есть
wu-ftpd-2.6.1-12.0.asp.i386.rpm, то делаем rpm -ivh
wu-ftpd-2.6.1-12.0.asp.i386.rpm
Редактируем /etc/xinetd.d/wu-ftpd Он должен иметь такой вид:
# default: on
# description: The wu-ftpd FTP server serves FTP connections. It uses
\
# normal, unencrypted usernames and passwords for authentication.
service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l -a
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
# disable = yes
}
После этого делаем /etc/rc.d/init.d/xinetd restart
Сервер готов. На клиенте работаем с ним точно так же, как с
интернетом. Делаем дозвон, запускаем ftp сессию и расслабляемся.