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毫秒