在redhat4 sp3上配置pptp服务器

红薯 发布于 2009/05/05 18:05
阅读 342
收藏 0

在redhat4 sp3上配置pptp服务器
 
 
在redhat4 sp3上配置pptp服务器(本文主要是下面参考网址的内容,比着做了一遍,放这里作为一个记录,并不是发表什么文章)
参考:http://poptop.sourceforge.net/dox/redhat-howto.phtml
http://www.pconline.com.cn/pcedu/soft/lan/jywzj/0509/697099_1.html
1、确认核心版本
#uname -r 
2.6.9-34.EL
版本低于2.6.15需要打补丁
从http://sourceforge.net/project/showfiles.php?group_id=44827
上下载dkms-2.0.10-1.noarch.rpm
kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm 安装内核MPPE(Microsoft Point to Point Encryption,微软点对点加密)
pptpd-1.3.3-1.rhel4.i386.rpm
ppp-2.4.3-5.rhel4.i386.rpm  安装PPP(Point-to-Point Protocol,点到点协议)
pptp-1.7.0-1.i386.rpm
安装它们

用以下命令检查内核MPPE补丁是否安装成功: 
  #modprobe ppp-compress-18

用以下命令检查PPP是否支持MPPE: 
  #strings '/usr/sbin/pppd' |grep -i mppe | wc --lines
  如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持。
 
修改配置文件
  1.修改modules.conf文件
  编辑/etc/modules.conf配置文件,加入如下内容:
alias char-major-108 ppp_generic
alias tty-ldisc-3 ppp_async 
alias tty-ldisc-14 ppp_synctty 
alias ppp-compress-18 ppp_mppe
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate
alias net-pf-47 ip_gre

  2.修改pptpd.conf文件 
  编辑/etc/pptpd.conf配置文件,添加如下内容,确定本地VPN服务器的IP地址和客户端登录后分配的IP地址范围。 
    ppp /usr/sbin/pppd
  debug 
  option /etc/ppp/options.pptpd
  localip 192.168.0.254 #本地VPN服务器的IP
  remoteip 192.168.0.1-253 #客户端被分配的IP范围
3.修改options.pptpd文件 
  编辑/etc/ppp/options.pptpd配置文件,替换成如下内容: 
  auth
  lock
  debug
  proxyarp
  lock
  name rh9vpn #VPN服务器的名字
  multilink
  refuse-pap
  refuse-chap
  refuse-mschap
  refuse-eap
  refuse-mschap-v2
  require-mppe
  ms-wins 192.168.1.2 #把想要在网络邻居中看到的机器的IP填写到这里
  ms-dns 192.168.1.2 #DNS服务器地址 
  dump 
  logfile /var/log/pptpd.log #日志存放的路径
4.修改chap-secrets文件 
  编辑/etc/ppp/chap-secrets配置文件,添加如下内容: 
  # client server secret IP addresses
  "abc1" * "test" *
上面第二行代码的四项内容分别对应第一行中的四项。“abc1”是Client端的VPN用户名;“server”对应的是VPN服务器的名字,该名字必须和/etc/ppp/options.pptpd文件中指明的一样,或者设置成“*”号来表示自动识别服务器;“secret”对应的是登录密码;“IP addresses”对应的是可以拨入的客户端IP地址,如果不需要做特别限制,可以将其设置为“*”号。
5.设置IP伪装转发
  只有设置了IP伪装转发,通过VPN连接上来的远程计算机才能互相ping通,实现像局域网那样的共享。用下面的命令进行设置:
  #echo 1 > /proc/sys/net/ipv4/ip_forward
  可以将这条命令放到文件/etc/rc.d/rc.local里面,以实现每次开机时自动运行该命令。
  6.打开防火墙端口
  将Linux服务器的1723端口和47端口打开,并打开GRE协议。
  #/sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
  #/sbin/iptables -A INPUT -p tcp --dport 47 -j ACCEPT
  #/sbin/iptables -A INPUT -p gre -j ACCEPT
  到这里Linux服务器的设置就完成了,下面将利用Windows客户端进行测试。 
如果要求外网机器通过vpn连接其它网段的机器,还要用iptable做NAT转发


在实际应用中,我的防火墙是这样设置的:
#!/bin/sh
# load any special modules
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

# delete any existing chains
iptables -F
iptables -F -t nat
iptables -X
iptables -Z

# turn on ip forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
 
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -i eth0   -p tcp  --dport 22  -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth0   -p tcp  --dport 21  -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
[color=Red]#iptables -A INPUT -p tcp --dport 47 -j ACCEPT[/color]
[color=Red]#iptables -A INPUT -p gre -j ACCEPT[/color]
iptables -t nat -A POSTROUTING  -s 192.168.0.0/24 -j SNAT --to-source 192.168.1.2#(VPN服务器本机地址)

奇怪的是,我把上面红色的两句注释掉,仍然能正常拔号,不知道是怎么回事?

[ 本帖最后由 hsyll 于 2006-9-29 15:18 编辑 ]



加载中
返回顶部
顶部