Linux 版 (精华区)
发信人: howdoit (教练让我上场!!!), 信区: Linux
标 题: SettingUpaPPP/POPDial-inServerUSINGRedHatLinux5.1
发信站: 哈工大紫丁香 (Tue May 18 08:56:50 1999), 转信
《Linux公报》……让Linux更富魅力!
Setting Up a PPP/POP Dial-in
Server USING Red Hat Linux
5.1
By Hassan Ali 翻译: salty_fish
声明:
以下对我适用,你的可能有很大差别!
目的:
在Red Hat Linux 5.1 服务器为拨号用户建立PPP 和POP/IMAP服务。
工具:
Red Hat Linux 5.1 CDs
假设:
你已经拥有一台PC并安装好支持IP的核心的Red Hat Linux 5.1。
第一步:从Red Hat 5.1光盘上安装"mgetty"(如果没有的话) 。
~~~~~~
1.以"root"身份登录,插入光驱 Red Hat 5.1 光盘第一张,并使
用以下命令mount它:
# mount -t iso9660 /dev/hdb /mnt/cdrom
(假设你的光驱设备是/dev/hdb,如果不是,作相应更改)。
2.转到RPMS目录:
# cd /mnt/cdrom/RedHat/RPMS
3.安装"mgetty" rpm 文件:
# rpm -Uvh mgetty*
这将安装mgetty和它的所有一切,谁又关心这些呢!!如果你厌
恶其他东西,你可以用"mgetty-1.1.14-2.i386.rpm"代替
"mgetty*"。
4.在/etc/mgetty+sendfax/mgetty.config文件的尾部,对拨入用
户为每个连接到MODEM的串行口增加三行设置。这是对
/dev/ttyS1 和 /dev/ttyC15的例子:
# For US Robotics Sportster 28.8 with speaker off
port ttyS1
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 ttyC15
init-chat "" ATZ OK AT&F1M0E1Q0S0=0S7=90+FCLASS=0 OK
answer-chat "" ATA CONNECT \c \r
注意:
1.AT&F1 在许多MODEM上设置硬件流控制模式。一些其他的
MODEMS在init-chat行使用适当的初始化符。
2.在这你可能对我使用ttyC15端口举例有疑问;好吧,你可
能有一个端口如果你有多口串行卡。如果你需要,我建议
使用Cyclades卡。
5.在/etc/mgetty+sendfax/login.config 文件中,寻找带有
/AutoPPP/的行。确信它不是注释(i.e.行前没有#),把它改成:
/AutoPPP/ - a_ppp /etc/ppp/ppplogin
如果你想使用登录名(而不是"a_ppp")在/var/run/utmp和
/var/log/wtmp 的日志文件中出现,那么必须改成:
/AutoPPP/ - - /etc/ppp/ppplogin
6.在文件/etc/inittab 里,寻找"getty"一节,在这一节尾部为每
个MODEM端口增加一行,这以ttyS1 和 ttyC15为例 。
7:2345:respawn:/sbin/mgetty -x 3 ttyS1
8:2345:respawn:/sbin/mgetty -x 3 ttyC15
[第一个号码(7,8) 是任意的。 (实际上有时看到的是用 "s1",
"s2", etc,代替的。).只须给每个端口以不同的数字。至于为什
么有顺序,我也想知道!]
7.连接MODEM到串口,打开开关到ON,用命令初始化"mgetty":
# init q
注意: 如果在"mgetty" 串口上没有MODEM,或MODEM没有打开,
你将在"/var/log/messages"得到一大段出错信息,或者在其他
"mgetty"(/ var/log/log_mg.ttyXX")日志文件中.实际上这些出
错信息经常出现在你的屏幕上。迅速分析,避免麻烦,没有连接
串口的MODEM在文件/etc/inttab
和/etc/mgetty+sendfax/mgetty.config相应行中必须注释掉。
第二步:从Red Hat 5.1 CD #1安装PPP(如果没有安装的话)。
~~~~~~
1.如果 Red Hat CD #1 可能还未moundt(见第一步), 使用下列命
令安装PPP:
# rpm -Uvh /mnt/cdrom/RedHat/RPMS/ppp*
2.编辑文件/etc/ppp/options 就象下面一样:
-detach
crtscts
netmask 255.255.255.0
asyncmap 0
modem
proxyarp
注意:
1.使用自己网络的属性。它不会是 255.255.255.0,实际上我
用的是255.255.255.224
2.阅读"pppd"的帮助文理解上面的选项。
3.编辑文件/etc/ppp/ppplogin(如果不存在那么就建一个)就象下
面一样:
mesg n
tty -echo
/usr/sbin/pppd silent auth -chap +pap login
切记执行下列命令:
# chmod +x /etc/ppp/ppplogin
注意: 我们将使用PAP验证而不是普通的/etc/passwd口令文件。
这就是"+pap login"的意思。
4.为每个连接到MODEM的串口,创建一个相应的
/etc/ppp/options.ttyXX文件,这儿的XX是ttyS1端口的"S1",
ttyS2端口的"S2",ttyC15端口的"C15",等等。在这些文件中放
入以下行:
myhost:ppp01
"myhost"是PPP服务器的主机名-改成你相应的Linux实际主机
名。如果你很健忘你可以记起它,使用"hostame"命令提醒你的
服务器的主机名。
# hostname
上面使用的"ppp01"对于虚拟主机连接PPP拨入线响应的IP地址在
/etc/hosts文件中的定义是任意选择的。(梢后讨论)。在另一个
/etc/ppp/options.ttyXX文件,你可以键入如下:
myhost:ppp02
在这,你定义了一个不同的PPP主机名,"ppp02"。在每个串口使
用用不同的主机名。你可以选择任何你想的到的名字!而不必是
ppp01, ppp02, ppp03, etc.他们可以是"junkie", "newbie",
"noname", 无论什么。
5.编辑文件/etc/ppp/pap-secrets 增加file 象以下and add one
line as shown below for each IP address that is to be
dynamically assigned to PPP dial-in users. This, of
course, assumes that you have a pool of IP addresses
that you can assign to your dial-in clients:
# Secrets for authentication using PAP
# client server secret IP addresses
* * "" 10.0.0.3
* * "" 10.0.0.4
这是说: 没有PAP口令设置对于全世界的任何客户是可视IP地
址。我们不需要PAP口令可以使用/etc/passwd替代。如果你很固
执,你可以设置世界任何地方的IP号。我们使用/etc/passwd的话
就不需要使用PAP验证,如果你真的不固执,你可以仅输入下面
一行服务全部IP地址(你的和你邻居家的!):
# Secrets for authentication using PAP
# client server secret IP addresses
* * "" *
6.使/usr/sbin/pppd program可执行:
# chmod u+s /usr/sbin/pppd
7.编辑文件/etc/hosts分配IP地址到在STEP 2.4中你所使用的PPP
主机名。使用STEP 2.5中所有使用的IP地址:
10.0.0.3 ppp01 ppp01.mydomain.com
10.0.0.4 ppp02 ppp02.mydomain.com
注意:用你的实际PPP服务器名字代替"mydomain.com"。如果你
的服务器是"myhost.mydomain.com",仅此时你可以拒绝。
第三步:从Red Hat 5.1中安装POP/IMAP服务器(如果没装的话)
~~~~~~~~
1.装载Red Hat CD #1,使用下列命令安装POP和IMAP:
# rpm -Uvh /mnt/cdrom/RedHat/RPMS/imap*
2.检查/etc/inetd.conf文件,看看"pop-2","pop-3"和"imap"服务
是否都没有注释。如果没有,去掉他们的注释(如:去掉前导).
如果你仅想支持POP3客户,那就只去掉"pop-3"那一行。如果
POP2和POP3文件不在"imap*"RPM文件中,试用"imap*"RPM文件代
替试一下。
3.用以下命令执行新的服务:
# kill -HUP `cat /var/run/inetd.pid`
第四步:先使IP有效
~~
1.如果你使用RedHat 5.1附带的已编译的核心,它通常就支持IP。
如果你自己编译核心,牢记选择"IP:forwarding/gatewaying"网
络选项,对于RFC(请求评论Request for Comments),默认启动过
程并不启动IP。修改/etc/sysconfig/network文件中的IP设置为
'YES",如下:
FORWARD_IPV4=yes
2.用以下命令使IP转发生效:
# echo "1" > /proc/net/ip_forward
或重新启动计算机.
第5步:测试服务器
~
1.首先建立用户(如果没有的话)。你可以给定他们
"/home/username"主目录和"/bin/bash"登录脚本,当然如果你
想给他们"PPP"和SHELL存取权限的话也可以。如果你仅想给他们
PPP使用权,而不是SHELL存取权,你可以给他们
"/home/username"主目录和"etc/ppp/ppplogin"登录程序。当然
使用"usercfg"工具建立新用户最好。典型的/etc/passwd文件内
容如下:
jodoe:tdgsHjBn/hkg.:509:509:John Doe:/home/jodoe:/bin/bash
jadoe:t8j/MonJd9kxy:510:510:Jane Doe:/home/jadoe:/etc/ppp/ppplog
in
在这个例子中,John Doe有PPP和SHELL使用权。而Jane Doe只有
PPP使用权。如果你对John Doe 有PPP使用权有疑问的话,答案
在/AutoPPP/配置文件的"mgetty"几行中--这真的很神奇。许多
用户将拨入使用PPP,而mgetty将给他或她/etc/ppp/ppplogin程
序
所以,如果John Doe拨入使用Windows 95拨号建立PPP连接,
mgetty将给John Doe PPP存取。如果他用其他通讯软件如
HyperTerminal, (没有PPP)他将得到普通登录脚本。对于Jane
Doe这不会发生,她将一直使用/etc/ppp/ppplogin程序登录。
实际上"mgetty"允许你在同一个modem上使用多个协议。比如
说,你的UUCP客户端可以使用同一个modem线作为你的PPP客户
端!当然,你不得不给你的UUCP客户端以
/var/spool/uucppublic"目录和"usr/sbin/uucico"程序。
2.假设你已经建立了一个(Apache)服务器(建立Apache是小菜一
叠),在远端有一只modem连接着电话和一台PC,它用一个浏览
器,一个POP邮件客户端程序(e.g Eudora),建立了与PPP服务器
的IP地址相应的拨号连接,使用正确的DNS IP地址,指定服务器
将自动分配IP地址。在POP客户端如(e.gEudora),设置PPP/POP
服务器的SMTP和POP地址。
好了,等待连接。试着浏览一下,接收和发送POP邮件。如果它
不工作。。。一定是什么地方错了:-)
参考:
1. PPP-HOWTO 2. NET-3-HOWTO 3. "Using Linux", Bill Ball,
published by Que (around US$30 - highly recommended) 4.
mgetty documentation
版权所有 (C) 1999 NJLUG
出版于第36期《Linux公报》1999年1月 中文版第三期
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:207.028毫秒