1、找到软件
我用的软件是pptpd-1.1.4-b3.tar,不知道为什么,这里不让上传gz文件
2、安装
解压后,
./configure
make
make install
3、配置文件
vi /etc/pptpd.conf
[code:1:226a5131e5]
speed 115200
option /etc/ppp/options
debug
#localip 192.168.0.1 这句好象没什么用,我注释了
remoteip 192.168.0.20-30 这句是分配IP的,但不知道为什么,CLIENT的IP不按这个分配 :cry:
enable chap 起用chap机制
[/code:1:226a5131e5]
vi /etc/ppp/options
[code:1:226a5131e5]
lock
debug
# name platinum.com.cn 这个有没有都可以
bsdcomp 0
auth
require-chap 用chap认证方式
proxyarp
# ms-dns 202.106.196.152 这个应该是给CLIENT重新分配DNS的,但好象没用,也没删,就先留着了
[/code:1:226a5131e5]
vi /etc/ppp/chap-secrets 这是定义CLIENT密码的部分
[code:1:226a5131e5]
# Secrets for authentication using PAP
# client server secret IP addresses
"platinum" * "vpntest" 192.168.0.10
[/code:1:226a5131e5]
OK,到这里就配置完成了,运行pptpd启动服务
先关掉防火墙测试,CLIENT:WIN2000
建立VPN拨号,然后指定IP,61.149.xx.xx
注意:在属性编辑里,不要选用加密,否则连不上(好象要下MS的MSCHAP补丁才可以,我没找到)
连接,测试通过
[quote:226a5131e5]
[root@platinum ppp]# netstat -a|more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:1723 *:* LISTEN
tcp 0 0 61.149.6.131:1723 202.204.224.130:1164 ESTABLISHED
raw 0 0 61.149.6.131:gre 202.204.224.130:* 1 [/quote:226a5131e5]
内容略有删节
注意:外部IP,202.204.224.130已经连接,VPN端口:1723
此外还有一个GRE[/color:226a5131e5],协议名称非TCP、UDP、ICMP!!!
这是VPN的主要传输协议,所以要配置防火墙,一定要开这个
4、配置防火墙
我的FIREWALL代码如下:
[code:1:226a5131e5]
#! /bin/bash
#初始设置,允许内网转发
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -F -t filter
/sbin/iptables -F -t nat
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
# 允许内网所有IP做所有事情
/sbin/iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
# 打开FTP端口:211
/sbin/iptables -A INPUT -p tcp --dport 211 -j ACCEPT
# 打开VPN端口1723,还有GRE!!!
/sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
/sbin/iptables -A INPUT -p gre -j ACCEPT
# WWW:801,SWAT:901
/sbin/iptables -A INPUT -p tcp --dport 801 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 901 -j ACCEPT
# SOCKS5:8039
/sbin/iptables -A INPUT -p tcp --dport 8039 -j ACCEPT
# ICMP(PING)
# 这句话是允许[color=red]除了公网上所有IP的ICMP协议的echo-request标志
# 也就是允许网内机器PING,但不向外发PONG
/sbin/iptables -A INPUT -p icmp --icmp-type ! echo-request -j ACCEPT
# NAT
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
# DENY OTHERS
# 这句很关键,做IP地址的主动连接状态设置,避免了以往防火墙的漏洞
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 其余未登记的端口全部DROP掉!
/sbin/iptables -A INPUT -j DROP
[/code:1:226a5131e5]
当然,从我的FIREWALL还可以看出,我还配置了其他服务
我添加了SAMBA服务,不登陆VPN,是无法访问的
自此,VPN+IPTABLES+SAMBA+FTP+WWW+SOCKS5配置完成
你可以对自己的机器再添加其他服务,想对外开端口,改FIREWALL即可
如图,ADSL连网,PPP0,远程PPP1正在下东西
[myimg]upload/linux-news01.png[/myimg]