配置PPP服务器

来源:互联网 发布:java中什么是接口 编辑:程序博客网 时间:2024/04/19 14:56

    解决方法:由于Internet宽带连接的使用,拨号调制解调器变地过时,但是仍然有一些情况需要拨号访问. 在办公室的一个PPP服务器可以提供在用户外出出差时提供访问email和Internet的另一种方法. 在服务器或者网络出现问题时,拨号调制解调器也为系统管理员提供了一种紧急的连接. 下面介绍的配置一个PPP服务器的步骤允许系统管理员在使用红帽企业版Linux,Microsoft Windows, OS X或者其他支持PPP拨号的操作系统时获得远程访问.在远程客户端的拨号软件上,只需要输入调制解调器的电话号码,用户名和密码。在客户端,对于红帽企业版Linux和其它的操作系统,不再需要其他额外的配置.

使用下面的步骤来配置你的PPP服务器:

  1. 在/etc/mgetty+sendfax/login.config文件中去掉'AutoPPP'所在行的注释:
      /AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug
  2. 在/etc/mgetty+sendfax/mgetty.config文件中调节端口的速度,来匹配调制解调器的参数.
      speed 57600
  3. 在/etc/inittab文件中加入下面的行:
      ppp0:345:respawn:/sbin/mgetty -x 3 ttyS0
    改变ttyS0(ttyS0 是第一个串口)为连接调制解调器的端口.每个调制解调器需要一行.如果使用多个调制解调器,每一个调制解调器需要一个唯一的终端名(ppp0 在这里是名字),同时需要改变ttyS0为一个合适的串行端口.如果你不确定调制解调器连接到哪个端口,使用下面的端口查询命令:
     wvdialconf /tmp/wvdialtest.conf
    这个命令的输出将会显示调制解调器连接哪个端口.显示类似于:
     "Found a modem on /dev/ttyS0, using link /dev/modem in config"
  4. 把下面的内容加入到 /etc/ppp/options文件 file. 不要忘记删除在这个文件中的任何存在的选项和把真实的DNS服务器加入到ms-dns所在行:
      
      # Don't fork to become a background process (otherwise pppd will do so
      # if a serial device is specified).
      -detach

      # async character map -- 32-bit hex; each bit is a character
      # that needs to be escaped for pppd to receive it.  0x00000001
      # represents '/x01', and 0x80000000 represents '/x1f'.
      asyncmap 0

      # Set the interface netmask to , a 32 bit netmask in "decimal dot"
      # notation (e.g. 255.255.255.0).
      netmask 255.255.255.0

      # Add an entry to this system's ARP [Address Resolution Protocol]
      # table with the IP address of the peer and the Ethernet address of this
      # system.
      proxyarp

      # Specifies that pppd should use a UUCP-style lock on the serial device
      # to ensure exclusive access to the device.
      lock

      # Use hardware flow control (i.e. RTS/CTS) to control the flow of data
      # on the serial port.
      crtscts

      # Use the modem control lines.  On Ultrix, this option implies hardware
      # flow control, as for the crtscts option.  (This option is not fully
      # implemented.)
      modem

      # This machine does not authenticate callers
      noauth

      # Set DNS servers. Replace aa.bb.cc.dd and ee.ff.gg.hh with the actual
      # DNS servers for your environment.
      ms-dns  aa.bb.cc.dd
      ms-dns  ee.ff.gg.hh
  5. 创建一个/etc/ppp/options.ttySX文件,其中ttySX 是调制解调器连接的串口(类似于ttyS0 或者 ttyS1).在这个文件中,加入被配置成PPP服务器的IP地址,分号的后面是分配给调制解调器的IP地址.这个文件看起来类似于:
      #Server_IP_address:Client_IP_address
      192.168.1.68:192.168.1.107
    这个设定了网关(PPP服务器的IP)和远程机器的IP地址.为每个调制解调器创建一个文件.每个PPP服务器的IP地址可能会相同但是每个调制解调器需要自己的唯一的IP地址.
  6. 为pppd程序设置root访问的suid位:
      chmod u+s /usr/sbin/pppd
     这将使pppd以root身份来运行.
  7. 使用init q命令来重新读取/etc/inittab文件
  8. 激活IP转发,这样路由服务器外的客户请求:
      echo 1 > /proc/sys/net/ipv4/ip_forward
     如果你希望这个设置在重新启动和永久生效,可以编辑 /etc/sysctl.conf文件加入下面的行:
      net.ipv4.ip_forward = 1
  9.在登录时用户帐号需要改变,来自动运行/usr/sbin/pppd程序.如果这个没有被设置,用户需要在登录后在一个终端窗口手动执行pppd. 尽管一个通用的'pppuser'帐户可以被任何人使用,但是由于安全原因,我们强烈推荐你创建一个单独的帐户. 为ppp创建帐户,可以使用useradd命令来创建帐户.使用passwd为这个用户设置密码后,修改/etc/passwd文件,把这个帐户的登录shell改变为/usr/sbin/pppd. 在/etc/passwd 中的行类似于:
      bob:x:500:500:bob:/home/bob:/usr/sbin/pppd
 10. 红帽企业版Linux既支持PAP验证也支持CHAP验证, 对于CHAP在客户端和服务器端需要定制化的脚本,在这里我们使用简单的PAP验证方法.PAP 通过在/etc/mgetty+sendfax/login.config文件中AutoPPP所在行指定-chap +pap参数来指定.为了允许用户验证,编辑/etc/ppp/pap-secrets文件,包含用户名和密码.这些用户名和密码与你从本地终端登录入系统的用户名和密码相同.例如,如果我们想授权PPP访问一个用户为"bob",密码为"mypassword"的用户,这个文件看起来如下:
       
      #User  Server  Secret  IP Address
      bob  *  mypassword      *
    在The asterisks under the Server and IP address 端下的*号,允许这个用户从任何IP地址登录到这个服务器.
    故障检修当用户拨入时,调制解调器没有自动回答,确认调制解调器上的DIP开关没有配置为强制自动回答.调制解调器不需要在默认设置下再重新配置,就可以使PPP工作. 如果调制解调器回答了,但是用户不能登录,使用tail -f命令来视/var/log/messages和/var/log/mgetty.log.ttySX(X是你串口的号码)来获取错误信息. 确认用户的登录密码和/etc/ppp/pap-secrets中的密码相同,同时匹配在拨号软件中输入的密码. 如果错误类似于init chat failed, exiting...:Invalid argument 出现在 /var/log/mgetty.log.ttySX文件中,调制解调器的初始化字符串可能不对. 为了修改这个错误,把下面的行加入/etc/ppp/mgetty.config 文件中:

init-chat "" ATZ OK AT&F1 OK
把AT&F1替换成你的调制解调器相应的初始化字符串. AT&F1应该适合于US Robotics调制解调器,因为它加载出厂的默认配置.

注:在使用Linux系统作为远程客户端时,/var/log/mgetty.log.ttySX文件的 'user' 区域将显示实际试图登录的用户名.如果 Windows 是远程客户端的操作系统, 'user' 区域将显示 '/AutoPPP/'.这是正常的.